Translate -TRANSLATE -

Πέμπτη 14 Μαΐου 2020

Όταν ξεκινούσαν τα Windows



Όταν ξεκινούσαν τα Windows

Με ένα κρυμμένο τμήμα κώδικα η Microsoft έλεγχε αν τα Windows έτρεχαν το πρωτότυπο DOS της εταιρείας ή κάποιο από τα ανταγωνιστικά λειτουργικά συστήματα.

Οι γνώστες του κλάδου υποψιαζόντουσαν καιρό πριν την κυκλοφορία των πρώτων ςindows ότι η Microsoft δεν άνοιγε, όπως και δεν ανοίγει συνήθως τα χαρτιά της, όσον αφορά τα programming interfaces. Δεν ήταν τυχαίο άλλωστε που τα βιβλία με τις μη τεκμηριωμένες λειτουργίες του DOS και των Windows συγκαταλέγονταν στα best-seller μεταξύ των προγραμματιστών.
Οι εντολές που αναφέρονταν μέσα σ' αυτά τα βιβλία έδιναν τροφή στις φήμες σχετικά με την απόκρυψη ορισμένων λειτουργιών των συστημάτων που δούλευε η Microsoft από τον ανταγωνισμό. Σύμφωνα με τις φήμες αυτές η εταιρεία του Bill Gates δεν αποκάλυπτε τις λειτουργιές αυτές, προκειμένου οι προγραμματιστές των εφαρμογών της να έχουν πλεονέκτημα σε σχέση με τους υπόλοιπους.
Αυτό άλλωστε οφειλόταν και στον εντοπισμό μιας καλά κρυμμένης διαδικασίας (procedure) στα τότε Windows 3.1. Η procedure αυτή ανίχνευε αν ο υπολογιστής που χρησιμοποιούταν έτρεχε με το DOS της Microsoft ή με κάποιο άλλο σύστημα ανταγωνιστή.
Όποιος π.χ. επέλεγε το DOS της Novell (ή πιο παλιά το DR-DOS3 ερχόταν σε μια έκδοση beta των Windows 3.1 αντιμέτωπος με το μήνυμα "non-fatal error". Τα Windows φορτώνονταν ωστόσο κανονικά. Το μυστήριο σχετικά με το πού οφειλόταν το λάθος έμεινε τότε ανεξερεύνητο -αν και όλοι υποπτεύονταν ότι είχε να κάνει με το γεγονός ότι το DOS που χρησιμοποιούταν στον υπολογιστή δεν ήταν το αυθεντικό της Microsoft.
Στην κανονική έκδοση των Windows οι χρήστες DOS άλλων εταιρειών δεν έβλεπαν όμως αυτό το μήνυμα. Ωστόσο ο σχετικός έλεγχος συνέχιζε να υπάρχει στον κώδικα των Windows. Οι προγραμματιστές θεώρησαν τότε μεγάλο ρίσκο να αλλάξουν τον κώδικα λίγο πριν την επίσημη κυκλοφορία του, αφού κάτι τέτοιο θα μπορούσε να προκαλέσει νέα λάθη. Έτσι, αντί να κόψουν εντελώς το αντίστοιχο τμήμα, απλά το απομόνωσαν.
Οι προγραμματιστές της Microsoft έδειξαν ωστόσο τότε μεγαλύτερο ζήλο στο να κρύψουν αυτήν τη ρουτίνα έλεγχου των Windows από τα μάτια των περίεργων. Έτσι η ρουτίνα αυτή δεν αποτελούσε μια άμεσα εκτελέσιμη ακολουθία εντολών, αλλά ήταν πολύ έξυπνα κρυμμένη.
Όταν ο Andrew Schulman, συγγραφέας των βιβλίων "Undocumented", προσπάθησε να βρει την αλήθεια στο θέμα, αντιμετώπισε πολλές δυσκολίες: προγραμματιστικά "κλειδιά" που συναντώνταν μόνο σε ιούς απαγόρευαν στον Sculman να δει τις ενδιαφέρουσες γραμμές κώδικα.
Οι γραμμές αυτές δεν ήταν μόνο κλειδωμένες, αλλά μπορούσαν και να τροποποιούν τον εαυτό τους όταν εκτελούνταν. Σύμφωνα με τον Sculman είχαν γραφτεί επίτηδες σε πολύπλοκη μορφή. Αν προσπαθούσε κάποιος να αναλύσει το πρόγραμμα βήμα προς βήμα, θα διαπίστωνε ότι η "ρουτίνα συμπεριφερόταν διαφορετικά όταν αντιλαμβανόταν ότι ήταν "υπό εξέταση" και διαφορετικά όταν εκτελείτο απλά.
Δεν υπήρχε αμφιβολία ότι ο συγκεκριμένος κώδικας ήταν προϊόν των προγραμματιστών του Redmont: στην οθόνη εμφανιζόταν μετά την αποκωδικοποίηση του προγράμματος εκτός από το copyright της Microsoft και η ακολουθία χαρακτήρων AARD. Τα αρχικά αυτά αντιστοιχούσαν στο όνομα του Aaron Reynolds, ενός από τους κορυφαίους προγραμματιστές της Microsoft.
Σύμφωνα με την δικαιολογία που πρόβαλε τότε η Microsoft, το κίνητρο για την συγγραφή αυτής της ρουτίνας ήταν η φημολογία περί ασυμβατότητας μεταξύ των Windows και των λειτουργικών συστημάτων άλλων κατασκευαστών. Ο τότε αντιπρόεδρος της Microsoft Brad Silverberg δήλωσε, αφού συνεννοήθηκε με τους δικηγόρους του: "Είχαμε κάποιες πληροφορίες ότι τα Windows δεν τρέχουν σωστά με κάποιες από τις απομιμήσεις του DOS". Η ασυμβατότητα αυτή ήταν όμως μάλλον μηδαμινή, αφού ο Silverberg δήλωνε "φαίνεται πως ένα πολύ μικρό μέρος της αγοράς είχε προβλήματα στο να τρέξει τα Windows 3.1 με οτιδήποτε άλλο εκτός του αυθεντικού MS-DOS". Ωστόσο θεώρησε σκόπιμο να προειδοποιήσει τους αγοραστές των Windows ότι ίσως υπάρξουν προβλήματα ή ακόμα και απώλειες δεδομένων -αν και στη συσκευασία δεν αναφερόταν πουθενά ότι θα έπρεπε  να χρησιμοποιηθεί το πρωτότυπο DOS της Microsoft.
Υπήρχε όμως και η αντίθετη άποψη: πολλοί διέβλεπαν σ' αυτήν την κίνηση της Microsoft μια προσπάθεια να επηρεάσει την απόφαση των αγοραστών προσραμμάτων σε βάρος των ανταγωνιστικών εταιρειών. Γιατί μετά την υπόνοια περί πιθανής ασυμβατότητας θα μπορούσαν να αποδοθούν ακόμα και λάθη των Windows στο DOS των άλλων κατασκευαστών. Ο David Bradford, αντιπρόεδρος της Novell, διατύπωνε την άποψη ότι η Microsoft επιθυμούσε στην πραγματικότητα να προστατεύσει τις πωλήσεις του MS - DOS και όχι τους καταναλωτές. Αλλά και ο Andrew Schulman καυτηρίαζε την πολιτική εκφοβισμού των χρηστών. Εφόσον τα Windows και το DOS πουλιόντουσαν σαν ανεξάρτητα προϊόντα τα Windows δεν επιτρεπόταν να χρησιμοποιούν κρυφά features του MS-DOS: "Αν τα Windows έχουν ειδικές απαιτήσεις από το DOS, θα πρέπει η Microsoft να τις αναφέρει ρητά" έλεγαν οι επαΐοντες.
Έτσι οι υπόλοιποι κατασκευαστές θα είχαν την ευκαιρία να ανταπεξέλθουν σ' αυτές τις απαιτήσεις. Εξάλλου τα λάθη των προγραμματιστών δεν συνέβαιναν μόνο στις άλλες εταιρείες, αλλά  και στη Microsoft.

Πληροφορίες από άρθρο του περιοδικού C&S

Δεν υπάρχουν σχόλια: