Κρυφοκοιτάξτε στο μέλλον της συμβατότητας κληρονομιών στα παράθυρα
Η δυνατότητα να τρεχτούν οι δεκαετία-παλαιές εφαρμογές στις νεώτερες απελευθερώσεις των παραθύρων έχει γίνει σχεδόν μια ιεροτελεστία της μετάβασης. Οι περισσότεροι άνθρωποι θα συμφωνούσαν ότι η συμβατότητα λογισμικού προς τα πίσω στα παράθυρα είναι εύκολα ένας από τους σημαντικούς παράγοντες για την επιτυχία της. Εντούτοις με κάθε καταβολή, η Microsoft σκάβεται βαθύτερος και βαθύτερος σε αυτό το κοίλωμα της υποστήριξης καθώς το εύρος και το βάθος του λογισμικού αυξάνονται εκθετικά. Τόσο πολύ έτσι μερικοί προβλέπουν ότι θα καταστρέψει τελικά τα παράθυρα, εάν να μην έχε ήδη.
Μια πρόσφατα δημοσιευμένη αίτηση διπλώματος ευρεσιτεχνίας, «Περιβάλλον για την εκτέλεση των εφαρμογών κληρονομιών σε ένα εγγενές λειτουργικό σύστημα» για εκείνους σας που παίζετε στο σπίτι, που αρχειοθετούνται τον Απρίλιο του 2007 από Hoi Vo της Microsoft και Samer Arafeh (που λειτουργεί στον πυρήνα παραθύρων) αποκαλύπτει μερικές λεπτομέρειες για το πώς αυτοί δύναμη (και έμφαση στη δύναμη επειδή τα διπλώματα ευρεσιτεχνίας είναι ακριβώς λέξεις σε ένα κομμάτι του χαρτί) προσαρμόστε και βελτιώστε εντυπωσιακά τις απελευθερώσεις συμβατότητας λογισμικού στο μέλλον των παραθύρων.
Όπως περιγράφεται στο δίπλωμα ευρεσιτεχνίας, το πρόβλημα της υποστήριξης εφαρμογών κληρονομιών βρίσκεται στα δυαδικά (DLLs και EXEs). Δεδομένου ότι τα λειτουργικά συστήματα ενημερώνονται, τα δυαδικά συστημάτων αλλάζουν. Οι παλαιότερες κλήσεις, οι επανακλήσεις και οι εξαιρέσεις συστημάτων μπορούν να μην υπάρξουν καθόλου στο νέο λειτουργικό σύστημα, μπορούν να υπάρξουν μέχρι ενός ορισμένου βαθμού ή μπορούν να παραγάγουν τις εναλλάσσομαι απαντήσεις. Οποιοιδήποτε των οποίων είναι πιθανό να καταστρέψει havok στις εφαρμογές κληρονομιών που εξαρτώνται από αυτά τα δυαδικά.
Αυτήν την περίοδο υπάρχουν δύο συμβατικές λύσεις στο πρόβλημα. Κάθε ένας με τα αντίστοιχα πλεονεκτήματα και τα μειονεκτήματά τους.

Ο πρώτος υιοθετεί τη χρήση «shims». Μεταφορικά μιλώντας, είναι βασικά κολλώδης ταινία γύρω από τις άκρες για να σιγουρευτεί ότι τα πράγματα δεν πέφτουν έξω. Τεχνικά, είναι ένα συνήθεια-γραπτό μπάλωμα που είναι εφαρμοσμένο σε ώρα πτήσης όταν φορτώνονται οι εφαρμογές κληρονομιών και θα καθίσουν μεταξύ της εφαρμογής κληρονομιών και των εγγενών δυαδικών συστημάτων. Σύμφωνα με τις υπάρχουσες πληροφορίες η Microsoft έχει γράψει χιλιάδες shims για Vista παραθύρων, και είναι ακόμα γράφοντας. Η άνω πλευρά είναι ότι shims είναι σχετικά εύκολο να εφαρμοστούν, αλλά πρέπει να παραγάγουν shims στο α ανά μέσα βάσης εφαρμογή-από-εφαρμογής που δεν ξελεπιάζει καλά καθόλου.
Η δεύτερη λύση παίρνει virtualization πλεονεκτήματος την τεχνολογία. Με τη φιλοξενία μιας εικονικής μηχανής κληρονομιών OS, οι εφαρμογές κληρονομιών οποιεσδήποτε δεν ξέρουν καθόλου καλύτερα. Virtualization προσφέρει την πλήρη υποστήριξη εφαρμογής αλλά με βαρύ κόστος απόδοσης. Η υποστήριξη υλικού είναι επίσης πρωτόγονη, καθιστώντας το δύσκολο να μοιραστεί τους πόρους όπως την τρισδιάστατη γραφική παράσταση παραδείγματος χάριν. Απαιτεί επίσης τους χρήστες για να είναι σε θέση να εγκαταστήσει κάθε έκδοση των λειτουργικών συστημάτων κληρονομιών.

Η προτεινόμενη λύση παίρνει με κάποιους τρόπους τα καλύτερα κομμάτια και τα δύο. It works first by detecting if the application was written for the native operating system. If not, it will load the application with its respective legacy system binaries. The accommodate the difference in system calls between the legacy binaries and native kernel, an Application Compatibility Module is placed in between to act as a translator for these calls. In certain cases where a comparative native system calls may not exist at all, the ACM could also be smart enough to provide the same functionality as the missing system call.
Hypothetically speaking, if the system detected an XP application it would load the XP system binaries (ex. system32_xp) and then a XP-to-WinNext compatibility module.
The benefit of this solution is it offers much broader application compatibility with relatively low investment on Microsoft’s behalf on the scale of per-application - they will only have to write a ACM for each legacy system they wish to support. Legacy applications will also be able to take full advantage of the system resources as a native application, because there is no emulation involved.
Notable Windows on Windows - the compatibility system used to provide 16-bit on 32-bit systems support and 32-bit on 64-bit systems support uses a similar concept.
One of the biggest gripes from most Windows enthusiasts has been the bloat legacy compatibility forces into Windows. Whilst this patent doesn’t specifically mention so, I presume such ACMs are modular and can be installed and removed on demand. For example, if you need to run Windows Vista applications in future versions of Windows, you will only download and install the Vista ACM Pack (with Vista binaries) for that operating system. Those who do not require legacy support will then be not required to install any ACMs.
Thinking about it, it could become a business model to sell ACMs separately to Windows - reducing the overall cost of Windows and charging a tiered price for legacy support. A cheaper and less bloated Windows, wouldn’t that be nice.
Written by Long Zheng. Read more great feeds at is source WEBSITE
no comments.
Read more articles on otherSoftware and blog.
- [+] Digg: Feature this article
- [+] Del.icio.us: Bookmark this article
- [+] Furl: Bookmark this article














