Πρώτο commit
Αυτό το commit περιλαμβάνεται σε:
commit
8ec8e9bee2
451 αρχεία άλλαξαν με 46736 προσθήκες και 0 διαγραφές
52
content/articles/31/01_editorial.md
Κανονικό αρχείο
52
content/articles/31/01_editorial.md
Κανονικό αρχείο
|
|
@ -0,0 +1,52 @@
|
|||
+++
|
||||
title = 'Editorial'
|
||||
date = '2000-06-01T00:00:00Z'
|
||||
description = ''
|
||||
author = 'Βαγγέλης Παπαδογιαννάκης(mailto:papas@hellug.gr)'
|
||||
issue = ['Magaz 31']
|
||||
issue_weight = 1
|
||||
+++
|
||||
----------------------------------------------------------------------------------------------------------------------------------------------------------------
|
||||
|
||||
*Aircondition τώρα!*
|
||||
|
||||
----------------------------------------------------------------------------------------------------------------------------------------------------------------
|
||||
|
||||
Καλός ήρθατε σε άλλο ένα magaz. Ένα magaz που είναι βγαλμένο με πολύ ιδρώτα, κυριολεκτικά μιλώντας μια και η ζέστη είναι ανηπόφορη. Τουλάχιστον εδώ στο Ηράκλειο
|
||||
της Κρήτης, το θερμόμετρο έχει χτηπήσει κόκκινα, και δυστηχώς πολλές φορές ακόμα και αυτό το air-condition αποδυκνείεται λίγο.
|
||||
|
||||
Αυτό το τεύχος, σας επιφυλάσει πολλά θέματα, advanced θα μπορούσαμε να τα χαρακτηρίσουμε, κάτι που η αλήθεια είναι ότι είχε λείψει από το magaz. Πριν να
|
||||
προχωρήσουμε όμως σε ανάλυση των θεμάτων που φιλοξενούνται αυτό το μήνα, θα ήθελα να πω ένα μεγάλο ευχαριστώ σε όλους όσους προσφέρθηκαν να βοηθήσουν γράφοντας
|
||||
άρθρα για το magaz. Η ανταπόκριση στο editorial του προηγούμενου μήνα ήταν κάτι παραπάνω από θερμή και αποδείχτικε ότι υπάρχει και όρεξη για βοήθεια αλλά και
|
||||
υλικό για κάλυψη θεμάτων. Και όσοι δεν είδαν το άρθρο τους, αυτό το μήνα, ας μην ανυσηχούν, θα μπούν στον επόμενο μήνα.
|
||||
|
||||
Προχωράμε λοιπόν, στο επόμενο θέμα, που είναι το **install festival** που έγινε στο **Ηράκλειο της Κρήτης στις 15 και 16 Ιουνίου**. Σε γενικές γραμμές, όλα
|
||||
πήγαν πολύ καλά. Προβλήματα φυσικά και υπήρξαν, αλλά ήταν σχεδόν όλα οργανοτικά, πράγμα αναμενώμενο, μια και ποτέ δεν είχαμε οργανώσει κάτι αντίστοιχο. Στα
|
||||
highlights θα ήθελα να αναφέρω
|
||||
|
||||
**τα μπλουζάκια που είχαμε τυπώσει**, το οποία έγιναν ανάρπαστα και πολλές φορές ήταν η πέτρα του σκανδάλου για το ποιός θα τα πάρει τελικά.\
|
||||
**Τις ομιλίες** που έγιναν όλες και μάλιστα με μεγάλη επιτυχία, παρόλο που οι περισσότεροι δεν είχαν ξαναανέβει σε βήμα για ομιλία. Η συμμετοχή του κόσμου δεν
|
||||
ήταν όση ακριβώς θα ηθέλα εγώ προσωπικά, αλλά και αυτό είναι λογικό αν αναλογιστούμε ότι ήταν περίοδος εξετάσεων, παρασκευή-σάββατο, καταμεσήμερα, και από τις
|
||||
πιο ζεστές ημέρες.
|
||||
|
||||
Θα ήθελα να ευχαριστήσω πολύ όλα τα παιδιά που έστηναν τους υπολογιστές (πρέπει να στήθηκαν περίπου **20 μηχανάκια**). Αυτοί ήταν οι πραγματικοί ήρωες του
|
||||
διημέρου, μια και κουράστηκαν πολύ περισσότερο από όλους εμάς που απλά κάναμε μια ομιλία. Έπρεπε να αντιμετωπίσουν τους νέους χρήστες, να τους εξηγήσουν πέντε -
|
||||
έξι βασικά πράγματα, και αυτό όπως ξέρουμε όλοι είναι πολύ δύσκολο :)\
|
||||
Σε γενικές γραμμές, περάσαμε καλά, και αυτό είναι που μετράει στο φινάλε :)
|
||||
|
||||
Ας δούμε όμως και τα θέματα που φιλοξενούμε αυτό το μήνα στο περιοδικό μας. Έχουμε λοιπόν ένα άρθρο για KIOSLAVES, γραμένο από τον Δημήτρη Καμενόπουλο (
|
||||
<d.kamenopoulos@mail.ntua.gr>) τα οποία είναι απαραίτητα για να δουλέψει καλά το KDE. Φυσικά, δεν θα τα δείτε μπροστά σας, πιθανότατα να μην τα έχετε καν
|
||||
ακούσει, αλλά κάνουν πολύ δουλειά διάφανα - αθόρυβα - αποτελεσματικά.
|
||||
|
||||
Window Manager of choice :) IceWm, ένας απλός, πλήρως παραμετροποιήσιμος, πανέμορφος, πανάλαφρος Window Manager. Εισαγωγικό άρθρο από τον **Αποστολάκη Νίκο** (
|
||||
[Nick Apostolakis](mailto:nickapos@agriroot.aua.gr)) έναν πολύ ενεργό συντάκτη του [magaz](http://magaz.hellug.gr). Κατέβηκε και στο **InstallFestival** και μας
|
||||
βοήθησε κιόλα :) Περισσότερες πληροφορίες για το Nίκο αλλά και για όλους τους αρθρογράφους του magaz (που μας έχουν στείλει πληροφορίες για τις αφεντιές τους)
|
||||
στη σελίδα [info](http://magaz.hellug.gr/info.html).
|
||||
|
||||
Και για τους φρέσκους στο Linux και γενικότερα στα unixοειδή λειτουργικά, ένα πολύ καλό κείμενο από τον Άγγελο Οικονομόπουλο ( <lydwigvernon@yahoo.co.uk> για
|
||||
την ιστορία του Unix. Πολλοί από τους παλιούς χρήστες, πάντως, θα βρούν και πράγματα που δεν τα ήξεραν για αυτό ας το διαβάσουν και αυτοί :)
|
||||
|
||||
Πόσοι ξέρετε το **blender**; Το blender λοιπόν είναι ένα πρόγραμμα, πολύ δυνατό στη δημιουργία τρισδιάστατων γραφικών. Μια γνωριμία - παρουσίαση, επιχηρεί ο
|
||||
Καπελώνης Κώστας ( <kapelon@csd.uoc.gr>) ένα νέο μέλος στην οικογένεια των magazάτωρων, με ενεργή συμετοχή και στο **install festival** της Κρήτης.
|
||||
|
||||
Καλή ανάγνωση λοιπόν και για όσους φεύγουν διακοπές καλά μπάνια, ή ότι άλλο έχετε σχεδιάσει να κάνετε.
|
||||
308
content/articles/31/02_KDE_IOSlaves.md
Κανονικό αρχείο
308
content/articles/31/02_KDE_IOSlaves.md
Κανονικό αρχείο
|
|
@ -0,0 +1,308 @@
|
|||
+++
|
||||
title = 'Ολοκλήρωση στο KDE: Η τεχνολογία IO Slaves'
|
||||
date = ''
|
||||
description = ''
|
||||
author = 'Δημήτρης Καμενόπουλος για το Magaz ( magaz.hellug.gr(http://magaz.hellug.gr) )'
|
||||
issue = ['Magaz 31']
|
||||
issue_weight = 2
|
||||
+++
|
||||
----------------------------------------------------------------------------------------------------------------------------------------------------------------
|
||||
|
||||
*Αυτό που εντυπωσιάζει τον προγραμματιστή και τον χρήστη της κονσόλας του Unix είναι ότι \"τα πάντα είναι αρχεία\". Οι κατάλογοι, τα φυσικά αρχεία, οι σκληροί
|
||||
δίσκοι, οι συσκευές δικτύου, οι δικτυακές συνδέσεις\... Όλα είναι αρχεία και αντιμετωπίζονται μέσα από ένα πρότυπο σύνολο λειτουργιών. Η τάση αυτή για διαφάνεια
|
||||
και ολοκλήρωση είναι διάχυτη στο Unix, και αποτελεί βασικό τμήμα της φιλοσοφίας του.Το KDE, που παρά το γραφικό του χαρακτήρα δε θα μπορούσε ποτέ να απαρνηθεί
|
||||
τη φιλοσοφία του παλιού καλού Unix, χρησιμοποιεί ένα ανάλογο μοντέλο για να αντιμετωπίζει με ενιαίο τρόπο όλες τις δυνατές πηγές εισόδου/εξόδου πληροφοριών.
|
||||
Είτε πρόκειται για τα τοπικά συστήματα αρχείων, είτε για βάσεις δεδομένων SQL. Η αντίστοιχη τεχνολογία λέγεται KDE IO Slaves, είναι βασικό μέρος του KDE 2.x και
|
||||
τη χρησιμοποιείτε καθημερινά μέσω του Konqueror.*
|
||||
|
||||
----------------------------------------------------------------------------------------------------------------------------------------------------------------
|
||||
|
||||
**1. Εισαγωγή**
|
||||
----------------------------------------------
|
||||
|
||||
**2. Η Αφαίρεση**
|
||||
------------------------------------------------
|
||||
|
||||
- [2.1 Με δυο κουβέντες](#ss2.1)
|
||||
- [2.2 Αφαίρεση ναι, αλλά είναι τα πάντα ίδια;](#ss2.2)
|
||||
|
||||
**3. Πώς Λειτουργούν οι KDE IO Slaves**
|
||||
----------------------------------------------------------------------
|
||||
|
||||
**4. Πώς Χρησιμοποιούμε (οι Χρήστες) έναν IO Slave**
|
||||
-----------------------------------------------------------------------------------
|
||||
|
||||
**5. IO Slaves σε Δράση**
|
||||
--------------------------------------------------------
|
||||
|
||||
- [5.1 Finger με χρωματάκια και ιστορίες](#ss5.1)
|
||||
- [5.2 Ο Konqueror σαν πρόγραμμα ηλ. ταχυδρομείου](#ss5.2)
|
||||
- [5.3 Απ\' ευθείας IO 1: περιορισμος των mount/umount](#ss5.3)
|
||||
- [5.4 Απ\' ευθείας IO 2: ο Konqueror σαν CD ripper](#ss5.4)
|
||||
|
||||
**6. Πού χρησιμοποιούνται οι IO Slaves**
|
||||
-----------------------------------------------------------------------
|
||||
|
||||
**7. Επίλογος**
|
||||
----------------------------------------------
|
||||
|
||||
|
||||
### [1. Εισαγωγή]{#s1}
|
||||
|
||||
Ένα από τα μεγάλα ατού των Windows 98 ήταν η \"επαναστατική\" δυνατότητα του IE να ανοίγει τοπικούς καταλόγους, δικτυακές ιστοσελίδες και τόπους FTP. Μπορώ να
|
||||
θυμηθώ ενθουσιώδη άρθρα σε περιοδικά του χώρου για τον \"ενιαίο τρόπο\" αντιμετώπισης τοπικών και απομακρυσμένων αρχείων. Αφήνουμε κατά μέρος το ότι η
|
||||
\"επαναστατική\" ενιαία αντιμετώπιση προϋπήρχε στο Unix εδώ και αρκετά χρόνια (ποτέ μην ξεχνάτε ότι στο μηχάνημά σας \"συνδέεστε\", και ότι το /home δεν
|
||||
αποκλείεται να είναι προσαρτημένο με NFS και να αντιπροσωπεύει ένα σκληρό δίσκο στην άλλη όχθη του Ατλαντικού).
|
||||
|
||||
Το πρόβλημα ήταν ότι η αντιμετώπιση εσωτερικά δεν ήταν καθόλου ενιαία. Εντελώς διαφορετικό πρόγραμμα (με διαφορετικά κουμπάκια και μενού) είναι το τμήμα του
|
||||
Explorer που λειτουργεί ως Web Browser, εντελώς διαφορετικό το τμήμα FTP browser και εντελώς διαφορετικό το τμήμα File Manager. Το γεγονός ότι ο Explorer
|
||||
παθαίνει \"μεταμόρφωση\" εσωτερικά για να αντιμετωπισει διαφορετική είσοδο κρύβεται από το χρήστη και από τον προγραμματιστή, και αυτό είναι καλό. Ωστόσο το να
|
||||
επιτρέπεις σε λειτουργίες εισόδου/εξόδου να φτάνουν μέχρι το επίπεδο του User Interface δεν είναι κατά τη γνώμη μου καλή σχεδίαση. Ο Explorer, ή καλύτερα το
|
||||
αντικείμενο \"Explorer\" είναι τρία (ή και περισσότερα) μονολιθικά προγράμματα.
|
||||
|
||||
Αποτέλεσμα: παρά την υψηλής ποιότητας δουλειά των προγραμματιστών της Microsoft, ο Explorer είναι δυνατόν να κολλήσει αν τον \"στείλετε\" σε έναν κατάλογο FTP
|
||||
και η σύνδεση είναι πολύ αργή ή κοπεί. Κι αυτό γιατί το \"υψηλού\" επιπέδου UI είναι στενά δεμένο με το \"χαμηλού\" επιπέδου σύστημα Ι/Ο.
|
||||
|
||||
Ας έρθουμε όμως στα δικά μας, και συγκεκριμένα στο KDE. Ο Konqueror, όπως θα ξέρετε όλοι είναι File Manager και ταυτόχρονα Web και FTP browser. Θα δούμε σε αυτό
|
||||
το άρθρο ότι ο Konqueror μπορεί να δει επίσης αλληλογραφία POP3, ηχητικά CD, αρχειοθήκες .tar.gz και άλλα πολλά. Όλα (εκτός από τις Ιστοσελίδες)
|
||||
αντιμετωπίζονται με ενιαίο τρόπο και μάλιστα με εξαιρετική απλότητα. Υπεύθυνο για όλα αυτά είναι ένα στρώμα βοηθητικών προγραμμάτων, που εσωτερικά είναι γνωστά
|
||||
με την ονομασία **KDE IO Slaves**.
|
||||
|
||||
|
||||
### [2. Η Αφαίρεση]{#s2}
|
||||
|
||||
### [2.1 Με δυο κουβέντες]{#ss2.1}
|
||||
|
||||
Η σχεδίαση της τεχνολογίας IO Slaves είναι η \*σωστή\* αρθρωτή και ιεραρχική σχεδίαση που υποτίθεται ότι διδάσκεται σε κάθε μάθημα προγραμματισμού. Ο τελευταίος
|
||||
απόφοιτος μιας σχολής προγραμματισμού γνωρίζει πως δεν πρέπει ποτέ λειτουργίες των χαμηλών επιπέδων (Ι/Ο) να \"εισβάλλουν\" στα υψηλά επίπεδα (User Interface),
|
||||
όπως και ότι κοινές λειτουργίες θα πρέπει κατά το δυνατόν να ομαδοποιούνται και να προσφέρονται κατά ομοιόμορφο τρόπο στους χρήστες και στους προγραμματιστές.
|
||||
Οι IO Slaves δεν είναι παρά απλή εφαρμογή των παραπάνω ιδεών. Με αυτά υπόψη, θα μπορούσαμε να συνοψίσουμε την τεχνολογία IO Slaves στην παρακάτω παράγραφο:
|
||||
|
||||
**Οι ΙΟ Slaves είναι ένα στρώμα αντικειμένων που παρεμβάλλονται ανάμεσα σε ένα πρόγραμμα που ζητά πληροφορίες (π.χ. Konqueror) και την πηγή αυτών των
|
||||
πληροφοριών. Αναλαμβάνουν να απαλλάξουν το πρόγραμμα από τις λεπτομέρειες της συνδιαλλαγής με την πηγή και της ανάκτησης των πληροφοριών, πραγματοποιώντας οι
|
||||
ίδιοι αυτές τις λειτουργίες. Η χρήση των IO slaves γίνεται μέσω εντολών που είναι κοινές για όλους τους IO Slaves και άρα ανεξάρτητες του είδους της πηγής.**
|
||||
|
||||
### [2.2 Αφαίρεση ναι, αλλά είναι τα πάντα ίδια;]{#ss2.2}
|
||||
|
||||
Αν το δούμε πολύ αφαιρετικά το θέμα, σχεδόν τα πάντα σε έναν υπολογιστή μπορούν να αντιμετωπισθούν είτε ως περιεχόμενο, είτε ως αρχεία. Η διαφορά είναι μεγάλη.
|
||||
Ένα \"αρχείο\" είναι ένα \"πράγμα\" με συγκεκριμένο όνομα. Τα περιεχόμενά του δε φαίνονται κατ\' ευθείαν όταν το κοιτάμε απ\' έξω. Πρέπει να το \"ανοίξουμε\"
|
||||
και τότε κάποιο πρόγραμμα θα μας παρουσιάσει το \"περιεχόμενο\" του αρχείου. Υπάρχουν πρωτόκολλα που είναι καλύτερο να αντιμετωπιστούν σαν πρωτόκολλα αρχείων.
|
||||
Το FTP για παράδειγμα, ή το NFS. Υπάρχουν όμως και πρωτόκολλα που (μολονότι εν τέλει στηρίζονται και αυτά σε κάποια αρχεία) καθορίζουν κυρίως περιεχόμενο. Για
|
||||
παράδειγμα το HTTP κατά κανόνα χρησιμοποιείται για μεταφορά περιεχομένου.
|
||||
|
||||
Οι IO Slaves κάνουν αυτή τη διάκριση. Όταν πρόκειται για περιεχόμενο αναλαμβάνουν να το εξαγάγουν σε κάποια μορφή που να μπορεί να προβληθεί από τον Konqueror.
|
||||
Π.χ. ο gzip IO Slave παίρνει στην είσοδο ένα συμπιεσμένο αρχείο και το αποσυμπιέζει στην έξοδο. Ενεργεί δηλαδή σαν φίλτρο. Από εκεί και πέρα είναι θέμα του
|
||||
Konqueror (ή οποιασδήποτε άλλης επφαρμογής χρησιμοποιεί τις υπηρεσίες του IO Slave) να προβάλλει σωστά αυτό το περιεχόμενο. Όταν πρόκειται για αρχεία, ο IO
|
||||
Slave απλά δίνει πληροφορίες για αυτά τα αρχεία στην εφαρμογή, η οποία πρέπει να ζητήσει μια συγκεκριμένη υπηρεσία (την get) για να πάρει τα περιεχόμενά τους. Ο
|
||||
FTP ΙΟ Slave π.χ., δίνει στον Konqueror μια λίστα με τα αρχεία ενός καταλόγου FTP και ο Konqueror εμφανίζει τα αντίστοιχα εικονίδια στην οθόνη.
|
||||
|
||||
Ας δούμε τι αντιμετωπίζεται κυρίως σαν αρχείο (ή κατάλογος):
|
||||
|
||||
- τα \...αρχεία και οι κατάλογοι
|
||||
- οι τοποθεσίες **FTP**
|
||||
- οι κατάλογοι **HTTP** που δεν έχουν index.html
|
||||
- οι συμπιεσμένες αρχειοθήκες **.tar.gz** και **.tar.bz2** (που αντιμετωπίζονται σαν κανονικοί κατάλογοι)
|
||||
- δικτυακοί κατάλογοι **NFS**
|
||||
- πόροι **SMB**
|
||||
- λογαριασμοί αλληλογραφίας POP3 και IMAP4
|
||||
- Ηχητικά CD
|
||||
- Δισκέτες
|
||||
|
||||
Και τι αντιμετωπίζεται κυρίως σαν περιεχόμενο:
|
||||
|
||||
- Ιστοσελίδες **HTML** (τοπικές ή μέσω **HTTP**)
|
||||
- Σελίδες **man** και **info**
|
||||
- Βοήθεια του KDE (που μπορεί να είναι XML ή HTML)
|
||||
- Πληροφορίες **finger**
|
||||
- Συμπιεσμένα αρχεία **.gz** και **.bz2**
|
||||
|
||||
Οι λίστες δεν είναι εξαντλητικές, ενώ η διάκριση δεν είναι πάντοτε τόσο απόλυτα. Σε γενικές γραμμές, ο IO slave αντιμετωπίζει ένα πρωτόκολλο σαν βασισμένο σε
|
||||
αρχεία όταν σας δίνει στον Konqueror μια λίστα με εικονίδια, και σαν βασισμένο σε περιεχόμενο όταν σας δίνει HTML ή άλλη έξοδο.
|
||||
|
||||
|
||||
### [3. Πώς Λειτουργούν οι KDE IO Slaves]{#s3}
|
||||
|
||||
Ένας IO Slave είναι (σχεδιαστικά) ένα αντικείμενο που καταλαβαίνει ένα πρωτόκολλο και παρέχει λειτουργίες του πρωτοκόλλου για χρήση από προγράμματα ανωτέρου
|
||||
επιπέδου. Συνήθως όμως τα περισσότερα προγράμματα χρησιμοποιούν μόνο μερικές στάνταρ λειτουργίες για την επικοινωνία με όλους τους IO Slaves, ενώ μόνο ειδικά
|
||||
γραμμένα για κάποιον IO Slave προγράμματα κάνουν πλήρη χρήση όλων των λειτουργιών του.
|
||||
|
||||
Επειδή αυτό ακούγεται λίγο περίπλοκο, θα προσπαθήσω να το εξηγήσω με ένα παράδειγμα: τον τετριμμένο IO Slave \"ftp\" ο οποίος χρησιμοποιείται από τον Konqueror
|
||||
για τις λειτουργίες διαχείρισης τόπων FTP. Ο \"ftp\" παρέχει τις εξής λειτουργίες:
|
||||
|
||||
- **get**, που ανακτά ένα απομακρυσμένο FTP αρχείο και το \"σερβίρει\" π.χ. τοπικά στο KWrite για άνοιγμα.
|
||||
- **stat**, που δίνει πληροφορίες για ένα απομακρυσμένο FTP αρχείο (π.χ. ημερομηνία δημιουργίας, μέγεθος κλπ.)
|
||||
- **listdir**, που παράγει για έναν απομακρυσμένο FTP κατάλογο μια λίστα με τα αρχεία του, επιτρέποντας π.χ. στον Konqueror να σας δείξει αυτά τα ωραία
|
||||
εικονίδια που σε τίποτα δεν ξεχωρίζουν από τα τοπικά αρχεία.
|
||||
|
||||
Οι περίσσότεροι IO Slaves παρέχουν μία τουλάχιστον από αυτές τις τρεις λειτουργίες. Οι Slaves περιεχομένου υποστηρίζουν βασικά την **get**, που στην περίπτωσή
|
||||
τους \"φιλτράρει\" την είσοδό τους. Επίσης οι Slaves περιεχομένου υποστηρίζουν τη λειτουργία **mimetype** που καθορίζει το είδος της εξόδου τους. Οι
|
||||
περισσότεροι έχουν έξοδο τύπου **text/html**, δηλαδή ιστοσελίδα, ώστε να μπορεί να απεικονιστεί στον Konqueror. Τέλος, μερικοί IO slaves (βασικά ο file και
|
||||
μελλοντικά οι FTP και SMB) έχουν και λειτουργίες εγγραφής.
|
||||
|
||||
Φυσικά άλλoi ΙΟ Slaves έχουν και άλλες υπηρεσίες, αλλά οι \"στάνταρ\" είναι αυτές οι τέσσερις. Αν το καλοσκεφτείτε, δεν κάνετε και άλλα πράγματα με οποιονδήποτε
|
||||
πόρο του Η/Υ σας. Είτε βλέπετε πληροφορίες για αυτόν, είτε τον ανοίγετε, είτε τον τροποποιείτε.
|
||||
|
||||
|
||||
### [4. Πώς Χρησιμοποιούμε (οι Χρήστες) έναν IO Slave]{#s4}
|
||||
|
||||
Τουλάχιστον τρεις IO Slaves τους χρησιμοποιείτε κατά κόρον: είναι οι file, HTTP και ftp με προφανείς λειτουργίες. Για να χρησιμοποιήσουμε γενικά έναν
|
||||
οποινδήποτε πόρο μέσω IO Slave, η σύνταξη είναι
|
||||
|
||||
----------------------------------------------------------------------------------------------------------------------------------------------------------------
|
||||
|
||||
(όνομα IO Slave): ('/' ή '//') (όνομα πόρου ή URL)
|
||||
|
||||
----------------------------------------------------------------------------------------------------------------------------------------------------------------
|
||||
|
||||
δηλαδή
|
||||
|
||||
----------------------------------------------------------------------------------------------------------------------------------------------------------------
|
||||
|
||||
ftp://ftp.ntua.gr/pub/linux
|
||||
|
||||
----------------------------------------------------------------------------------------------------------------------------------------------------------------
|
||||
|
||||
ή
|
||||
|
||||
----------------------------------------------------------------------------------------------------------------------------------------------------------------
|
||||
|
||||
http://localhost:631/admin
|
||||
|
||||
----------------------------------------------------------------------------------------------------------------------------------------------------------------
|
||||
|
||||
ή
|
||||
|
||||
----------------------------------------------------------------------------------------------------------------------------------------------------------------
|
||||
|
||||
floppy:/
|
||||
|
||||
----------------------------------------------------------------------------------------------------------------------------------------------------------------
|
||||
|
||||
Μέχρι στιγμής το μόνο πρόγραμμα που υποστηρίζει πλήρως αυτή τη σύνταξη είναι ο Konqueror. Μπορείτε να βάλετε στη μπάρα διεύθυνσης τη \"διεύθυνση\" οποιουδήποτε
|
||||
από τους υπάρχοντες IO Slaves και είναι σίγουρο ότι θα επικοινωνήσει μια χαρά, και θα βρει και κάτι χρήσιμο να κάνει.
|
||||
|
||||
Από την άλλη, οποιοσδήποτε προγραμματιστής μιας εφαρμογής KDE μπορεί να χρησιμοποιήσει αυτή τη σύνταξη στα προγράμματά του για να εξυπηρετηθεί από έναν IO
|
||||
Slave. Οι \"γενικευμένες\" διευθύνσεις, που είναι σαν URLs αλλά αντί για **http://**, **ftp://** ή **file://** ή άλλα στάνταρ πρωτόκολλα έχουν και τα
|
||||
\"ψευδοπρωτόκολλα\" που προφέρει κάποιος IO Slave (π.χ. **info://**) περιγράφονται από την κλάση KURL.
|
||||
|
||||
Εκτός από τετριμμένες λειτουργίες (π.χ. έξοδος στο **standard error**) τα προγράμματα KDE **πρέπει** να χρησιμοποιούν KURLs και όχι απλά ονόματα αρχείων ή απλά
|
||||
URL για είσοδο/έξοδο, οπότε καταλαβαίνετε πως η μέρα που το KEdit π.χ. θα επεξεργάζεται \"απ\' ευθείας\" αρχεία σε απομακρυσμένα FTP Sites στην άλλη άκρη της
|
||||
γης ίσως να μην είναι και τόσο μακριά (αν και για την ώρα απέχουμε αρκετά από κάτι τέτοιο, δείτε και παρακάτω).
|
||||
|
||||
|
||||
### [5. IO Slaves σε Δράση]{#s5}
|
||||
|
||||
### [5.1 Finger με χρωματάκια και ιστορίες]{#ss5.1}
|
||||
|
||||
Πολλοί θα ξέρετε την εντολή finger. Αυτή καλείται ως \'finger username\@hostname\' και εμφανίζει πληροφορίες για το χρήστη username του μηχανήματος hostname. Η
|
||||
χρήση του IO Slave είναι απλή:
|
||||
|
||||
Στη μπάρα διεύθυνσης του Konqueror δώστε π.χ.
|
||||
|
||||
----------------------------------------------------------------------------------------------------------------------------------------------------------------
|
||||
|
||||
finger://root@localhost
|
||||
|
||||
----------------------------------------------------------------------------------------------------------------------------------------------------------------
|
||||
|
||||
και θα πάρετε πληροφορίες για το χρήστη root.
|
||||
|
||||
### [5.2 Ο Konqueror σαν πρόγραμμα ηλ. ταχυδρομείου]{#ss5.2}
|
||||
|
||||
Συνδεδεθείτε στο Internet, και δώστε στη μπάρα διεύθυνσης
|
||||
|
||||
----------------------------------------------------------------------------------------------------------------------------------------------------------------
|
||||
|
||||
pop3://διεύθυνση.του.mail.server.σας
|
||||
|
||||
----------------------------------------------------------------------------------------------------------------------------------------------------------------
|
||||
|
||||
π.χ.
|
||||
|
||||
----------------------------------------------------------------------------------------------------------------------------------------------------------------
|
||||
|
||||
pop3://mail.ntua.gr
|
||||
|
||||
----------------------------------------------------------------------------------------------------------------------------------------------------------------
|
||||
|
||||
Πατήστε Enter. Αν όλα πάνε καλά, θα σας ζητηθεί username και password και μετά από λίγο ο Konqueror θα εμφανίσει τα μηνύματα που περιμένουν να τα παραλάβετε,
|
||||
σαν μια λίστα εικονιδίων.
|
||||
|
||||
Βέβαια τα πράγματα δεν είναι πολύ βολικά, αφού αν ανοίξετε ένα από αυτά τα \"αρχεία\" θα πάρετε το αντίστοιχο μήνυμα σαν \"raw data\", ενώ ένα πρόγραμμα όπως το
|
||||
KMail αποκωδικοποιεί αυτά τα raw data και σας εμφανίζει ελληνικά, HTML, URL και τα λοιπά. Από την άλλη, μπορείτε εύκολα να αντιγράψετε αυτά τα ακατέργαστα
|
||||
μηνύματα στο δίσκο σας με ένα Select All και μετά με drag \'n\' drop, ενώ π.χ. με το KMail θα πρέπει να τα αποθηκεύσετε ένα ένα ή όλα μαζί σε ένα μεγάλο αρχείο.
|
||||
|
||||
### [5.3 Απ\' ευθείας IO 1: περιορισμος των mount/umount]{#ss5.3}
|
||||
|
||||
Ένα πράγμα που είναι λίγο βαρετό, είναι τα mount/umount που πρέπει να γίνονται ακόμα και για απλή προβολή της δισκέτας. Υπό την προϋπόθεση ότι έχετε δικαιώματα
|
||||
ανάγνωσης απ\' ευθείας από το /dev/fd0 ή όποια άλλη συσκευή αντιστοιχεί στο floppy disk drive του συστήματός σας, δίνοντας
|
||||
|
||||
----------------------------------------------------------------------------------------------------------------------------------------------------------------
|
||||
|
||||
floppy:/
|
||||
|
||||
----------------------------------------------------------------------------------------------------------------------------------------------------------------
|
||||
|
||||
Θα δείτε αμέσως τα περιεχόμενα της δισκέτας σας, χωρίς να χρειαστεί να κάνετε mount.
|
||||
|
||||
### [5.4 Απ\' ευθείας IO 2: ο Konqueror σαν CD ripper]{#ss5.4}
|
||||
|
||||
Ναι, ο τίτλος είναι σωστός. Πρόκειται για μια εντυπωσιακή εφαρμογή της τεχνολογίας IO Slaves, που κακώς δε διαφημίζεται. Υπάρχουν κάποια προαπαιτούμενα και
|
||||
πάλι.
|
||||
|
||||
- Να μπορείτε να διαβάσετε απ\' ευθείας από το /dev/hdc ή όποια άλλη συσκευή αντιστοιχεί στο CD ROM σας. Συνήθως μόνο ο root έχει τέτοια άδεια.
|
||||
- Να είστε συνδεδεμένοι στο Internet.
|
||||
- Το πακέτο kdebase σας να έχει μεταγλωτιστεί με υποστήριξη cdparanoia (οπωσδήποτε) και Ogg Vorbis ή MP3 (όχι υποχρεωτικά).
|
||||
|
||||
Η όλη διαδικασία είναι αρκετά πολύπλοκη και κατά πάσα πιθανότητα θα αποτελέσει αντικείμενο ξεχωριστού άρθρου.
|
||||
|
||||
Αν όμως οι παραπάνω προϋποθέσεις πληρούνται, βάλτε στο CD ROM σας ένα ηχητικό CD και δώστε στη μπάρα διεύθυνσης του Konqueror
|
||||
|
||||
----------------------------------------------------------------------------------------------------------------------------------------------------------------
|
||||
|
||||
audiocd:/
|
||||
|
||||
----------------------------------------------------------------------------------------------------------------------------------------------------------------
|
||||
|
||||
Θα δείτε (μετά από λίγο) το εξής εκπληκτικό: Ο Konqueror γεμίζει με εικονίδια, που αντιστοιχούν στα tracks του CD (track01, track02\...), και εμφανίζει και
|
||||
μερικούς καταλόγους, με ονόματα όπως \"WAV\", \"Ogg Vorbis\" και \"MP3\". Αυτοί οι κατάλογοι, \"περιέχουν\" τις ripped και encoded εκδόσεις των κομματιών του
|
||||
CD. Φυσικά δεν έχει γίνει ακόμα κανένα ripping. Αλλά ο audiocd ΙΟ Slave είναι έτοιμος να σας σερβίρει ότι του ζητήσετε. Αν έχετε \"σφαιράτο\" μηχάνημα, ανοίξτε
|
||||
ένα από τα MP3 κομμάτια. Θα έχετε τη -σπανιότατη- εμπειρία να ακούτε ένα MP3 που ripάρεται και κωδικοποιείται σε πραγματικό χρόνο. Πιο ρεαλιστική εφαρμογή,
|
||||
είναι να \"τσιμπήσετε\" το MP3 και να το \"πετάξετε\" σε κάποιον τοπικό κατάλογο. Ο audio slave αρχίζει τότε να κάνει ripping και να γράφει το mp3 στο δίσκο.
|
||||
Αντίστοιχα γίνεται η εξαγωγή σε μορφή Ogg Vorbis, σε WAV ή και σε RAW.
|
||||
|
||||
To πλέον εντυπωσιακό, είναι ότι αν το CD σας υπάρχει στη CDDB (όπως το \"Dark Side of the Moon\" των Pink Floyd, τότε αντί για track0, track02 και λοιπά θα
|
||||
δείτε τους τίτλους των τραγουδιών (π.χ. \"Pink Floyd - The Dark Side of The Moon - Time.mp3\", ). Γι\' αυτό και απαιτείται η σύνδεση με Ιντερνετ. Ο IO Slave
|
||||
προσπαθεί πάντοτε να χρησιμοποιήσει τη CDDB. Μάλιστα (και εδώ έχουμε μια ατέλεια), αν δεν είστε συνδεδεμένοι, ο IO Slave κλείνει χωρίς να σας ενημερώσει, ενώ θα
|
||||
μπορούσε να συνεχίζει και να ονομάζει τα κομμάτια track01, track02 κλπ.
|
||||
|
||||
|
||||
### [6. Πού χρησιμοποιούνται οι IO Slaves]{#s6}
|
||||
|
||||
Κανονικά: παντού όπου υπάρχει Ι/Ο στο KDE, είτε ο χρήστης το καταλαβαίνει, είτε όχι. Το KMail χρησιμοποιεί τους pop3 και imap4 IO Slaves για να ανακτήσει την
|
||||
αλληλογραφία σας, ο Konqueror (κυρίως) τους http, ftp, file,help, man, info και tar για τις καθημερινές του λειτουργίες, ενώ πολλές εφαρμογές χρησιμοποιούν τους
|
||||
nfs και smb για να προσφέρουν λειτουργίες \"Network Neighboorhoud\".
|
||||
|
||||
Πρέπει να τονιστεί ότι **ΟΛΟΙ ανεξαιρέτως** οι IO Slaves μπορούν να χρησιμοποιηθούν απ\' αυθείας από τον Konqueror, επιτρέποντας ενδιαφέρουσες εφαρμογές, όπως
|
||||
δημιουργία σελιδοδείκτη για μια ιστοσελίδα που βρίσκεται συμπιεσμένη σε ένα αρχείο .tar.gz και drag \'n\' drop από ηχητικά CD\'s σε τοπικούς καταλόγους. Έχετε
|
||||
πάντοτε υπόψη σας όμως ότι όλες οι λειτουργίες ενός IO slave πιθανόν να μην είναι προσπελάσιμες έτσι απλά, ή να απαιτούν άδειες που έχει μόνον ο root.
|
||||
|
||||
Μια παράλειψη των IO slaves είναι ότι δεν είναι και τόσο \"O\" όσο είναι \"Ι\". Δηλαδή δεν έχουν ακόμα λειτουργίες εγγραφής στον πόρο που χειρίζονται (με
|
||||
κάποιες εξαιρέσεις). Αυτό όμως είναι και λογικό. Ποιος θέλει να τροποποιήσει μια man page ή ένα audio cd; Πάντως αυτή η έλλειψη είναι και ο λόγος που το KEdit
|
||||
δε μπορεί ακόμα να επεξεργαστεί απ\' ευθείας ένα αρχείο σε κάποιον FTP server :-o.
|
||||
|
||||
Πληροφορίες για τους διαθέσιμους IO Slaves μπορείτε να πάρετε (στο τρέχον CVS του KDE) στον Πίνακα Ελέγχου, στην ενότητα **Δίκτυο** - υποενότητα **Πρωτόκολλα**.
|
||||
Α, ναι :-) Το \"user-friendly\" όνομα των IO Slaves είναι \"KDE Networking Protocols\", κάτι που δεν είναι βέβαια απόλυτα σωστό, αλλά οι περισσότεροι αποφάσισαν
|
||||
ότι λέει περισσότερα σε έναν μη προγραμματιστή από το \"IO slaves\". Εσωτερικά βέβαια η τεχνολογία λέγεται πάντα \"ΙΟ Slaves\".
|
||||
|
||||
|
||||
### [7. Επίλογος]{#s7}
|
||||
|
||||
Να \'μαστε λοιπόν. Ο δικός μας Web Browser φτιάχνει και MP3, και μάλιστα με απλό drag \'n\' drop. Αυτό είναι ένα δίδαγμα για όσους, ερχόμενοι από τον κόσμο των
|
||||
Windows και του Macintosh περιμένουν να τα βρουν όλα ολόιδια. Ποτέ μην περιφρονείτε τον τρόπο που τα πράγματα γίνονται στο linux, γιατί μπορεί να είναι και
|
||||
καλύτερος. Κανείς δεν έχει ιδιαίτερα μεγάλη όρεξη να φτιάξει αντίγραφα των Windows. Θα ήταν μάλλον χαζό, αφού υπάρχει το πρωτότυπο.
|
||||
|
||||
Η ομάδα KDE πήρε απλά τη λόγική της ενιαίας αντιμετώπισης των πόρων που είχε ενσωματωμένη πάντοτε το Unix, και την έφτασε δέκα χρόνια μπροστά από τις εμπορικές
|
||||
\"ευκολίες\". Για \"αντίγραφο των Windows κατασκευασμένο από δεκαπεντάχρονο χακερά\" όπως είχε αποκαλέσει κάποιος ..απλός χρήστης, νομίζω ότι το KDE δεν τα πήγε
|
||||
και άσχημα.
|
||||
|
||||
100
content/articles/31/03_icewm.md
Κανονικό αρχείο
100
content/articles/31/03_icewm.md
Κανονικό αρχείο
|
|
@ -0,0 +1,100 @@
|
|||
+++
|
||||
title = 'Μια παρουσίαση του IceWM'
|
||||
date = '2001-06-01T00:00:00Z'
|
||||
description = ''
|
||||
author = 'Nick Apostolakis(mailto:nickapos@agriroot.aua.gr)'
|
||||
issue = ['Magaz 31']
|
||||
issue_weight = 3
|
||||
+++
|
||||
|
||||
----------------------------------------------------------------------------------------------------------------------------------------------------------------
|
||||
|
||||
*IceWm, a lightweight windowmanager*
|
||||
|
||||
----------------------------------------------------------------------------------------------------------------------------------------------------------------
|
||||
|
||||
**1. Γενικά**
|
||||
-------------------------------------
|
||||
|
||||
- [1.1 DISCLAIMER](#ss1.1)
|
||||
- [1.2 Τι είναι ο IceWM](#ss1.2)
|
||||
- [1.3 Χαρακτηριστικά του IceWM](#ss1.3)
|
||||
|
||||
**2. Compilation και αρχικές ρυθμίσεις του IceWM**
|
||||
--------------------------------------------------------------------------
|
||||
|
||||
- [2.1 Compilation](#ss2.1)
|
||||
- [2.2 Starting IceWM](#ss2.2)
|
||||
|
||||
|
||||
### [1. Γενικά]{#s1}
|
||||
|
||||
### [1.1 DISCLAIMER]{#ss1.1}
|
||||
|
||||
Δεν φέρω καμία ευθύνη εάν η εφαρμογή των παρακάτω προκαλέσει οποιουδήποτε είδους ζημία στο μηχάνημα σας ή στα δεδομένα σας.
|
||||
|
||||
### [1.2 Τι είναι ο IceWM]{#ss1.2}
|
||||
|
||||
Ο **IceWM** είναι ένας Window Manager σχεδιασμένος έτσι ώστε να είναι μικρός, γρήγορος και να έχει οικεία εμφάνιση. Αρχικά σχεδιάστηκε ώστε να μοιάζει με το
|
||||
Motif το OS/2, τα Windows 95 αν και αφού υποστηρίζει themes η εμφάνιση του μπορεί να αλλάζει. Όπως τα παραπάνω συστήματα ο **IceWM** έχει taskbar και το
|
||||
αντίστοιχο του Start menu των Windows 95 όπως φαίνεται και στο Screenshot.
|
||||
|
||||
Ο **IceWM** δεν έχει σχεδιαστεί ώστε να είναι πάρα πολύ παραμετροποιήσιμος όπως ο fvwm. Τα αρχεία μέσα απο τα οποία γίνεται η παραμετροποίηση του **IceWM**
|
||||
είναι αρχεία κειμένου με παρα πολύ απλή σύνταξη το οποία μπορούμε να τα αλλάξουμε εντελώς χειροκίνητα με τον αγαπημένο μας editor ή να χρησιμοποιήσουμε ένα απο
|
||||
τα γραφικά εργαλεία όπως είναι το iceMC.
|
||||
|
||||
### [1.3 Χαρακτηριστικά του IceWM]{#ss1.3}
|
||||
|
||||
Ο **IceWM** αν και δεν είναι τόσο παραμετροποιήσιμος όσο ο fvwm παραμετροποιείται σε σχετικά μεγάλο βαθμό με μεγάλη ευκολία. Επίσης αν και δεν έχει
|
||||
χαρακτηριστικά των μεγάλων window managment systems (**KDE, Gnome**) όπως ήχους ανα event, μεγάλο integration μεταξύ των εφαρμογών του κτλ, δεν έχει και τα
|
||||
σοβαρά τους μειονεκτήματα όπως μεγάλες απαιτήσεις σε μνήμη και χώρο, δυσκολία στο compilation απο source λόγω πολλών προαπαιτούμενων βιβλιοθηκών κα.
|
||||
|
||||
Η υποστήριξη που έχει για themes, multiple workspaces, έλεγχο των πάντων (σχεδόν) απο το ποντίκι αλλά και απο το πληκτρολόγιο με τους κατάλληλους συνδυασμούς
|
||||
πλήκτρων και η σταθερότητα του τον κάνουν ιδανική λύση για συστήματα με λίγους ή πολλούς πόρους και για όποιους τους ενδιαφέρει περισσότερο η παραγωγικότητα,
|
||||
απο τον αν το πέρασμα απο την μια στην άλλη εφαρμογή συνοδέυεται και απο τον κατάλληλο ήχο ή αν ο terminal emulator που χρησιμοποιούν είναι διάφανος. Βέβαια εδώ
|
||||
πρέπει να προσθέσω ότι ο **IceWM** ανήκει στους **GNOME compliant window managers** οπότε αν κάποιος έχει και GNOME μπορεί να έχει ένα συνδυασμό των
|
||||
χαρακτηριστικών των δύο συστημάτων.
|
||||
|
||||
|
||||
### [2. Compilation και αρχικές ρυθμίσεις του IceWM]{#s2}
|
||||
|
||||
### [2.1 Compilation]{#ss2.1}
|
||||
|
||||
Για να κάνουμε compile τον **IceWM** χρειαζόμαστε κάποιες βιβλιοθήκες γραφικών οι οποίες έχουν χρησιμοποιηθεί για την συγγραφή του. Αυτές οι βιβλιοθήκες είναι η
|
||||
`gtk/glib` και `libXpm ή ImLib`. Ο **IceWM** είναι γραμμένος σε C++ οπότε θα χρειαστούμε τον `g++` και το `make` της `GNU`. Η
|
||||
διαδικασία του compilation είναι η ίδια με όσα προγράμματα χρησιμοποιούν το `automake` πακέτο της `GNU` δηλαδή τρέχουμε πρώτα το `configure script` το οποίο
|
||||
προσπαθεί να ανιχνεύσει τι σύστημα έχουμε και να φτιάξει τα Makefiles. Αφού δημιουργηθούν τα Makefiles τρέχουμε make και make install για να δημιουργηθεί και να
|
||||
εγκατασταθεί ο **IceWM** στο σύστημα μας (το τελευταίο πρέπει να το τρέξουμε σαν **root**).
|
||||
|
||||
### [2.2 Starting IceWM]{#ss2.2}
|
||||
|
||||
Η επίσημη τεκμηρίωση υποστηρίζει ότι για να ξεκινήσουμε τον **IceWM** θα πρέπει να χρησιμοποιήσουμε το αρχείο `.Xclients` και εκεί μέσα να τοποθετήσουμε τις
|
||||
κατάλληλες ρυθμίσεις ώστε να ξεκινάει ο **IceWM**. Επίσης δίνει και ένα δείγμα του αρχείου αυτού το οποίο παραθέτω παρακάτω:
|
||||
|
||||
----------------------------------------------------------------------------------------------------------------------------------------------------------------
|
||||
|
||||
*# run profile to set $PATH and other env vars correctly
|
||||
|
||||
*$HOME/.bash_profile
|
||||
|
||||
|
||||
* # setup background
|
||||
|
||||
*xsetroot -solid '#056'
|
||||
|
||||
*# setup mouse acceleration
|
||||
|
||||
*xset m 7 2
|
||||
|
||||
*# run initial programs
|
||||
|
||||
*xterm&
|
||||
|
||||
*# start icewm, and run xterm if it crashes (just to be safe)
|
||||
|
||||
*exec icewm || exec xterm -fg red
|
||||
|
||||
----------------------------------------------------------------------------------------------------------------------------------------------------------------
|
||||
|
||||
Έδω το αρχείο αυτό θέτει κάποιες μεταβλητές περιβάλλοντος και ξεκινάει κάποια προγράμματα αφού ξεκινήσει ο **IceWM** ή ξεκινάει ένα xterm εάν κάτι δεν πάει
|
||||
καλά. Αφού όλα πάνε καλά μπορούμε να ξεκινήσουμε τον **IceWM** και να αρχίσουμε να τον ρυθμίζουμε σύμφωνα με τις προτιμήσεις μας.
|
||||
430
content/articles/31/04_unixevo.md
Κανονικό αρχείο
430
content/articles/31/04_unixevo.md
Κανονικό αρχείο
|
|
@ -0,0 +1,430 @@
|
|||
+++
|
||||
title = 'Εξέλιξη των συστημάτων Unix'
|
||||
date = '2001-06-01T00:00:00Z'
|
||||
description = ''
|
||||
author = 'Οικονομόπουλος Άγγελος(mailto:lydwigvernon@yahoo.co.uk) γιά το magaz(http://magaz.hellug.gr)'
|
||||
issue = ['Magaz 31']
|
||||
issue_weight = 4
|
||||
+++
|
||||
|
||||
----------------------------------------------------------------------------------------------------------------------------------------------------------------
|
||||
|
||||
*Μαθαίνοντας την ιστορία, αποφέυγουμε να ξανακάνουμε τα ίδια λάθη. Και πόσα λάθη μπορεί πλέον να βρούμε σε κάτι το οποίο εξελλίσεται συνεχώς από το 1969;
|
||||
Διαβάζοντας αυτό το άρθρο, ο κάθε ένας πρέπει όταν εργάζεται στο ελεύθερο Unix του να νιώθει την οικονομία και την συνέπεια ενός κατασκευάσματος που εδώ και
|
||||
τριάντα και πλέον χρόνια δοκιμάζεται, χρησιμοποιείται και κατά περίσταση ξαναγράφεται από πανεπιστήμια, εταιρίες λογισμικού, βιομηχανίες, κράτη, τον αμερικάνικο
|
||||
στρατό, αλλά κυρίως, από παθιασμένους hackers, που το βελτιώνουν, πέρα από την όποια αμοιβή μπορεί να λαμβάνουν, πρώτα από όλα για τον εαυτό τους. Δεν μπορεί
|
||||
λοιπόν να γεννά απορία η συνοχή και η στιβαρότητα των ελεύθερων Unix, αφού αυτά ανήκουν στην οικογένεια ενός συστήματος πού όπως χαρακτηριστικά έχει αναφερθεί
|
||||
έχει σε τέτοιο βαθμό διαποτίσει την κοινότητα των προγραμματιστών, ώστε μπορεί οποιαδήποτε στιγμή να ξαναγραφεί από το μηδέν.*
|
||||
|
||||
----------------------------------------------------------------------------------------------------------------------------------------------------------------
|
||||
|
||||
**1. Unix (R)evolution**
|
||||
--------------------------------------------------
|
||||
|
||||
- [1.1 Η γέννηση του Unix](#ss1.1)
|
||||
- [1.2 Το Unix όπως το γνωρίζουμε σήμερα: SVR1](#ss1.2)
|
||||
- [1.3 Berkeley Software Distribution](#ss1.3)
|
||||
|
||||
**2. Unix Variants**
|
||||
----------------------------------------------
|
||||
|
||||
- [2.1 XENIX](#ss2.1)
|
||||
- [2.2 Unix System V](#ss2.2)
|
||||
- [2.3 SunOS/Solaris](#ss2.3)
|
||||
- [2.4 HP-UX](#ss2.4)
|
||||
- [2.5 AIX](#ss2.5)
|
||||
- [2.6 NeXTSTEP](#ss2.6)
|
||||
- [2.7 IRIX](#ss2.7)
|
||||
- [2.8 A/UX](#ss2.8)
|
||||
- [2.9 OSF/1](#ss2.9)
|
||||
- [2.10 Minix](#ss2.10)
|
||||
- [2.11 BSDi](#ss2.11)
|
||||
- [2.12 UnixWare](#ss2.12)
|
||||
- [2.13 tru64 Unix](#ss2.13)
|
||||
- [2.14 Mac OS X](#ss2.14)
|
||||
|
||||
**3. Open Source**
|
||||
--------------------------------------------
|
||||
|
||||
- [3.1 GNU](#ss3.1)
|
||||
- [3.2 GNU/Linux](#ss3.2)
|
||||
- [3.3 FreeBSD](#ss3.3)
|
||||
- [3.4 NetBSD](#ss3.4)
|
||||
- [3.5 OpenBSD](#ss3.5)
|
||||
|
||||
**4. Standardization**
|
||||
------------------------------------------------
|
||||
|
||||
- [4.1 SVID](#ss4.1)
|
||||
- [4.2 POSIX](#ss4.2)
|
||||
- [4.3 XPG3/4](#ss4.3)
|
||||
- [4.4 Single UNIX Specification](#ss4.4)
|
||||
- [4.5 Single UNIX Specification 2](#ss4.5)
|
||||
|
||||
|
||||
### [1. Unix (R)evolution]{#s1}
|
||||
|
||||
Η εποχή αυτή είναι η εποχή των ερευνητικών ομάδων και των πανεπιστημίων, της ατομικής συνεισφοράς και τρέλας, αλλά κυρίως της ελεύθερης διάθεσης του κώδικα,
|
||||
αυτή που ο Stallman νοσταλγούσε όταν ξεκίνησε την προσπάθειά του να ελευθερώσει το λογισμικό από τις πατέντες των εταιριών. Και όταν ακόμα η AT&T κατέστησε το
|
||||
Unix αμιγώς εμπορικό προϊόν, το επιστημονικό ενδιαφέρον έπαιζε για αρκετό καιρό ακόμα σημαντικότερο ρόλο στην κατεύθυνση που ακολούθησε η εξέλιξη του Unix, από
|
||||
τις αποφάσεις του τμήματος marketing των εταιριών.
|
||||
|
||||
### [1.1 Η γέννηση του Unix]{#ss1.1}
|
||||
|
||||
Στα τέλη της δεκαετίας του 1960, το Τεχνολογικό Ινστιτούτο της Μασσαχουσέτης (ΜΙΤ) μαζί με τα διάσημα Bell Labs της AT&T ανέπτυσσαν ένα εξελιγμένο λειτουργικό
|
||||
σύστημα για το mainframe 645 της General Electric, υπό την ονομασία Multics (Multiplexed Information and Computing System). Για το ίδιο mainframe ο Ken Thompson
|
||||
(εργαζόμενος στα Bell Labs) είχε γράψει ένα παιχνίδι το οποίο προσομοίωνε το ηλιακό σύστημα με τον τίτλο Space Travel, αλλά η εκτέλεση του παιχνιδιού από τον
|
||||
645 ήταν απογοητευτική. Έτσι, αφού μαζί με τον Dennis Ritchie εξασφάλισε πρόσβαση σε έναν DEC PDP-7, ξαναέγραψαν το παιχνίδι για να τρέχει στον PDP-7 και
|
||||
ταυτόχρονα, αξιοποιώντας πλήθος ιδεών από το Multics, δημιούργησαν ένα νέο λειτουργικό με μία πρώιμη γραμμή εντολών και το δικό του filesystem. Το λειτουργικό
|
||||
αυτό μπορούσε να χρησιμοποιηθεί από δύο χρήστες ταυτόχρονα και ο Brian Kernighan του έδωσε χιουμοριστικά το όνομα Unics (Uniplexed Computing and Information
|
||||
System), που το 1970 άλλαξε στο πασίγνωστο πλέον Unix.
|
||||
|
||||
Με τον όρο να περιλαμβάνει utilities επεξεργασίας κειμένου, τα Bell Labs χρηματοδότησαν την μεταφορά του Unix στον ταχύτερο PDP-11/20. Το 1972 το Unix, μαζί με
|
||||
το runoff (που εξελίχθηκε στο σημερινό troff), και τα δύο γραμμένα σε assembly, έτρεχε σε 10 mainframes. Το μεγαλύτερο, ίσως, άλμα στην εξέλιξη του Unix ήταν η
|
||||
δημιουργία της γλώσσας προγραμματισμού C από τους Kernighan και Ritchie. Ο τελευταίος, μαζί με τον Thompson, ξαναέγραψε τον πυρήνα του Unix το 1973
|
||||
χρησιμοποιώντας την C, καθιστώντας το έτσι εύκολο στη συντήρηση και μεταφορά σε άλλες πλατφόρμες hardware. Στις επόμενες εκδόσεις (editions) του συστήματος, τις
|
||||
οποίες η AT&T διέθετε σε εκπαιδευτικούς οργανισμούς, εταιρίες και κρατικές υπηρεσίες για ένα ονομαστικό κόστος, η μία καινοτομία διαδεχόταν την άλλη, ώστε η
|
||||
έβδομη έκδοση του Unix περιελάμβανε το Bourne shell και το προτόκολο UUCP. Βασισμένο σε αυτή την έκδοση, το Unix System III ήταν το πρώτο Unix που η AT&T
|
||||
διέθεσε εμπορικά.
|
||||
|
||||
### []{#ref1} [1.2 Το Unix όπως το γνωρίζουμε σήμερα: SVR1]{#ss1.2}
|
||||
|
||||
Ταυτόχρονα με τη διάθεση του SIII, από τα τμήματα έρευνας της AT&T, γίνονταν διαθέσιμες σε πανεπιστήμια και εργαστήρια ανεπίσημες εκδόσεις που εισήγαγαν
|
||||
πειραματικά χαρακτηριστικά, ώστε ήταν δύσκολο για τον κάθε χρήστη ή προγραμματιστή να γνωρίζει αν τα προγράμματα που ανέπτυσσε θα ήταν συμβατά με τις επόμενες
|
||||
εκδόσεις ή αν το user interface θα παρέμενε το ίδιο. Με την έκδοση του System V, πέρα από τις όποιες τεχνολογικές καινοτομίες, η AT&T φρόντισε κυρίως να
|
||||
μετριάσει το fragmentation, εγγυόμενη πως το SV θα είχε προς τα εμπρός συμβατότητα με τις επόμενες επίσημες εκδόσεις.
|
||||
|
||||
Η σημασία της απόφασης αυτής δεν καθίσταται άμεσα εμφανής - τουλάχιστον όχι μέχρι να σκεφτούμε πως σε οποιαδήποτε παραλλαγή του Unix και αν χρειαστεί να
|
||||
εργαστούμε, θα βρούμε τουλάχιστον το παλιό-καλό Bourne shell τα ίδια ονόματα για τις βασικές εντολές και τα utilities (ls, grep, sed, more, κ.α.). Μάλιστα, σε
|
||||
ένα ακραίο παράδειγμα, ένας χρήστης Unix αυτής της εποχής θα μπορούσε να εργαστεί χωρίς σημαντικό πρόβλημα στο κέλυφος και να εκτελέσει scripts που έγραψε προ
|
||||
δεκαετιών.
|
||||
|
||||
Στην τεχνική πλευρά τώρα, η SVR1 ενσωμάτωνε πολλά από τα στοιχεία του BSD, με σημαντικότερο όλων τον editor vi, ο οποίος έμελλε να καθιερωθεί σαν ο standard
|
||||
editor των Unix συστημάτων. Η έκδοση System V Release 2 εισήγαγε το file locking. Ακόμα πιό επηρεασμένη από το BSD ήταν η SVR3 που απορρόφησε πολλές από τις
|
||||
καινοτομίες των 4.xBSD\'s ιδιαίτερα όσες αφορούσαν τις τεχνολογίες δικτύωσης. Η SVR4, η τελευταία μαζί με την 4.2 που εκδόθηκαν από την AT&T, ενσωμάτωνε το
|
||||
προτόκολο TCP/IP και τις BSD r\* εντολές, όπως και τα NFS, RPC από το SunOS. Η SVR5 εκδόθηκε από την Santa Cruz Operation (SCO).
|
||||
|
||||
### [1.3 Berkeley Software Distribution]{#ss1.3}
|
||||
|
||||
Περνώντας από το τμήμα επιστήμης υπολογιστών του Πανεπιστημίου του Berkeley, o Thompson μετέφερε την έκτη έκδοση του Unix σε έναν PDP-11/70. Έχοντας πλέον άμεση
|
||||
πρόσβαση στο λειτουργικό σύστημα, οι φοιτητές Bill Joy και Chuck Halley ξεκίνησαν την ανάπτυξη των δικών τους εφαρμογών εξελλίσοντας τον line-editor ed, στον
|
||||
ex, τον πρώτο editor με visual mode που επέτρεπε στο χρήστη να βλέπει μία οθόνη με το κείμενό του (σημαντική προσθήκη για την εποχή!) και ο οποίος εξελίχθηκε
|
||||
από τον Joy στον αγαπημένο σε όλους (καλά, ίσως όχι σε όλους :) μας vi. Ακόμα, ανέπτυξαν το C shell, που είναι το default για τα BSD συστήματα και το οποίο
|
||||
πρόσφερε δυνατότητες αδιανόητες για τους χρήστες του Bourne shell: λίστα των τελευταίων εντολών, command line editing, συνώνυμα (aliases) και ξεχωριστό login
|
||||
και rc file. Περιλαμβάνοντας στα παραπάνω και έναν pascal compiler, οι Joy και Halley συνέθεσαν μία δική τους διανομή Unix που την διέθεσαν ως Berkeley Software
|
||||
Distribution. Ακολούθησε το 1978 η 2BSD, ενώ η 3BSD εισήγαγε μία ριζική καινοτομία, την εικονική(ιδεατή) μνήμη που έκανε διαθέσιμη στο λειτουργικό πολλαπλάσια
|
||||
ποσότητα μνήμης από την φυσική.
|
||||
|
||||
Σταθμός στην εξέλιξη του Unix μπορεί να θεωρηθεί η απόφαση του DARPA (Defence Advanced Research Projects Agency) να αναθέσει στο πανεπιστήμιο του Berkeley την
|
||||
ανάπτυξη του λειτουργικού του αμυντικού του δικτύου υπολογιστών. Στο πλαίσιο αυτής της συνεργασίας το DARPA χρηματοδότησε την εξέλιξη του 4BSD, η τρίτη έκδοση
|
||||
του οποίου(4.2) το 1983 ενσωμάτωνε υποστήριξη για το δικτυακό πρωτόκολλο TCP/IP και τις πασίγνωστες remote commands (rsh, rlogin, rcp etc.) και τις DARPA
|
||||
commands ftp και telnet που, παρά τα προβλήματα ασφάλειας, χρησιμοποιούνται ακόμα και σήμερα. Στο 4.2BSD στηρίχθηκε εν πολλοίς και το SVR4, όπως και το SunOS,
|
||||
ενώ πάνω στην τελευταία έκδοση από το πανεπιστήμιο του Berkeley (4.4BSD ή 4.4BSDLite λόγω νομικών προβλημάτων) βασίστηκαν και τα open source FreeBSD, NetBSD,
|
||||
OpenBSD μαζί με το εμπορικό BSD/OS (συνέχεια περισσότερο του 386BSD).
|
||||
|
||||
|
||||
### [2. Unix Variants]{#s2}
|
||||
|
||||
Σε μία τέτοια λίστα είναι προφανές ότι δεν θα μπορούσαν να συμπεριληφθούν όλα τα συστήματα που, περισσότερο ή λιγότερο το καθένα, ανήκουν στην οικογένεια του
|
||||
Unix. Άν όμως ελλείψεις όπως το Plan9, το Ultrix και Unicos σας ενοχλούν, είναι σίγουρο ότι δεν χρειάζεται να διαβάσετε αυτό το άρθρο, δεν θα σας προσφέρει
|
||||
απολύτως τίποτα. Γιά όποιον θέλει περισσότερες λεπτομέρειες για την εξέλιξη και τις αλληλεπιδράσεις ανάμεσα στις διάφορες βαριάντες, μπορεί να κατεβάσει μία
|
||||
εξευτελιστικά λεπτομερή timeline (η οποία όμως συνιστάται ανεπιφύλακτα) από το URL: <http://perso.wanadoo.fr/levenez/unix>
|
||||
|
||||
### [2.1 XENIX]{#ss2.1}
|
||||
|
||||
Το 1980 η τότε-όχι-και-τόσο-κακή εταιρεία Microsoft, παρουσίασε το Xenix, ένα λειτουργικό βασισμένο στην έβδομη έκδοση του AT&T Unix το οποίο ήταν ο πρώτος Unix
|
||||
κλώνος που δεν έτρεχε σε mainframe αλλά σε μικροεπεξεργαστές. Με την άμεση ανάμειξη της SCO, το Xenix μεταφέρθηκε στον Motorolla 68000 και στους 8086, 80286 και
|
||||
80386 της Intel. Προερχόμενο απ\'ευθείας από το Unix της AT&T και με επιρροές από τα διάφορα BSD, το Xenix εισήγαγε και αυτό ορισμένες καινοτομίες (κυρίως
|
||||
εντολές) τις οποίες όμως ενσωμάτωσε η AT&T στην έκδοση 3.2 του Unix System V, έτσι ώστε το Xenix άρχισε να φθίνει. Το ίδιο συνέβαινε και με την ανάμειξη της
|
||||
Microsoft με το όλο project ( είχαν βρει το μέλλον στους IBM compatible και στο DOS :), ώστε μετά από λίγα χρόνια να μιλάμε για το SCO Xenix.
|
||||
|
||||
### [2.2 Unix System V]{#ss2.2}
|
||||
|
||||
Γιά το Unix System V μέχρι και την τέταρτη Release, βλέπε [Το Unix όπως το γνωρίζουμε σήμερα: SVR1](04_unixevo-1.html#ref1). Μετά και αυτή την έκδοση, η
|
||||
ανάπτυξη του SV συνεχίστηκε από την θυγατρική της AT&T, Unix System Laboratories (USL), η οποία παρήγαγε το SVR4.2 στοχεύοντας και στην αγορά των desktop. Ο
|
||||
κώδικας του SVR4 περιήλθε στην ιδιοκτησία της Novell, όταν η απέκτησε την πλειοψηφία μετοχών στα USL. Εξέδωσε το δικό της SVR4-based Unix σαν UnixWare, μέχρι να
|
||||
πουλήσει τον κώδικα της R4 και το όνομα UnixWare στην Santa Cruz Operation (SCO). Το brand-name Unix έγινε ιδιοκτησία του X/OPEN και αργότερα του OpenGroup. Η
|
||||
SCO συνέχισε την ανάπτυξη του Unix System V, ιδιαίτερα στο επίπεδο του πηρύνα, προσθέτοντας χαρακτηριστικά ώστε να το καταστήσει ανταγωνιστικό στην αγορά των
|
||||
\"μεγάλων\" server, όπως υποστήριξη 64GB RAM, 512 logical disks, 1TB files και άλλα τέτοια \"μπαλωματάκια\". Στον πηρύνα της SVR5 στηρίζεται και το UnixWare της
|
||||
ίδιας εταιρίας.
|
||||
|
||||
### [2.3 SunOS/Solaris]{#ss2.3}
|
||||
|
||||
Η Sun ιδρύθηκε to 1982 από τον Bill Joy, ο οποίος συμμετείχε ενεργά στην ανάπτυξη της Berkeley Software Distribution. Δεν μπορεί λοιπόν να αποτελεί έκπληξη το
|
||||
γεγονός ότι η πρώτη έκδοση του λειτουργικού που διέθετε η Sun για το hardware το οποίο πουλούσε βασιζόταν σε μεγάλο βαθμό στο 4.xBSD. Στα πρώτα χρόνια της
|
||||
ύπαρξής του το SunOS επηρέασε καταλυτικά την κατεύθυνση ανάπτυξης του Unix με πρωτοποριακές ιδέες όπως το Network File System (NFS), το Network Information
|
||||
Service (NIS ή Yellow Pages-YP), το RPC (Remote Procedure Call) και το ξεχασμένο σήμερα XDR (External Data Representation) για ανταλλαγή δεδομένων, που ήταν
|
||||
τόσο επιτυχημένες ώστε ενσωματώθηκαν αμέσως στο SVR4 από την AT&T.
|
||||
|
||||
Στα επόμενα χρόνια, το SunOS ήταν εκείνο το οποίο ακολουθούσε την εξέλιξη των υπόλοιπων Unix, για αυτό η Sun μέσω της θυγατρικής της SunSoft έθεσε σαν στόχο την
|
||||
μετάβαση σε ένα SVR4-based λειτουργικό, στόχο τον οποίο δεν πέτυχε η πρώτη έκδοση του Solaris(1.0), όντας ακόμα βαθιά εξαρτημένη από το σχετικά απαρχαιωμένο
|
||||
SunOS. Τελικά με την έκδοση 2.1 του Solaris, η Sun έκανε ένα βήμα μπροστά υλοποιώντας μία ενιαία πλατφόρμα λογισμικού για το εξαιρετικό της hardware καθώς η 2.1
|
||||
μπορούσε να αξιοποιήσει όλους τους Sparc καθώς και τους x86 επεξεργαστές. Το SunOS συνέχισε την πορεία του παράλληλα με το Solaris (δεν ενδιαφέρει η εμπορική
|
||||
ονομασία αλλά η ταυτότητα του λειτουργικού και το αναφέρω αυτό λόγω των διπλών ονομασιών που έδινε η Sun στο Solaris) έως το 1994.
|
||||
|
||||
Με την έκδοση 2.5 το (συμβατό με POSIX από την 2.3 και με υποστήριξη του Motif από την 2.4) Solaris περιλαμβάνει και το CDE (Common Desktop Environment). Στην
|
||||
έκδοση 2.6 ,η οποία έχει την \"σφραγίδα\" UNIX 95, υπάρχει για πρώτη φορά η (αμφιλεγόμενη σήμερα, επαναστατική τότε γλώσσα της Sun) Java. Οι εκδόσεις 7 και 8
|
||||
(το δύο \"κόπηκε\" από τους \"bad marketing people\") είδαν βελτιώσεις στα utilities διαχείρισης συστήματος και στις επιδόσεις, ενώ αναμένεται στην επόμενη
|
||||
έκδοση η υιοθέτηση του GNOME ως default γραφικού περιβάλλοντος (σ.σ. : εγώ πάντως στον UltraSparc που θα πάρω τα Χριστούγεννα για το subnet του πλυσταριού θα
|
||||
τρέχω Linux :)
|
||||
|
||||
### [2.4 HP-UX]{#ss2.4}
|
||||
|
||||
Η Hewlett-Packard παρουσίασε την δική της εκδοχή του Unix με το λανσάρισμα του HP-UX 1.0 το 1986. Η πρώτη αυτή έκδοση βασιζόταν στο SVR2 και το HP-UX ακολούθησε
|
||||
την πορεία του SV μέχρι και την R4. Αρχικά το υποστηριζόμενο hardware ήταν μόνο ο HP9000/500 (μέχρι και 7 επεξεργαστές υποστηριζόμενοι) από τις πρώιμες
|
||||
SIII-based εσωτερικές εκδόσεις της HP, ενώ αργότερα χρησιμοποιήθηκαν οι 680Χ0 της Motorolla. Σημαντικό γεγονός στην εξέλιξη του λειτουργικού ήταν η εμφάνιση του
|
||||
Visual User Environment, ενός έγχρωμου(μη γελάτε μερικοί, δεν ήταν καθόλου αυτονόητο to 1990), με ψευδοτρισδιάστατη αίσθηση και αισθητικά υπέροχου (οκ, εντελώς
|
||||
υποκειμενικό αυτό) GUI δημιουργημένου πάνω στο Motif της HP. Βεβαία λίγα στοιχεία θα φανούν διαφορετικά σε όσους είδαν τα Windows 95 (μείον τις
|
||||
επαναλαμβανόμενες ανά πεντάλεπτο, με διαφορετική δικαιολογία κάθε φορά BSODs), αφού ακούγεται ότι η Microsoft το αντέγραψε μέχρι αηδίας. Το 1992, η HP
|
||||
ανακαλύπτει ότι το νόημα της ύπαρξης είναι το standardization, αφού το HP-UX 9.0 είναι POSIX.!, POSIX.2, XPG4, SVID1 και SVID2 compliant ενώ είναι και
|
||||
βελτιωμένο σε όλους τους τομείς σε σχέση με τις προηγούμενες εκδόσεις. Τη λίστα μεγαλώνει το UNIX 95 certified HP-UX 10.0 που ενσωματώνει και τις real-time
|
||||
extensions του POSIX standard, είναι δηλαδή συμβατό με POSIX.1b. Τελευταία έκδοση η 64μπιτη 11.0 (1997) με δεν συμμαζεύεται χαρακτηριστικά για τους hi-end
|
||||
servers/workstations.
|
||||
|
||||
### [2.5 AIX]{#ss2.5}
|
||||
|
||||
Δεν ήταν παρά το 1986, όταν η Big Blue ξεκίνησε να διαθέτει το δικό της Unix κλώνο υπό την ονομασία AIX. Το AIX ήταν βασισμένο στην έκδοση 3.2 του Unix System V
|
||||
και ενσωμάτωνε στοιχεία του 4.3BSD, ενώ προοριζόταν να αποτελέσει το λειτουργικό σύστημα των workstations που (μεταξύ πολλών άλλων) παρήγαγε τότε η IBM.
|
||||
Μένοντας συνεχώς κάτω από την άμεση εποπτεία της \"μαμάς\", το AIX ακολούθησε από κοντά τις εξελίξεις στην οικογένεια των Unix αφού αυτή συμμετείχε στην
|
||||
ανάπτυξη του CDE και στο X/Open (βλέπε Standardization). Έτσι, η εξέλιξή του μπορεί να θεωρηθεί ότι ακολουθεί τα πασίγνωστα standards POSIX, XPG\* ενώ ήταν από
|
||||
τα πρώτα λειτουργικά με τη \"σφραγίδα\" UNIX 98.
|
||||
|
||||
### [2.6 NeXTSTEP]{#ss2.6}
|
||||
|
||||
Το NeXTSTEP ήταν το λειτουργικό που ανέπτυξε η NeXT Computers γιά το hardware που κατασκεύαζε τη δεκαετία του 80. Χρησιμοποιούσε τον Mach και βασιζόταν πάνω στο
|
||||
4.3BSD. Πάνω στο λειτουργικό έτρεχε ένα πρωτοποριακό, τότε, γραφικό περιβάλλον που έχει βρει το δρόμο του σε πολλούς σημερινούς (νεότερους τελοσπάντων) window
|
||||
managers, στον window maker, στα steps.Μία άλλη καινοτομία ήταν το σύστημα απεικόνισης Display PostScript γιά πραγματικό WYSIWYG. Ακόμα, το NeXTSTEP διατηρούσε
|
||||
ικανή συμβατότητα με τα BSD και ήταν (όχι σε όλες τις εκδόσεις του) POSIX-compliant. Μετά το 1993, η NeXT σταμάτησε να παράγει hardware και επικεντρώθηκε στην
|
||||
ανάπτυξη του λειτουργικού, ώστε το 1997 (ζυγίζοντας και πολλούς άλλους παράγοντες είναι η αλήθεια) η Apple το επέλεξε σαν βάση γιά την επόμενη γενιά του MacOS.
|
||||
Ανέφερα ότι πίσω από όλα αυτά ήταν ο Jobs;
|
||||
|
||||
### [2.7 IRIX]{#ss2.7}
|
||||
|
||||
Για την πορεία του IRIX ήταν δυνατό να βρεθούν λίγα στοιχεία πέρα από το ότι αντικατέστησε το MIPS OS στην πλατφόρμα hardware που παρήγαγε η Silicon Graphics.
|
||||
Στο μεγαλύτερο, πάντως, χρονικό διάστημα από τη στιγμή της πρώτης υλοποίησής του απευθυνόταν σε αγοραστές με extreme απαιτήσεις ενώ σήμερα είναι κατάλληλο για
|
||||
χρήση σε υπερυπολογιστές, servers ή workstations για όποιον θα ήθελε 80GB/s I/O bandwidth! Ανεπίβεβαίωτες πληροφορίες το θέλουν να είναι από την εποχή του
|
||||
Nintendo 64 η προτιμητέα πλατφόρμα για την ανάπτυξη παιχνιδιών για τις κονσόλες (pre-rendered σκηνές). Βεβαία αφού απευθύνεται και σε mid/hi-end servers δεν θα
|
||||
μπορούσε να λείπει η συμβατότητα με πλήθος standards, όπως UNIX 95, SVID3, XPG3, POSIX.
|
||||
|
||||
### [2.8 A/UX]{#ss2.8}
|
||||
|
||||
Το A/UX (=Apple\'s UNIX) ξεκίνησε την πορεία του σαν ένα SysV-derived λειτουργικό από την Apple. Στην πορεία, το A/UX ενσωμάτωσε πολλές από τις καινοτομίες που
|
||||
εισήχθησαν στην οικογένεια του Unix, τόσο από την SV όσο και από την BSD πλευρά. Πιό συγκεκριμένα, βασιζόταν στο SVR2.2, αλλά επηρεάστηκε από τα 4.2/4.3BSD και
|
||||
φυσικά από την SVR4, ώστε να πετύχει SVID/POSIX.1 συμβατότητα, ενώ έτρεχε στους 680x0 της Motorola. Οι 3.x.x εκδόσεις είχαν ικανή συμβατότητα με το MacOS, αλλά
|
||||
τελικά η Apple εγκατέλειψε το A/UX στα μέσα της δεκαετίας του 90.
|
||||
|
||||
### [2.9 OSF/1]{#ss2.9}
|
||||
|
||||
Η κυριαρχία της AT&T στον χώρο των λειτουργικών συστημάτων, χάρη στην επιτυχία του System V, έφερε σαν απάντηση την σύνθεση ενός consortium (Open Software
|
||||
Foundation) από τις IBM, HP, DEC κ.α. με στόχο την δημιουργία ενός συστήματος το οποίο θα μπορούσε να ανταγωνιστεί το SVR4. Μοναδικός καρπός αυτής της,
|
||||
καταδικασμένης όπως αποδείχθηκε αργότερα, προσπάθειας ήταν το OSF/1 (κάτω από τον Mach) το οποίο γνώρισε σχεδόν πλήρη εμπορική αποτυχία. Από την απόρριψη
|
||||
διέφυγε μόνο το γραφικό περιβάλλον που περιλαμβάνονταν στο OSF/1, το πασίγνωστο ακόμα και σήμερα Motif, που πέρασε στις περισσότερες από τις μεταγενέστερες του
|
||||
1990 βαριάντες. Μόνη εταιρία που βάσισε την δική της έκδοση Unix στο δημιούργημα του Open Software Foundation (το οποίο εγκαταλείφθηκε από τους δημιουργούς του
|
||||
και στράφηκε στην τυποποίηση) ήταν η DEC. To DEC OSF/1 βεβαία μικρή σχέση είχε με το σύστημα του 1990, αφού η DEC το βελτίωσε δραματικά σε κάθε σχεδόν τομέα
|
||||
ενσωματώνοντας παράλληλα το πλήθος των χαρακτηριστικών που έλειπαν από το OSF/1 σε σχέση με το SV και την BSD. Με άλλα λόγια, η στιγμή γέννησης του OSF/1, ήταν
|
||||
και η στιγμή του θανάτου του, αφού καθυστερημένο από τεχνικής άποψης και χωρίς υποστήριξη από τα μέλη του OSF, ήταν καταδικασμένο να αποτύχει.
|
||||
|
||||
### [2.10 Minix]{#ss2.10}
|
||||
|
||||
ΟΚ, όλοι έχουν ακούσει για \"το λειτουργικό από το οποίο εμπνεύστηκε ο Linus\". Αλλά αυτό είναι μάλλον το λιγότερο που προσέφερε το Minix στον τομέα της
|
||||
πληροφορικής, ή μάλλον είναι ακριβώς αυτό : η έμπνευση. Το Minix είναι τέκνο του γνωστού καθηγητή του πανεπιστημίου Vrije στο Amsterdam, Andrew S. Tannenbaum, ο
|
||||
οποίος το ανέπτυξε γιά μία και μόνο χρήση, τη διδασκαλία των εσωτερικών διεργασιών ενός λειτουργικού συστήματος. Αυτός ο σκοπός δεν θα μπορούσε να επιτευχθεί με
|
||||
κάποιο άλλο Unix, λόγω της περιπλοκότητας και των πνευματικών δικαιωμάτων που τα καλύπτουν. Έτσι, ο Tannenbaum προχώρησε στην συγγραφή ενός Unix κλώνου, δικού
|
||||
του copyright, το οποίο διέθεσε μαζί με τον κώδικα σε όποιον θα ήθελε να το χρησιμοποιήσει γιά εκπαιδευτικούς σκοπούς. Μόλις ένα μήνα μετά την έκδοση του
|
||||
λειτουργικού, το comp.os.minix είχε συγκεντρώσει 10000 συμμετέχοντες, αρκετοί από τους οποίους προσέφεραν τη δουλειά τους γιά την περεταίρω εξέλιξη του Minix.
|
||||
Πραγματοποιήθηκαν ports σε άλλες αρχιτεκτονικές πλην του IBM PC, PC/AT (Atari ST, Commodore Amiga, Macintosh-εδώ υπήρχε συνύπαρξη με το λειτουργικό της Apple).
|
||||
Ωστόσο, ο Tannenbaum ποτέ δεν έχασε την βασική ιδέα που τον οδήγησε στη δημιουργία του συστήματος και πεισματικά αρνιόταν την πλειοψηφία των προσφορών γιά την
|
||||
βελτίωση/επέκταση του Minix, αφού όπως λέει και ο ίδιος \"ήθελα να κρατήσω το λειτουργικό αρκετά μικρό ώστε οι φοιτητές μου να μπορούν να το κατανοήσουν σε ένα
|
||||
εξάμηνο\"(ελεύθερη μετάφραση). Βεβαία, ταυτόχρονα εξελίσσονται ανεξάρτητες προσπάθειες πάνω στο Minix (που πλέον διατίθεται και κάτω από την BSD άδεια), γιά
|
||||
συμβατότητα με το POSIX.1 πρότυπο, με τη C89 και άλλα παρόμοια. Κώδικας του Minix χρησιμοποιήθηκε (μέχρι να αντικατασταθεί από νέο) στα (πολύ, πάρα πολύ) πρώτα
|
||||
στάδια της ανάπτυξης του πηρύνα από τον Linus.
|
||||
|
||||
### [2.11 BSDi]{#ss2.11}
|
||||
|
||||
Το BSDi ή BSD/OS είναι ένα POSIX.1 (και εν μέρει POSIX.2) συμβατό Unix το οποίο βασίζεται πάνω στον 386BSD πηρύνα, δηλαδή σε ιδιόκτητο κώδικα και όχι σε κώδικα
|
||||
που διατίθεται κάτω από την BSD licence. Η τελευταία είναι η άδεια που χρησιμοποιείται για όσο από τον κώδικα του πηρύνα από το πανεπιστήμιο του Berkeley έχει
|
||||
μείνει στα open source FreeBSD, OpenBSD και NetBSD και η άδεια κάτω από την οποία διατίθεται ο κώδικας των τελευταίων. Δηλαδή το BSD/OS είναι ένα εμπορικό
|
||||
λειτουργικό που ανήκει στην εταιρεία Wind River, η οποία δίνει ιδιαίτερη έμφαση στον προσανατολισμό του δημιουργήματός της στις τεχνολογίες δικτύωσης και το
|
||||
οποίο έχει μία \"ιδιαίτερη\" σχέση με το FreeBSD(= ενσωματώνουμε και εκμεταλλευόμαστε τον κώδικά σας, η τουλάχιστον αυτό ακούγεται). Το σύστημα αυτό δεν
|
||||
φαίνεται να διαδραμάτισε κάποιο ρόλο στην κατεύθυνση της ανάπτυξης της οικογένειας Unix. Όπως ανέφερε παλαιότερα και ο Linus (για το 386BSD): μα είναι όνομα
|
||||
αυτό; φοβίζει τον κόσμο\...
|
||||
|
||||
### [2.12 UnixWare]{#ss2.12}
|
||||
|
||||
Το UnixWare αποτελεί το λειτουργικό της Santa Cruz Operation το οποίο απευθύνεται στους hi-end servers. Το UnixWare ξεκίνησε από τη Novell σαν ένα βασισμένο στο
|
||||
SVR4 σύστημα. Η ιδιοκτησία του πέρασε μετά το 1995 στην SCO, γιά να αντικαταστήσει το SVR3.2-based SCO UNIX. Παράλληλα η SCO εξέλισε την Unix System V Release 5
|
||||
(είχε αγοράσει την SVR4 \"πακέτο\" με το όνομα UnixWare) σε ένα 64-bit εξωτικών προδιαγραφών σύστημα, κατάλληλο για εφαρμογές υψηλών απαιτήσεων (τώρα τι
|
||||
κατάφερε είναι άλλο θέμα). Ο πηρύνας της SVR5 χρησιμοποιήθηκε στο UnixWare 7 (1997) που περιελάμβανε Motif, CDE και ένα περιβάλλον ανάπτυξης 64 bit εφαρμογών.
|
||||
Το σύστημα της SCO είναι συμβατό με POSIX.1/2, XPG4.2, έχει το mark UNIX 95 και γιά όποιους διαβάζουν το πορτοκαλί \"βιβλιαράκι\" βρίσκεται στο C2 επίπεδο
|
||||
ασφάλειας, όπως δηλαδή και τα ανταγωνιστικά του Unix. Υποστηρίζει την IA32 και η SCO συνεργάζεται με την IBM στο project Merced-64.
|
||||
|
||||
### [2.13 tru64 Unix]{#ss2.13}
|
||||
|
||||
Το κυρίαρχο στις 64 bit πλατφόρμες tru64 UNIX της Compaq, έχει πίσω του μακριά ιστορία. Πρόκειται γιά την εξέλιξη του DEC OSF/1 (μετέπειτα Digital UNIX, το
|
||||
οποίο η Compaq αγόρασε από την DEC γιά να το ξαναβαφτίσει στο σημερινό του όνομα). Από το DEC OSF/1, το tru64 κουβαλάει έναν 64μπιτο πηρύνα, βασισμένο πάνω στον
|
||||
CMU Mach 2.5 και με επιδράσεις από τα 4.xBSD και το SV. Η Compaq το εξέλιξε ώστε να πετύχει μερική συμβατότητα με το POSIX.1b και να πάρει το χαρακτηρισμό UNIX
|
||||
95. Φυσικά, τρέχει στους Alpha της DEC.
|
||||
|
||||
### [2.14 Mac OS X]{#ss2.14}
|
||||
|
||||
Η στροφή της Apple προς το Unix ήταν περισσότερο αποτέλεσμα του αδιεξόδου στην ανάπτυξη του MacOS και της επακόλουθης επιστροφής του Jobs στην εταιρία. Η
|
||||
επανένταξη του Jobs στο δυναμικό της εταιρίας έγινε με την εξαγορά της NeXT και σχεδόν άμεσα, ανακοινώθηκε από την Apple η πρόθεσή της να στηρίξει την επόμενη
|
||||
γενιά των λειτουργικών της σε πηρύνα Unix, αξιοποιώντας την δουλειά της NeXT. Έτσι, χρησιμοποιήθηκε το περιβάλλον Darwin γύρω από πηρύνα Mach, με τη χρήση των
|
||||
οποίων η Apple λανσάρει το γραφικό περιβάλλον Aqua. Στόχος αυτής της αλλαγής πορείας είναι η αξιοποίηση της σταθερότητας του BSD, και η φιλικότητα προς τον
|
||||
τελικό χρήστη. Συγχρόνως, η εταιρία διατυμπάνισε την επιλογή της για συνεργασία με την κοινότητα των υποστηρικτών του λογισμικού ανοικτού κώδικα (με
|
||||
αμφιλεγόμενη, πλέον, ειλικρίνεια προθέσεων) για την περαιτέρω βελτίωση του Darwin. Ακόμα, το Mac OS X στοχεύει και στην αγορά των servers αφού ο κώδικας
|
||||
δικτύωσης βασίζεται σχεδόν εξ\' ολοκλήρου στο 4.4BSD και εκδόσεις του λειτουργικού περιλαμβάνουν τον Apache.
|
||||
|
||||
|
||||
### [3. Open Source]{#s3}
|
||||
|
||||
Η ενηλικίωση του GNU project, αλλά και η αποδέσμευση των εκδόσεων του BSD από τα πνευματικά δικαιώματα της USL, μετά την αγορά της τελευταίας από τη Novell,
|
||||
συνετέλεσαν ώστε να δημιουργηθεί μία ικανή βάση στην οποία θα μπορούσε να στηριχθεί κάθε προγραμματιστής ο οποίος θα επιθυμούσε να συνεισφέρει στην κοινότητα
|
||||
ανοικτού κώδικα. Έτσι, μετά τις αρχές της προηγούμενης δεκαετίας, παρατηρείται εκθετική αύξηση στην συγγραφή open source προγραμμάτων και η κοινότητα εισάγει
|
||||
ένα νέο μοντέλο ανάπτυξης, που δίνει διέξοδο έκφρασης σε κάθε νέα ιδέα και αναγνωρίζει το δικαίωμα του κάθε ατόμου να μετέχει στην τεχνική πρόοδο.
|
||||
|
||||
### [3.1 GNU]{#ss3.1}
|
||||
|
||||
Το GNU project (GNU\'s Not Unix)ξεκίνησε το 1983, όταν ο Richard M. Stallman συνέλαβε την ιδέα της συγγραφής ενός ελεύθερου λειτουργικού συστήματος δανειζόμενου
|
||||
πολλά στοιχεία από την προϋπάρχουσα οικογένεια των Unix συστημάτων, αλλά χωρίς να χρησιμοποιεί πατενταρισμένο κώδικα. Η ιδέα πίσω από το όλο εγχείρημα είναι ότι
|
||||
η τεχνική γνώση είναι κτήμα της κοινωνίας και ότι ο περιορισμός της διάδοσής της είναι ενάντια στον κοινό συμφέρον. Όσοι προγραμματιστές ανταποκρίθηκαν στην
|
||||
πρόσκληση του Stallman, δημιούργησαν εκ του μηδενός πλήθος προγραμμάτων ανάλογα με αυτά των Unix, ώστε το 1985 είχαν διαθέσιμο τον editor emacs, έναν debugger
|
||||
σε επίπεδο πηγαίου κώδικα, ένα ανάλογο του yacc και περίπου 35 utilities. Ήδη ο gcc είχε κατορθώσει να μεταγλωτίσει τον εαυτό του και το Bash μπορούσε σχεδόν να
|
||||
χρησιμοποιηθεί. Όμως ο χρόνος που απαιτήθηκε για να φτάσει το GNU να περιλαμβάνει αρκετές χιλιάδες executables, τεκμηρίωση και libraries, ήταν πολλαπλάσιος (το
|
||||
1987 πραγματοποιήθηκε η πρώτη beta-release του gcc, το 1988 έγινε διαθέσιμη η Ghost Script) και τελικά το Free Software Foundation ήταν, στις αρχές της
|
||||
δεκαετίας του 90, σε θέση να διαθέσει μία λίγο-πολύ ολοκληρωμένη και χρησιμοποιήσιμη userland, καθώς ο πηρύνας Hurd (βασισμένος στον μικροπηρύνα CMU Mach)
|
||||
απείχε πολύ από την ολοκλήρωση. Τελικά, το υλικό του GNU μπόρεσε να αποτελέσει ένα χρησιμοποιήσιμο λειτουργικό με την προσθήκη του πηρύνα Linux, ο οποίος
|
||||
διανέμεται κάτω από την ίδια άδεια με τα υπόλοιπα μέρη του GNU.
|
||||
|
||||
Λόγω της τεράστιας αποδοχής του GNU/Linux, η ανάπτυξη του Hurd από το FSF πέρασε σε δεύτερη μοίρα και μόνο το 2001, μπόρεσε ο πηρύνας να αποτελέσει την \"ψυχή\"
|
||||
του GNU. Στο χρονικό διάστημα που μεσολάβησε, το Free Software Directory συνέχισε να μεγαλώνει, τροφοδοτούμενο από τους (δυνάμει) προγραμματιστές που το Linux
|
||||
εισήγαγε στην φιλοσοφία του ελεύθερου λογισμικού. Το 1997 ξεκίνησε η ανάπτυξη του GNOME (GNU Network Object Model Environment), ενός γραφικού περιβάλλοντος
|
||||
εργασίας, βασισμένο στην βιβλιοθήκη GTK+, καθώς και πολλών συνοδευτικών εφαρμογών για αυτό. Η πρώτη διανομή του GNU ήταν (είναι) η Debian GNU/Hurd το 2001.
|
||||
|
||||
### [3.2 GNU/Linux]{#ss3.2}
|
||||
|
||||
Χιλιοειπωμένη ιστορία! Ο Linus Torvalds (φοιτητής τότε στο πανεπιστήμιο του Ελσίνκι), γιά να εξασκηθεί στην C, ξεκίνησε το 1991 τη συγγραφή ενός πηρ\...
|
||||
Χμμ\...Ας περιοριστούμε στο Linux.Ο πηρύνας του Linux στην πρώτη του έκδοση (0.01) είχε δυνατότητα γιά task-switching, παρείχε pseudo-tty\'s, οδηγό γιά ΑΤ
|
||||
δίσκους, BSD sockets, BSD long filenames και system calls που έτειναν προς τις απαιτήσεις του POSIX στα 71KB του tarball. Δύο μήνες μετά, ο 0.11 προσέφερε
|
||||
demand loading, data sharing ανάμεσα στις διεργασίες, υποστήριξη οδηγού δισκέτας και ήχο (beep!) στην κονσόλα, ενώ έτρεχε αρκετά πλέον executables από το GNU
|
||||
Project. Εκτός του ότι ήταν ο πρώτος πηρύνας που μεταγλωττίστηκε κάτω από τον εαυτό του και πέρα από την πολύ σημαντική VM, το Linux 0.12 ήταν η πρώτη έκδοση
|
||||
του πηρύνα κάτω από την GPL.
|
||||
|
||||
Μετά και την έκδοση 1.0, το Linux έχει υποστήριξη SCSI και γύρω από τον Linus έχει αρχίσει να μαζεύεται η πολυπληθής παρέα που λίγοι μπορούν να ονομάσουν (Cox,
|
||||
κ.τ.λ.). Ο Cox είναι ο κύριος υπέυθυνος για τον firewalling κώδικα του πηρύνα ο οποίος βασίζεται ουσιαστικά στα BSD και διατηρήθηκε στους 1.x πηρύνες, στους
|
||||
οποίους οι προγραμματιστές του πηρύνα σταδιακά πρόσθεσαν/βελτίωσαν την υποστήριξη για συνδέσεις αρχικά SLIP και στη συνέχεια PPP, πάνω στις οποίες \"κάθονταν\"
|
||||
τα TCP/IP και IPX. Η έκδοση 2.0.x είδε την δεύτερη γενιά του firewall, ενώ με τους 2.2.x πηρύνες, το Linux απαγκιστρώνεται από τα BSD και αποκτά μία \"καθαρή\"
|
||||
υλοποίηση packet filtering, οδεύοντας προς το σημερινό netfilter. Συγχρόνως γίνονται ports και σε άλλες, πλην της x86, αρχιτεκτονικές , ώστε το Linux 2.0 να
|
||||
τρέχει σε Motorola 68K, Sparc, MIPS, Alpha και PPC, giά να φτάσουμε στον 2.4 στον οποίο το ls arch δίνει: alpha arm i386 ia64m68k mips mips64 parisc ppc s390 sh
|
||||
sparc sparc64. Σε όλη την εξέλιξη του πηρύνα αυτό που δεν μένει στάσιμο είναι το πλήθος των υποστηριζόμενων συσκευών το οποίο αυξάνεται αδιάκοπα, σε βαθμό που
|
||||
εδώ και λίγα χρόνια το GNU/Linux να θεωρείται εναλλακτική επιλογή και σαν desktop σύστημα.
|
||||
|
||||
Στο GNU/Linux ενσωματώνεται ο Samba server γιά την διευκόλυνση των μικτών δικτύων Unix/NT, ενώ ο πηρύνας αναγνωρίζει πλήθος άλλων filesystems και προτοκόλων
|
||||
επικοινωνίας, ώστε να καθιστούν το Linux σαν την πρώτη επιλογή όταν το ζητούμενο είναι η interoperability. Μία ακόμα καινοτομία που εισήγαγε το Linux είναι το
|
||||
μοντέλο ανάπτυξης προγραμμάτων ανοικτού κώδικα στο οποίο δεν υπάρχει κεντρική διαχείριση, μεσολαβεί μικρό χρονικό διάστημα μεταξύ των σταθερών εκδόσεων και ο
|
||||
κώδικας είναι διαθέσιμος στον καθένα σε όλα τα στάδια ανάπτυξής του (βλέπε [The Cathedral and the
|
||||
Bazaar](http://howto.hellug.gr/howto/pub/html/cathedral-bazaar.html)).
|
||||
|
||||
### [3.3 FreeBSD]{#ss3.3}
|
||||
|
||||
Η αρχική ομάδα του FreeBSD στηρίχθηκε πάνω στο 386BSD και έθεσε ως βασικό στόχο στην ανάπτυξη του λειτουργικού την υποστήριξη της PC πλατφόρμας καθώς και την
|
||||
παροχή περισσότερων ευκολιών στον τελικό χρήστη. Αφού αξιοποίησε τα patches για το 386BSD που ο δημιουργός του αδυνατούσε να εφαρμόσει, αντλώντας στοιχεία
|
||||
απευθείας από την 4.3BSD Networking Release 2 (Net/2) και \"ντύνοντάς\" το με υλικό από το GNU Project, η ομάδα διέθεσε το FreeBSD 1.0 το Δεκέμβρη του 1993.
|
||||
Μετά την μετάβαση στο 4.4BSD-Lite με την έκδοση 2.0, η δημοτικότητα του FreeBSD, αυξάνεται αλματωδώς και στο λειτουργικό ενσωματώνονται αρκετές καινοτομίες. Το
|
||||
1994 εισάγεται η έννοια του ports collection, την οποία υιοθετούν αργότερα και τα άλλα open source BSD\'s. Η ομάδα του FreeBSD επιτυγχάνει ταχύτατες υλοποιήσεις
|
||||
των γνωστότερων δικτυακών προτοκόλων, και η userland μεγαλώνει διαρκώς σε όγκο (υπάρχουν περίπου 4000 ports), ενώ καθίσταται δυνατή η χρήση shared libraries. Το
|
||||
λειτουργικό διατίθεται πλέον και γιά την πλατφόρμα των Alpha της DEC και προετοιμάζεται η μεταφορά του στο hardware της Sun.
|
||||
|
||||
### [3.4 NetBSD]{#ss3.4}
|
||||
|
||||
Η ανάπτυξη του NetBSD ξεκίνησε σαν μία προσπάθεια γιά την συνέχιση και ανανέωση του 386BSD, το οποίο, παρά τη μεγάλη του απήχηση, δεν μπορούσε να ακολουθήσει
|
||||
τις εξελίξεις λόγω της αδυναμίας του δημιουργού και συντονιστή του, Bill Jolitz, να εργαστεί εντατικά σε αυτό. Έτσι μία ομάδα χρηστών του 386BSD συνεργάστηκαν
|
||||
γιά να συνθέσουν τη δική τους διανομή, προσθέτοντας τη δική τους δουλειά και εφαρμόζοντας τον τεράστιο όγκο των patches που είχαν συνεισφέρει χρήστες του
|
||||
συστήματος και τα οποία έμεναν αναξιοποίητα στα χέρια του Jolitz. Το NetBSD group απορρόφησε μεγάλο μέρος της δουλειάς του Computer Systems Research Group
|
||||
(CSRG) του UCB καθώς και κώδικα από το GNU project. Στην έκδοση 1.0 έγινε η αναγκαστική, γιά νομικούς λόγους, αλλαγή βάσης στο 4.4BSD-Lite και τα BSD μπόρεσαν
|
||||
να εκμεταλλευτούν τον διαχωρισμό του κώδικα σε machine-independant και μη που είχε επιτύχει το CSRG, γιά την εύκολη μετάβαση σε νέες πλατφόρμες (porting).
|
||||
Ειδικά το NetBSD group έθεσε σαν μία από τις πρώτες προτεραιότητες τη συμβατότητα με όσο το δυνατό μεγαλύτερο αριθμό επεξεργαστών ή/και ηλεκτρονικών συσκευών,
|
||||
απόφαση που καθιστούσε σαν επιτακτική, πλέον, ανάγκη ο κώδικας του συστήματος να είναι καθαρογραμμένος και σωστά οργανωμένος. Το NetBSD ήταν το πρώτο
|
||||
open-source λειτουργικό που έτρεξε στον Alpha και μέσα στο 2001, οι επίσημα υποστηριζόμενες πλατφόρμες πλησιάζουν τις 40 (βεβαία αυτό το νούμερο θα έχει ήδη
|
||||
μεγαλώσει :). Είναι μερικώς συμβατό με το POSIX.1 και λιγότερο, με το POSIX.2, ενώ από το δέντρο του αντλούν στοιχεία πολλές ports των άλλων BSD συστημάτων.
|
||||
|
||||
### [3.5 OpenBSD]{#ss3.5}
|
||||
|
||||
Το OpenBSD γεννήθηκε από ένα fork στην ανάπτυξη του NetBSD, όταν μία ομάδα προγραμματιστών συνέχισε την εργασία της πάνω στον κώδικα του NetBSD δίνοντας
|
||||
ιδιαίτερη προσοχή στην ασφάλεια του συστήματος. Από το 1996 μέχρι και σήμερα μία ομάδα από 12 άτομα \"χτένισε\" τον κώδικα στον οποίο βασίζεται το OpenBSD
|
||||
αναζητώντας bugs, σχεδιαστικά λάθη, παραλήψεις τα οποία μπορούσαν να χρησιμοποιηθούν γιά να αποδυναμωθεί η ασφάλεια του μηχανήματος. Θεμελιώδη σημασία γιά το
|
||||
OpenBSD είχε η απόφαση των δημιουργών του να το αναπτύξουν στον Καναδά και να δέχονται (στον τομέα που αναφέρεται παρακάτω) συνεισφορές μόνο εκτός Ηνωμένων
|
||||
Πολιτειών, παρακάμπτοντας με τον τρόπο αυτό τους νόμους των ΗΠΑ περί εξαγωγής μεθόδων κρυπτογράφησης. Έτσι με το λειτουργικό μπορούν να διανέμονται οι DES,
|
||||
triple DES, Blowfish και Cast transforms που βρίσκουν εφαρμογή στο IPSEC και στον Kerberos, δίνοντας στο σύστημα πρωτοποριακές (τότε), σε σχέση με τα άλλα open
|
||||
source λειτουργικά, δυνατότητες στον τομέα της ασφάλειας των επικοινωνιών και της κρυπτογράφησης ευαίσθητων δεδομένων. Εξίσου σημαντική, γιά όλα τα ανοικτού
|
||||
κώδικα συστήματα, ήταν (είναι) και η ανάπτυξη του OpenSSH, μιας ανοικτής υλοποίησης του προτοκόλου SSH, συμβατή με όλες τις εκδόσεις του τελευταίου. Επιπλέον, η
|
||||
κοινή βάση με το NetBSD διευκολύνει τη μεταφορά του OpenBSD σε νέες αρχιτεκτονικές, με 11 ports να έχουν ολοκληρωθεί και αρκετές να βρίσκονται σε εξέλιξη.
|
||||
|
||||
|
||||
### [4. Standardization]{#s4}
|
||||
|
||||
Ήδη από τις αρχές της δεκαετίας του 80, τα νέα χαρακτηριστικά που εισήγαγαν οι κυριότερες βαριάντες Unix, διεύρυναν τις ασυμβατότητες μεταξύ τους. Το φαινόμενο
|
||||
αυτό μετριαζόταν, αφού όπως παραδοσιακά συνέβαινε στην οικογένεια του Unix, κάθε καινοτομία υιοθετούνταν άμεσα από όλους τους κατασκευαστές, αλλά και πάλι
|
||||
κανένας προγραμματιστής δεν μπορούσε να είναι βέβαιος ότι η εφαρμογή που ανέπτυσσε γιά ένα σύστημα θα μπορούσε να χρησιμοποιηθεί και σε κάποιο άλλο. Για τη
|
||||
διευκόλυνση των χρηστών/πελατών, οι εταιρίες που συμμετείχαν στην ανάπτυξη Unix συστημάτων, συνεργάστηκαν γιά την καθιέρωση ορισμένων κοινά αποδεκτών standards,
|
||||
με στόχο την ευρύτερη συμβατότητα. Τούτη η προσπάθεια αποτέλεσε τον κλασικό τρόπο αντιμετώπισης του προβλήματος του fragmentation γιά περισσότερο από μία
|
||||
δεκαετία. Σήμερα, τα open source Unix συστήματα είναι μάλλον αυτά που ακολουθούν το σωστότερο δρόμο, γιατί σε αυτά το συμφέρον των χρηστών/δημιουργών είναι
|
||||
εκείνο που καθορίζει την κατεύθυνση της ανάπτυξης.
|
||||
|
||||
### [4.1 SVID]{#ss4.1}
|
||||
|
||||
Η System V Interface Definition αποτέλεσε μέρος της προσπάθειας της AT&T να καταστήσει το SV de facto standard στον κόσμο των Unix. Η SVID καθορίζει τεχνικά
|
||||
χαρακτηριστικά του Unix System V τα οποία παρέχονται με την εγγύηση ότι θα διατηρηθούν στις επόμενες εκδόσεις και κάθε SVID-compliant σύστημα δεσμεύεται από την
|
||||
υποχρέωση να διατηρήσει αυτή την συμβατότητα. Ακόμα, περιγράφει λεπτομερώς τα interfaces που παρέχονται για τις εφαρμογές, ώστε να εξασφαλίζει στον
|
||||
προγραμματιστή ότι αν γράψει μία εφαρμογή στο πλαίσιο της SVID, αυτή θα μπορεί να εκτελεστεί σε όλα τα συμβατά συστήματα. Φυσικά, οι εκδόσεις του System V είναι
|
||||
SVID-compliant και η SVID συνέχισε να εξελίσσεται με κάθε νέα υλοποίηση του Unix από την AT&T. Οι προδιαγραφές που όρισε η System V Interface Definition
|
||||
αποτέλεσαν τη βάση γιά τα standard που υιοθέτησε το X/OPEN Consortium και πέρασαν σχεδόν αυτούσιες στην Single UNIX Specification.
|
||||
|
||||
### [4.2 POSIX]{#ss4.2}
|
||||
|
||||
Η ανησυχία γιά την ασυμβατότητα ανάμεσα στις βαριάντες/εκδόσεις Unix, οδήγησαν το 1981 την ομάδα χρηστών /usr/group στην αναζήτηση ενός standard το οποίο θα
|
||||
εξασφάλιζε portability γιά τις διάφορες εφαρμογές. Το πρώτο αποτέλεσμα της προσπάθειάς τους δημοσιοποιήθηκε το 1984 και δεδομένης της ευρύτητας του
|
||||
εγχειρήματος, η προσπάθεια συνεχίστηκε μετά το 1985 μέσα από την IEEE (Institute for Electrical and Electronics Engineers) στο πλαίσιο του Project 1003 (P1003).
|
||||
Ο σκοπός αυτού του project ήταν ο καθορισμός ενός συνόλου από standards που θα καθόριζαν τον τρόπο αλληλεπίδρασης του λειτουργικού συστήματος με τις εφαρμογές
|
||||
και το οποίο ονομάστηκε POSIX (στην εισαγωγή του POSIX.1 αναφέρεται: \"The name POSIX was suggested by Richard Stallman. It is expected to be pronounced
|
||||
pahz-icks as in positive, not poh-six, or other variations. The pronounciation has been published in an attempt to promulgate a standardized way of referring to
|
||||
a standard operating system interface\".
|
||||
|
||||
Από τα POSIX standards, μεγαλύτερη προσοχή δίνεται συνήθως στο P1003.1 (POSIX.1), το απόλυτο minimum γιά να μπορεί ένα λειτουργικό να ισχυριστεί ότι ανήκει στην
|
||||
οικογένεια των Unix συστημάτων. Το POSIX.1 καθορίζει το system interface (system calls, signals, files, pipes, I/O, κ.τ.λ.). Στο POSIX.1b περιλαμβάνεται το
|
||||
real-time interface, δηλαδή τα real-time signals/priorities, file synchronization, asynchronous I/O, semaphores κ.α. Το POSIX.1c ασχολείται με τα threads, το e
|
||||
με την ασφάλεια, το d περιλαμβάνει τις λεγόμενες real-time extensions, γιά να μη σας πω ότι το real-time υποσύνολο ονομαζόταν POSIX.4 και ότι το POSIX.3.5
|
||||
καλύπτει την Ada. Είναι πλέον φανερό το εύρος του POSIX πρότυπου. Κάτω από αυτό το πρίσμα δεν μπορεί να θεωρηθεί έκπληξη το γεγονός ότι τα νεότερα standards
|
||||
χτίζουν πάνω σε κάποια από τα είκοσι και πλέον υποσύνολα του POSIX προτύπου.
|
||||
|
||||
### [4.3 XPG3/4]{#ss4.3}
|
||||
|
||||
To X/OPEN consortium γεννήθηκε το 1984 στην Ευρώπη (=από ευρωπαϊκές εταιρίες) και είχε σαν στόχο του τον ορισμό των standards που θα έπρεπε να πληρεί ένα
|
||||
σύστημα γιά να μπορεί να χαρακτηριστεί Unix. Αργότερα στο X/OPEN προσχώρησαν όλες σχεδόν οι εταιρίες που κατασκεύαζαν Unix κλώνους. Το consortium αυτό δεν
|
||||
εισήγαγε δικά του standards, αλλά υιοθέτησε τα ήδη υπάρχοντα, ώστε να είναι ευκολότερη η οριοθέτηση ενός κοινά αποδεκτού interface γιά την ανάπτυξη εφαρμογών,
|
||||
λύση που πήρε τη μορφή του Common Applications Environment. Το CAE βασιζόταν κατά το μεγαλύτερο μέρος του στην SVID και περιελάμβανε τα βασικότερα POSIX
|
||||
standards. Η πιστοποίηση της συμμόρφωσης γινόταν με το X/OPEN Portability Guide (XPG), πιστοποίηση την οποία είχε και το SVR4 (XPG3). Το XPG3 καθόριζε i18ned
|
||||
system calls και βιβλιοθήκες, εντολές και utilities, καθώς και χαρακτηριστικά της C και την αλληλεπίδραση μεταξύ των XPG3-certified συστημάτων. Στην
|
||||
interoperability επικεντρωνόταν και το XPG4 του 1992. Σαν αποτέλεσμα της συγχώνευσης του Open Software Foundation με το X/OPEN consortium, το XPG περιέχεται
|
||||
πλέον στην Single UNIX Specification του OpenGroup (το προϊόν αυτής της συγχώνευσης).
|
||||
|
||||
### [4.4 Single UNIX Specification]{#ss4.4}
|
||||
|
||||
Το 1993 το X/OPEN consortium ανέλαβε την ευθύνη της παραγωγής ενός specification γιά τα κοινότερα Application Programming Interfaces, ώστε να είναι δυνατή η
|
||||
άμεση μεταφορά ανάμεσα στις διάφορες πλατφόρμες που θα το ακολουθούσαν. Γιά να επιτύχει αυτή την τεράστια ενοποίηση, το X/OPEN κατέγραψε τα (αθροιστικά) 1170
|
||||
διαφορετικά APIs που προβλέπονται από την System V Interface Definition, το X/OPEN Portability Guide, το Application Environment Specification Full Use
|
||||
Interface (AES) από το Open Software Foundation και μία ανάλυση των περισσότερο διαδεδομένων εφαρμογών, γιά αυτό και το αποτέλεσμα αυτής της προσπάθειας έγινε
|
||||
γνωστό σαν Spec 1170. Μετά από ορισμένες μετατροπές και/ή προσθέσεις, το X/OPEN παρουσίασε τον καρπό αυτού του εγχειρήματος με το όνομα Single UNIX
|
||||
Specification. Τα συμβατά συστήματα, όπως το AIX, το IRIX, το HP-UX και άλλα, λαμβάνουν το mark UNIX 95.
|
||||
|
||||
### [4.5 Single UNIX Specification 2]{#ss4.5}
|
||||
|
||||
To OpenGroup consortium παρουσίασε το 1997 ένα ευρύτερο σύνολο προδιαγραφών, το οποίο επέκτεινε το αρχικό standard του X/OPEN, με την ονομασία Single UNIX
|
||||
Specification, Version 2. Σύμφωνα με τις θέσεις του OpenGroup, το νέο standard αποσκοπούσε στην εδραίωση του Unix ως την πρώτη επιλογή γιά εργασίες που απαιτούν
|
||||
υψηλή αξιοπιστία και την καθιέρωσή του στον τομέα της επεξεργασίας γραφικών με υψηλές επιδόσεις. Η Version 2 είναι υπερσύνολο της πρώτης έκδοσης και τα νέα
|
||||
στοιχεία που εισάγει περιλαμβάνουν extended threads functions, συμβατότητα με τα νεότερα POSIX, το γνωστό σαν N-bit cleanup, τον διαχωρισμό δηλαδή του
|
||||
architecture-dependant κώδικα (όσον αφορά το data-length), με άλλα λόγια επιτρέπει τη μετάβαση στα 64 bit. Επιπλέον, προβλέπει αρχεία ικανού μεγέθους γιά να
|
||||
εξυπηρετηθούν οι σύγχρονες εφαρμογές (κυρίως οι βάσεις δεδομένων), dynamic linking extensions (όχι δεν ξέρω που χρησιμεύουν :) και Year 2000 Allignment (όχι ότι
|
||||
χρειαζόταν). Βεβαία, όλα αυτά και διατηρώντας προς τα πίσω συμβατότητα. Με στοιχεία του 1999, μόνο η IBM, η Sun και η NCR είχαν πιστοποιήσει ως UNIX 98 κάποιο
|
||||
από τα προϊόντα τους.
|
||||
|
||||
257
content/articles/31/05_blender_intro.md
Κανονικό αρχείο
257
content/articles/31/05_blender_intro.md
Κανονικό αρχείο
|
|
@ -0,0 +1,257 @@
|
|||
+++
|
||||
title = 'Είσαγωγη στο Blender 3D'
|
||||
date = '2001-06-01T00:00:00Z'
|
||||
description = ''
|
||||
author = 'Καπελώνης Κωστής για το Magaz ( magaz.hellug.gr(http://magaz.hellug.gr) )'
|
||||
issue = ['Magaz 31']
|
||||
issue_weight = 5
|
||||
+++
|
||||
|
||||
----------------------------------------------------------------------------------------------------------------------------------------------------------------
|
||||
|
||||
*Το άρθρο αυτό αποτελεί μια είσαγωγη στο \"μαγικό\" κόσμο του 3D Modelling. Το πακέτο τρισδιάστατων γραφικών που επιλέχτηκε είναι το δημοφιλές Blender 3D.
|
||||
Απεύθυνεται σε άτομα χρήστες του Linux με μηδαμινή γνώση σε αυτον τον τομέα.*
|
||||
|
||||
----------------------------------------------------------------------------------------------------------------------------------------------------------------
|
||||
|
||||
**1. Εισαγωγή**
|
||||
-----------------------------------------------
|
||||
|
||||
**2. Τι είναι το Blender;**
|
||||
-----------------------------------------------------------
|
||||
|
||||
**3. Έτσι όπως μας τα λες φαίνεται πολύ \"σοβαρό\" πρόγραμμα. Γιατί εγώ ο ταπεινός Linux-as να ασχοληθώ μαζί του;**
|
||||
---------------------------------------------------------------------------------------------------------------------------------------------------
|
||||
|
||||
**4. Ακούγεται πολύ καλό για να είναι αληθινό\...Κάποιο λάκκο έχει η φάβα\...**
|
||||
---------------------------------------------------------------------------------------------------------------
|
||||
|
||||
**5. Εγκατάσταση**
|
||||
--------------------------------------------------
|
||||
|
||||
**6. Γνωριμία με το περιβάλλον**
|
||||
----------------------------------------------------------------
|
||||
|
||||
**7. Η Θεωρία**
|
||||
-----------------------------------------------
|
||||
|
||||
**8. Η Πράξη**
|
||||
----------------------------------------------
|
||||
|
||||
**9. Επίλογος**
|
||||
-----------------------------------------------
|
||||
|
||||
|
||||
### [1. Εισαγωγή]{#s1}
|
||||
|
||||
Ωραία! Επιτέλους εγκαταστήσαμε το Linux στον υπολογιστή μας και αρχίζουμε να το χρησιμοποιούμε. Και τώρα;
|
||||
|
||||
Προφανώς θα ασχοληθούμε με προγραμματισμό σε κάποιες από τις άπειρες γλώσσες που λογικά διαθέτει η διανομή που εγκαταστήσαμε. Θα σερφάρουμε και λίγο στο
|
||||
INTERNET, θα στήσουμε κανέναν Server και γενικά θα κάνουμε όλα τα φυσιολογικά πράγματα που κάνουν όλοι οι Linux-άδες. Κάτι λείπει όμως\....
|
||||
|
||||
Πιστεύω ότι η εξίσωση Linux-ας = guru στον προγραμματισμό είναι λανθασμένη, και η σωστή είναι Linux-ας= \"ψαγμένο\" άτομο που χρησιμοποιεί στο έπακρο το PC του.
|
||||
|
||||
Παράλληλα έχω βαρεθεί όλους αυτούς που χρησιμοποιούν Χ-windows μόνο και μόνο για να σηκώνουν πολλαπλά τερματικά. Είναι δυνατόν να αγοράζουν ένα μηχάνημα τόσων
|
||||
χιλιάδων, για το πληκτρολόγιο και την οθόνη;(ποντίκι μόνο για αλλαγή focus :-)
|
||||
|
||||
Αποφάσισα λοιπόν να γράψω αυτό το άρθρο για ένα πρόγραμμα που:
|
||||
|
||||
- θα φτάσει τον υπολογιστή σας στα όρια του αφήνοντας σας έκπληκτους με τις δυνατότητές του.
|
||||
- Θα εκμεταλλευτεί την πανάκριβη κάρτα γραφικών σας.
|
||||
- θα αναδείξει την καλλιτεχνική φλέβα που όλοι κρύβετε μέσα σας.
|
||||
- Θα σας κάνει να δείτε με άλλο μάτι τα εφφέ των ταινιών.
|
||||
- θα αποδείξει ότι οι Linux-αδες δεν προγραμματίζουν μόνο.
|
||||
|
||||
Το πρόγραμμα αυτό είναι το [Blender 3D](www.blender.nl)
|
||||
|
||||
|
||||
### [2. Τι είναι το Blender;]{#s2}
|
||||
|
||||
Το Blender είναι μια πλήρης σουίτα 3D CAD με δυνατότητες παραγωγής στατικών εικόνων ή 3D animation (video). Είναι επαγγελματικό εργαλείο και η εταιρία που το
|
||||
κατασκεύασε το χρησιμοποιούσε αρχικά η ίδία για τις ανάγκες τις πριν το δώσει στο ευρύ κοινό. Είναι \"ώριμο\" προγραμματιστικά και έχει προχωρημένα 3D
|
||||
χαρακτηριστικά (radiosity,particles) που αλλά παρόμοια προγράμματα (σε Linux) μόνο ονειρεύονται.
|
||||
|
||||
Είναι cross platform (SGI,Sun,FreeBSD x86,Linux x86,Linux Alpha,Linux PPC,BeOS x86,WINDOWS), μικρό στο download (λιγότερο από 2MB), πλήρως επεκτάσιμο
|
||||
(plugins-αρκεί να ξέρετε Python), και είναι Δωρεάν!!
|
||||
|
||||
Άλλα τέτοια προγράμματα που τρέχουν μόνο σε Windows(3D studio,Lightwave,Truespace) απαιτoύν μια μικρή περιουσία. Την τελευταία φορά που είδα την τιμή του 3D
|
||||
Studio MAX ήταν 2.000.000 δρχ (δυο εκατομμύρια δραχμές).
|
||||
|
||||
Και μην αρχίσω να μιλάω για το SoftImage Extreme της M\$\...
|
||||
|
||||
Το Blender μέχρι την έκδοση 1.8 προσφερόταν δωρεάν αλλά για να χρησιμοποιήσει κανείς όλες τις δυνατότητές του έπρεπε να αγοράσει ένα C-key που τις ξεκλείδωνε.
|
||||
Από την έκδοση 1.8 και μετά διατίθεται εντελώς δωρεάν με όλες τις δυνατότητες του ακόμα και για επαγγελματική (commercial) χρήση.
|
||||
|
||||
|
||||
### [3. Έτσι όπως μας τα λες φαίνεται πολύ \"σοβαρό\" πρόγραμμα. Γιατί εγώ ο ταπεινός Linux-as να ασχοληθώ μαζί του;]{#s3}
|
||||
|
||||
Με το Blender μπορείτε να κάνετε τα εξής:
|
||||
|
||||
- Εικόνες για backgrounds,icons
|
||||
- Animated GIFs για την σελίδα σας
|
||||
- γραφικά για το τρομερό παιχνίδι που φτιάχνετε (χε,χε\...)
|
||||
- να μάθετε για το πως λειτουργούν τα 3D γραφικά.
|
||||
- να ετοιμάσετε τον Terminator 4 :-)
|
||||
|
||||
Βασικά για να μετατρέψετε το Linux σας σε ένα μικρό **Silicon Graphics Workstation** (Ωραία δεν ακούγεται;)
|
||||
|
||||
Εδώ μπορείτε να δείτε το περιβάλλον εργασίας του Blender
|
||||
|
||||
[\[tank.jpg 97k\]](/31/img/tank.jpg) [\[cup.jpg 89k\]](/31/img/cup.jpg) [\[robot 13k\]](/31/img/robot.jpg)
|
||||
|
||||
Εδώ εικόνες από μέσους χρήστες: [www.blendermania.com](http://www.blendermania.com)
|
||||
|
||||
και εδώ από επαγγελματίες
|
||||
|
||||
[\[bottes.jpg 43k\]](/31/img/bottes.jpg) [\[doogieducati.jpg 51k\]](/31/img/doogieducati.jpg) [\[couteau.jpg 43k\]](/31/img/couteau.jpg) [\[blues.jpg 72k\]](/31/img/blues.jpg)
|
||||
[\[zippo.jpg 25k\]](/31/img/zippo.jpg) [\[lagrangedwarf.jpg 170k\]](/31/img/lagrangedwarf.jpg)
|
||||
|
||||
(Ναι **ΌΛΑ** αυτά είναι από υπολογιστή και όχι πραγματικές φωτογραφίες)
|
||||
|
||||
|
||||
### [4. Ακούγεται πολύ καλό για να είναι αληθινό\...Κάποιο λάκκο έχει η φάβα\...]{#s4}
|
||||
|
||||
Where \'s the catch? Που λένε και οι αμερικάνοι
|
||||
|
||||
Ορίστε τι σας \"έκρυψα\" μέχρι τώρα.
|
||||
|
||||
- Αν και το Blender δίνεται δωρεάν, ΔΕΝ είναι open-source. Κάποια μέρη του προσφέρονται open-source άλλα όχι ολόκληρο.
|
||||
- Επειδή είναι cross-platform δεν μπορούσε να υιοθετήσει κάποιο περιβάλλον (look-n-feel) ενός λειτουργικού συστήματος. Έτσι το Blender διαθέτει το δικό του
|
||||
γραφικό περιβάλλον (toolkit) το οποίο αν δεν σας \"ξενίσει\" θα σας φανεί δύσχρηστο στη αρχή.
|
||||
- Εκτός από tooltips μέσα στο πρόγραμμα δεν έχει online βοήθεια ή οργανωμένη τεκμηρίωση(documentation).Μην ανησυχείτε όμως! Τα διάφορα tutorials στο ΙΝΤΕΡΝΕΤ
|
||||
καθώς και το magaz ;-) είναι εδώ.
|
||||
- Κανείς δεν είπε ότι το 3D modelling είναι εύκολο. Ακριβώς όπως το πρώτο σας πρόγραμμα, δεν ήταν ένα λειτουργικό σύστημα μην περιμένετε οι πρώτες σας
|
||||
δημιουργίες να είναι ότι είδατε στα screenshots.\
|
||||
Σας απογοήτευσα τώρα,ε; :-(
|
||||
|
||||
|
||||
### [5. Εγκατάσταση]{#s5}
|
||||
|
||||
To Blender μπορείτε να το πάρετε από την επισήμη σελιδά με http απο την http://www.blender.nl/download/ ή κατευθείαν με FTP από το ftp.blender.nl/pub Προφανώς
|
||||
επιλέγετε το Linux x86 αρχείο. Τελευταία έκδοση 2.12 (Εγώ έχω τώρα την 2.04)
|
||||
|
||||
Υπάρχουν δυο εκδόσεις H static (1.2MB) και η dynamic (1.8ΜΒ) Mε την dynamic εκμεταλλεύεστε πλήρως την 3D κάρτα γραφικών σας, με την static όχι.
|
||||
|
||||
Αν έχετε χρόνο κατεβάστε πρώτα την dynamic και αν αυτή δεν λειτουργήσει δοκιμάστε την static
|
||||
|
||||
Αν έχετε μια καινούρια διανομή Linux με υποστήριξη 3D (Xserver 4/opengl/mesa3d) κατεβάσετε την dynamic
|
||||
|
||||
Αν δεν ξέρετε τι πρέπει να διαλέξετε,κατεβάστε την static
|
||||
|
||||
Καλό θα ήταν επίσης να κατεβάσετε και οτιδήποτε βρείτε στην ενότητα HELP της download σελίδας
|
||||
|
||||
Το πακέτο δεν χρειάζεται εγκατάσταση παρά μόνο αποσυμπιεση. Μπορείτε να το χρησιμοποιήσετε από την περιοχή σας (home directory) αλλά προτείνεται να το βάλετε σε
|
||||
κάποιον κατάλογο προσβάσιμο από όλους τους χρήστες (το /usr/local/blender είναι λογική επιλογή)
|
||||
|
||||
----------------------------------------------------------------------------------------------------------------------------------------------------------------
|
||||
|
||||
Γίνετε υπερχρηστης με την εντολή su
|
||||
|
||||
cp blenderX.XXX.tar.gz /usr/local
|
||||
cd /usr/local/
|
||||
gunzip blender.X.XXX.tar.gz
|
||||
tar xvf blender.X.XXX.tar
|
||||
rm blender.X.XXX.tar
|
||||
|
||||
----------------------------------------------------------------------------------------------------------------------------------------------------------------
|
||||
|
||||
Τέλος \"χτυπήστε\" ένα make μέσα στον κατάλογο plugins και προαιρετικά φτιάξτε ένα σύνδεσμο (symbolic link) στο /usr/locαl/bin για να μην χρειάζεται να
|
||||
πληκτρολογείτε όλη την διαδρομή κάθε φόρα.
|
||||
|
||||
----------------------------------------------------------------------------------------------------------------------------------------------------------------
|
||||
|
||||
ln -s /usr/local/blenderX.XX/blender /usr/local/bin/blender
|
||||
|
||||
----------------------------------------------------------------------------------------------------------------------------------------------------------------
|
||||
|
||||
Αν θέλετε και εικονίδιο στείλτε μου ένα [mail](mailto:kapelon@csd.uoc.gr)
|
||||
|
||||
Τα αρχεία του blender έχουν επέκταση .blend και μπορείτε να τα αποθηκεύσετε όπου θέλετε. (Δεν πρόκειται να φτιαχτεί κατάλογος .blender στην περιοχή σας)
|
||||
|
||||
Ξεκινήστε το πρόγραμμα και θαυμάστε! Πατήστε και space να δείτε τι γίνεται. (Παναγία μου κουμπιά και μενού\...)
|
||||
|
||||
|
||||
### [6. Γνωριμία με το περιβάλλον]{#s6}
|
||||
|
||||
Μην τα \"χάσετε\" από το μέγεθος της πληροφορίας που έχει η οθόνη.Δεν πρόκειται να τα χρησιμοποιήσετε όλα αυτά στις πρώτες σας προσπάθειες.
|
||||
|
||||
Για αρχή μεγαλώστε το παράθυρο του Blender ώστε να πιάσει όλη την οθόνη.Αν χρησιμοποιείτε window manager που το υποστηρίζει (π.χ. Enlightenment, Windowmaker)
|
||||
αφαιρέστε την γραμμή τίτλου (titlebar) και τα περιγράμματα (borders) από το παράθυρο και ξανά μεγιστοποιήστε.
|
||||
|
||||
Αυτό που βλέπετε είναι η προκαθορισμένη (default :-) διάταξη των παραθύρων του Blender.Αυτή αποτελείται από 3 παράθυρα (frames/panels).Ένα μικρό στην πάνω μεριά
|
||||
ρυθμισμένο να δείχνει τα μενού, ένα μεγάλο στην μέση (3D view) ρυθμισμένο να δείχνει τον τρισδιάστατο κόσμο και ένα μεσαίου μεγέθους, στην κάτω μεριά σε ρόλο
|
||||
toolbar.Ο αριθμός των παραθύρων που βρίσκονται κάθε στιγμή στην οθόνη, η διάταξη τους πάνω σε αυτή,το μέγεθος τους καθώς και το περιεχόμενο τους είναι πλήρως
|
||||
παραμετροποιήσιμα. Αυτή η διάταξη είναι καλή για αρχή.
|
||||
|
||||
Πατήστε το 5 στο αριθμητικό πληκτρολόγιο (για perspective view) και κρατώντας πατημένο το μεσαίο πλήκτρο του ποντικιού(ή το ροδάκι) μετακινήστε το ποντίκι μέσα
|
||||
στο 3D view.Έτσι μετακινείστε (orbit) μέσα στο 3D view.\
|
||||
Υπάρχουν και 3 προκαθορισμένες (predefined) όψεις, τα πλήκτρα 7,1,3 του αριθμητικού πληκτρολογίου.
|
||||
|
||||
Το πλέγμα είναι ο ορίζοντας της σκηνής Η πυραμίδα είναι η κάμερα τής σκηνής(Για να δείτε οποιαδήποτε σκηνή τι βλέπει η κάμερα πατήστε το 0 (μηδέν) στο
|
||||
αριθμητικό πληκτρολόγιο) Ο στόχος είναι το σημείο που θα εμφανιστούν τα καινούρια αντικείμενα (Μετακινήστε τον κάνοντας αριστερό κλικ κάπου αλλού). Το μικρό
|
||||
τετράγωνο είναι ένα plane και είναι εάν απλό αντικείμενο.
|
||||
|
||||
Ξοδέψτε λίγο χρόνο και μετακινήστε το 3D παράθυρο προς όλες τις μεριές. Παρατηρήστε ότι παίζει μεγάλη σημασία ως προς την περιστροφή η θέση του ποντικιού (ΟΧΙ
|
||||
του στόχου) όταν ξεκινάτε το drag με το μεσαίο πλήκτρο. Αν χάσετε τον προσανατολισμό (μην γελάτε, συμβαίνει) πατήστε το 7 για να βρεθείτε στην πάνω όψη
|
||||
|
||||
Όταν βαρεθείτε, συνεχίστε στο θεωρητικό υπόβαθρο.
|
||||
|
||||
|
||||
### [7. Η Θεωρία]{#s7}
|
||||
|
||||
Στον προγραμματισμό τα βήματα που ακολουθούμε είναι τις περισσότερες φορές τα εξής:
|
||||
|
||||
- Πληκτρολόγηση του πηγαίου κώδικα σε ένα αρχείο κειμένου
|
||||
- Compilation του παραπάνω αρχείου
|
||||
- Εκτέλεση του έτοιμου προγράμματος
|
||||
|
||||
Στο 3D modelling μια πολύ περιληπτική αντίστοιχη λίστα είναι η:
|
||||
|
||||
- Κατασκευή των 3D αντικειμένων που θα αποτελέσουν την σκηνή(scene) που θέλουμε να φτιάξουμε
|
||||
- Επεξεργασία υφών/υλικών/επιφανειών/χρωμάτων που θέλουμε να έχουν τα αντικείμενά μας (textures/materials)
|
||||
- Φωτισμός της σκηνής από διάφορες πηγές (lighting)
|
||||
- Απόδοση του τελικού αποτελέσματος (Rendering)
|
||||
|
||||
Το rendering είναι αντίστοιχο με το compile με την έννοια ότι παίρνει πολλή ώρα (ανάλογα και με την πολυπλοκότητα της σκηνής) Σε αυτό το στάδιο ο υπολογιστής
|
||||
επεξεργάζεται όλες τις πληροφορίες που του έχουμε δώσει, την γεωμετρία των σχημάτων,τον φωτισμό, την κίνηση (σε περίπτωση animation) και βγάζει το τελικό
|
||||
αποτελέσμα.Τα εφφέ των ταινιών είναι τόσο απαιτητικά που το rendering γίνεται σε δίκτυα υπολογιστών ειδικά φτιαγμένων για επεξεργασία γραφικών (Silicon
|
||||
graphics)
|
||||
|
||||
|
||||
### [8. Η Πράξη]{#s8}
|
||||
|
||||
Η πρώτη μας σκηνή είναι αντίστοιχη του hello world στον προγραμματισμό(ως προς την απλότητα) Αποτελείται από ένα έτοιμο γεωμετρικό σχήμα (σφαίρα) και μόνο.
|
||||
|
||||
Επιλέξτε File/New από το μενού Πατήστε το πλήκτρο Χ (στο πληκτρολόγιο)και από το μικρό μενού διαλέξτε ERASE SELECTED
|
||||
|
||||
Πατήστε space και μετά ADD/MESH/UVSPHERE Πατήστε ΟΚ και στις δυο ερωτήσεις
|
||||
|
||||
Πατήστε ΤΑΒ για να βγείτε από το EDITMODE (Περισσότερα για το EDITMODE προσεχώς) Όπως είδατε η [σφαίρα](/31/img/sphere.jpg) εμφανίστηκε εκεί που ήταν o στόχος.
|
||||
|
||||
Πατήστε 0 στο αριθμητικό πληκτρολόγιο και μετά F12 για Rendering Τι βλέπετε;\
|
||||
Τίποτα είναι η σωστή απάντηση γιατί δεν υπάρχουν φώτα στην σκηνή μας (Πατήστε Esc για να φύγει το μικρό παράθυρο)
|
||||
|
||||
Επιστρέψτε στην πάνω όψη (numpad 7) και με αριστερό κλικ κάπου ανάμεσα στην κάμερα και την σφαίρα μετακινήστε τον στόχο
|
||||
|
||||
Πατήστε space ADD/LAMP ξανά F12
|
||||
|
||||
H σφαίρα μας όμως δεν είναι λεία Επιλέξτε τη ,με δεξί κλικ του ποντικιού πάνω της. Θα πρέπει να γίνει ροζ. Πατήστε F9 για τα EDIT BUTTONS Και αλλά κουμπιά\....\
|
||||
Πατήστε το Set smooth (βλέπε [εικόνα](/31/img/smooth.jpg)) που βρίσκεται περίπου κάτω και αριστερά και πάλι F12 Τώρα είναι καλύτερα. (Πατήστε Esc για να φύγει το
|
||||
μικρό παράθυρο)
|
||||
|
||||
Ας αλλάξουμε τώρα το χρώμα της F5 για material buttons. Αριστερό κλικ (κρατήστε πατημένο) στην παύλα (βλέπε [εικόνα](/31/img/material.jpg)) για δημιουργία νέου
|
||||
υλικού.\
|
||||
ADD NEW από το μικρό μενού. Ακόμα περισσότερα κουμπιά\...\...\...\...
|
||||
|
||||
Βρείτε τα RGB sliders (βλέπε [εικόνα](/31/img/rgb.jpg)) και αλλάξτε το χρώμα της (preview τέρμα αριστερά).\
|
||||
F12 για δείτε το αποτέλεσμα
|
||||
|
||||
|
||||
### [9. Επίλογος]{#s9}
|
||||
|
||||
Αν κάτι δεν σας πάει καλά μην εκνευρίζεστε.Κάθε αρχή και δύσκολη
|
||||
|
||||
Ελπίζω με αυτό το άρθρο να σας έδωσα το αρχικό ερέθισμα για να ασχοληθείτε με το Blender.Λογικά θα βγάλω και δεύτερό μέρος μόλις μπορέσω.
|
||||
|
||||
Μέχρι τότε δείτε αυτό το [tutorial](http://www.blendermania.com/tutbook/interface.php3)
|
||||
|
||||
Φόρτωση…
Προσθήκη πίνακα
Προσθήκη υπερσυνδέσμου
Παράθεση σε νέο ζήτημα