What's new

Welcome!

By registering with us, you'll be able to discuss, share and private message with other members of our community.

SignUp Now!

Unix και DOS

lucinos

Death Knight
Joined
Nov 16, 2015
Messages
2,694
Επειδή πολύς κόσμος είναι κάπως εξοικειωμένος με τα χαρακτηριστικά και τις συμβάσεις τής DOS είναι μάλλον χρήσιμο να αντιπαραβάλουμε τις δύο παραδόσεις.<br><br>Το Linux ακολουθεί την παράδοση τού Unix, και τα windows μιμούνται την εξωτερικά παράδοση της DOS αν και εσωτερικά τα Windows NT (2000, XP, Vista, 7, 8, 10) μοιάζουν πλέον περισσότερο με unix.<br><br>Διαχωριστικό φακέλων<br>Unix: "/" πλαγία, slash<br>DOS: "" αντιπλαγία, backslash<br><br>Επιπλέον στην παράδοση τής DOS συχνά ονομάζονταν και αντίστροφα αλλά στην πράξη έχει επικρατήσει πια η ορολογία τού Unix. Επίσης στο διαδίκτυο (url) είναι χαρακτηριστική η συμμόρφωση με την σύμβαση τού unix. Επίσης οι περισσότερες γλώσσες ακολουθούν την σύμβαση τού Unix όπου η αντιπλαγία είναι χαρακτήρας διαφυγής. <br><br>Διάκριση πεζών-κεφαλαίων<br>Unix: ναι<br>DOS: όχι<br><br>Καταλλήξεις<br>Unix: αδιάφορες για το σύστημα<br>DOS: βασικό χαρακτηριστικό τών αρχείων<br><br>Άδειες<br>Unix: ναι<br>DOS: όχι<br><br>Το unix φτιάχτηκε πρακτικά εξ&#039; αρχής ως σύστημα για πολλούς χρήστες και πολλές διεργασίες (multiuser/multitasking)<br>Τα windows έχουν πια αντίστοιχες δυνατότητες αλλά δεν έχουν μια αντίστοιχη καθαρή παραδοσιακή θεμελίωση και δεν έχουν πετύχει την ίδια ασφάλεια.<br><br>Δέντρο φακέλων<br>Unix: μοναδική ρίζα / και τα πάντα προσαρτώνται στο δέντρο<br>DOS: διάκριση σε A: B: (εύκαμπτοι δίσκοι) C: <img src="/angry.gif" width="" height="" alt="D:" title="D:" class="bbcode_smiley" /> (σκληροί δίσκοι) κλπ <br><br>Τα Windows εσωτερικά πλέον κάνουν προσαρτήσεις και αποπροσαρτήσεις σαν το Unix αλλά εξωτερικά προς τον χρήστη χρησιμοποιούν την ορολογία τής DOS.<br><br>Αρχιτεκτονική<br>Unix: σχεδιασμένο σε αφηρημένες ιδέες, αρχικά έτρεχε σε μίνι-υπολογιστές<br>DOS: σχεδιασμένη αποκλειστικά για να εξυπηρετήσει πολύ συγκεκριμένο τύπο μικροϋπολογιστή (IBM-PC)<br><br>... θα βάλω και άλλα, αλλά προς το παρόν μια ενδιαφέρουσα λεπτομέρεια για την παλαιά DOS. Ποια η διαφορά ανάμεσα στα εκτελέσιμα .COM και .ΕΧΕ ;<br><br>Φλοιός<br>Unix: είναι απλώς ένα πρόγραμμα διερμηνείας εντολών (κείμενο)<br>DOS: ουσιαστικά ταυτίζεται με το σύστημα<br><br>Ο αφηρημένος τρόπος με τον οποίο λειτουργεί ο φλοιός και αντιμετωπίζονται επίσης αφηρημένα οι συσκευές όπως το πληκτρολόγιο, η οθόνη, ο εκτυπωτής κτλπ καθιστά την λειτουργία του πολύ πιο ευέλικτη.<br><br>Παραθυρικό σύστημα<br>Unix: δεν «απαιτείται» αλλά αναπτύχθηκε στα 80ς το X Window System.<br>DOS: δεν έχει φυσικό παραθυρικό σύστημα μπορούν όμως να τρέξουν γραφικά προγράμματα και τα Windows τής microsoft μπορούσαν να υποκαταστήσουν ένα παραθυρικό σύστημα.<br>Windows: πρακτικά ταυτίζονται με το παραθυρικό σύστημα. Αναμενόμενο για τα παλιά windows αφού ήταν ακριβώς η ιδέα ενός προγράμματος για αυτόν τον σκοπό, αλλά κρατάνε ανάλογες εξαρτήσεις και τα Windows NT πράγμα που διαχρονικά είναι πρόβλημα. Για πρώτη φορά τώρα τα windows 10 δίνουν την δυνατότητα σε μια έννοια «μινιμαλιστικών διεργασιών», εντελώς ανεξάρτητες από το παραθυρικό σύστημα.<br>Linux: ήδη από το 92 δανείστηκε το X. Υπάρχει «καθαρή» διάκριση ανάμεσα σε «παραθυρικό σύστημα», «διαχειριστή παραθύρων» και άλλα στοιχεία τού γραφικού περιβάλλοντος. Καθώς πλέον όλες τις βασικές λειτουργίες τις κάνει ο διαχειριστής παραθύρων ο οποίος είναι πολύ πιο προηγμένος (το λίνουξ είχε από πολύ παλιά πολύ πιο προηγμένους διαχειριστές παραθύρων από τα windows), το παραθυρικό σύστημα χρησιμεύει αποκλειστικά ως πρωτόκολλο αλλά τα αρχαϊκά στοιχεία τού X που επιμένει να απαιτεί τον έλεγχο είναι κατά κοινή αντίληψη εμπόδιο στην εξέλιξη. Το Android δεν χρησιμοποιεί X αλλά η λύση του δεν συμβαδίζει με τις διανομές λίνουξ. Η λύση που αναμένεται να τρέξει το λίνουξ προς τα εμπρός θεωρείται ο Wayland που εξελίσσεται ήδη αρκετά χρόνια, για πρώτη φορά η τελευταία έκδοση τού Fedora με Gnome έχει ως προεπιλογή τον Wayland. Η Canonical (Ubuntu) από την άλλη αναπτύσσει τον Mir. <br><br>Συνδυασμός προγραμμάτων<br>Unix: χαρακτηριστικό στοιχείο τής λογικής τού unix<br>DOS: ως single-tasking λειτουργικό, δεν είναι χαρακτηριστικό<br><br>Αυτό είναι εξαιρετικά σημαντικό σε όποιον προσπαθεί να μάθει γραμμή εντολών unix αλλά είναι επηρεασμένος από την λογική τής DOS. Είναι αρκετά συνηθισμένο να μην βρίσκει «βασικά στοιχεία» και να τσαντίζεται. Όμως αν καταλάβει ότι η λογική είναι να συνδυάσει λειτουργίες προγραμμάτων θα δει ότι το unix είναι εκφραστικά πολύ ανώτερο. Η microsoft από την άλλη δεν έμεινε στην DOS (COMMAND.COM) και στην γραμμή εντολών τών windows (cmd.exe) αλλά τελικά ανέπτυξε και το PowerShell. Δεν το έχω αγγίξει ποτέ αλλά προφανώς είναι ισχυρό, καμμία σχέση με DOS. Kαι επίσης unix φλοιοί μπορούν να τρέξουν στα windows.
 

lucinos

Death Knight
Joined
Nov 16, 2015
Messages
2,694
<blockquote><br>μια ενδιαφέρουσα λεπτομέρεια για την παλαιά DOS. Ποια η διαφορά ανάμεσα στα εκτελέσιμα .COM και .ΕΧΕ ;<br></blockquote><br>δεν θα επιχειρήσει κανείς να το απαντήσει;
 

Chosen Undead

Death Knight
Joined
Jul 14, 2015
Messages
3,531
Com = Command = Εντολή του συστήματος <br>Exe = Execution = Εκτέλεση προγράμματος <br><br>Σωστός?
 

vtheofilis

Death Knight
Joined
Dec 11, 2012
Messages
4,432
Μικρότερα εκτελέσιμα, αν δεν κάνω λάθος, στην περίπτωση των .COM.
 

lucinos

Death Knight
Joined
Nov 16, 2015
Messages
2,694
<blockquote><br>Com = Command = Εντολή του συστήματος <br>Exe = Execution = Εκτέλεση προγράμματος <br><br>Σωστός?<br></blockquote><br><br>ετυμολογικά σωστά, αλλά δεν είναι ακριβές. Την έζησα την DOS μικρός και θυμάμαι ολοκάθαρα κάποια παιχνίδια με κατάληξη COM.<br><br><blockquote><br>Μικρότερα εκτελέσιμα, αν δεν κάνω λάθος, στην περίπτωση των .COM.<br></blockquote><br>Σωστά, αλλά γιατί να υπάρχει αυτή η διαφορά; Εδώ είναι το ζουμί.<br><br>και τα COM και τα EXE ήταν δυαδικά εκτελέσιμα, δηλαδή σε αφηρημένο επίπεδο κάνανε την ίδια δουλειά.<br>τα EXE είχαν πολύ πιο πλούσια δομή αλλά το ερώτημα είναι γιατί να υπάρχουν τα COM ως ξεχωριστά. Όποιος είχε πετύχει σε παλιούς 80286 ή παλιότερα πισί παιχνίδια με κατάληξη COM θα είχε παρατηρήσει ότι ήταν πάρα πολύ αποδοτικότερα από αντίστοιχα EXE που κάναν «ίδιες» δουλειές. <br><br>είναι θεωρώ ένα εξαιρετικό ιστορικό ερώτημα και μάς δίνει μια πολύ καλύτερη εικόνα για την DOS και τα αρχαία πισί.<br><br>το κλειδί είναι η 16bit αρχιτεκτονική τών 8086. 16 bit σημαίνει 2^16=64K φυσικές διευθύνσεις (αντιστοιχεί σε μνήμη όπου Κ = 1024Bytes). Τώρα υπάρχει πολύς κόσμος που εντελώς λανθασμένα πιστεύει ότι οι φυσικές διευθύνσεις είναι ένα απόλυτο όριο στην RAM. Την λανθασμένη πεποίθηση την ενισχύει από το γεγονός ότι οι περισσότερες (όχι όλες!) εκδόσεις 32bit Windows υποστηρίζουν όχι πάνω από 2^32=4G μνήμη. Προφανώς αυτό δεν είναι αλήθεια και πράγματι ένα τυπικό αρχαίο πισί είχε 10 τμήματα από 64K μνήμη. Σύνολο <b>640K</b>. Τα EXE είχαν πλούσια δομή και έβλεπαν όλα τα 640K πράγμα φυσικά πολύ χρήσιμο (η πλούσια δομή έδινε και επιπλέον πλεονεκτήματα, αλλά αυτά δεν είναι κεντρικά στην ιστορία μας). Το θέμα είναι ότι επειδή η πρόσβαση αυτή δεν ήταν φυσική, έπεφτε πολύ η απόδοση. Ήταν πολύ χρήσιμο να υπάρχει ένας ειδικός τύπος αρχείου που το σύστημα θα ξέρει ότι δεν θα χρησιμοποιήσει περισσότερα από 64K γιατί έτσι θα έτρεχε πολύ αποδοτικότερα. Αυτό ήταν το νόημα τών COM εκτελέσιμων. Το άλλο σημαντικό σημείο στην ιστορία που θεωρώ σπουδαίο ήταν ότι όταν περάσαμε στα 32bit δηλαδή στούς 80386, τα 64K πλέον δεν σήμαιναν τίποτα ανάλογο και τα COM εκτελέσιμα απλά δεν είχαν πια νόημα.
 

f2bnp

Mind-flayer
Approval of the Admiral PCMaster Veteran Rocket League RQ Crew 1st Tournament
Joined
Dec 1, 2012
Messages
1,737
Το command.com παρέμεινε έτσι πάντως μέχρι και τις τελευταίες εκδόσεις DOS <img src="/wink.gif" width="" height="" alt=";)" title=";)" class="bbcode_smiley" />.<br><br>Ωραία εξήγηση, μου έλυσες απορία που είχα χρόνια και... ποτέ δεν έψαξα για κάποιο λόγο!
 

lucinos

Death Knight
Joined
Nov 16, 2015
Messages
2,694
<blockquote><br>Το command.com παρέμεινε έτσι πάντως μέχρι και τις τελευταίες εκδόσεις DOS <img src="/wink.gif" width="" height="" alt=";)" title=";)" class="bbcode_smiley" />.<br></blockquote><br><br>Ναι και τα Windows 9x (δηλαδή μέχρι και τα περιβόητα millenium) διατήρησαν 16bit αρχαϊσμούς.
 
Top Bottom