PDA

View Full Version : Τεχνολογικο Νομπελ στη Linux



700_Thespieis
14/06/2012, 15:09
http://www.techgear.gr/linus-torvalds-wins-millenium-tecnlology-prize-46648/



“Το έργο του Torvalds έχει κρατήσει το Διαδίκτυο ανοιχτό για την προώθηση της γνώσης και το όφελος ολόκληρης της ανθρωπότητας και όχι για προσωπικό του οικονομικό συμφέρον.”


:)

Πολυμήχανος
14/06/2012, 18:27
Ο τίτλος δεν έχει νόημα.

Προτείνω ''Τεχνολογικό Νόμπελ στον δημιουργό του Linux'' που είναι νοηματικά και περιγραφικά σωστός τίτλος.

RizlaPlusPlus
14/06/2012, 20:26
Ο τίτλος δεν έχει νόημα.

Προτείνω ''Τεχνολογικό Νόμπελ στον δημιουργό του Linux'' που είναι νοηματικά και περιγραφικά σωστός τίτλος.

Ακομα καλυτερα, Τεχνολογικό βραβείο αντίστοιχο του Νόμπελ στον δημιουργό του Linux'. Αν και δε νομιζω οτι αυτός ο άνθρωπος χρειάζεται βραβεία. Έγινε ζωντανός θρύλος από μικρή ηλικία και από τότε βλέπει το έργο του να κατακτά τον πλανήτη με εκθετικά αυξανόμενους ρυθμούς. Αγαπάμε Λίνους...

Πολυμήχανος
14/06/2012, 20:32
Το πιο εντυπωσιακό, είναι ότι ο τύπος, το έκανε μόνος του.

Ένας άνθρωπος μόνος του, έγραψε σε κώδικα μηχανής ένα ολόκληρο λειτουργικό σύστημα.

Πραγματικά εντυπωσιακό, δίκαιο το βραβείο και ας άργησε σχεδόν δύο δεκαετίες...

700_Thespieis
14/06/2012, 21:10
:lol:

Εσυ με το πολυβολο, ενταξει συγνωμη:p

BLiTzER
14/06/2012, 22:29
Ένας άνθρωπος μόνος του, έγραψε σε κώδικα μηχανής ένα ολόκληρο λειτουργικό σύστημα.


Τώρα θα σε διορθώσω εγώ όμως :P Αν εννοείς "γλώσσα μηχανής", που αυτό εννοείς, είναι λάθος γιατί, προφανώς, δεν κάθισε να προγραμματίσει με 0 και 1. Αν εννοείς χαμηλού επιπέδου, πάλι λάθος είναι, γιατί το μεγαλύτερο μέρος του πυρήνα είναι γραμμένο σε C.

Πολυμήχανος
14/06/2012, 22:37
Ντάξει όχι σε 0 και 1 απευθείας (αν και ξέρω ανθρώπους που το κάνουν), σε γλώσσα assembly του 8086 (τότε).

Ένα λειτουργικό σύστημα δεν είναι μόνο ο πυρήνας που είπες, είναι και οι low level ρουτίνες που ελέγχουν π.χ. τα in-out ports και αυτά δεν μπορούν να είναι σε υψηλού επιπέδου γλώσσες γιατί απλά σε αυτά ''πατάει'' το σύστημα για να υπάρξει πρώτα και μετά να σου δώσει υψηλού επιπέδου προγραμματισμό.

Φυσικά η C μπορεί να ''ανακατεύει'' και assembly απευθείας, οπότε ναι, όπως το είπες.

Σε κάθε περίπτωση, παραμένει αξιοθαύμαστο, ότι τέτοιο όγκο δουλειάς τον έκανε ΕΝΑΣ ΑΝΘΡΩΠΟΣ ΜΟΝΟΣ ΤΟΥ....

BLiTzER
14/06/2012, 22:40
Ολόκληρο το λειτουργικό είναι κυρίως γραμμένο σε C, όπως και οι περισσότερες εφαρμογές του. Ελάχιστα κομμάτια έχουν γραφτεί σε assembly, η οποία είναι όντως χαμηλού επιπέδου, αλλά όχι μηχανής. Δε νομίζω ότι υπάρχει άνθρωπος στον πλανήτη που γράφει πλέον σε γλώσσα μηχανής. Αυτά. Και τώρα πάω για ύπνο :P

Πολυμήχανος
14/06/2012, 22:46
Assembly είναι συμβολισμος σε πιο ανθρώπινα κατανοητή μορφή του κώδικα μηχανής. Αλλά είναι 1-1 αντιστοιχία, οπότε το ένα ουσιαστικό είναι το άλλο.

Π.χ. c1 δεκαεξαδικό στον Ζ80Α είναι το RET (Return, ανασύρει από το stack από που είχε γίνει CALL <διεύθυνση> και επιστρέφει εκεί).

O ανθρωπος θυμάται πιο εύκολα το RET, και όχι το C1. Αλλά είτε γράψεις στον assembler RET , είτε πας και βάλεις την τιμή C9 στην διεύθυνση απευθείας είναι το ίδιο, ταυτόσημο, ισοδύναμο κ.ο.κ.

Προφανώς μην το βάλεις και πολύ στοίχημα αυτό με το ποιός προγραματίζει τι...

npat
14/06/2012, 23:11
Ντάξει όχι σε 0 και 1 απευθείας (αν και ξέρω ανθρώπους που το κάνουν), σε γλώσσα assembly του 8086 (τότε).

Ένα λειτουργικό σύστημα δεν είναι μόνο ο πυρήνας που είπες, είναι και οι low level ρουτίνες που ελέγχουν π.χ. τα in-out ports και αυτά δεν μπορούν να είναι σε υψηλού επιπέδου γλώσσες γιατί απλά σε αυτά ''πατάει'' το σύστημα για να υπάρξει πρώτα και μετά να σου δώσει υψηλού επιπέδου προγραμματισμό.

Φυσικά η C μπορεί να ''ανακατεύει'' και assembly απευθείας, οπότε ναι, όπως το είπες.

Σε κάθε περίπτωση, παραμένει αξιοθαύμαστο, ότι τέτοιο όγκο δουλειάς τον έκανε ΕΝΑΣ ΑΝΘΡΩΠΟΣ ΜΟΝΟΣ ΤΟΥ....

To Linux ΔΕΝ ξεκίνησε με την αρχιτεχτονική 8086 (την οποία ουδέποτε υποστήριξε). Ξεκίνησε με την αρχιτεκτονική 80386. Το Linux πάντοτε απαιτούσε (και φυσικά εξακολουθεί να απαιτεί) την ύπαρξη MMU για να λειτουργήσει (κάτι που στους 8086 ΔΕΝ υπήρχε).

Ακόμα και οι low-level ρουτίνες (π.χ. μέσα σε device drivers) μπορούν κάλλιστα να γραφούν σε C. Για λόγους ταχύτητας μπορεί κάποια (ΠΟΛΥ μικρά) κομμάτια τους να βοηθάει να γραφούν κατευθείαν σε assembly, αλλά ακόμη και αυτό είναι σχετικά σπάνιο.

Σε assembly, πρέπει (σχεδόν) οπωσδήποτε να γράψεις κάποιες ρουτίνες στις οποίες πρέπει να έχεις πολύ καλό έλεγχο των registers της αρχιτεκτονικής ή/και να χρησιμοποιήσεις ειδικά instructions. Για παράδειγμα, ρουτίνες που έχουν να κάνουν με το context switch ή το interrupt entry & exit και πάει λέγοντας. Αυτές είναι ΠΟΛΥ λίγες.

Το Linux (τουλάχιστον στην πρώτη του έκδοση) ΔΕΝ ήταν και ΤΟΣΟ κολοσσιαία δουλειά. Εξάλλου, ο Linus είχε άφθονα παραδείγματα από "γίγαντες" του χώρου για να πατήσει πάνω τους: Δουλειά ακαδημαϊκών---βλ. Tannenbaum / Minix---, τον άπειρο κώδικα από BSD μεριά και φυσικά τη δουλειά του Stallman και της παρέας του (Το GNU toolchain, και όλα τα user-space προγράμματα, τα οποία ήταν έτοιμα και αντιπροσώπευαν, εκείνη την εποχή, δουλειά υπερ-πολλαπλάσια του αυτό καθ' εαυτό Linux).

Αυτό που είναι πράγματι εντυπωσιακό με τον Linus είναι ότι ένας πιτσιρικάς, κυριολεκτικά από του πουθενά και με ένα σχετικά μικρό σώμα κώδικα, κατάφερε να συσπειρώσει όλη την κοινότητα του Unix / Free Software και με την βοήθειά τους (ας μην ξεχνάμε ονόματα όπως του Alan Cox) να δώσει στο Linux την απίστευτη θέση που έχει σήμερα.

RizlaPlusPlus
15/06/2012, 00:04
...

+=1 για την αρχιτεκτονικη.
-=1 για την ΜΜU, υπαρχουν αρκετα πετσοκομμενες εκδοσεις που δουλευουν και χωρις! (uClinux).
Δεν ξερω τι παιζει με τις CISC αρχιτεκτονικες, αλλα σε mips 3k και ARM που εχω κανει kernel development δεν υπαρχει σχεδον τιποτα σε assembly. Ουτε καν context switchιng. Μονο καμια 20αρια 8εσεις μνημης που ειναι το hardware interrupt vector, οπου βρισκονται jumps προς τους handlers, οι οποιοι επισης ειναι γραμμενοι σε C. Επισης, μιλαω για τη συγχρονη μορφη ενος linux kernel, στις αρχες οντως ο πρωτος task switcher που ειχε ηταν σε assembly.

+=1 για την επιτυχια του Linus να συσπειρωσει την κοινοτοτα, και να μας αποδειξει οτι το τελειοτερο τεχνολογικο επιτευγμα του computing ειναι προιον αυτοοργανωμενης κοινοτητας, μη κερδοσκοπικου χαρακτηρα(το παρακανα πολιτικο, ε;;).
Να προσ8εσω ομως οτι ο ανθρωπας δεν "στηρηχτηκε" ακριβως στις πλατες του Tannenbaum, ισα ισα που ηρθαν σε σχισμα απο τους πρωτους κι ολας μηνες! (http://en.wikipedia.org/wiki/Tanenbaum%E2%80%93Torvalds_debate).

++600 για την Ομορφη ιστορια και την ομορφη κουβεντα.

Καληνυχτες.

npat
15/06/2012, 00:35
+=1 για την αρχιτεκτονικη.
-=1 για την ΜΜU, υπαρχουν αρκετα πετσοκομμενες εκδοσεις που δουλευουν και χωρις! (uClinux).

Ok, δεκτό. Αλλά το uCLinux δεν είναι ακριβώς Linux και σίγουρα ήρθε αρκετά μετά (και ο Linus ποτέ δεν ασχολήθηκε με αυτό).


Δεν ξερω τι παιζει με τις CISC αρχιτεκτονικες, αλλα σε mips 3k και ARM που εχω κανει kernel development δεν υπαρχει σχεδον τιποτα σε assembly. Ουτε καν context switchιng. Μονο καμια 20αρια 8εσεις μνημης που ειναι το hardware interrupt vector, οπου βρισκονται jumps προς τους handlers, οι οποιοι επισης ειναι γραμμενοι σε C. Επισης, μιλαω για τη συγχρονη μορφη ενος linux kernel, στις αρχες οντως ο πρωτος task switcher που ειχε ηταν σε assembly.

Πράγματι ο κώδικας σιγά-σιγά καθάρισε πολύ. Οι CISC αρχιτεκτονικές είναι αρκετά πιο ιδιοσυγκρασιακές και κάποιες RISC (λέγε με SPARC) επίσης (όπου πρέπει να χειριστείς κάτι register stacks και άλλες μαλακίες). Επίσης σε πολλές αρχιτεκτονικές πλέον όλη την βρώμικη δουλειά την κάνει είτε ο boot-loader είτε τα linux-specific stubs του GCC (κάτι crt0.s και δε συμμαζεύεται). Όπως και να έχει, πάντως, μιλάμε για λίγες γραμμές assembly μονάχα.


Να προσ8εσω ομως οτι ο ανθρωπας δεν "στηρηχτηκε" ακριβως στις πλατες του Tannenbaum, ισα ισα που ηρθαν σε σχισμα απο τους πρωτους κι ολας μηνες! (http://en.wikipedia.org/wiki/Tanenbaum%E2%80%93Torvalds_debate).

Τσακώθηκε, μεν, ο Linus με τον Tannenbaum (για την κατεύθυνση που επέλεξε), αλλά τις πρώτες-πρώτες μέρες δανείστηκε πολλά από το minix (π.χ. το χρησιμοποιούσε σαν development framework, έως ότου γίνει self-hosted και όχι μόνο) μέχρι να τα αφήσει κάποια στιγμή όλα πίσω του. Η δουλειά του Linus θα ήταν ΠΟΛΥ πιο δύσκολη αν ΔΕΝ ΥΠΗΡΧΕ το minix (και φυσικά τα βιβλία του Tannanbaum). Αυτό εννοώ και τίποτε άλλο. Εντυπωσιακός είναι βέβαια ο τσαμπουκάς που είχε το τυπάκι (ο Linus) να την λέει στον Tannenbaum (ο οποίος, κατ' εμέ, είχε και δίκιο!) και είναι χαρακτηριστικό της ακολωσιάς που τον χαρακτήριζε και που βοήθησε να φτάσει (το όλο κίνημα) εκεί που έφτασε.


++600 για την Ομορφη ιστορια και την ομορφη κουβεντα.

:beer::beer: