Αυτό το commit περιλαμβάνεται σε:
infl00p 2022-03-23 20:14:33 +02:00
commit 8ec8e9bee2
451 αρχεία άλλαξαν με 46736 προσθήκες και 0 διαγραφές

40
content/articles/01/01_editorial.md Κανονικό αρχείο

@ -0,0 +1,40 @@
+++
title = 'Editorial'
date = '1998-01-01T00:00:00Z'
description = ''
author = 'Μιχάλης Καμπριάνης'
issue = ['Magaz 01']
issue_weight = 1
+++
----------------------------------------------------------------------------------------------------------------------------------------------------------------
*Καλώς ορίσατε στο **Magaz**, το πρώτο (νομίζουμε) ελληνικό *on-line* Linux περιοδικό.*
----------------------------------------------------------------------------------------------------------------------------------------------------------------
Αυτό δεν είναι ένα γράμμα του εκδότη, γιατί αυτό το περιοδικό δεν έχει εκδότη :-) Είναι μία αναφορά, μία πρόκληση - πρόσκληση. Ας τα πιάσουμε όμως με τη σειρά:
- Αρκετοί στο παρελθόν έκαναν πολλές προσπάθειες για χρήση ελληνικών στην κονσόλα και στα X-Windows. Ξέρω ότι είναι πάνω από 5 τα άτομα που ασχολήθηκαν με
αυτό, και γι\' αυτό δεν θα αναφέρω ονόματα, από το φόβο μην ξεχάσω ή/και υποβιβάσω κανέναν.
- Στις αρχές του 1997, δημιουργήθηκε η linux-greek-users στο [argeas.argos.hol.gr](http://argeas.argos.hol.gr). από τον [Ι. Ιωάννου](mailto:roryt@hol.gr). Μία
mailing list με σκοπό να μαζέψει τους Έλληνες χρήστες του Linux σε μία κοινότητα. Μία κοινότητα που ο ένας θα βοηθούσε τον άλλο και όλοι μαζί θα
προσπαθούσαν να λύσουν κοινά (ή όχι και τόσο κοινά) προβλήματα. Με τη βοήθεια των παλαιοτέρων και αυτών που είχαν περισσότερες γνώσεις, πολλοί από μας
καταφέραμε να δούμε ότι το Linux δεν είναι απάνθρωπο, και ο χρήστης του Linux δεν είναι απομονωμένος.
- Το καλοκαίρι του 1997 ξεκίνησε η μετάφραση του Linux-FAQ και πολλών HOWTOs στα ελληνικά, με συντονιστή το [Φώτη Γεωργάτο](mailto:gef@ceid.upatras.gr).
- Κάπου στις αρχές του χειμώνα ξεκίνησε, από τον [Παναγιώτη Βρυώνη](mailto:vrypan@hol.gr) η ελληνικοποίηση του KDE, ενός γραφικού περιβάλλοντος για Linux.
Παρουσίασή του θα υπάρχει σε ένα από τα υπόλοιπα τεύχη.
- Το Δεκέμβριο του 1997, δημιουργήθηκε το [Linux.gr](http://www.linux.gr) ένα website το οποίο θα παρουσίαζε τα Linux-related resources στην Ελλάδα.
Ευκολότερη πρόσβαση στον αρχάριο. Ευκολότερο να βρεις τη σελίδα, παρά τη mailing list.
- Τώρα, ήρθε ο καιρός για ένα περιοδικό. Ένα newsletter με νέα, ειδήσεις, αναλύσεις, συμβουλές, χιούμορ και ότι άλλο χωράει στην ιδέα ενός περιοδικού
\"παρέας\". Το περιοδικό που διαβάζετε τώρα, δεν έχει αρθρογράφους, δεν έχει εκδότες, δεν έχει έσοδα και έξοδα, δεν έχει σκοπιμότητες. Είναι μία κατάθεση
ψυχής, μία πίεση του ελεύθερου χρόνου, όποιου ενδιαφέρεται να βοηθήσει στην ιδέα του Linux.
Η ιδέα γεννήθηκε μέσα στη λίστα, και σταθεροποιήθηκε σε ένα cafe στην Αθήνα. Μέσα από το περιοδικό θα παρουσιαστούν εν καιρώ όλες οι προσπάθειες για \"Ελληνικό
Linux\". Όλες αυτές οι αξιόλογες προσπάθειες, οι οποίες αποδόσανε, άλλες περισσότερο και άλλες λιγότερο, όλες όμως βάλανε το λιθαράκι τους στην ανάπτυξη του
Linux. Σας προκαλούμε - προσκαλούμε, όλους, να βοηθήσετε όσο μπορείτε, στην ανάπτυξη του περιοδικού, καθώς και σε όλες τις άλλες προσπάθειες που γίνονται για
την ανάπτυξη και διάδοση του Linux. Συχνά πυκνά θα βλέπετε μέσα στις \"σελίδες\" του περιοδικού, προσκλήσεις βοήθειας σε διάφορα on-going projects. Μην τις
αγνοήσετε. Όλα ξεκίνησαν από χόμπυ και φιλότιμο. Αν χαθούν αυτά θα χαθεί και η ουσία. Θα μας ξαναδιαβάσετε, και ελπίζουμε να σας διαβάσουμε και εμείς, σε ένα
από τα επόμενα τεύχη.
Δεχόμαστε παρατηρήσεις, άρθρα, σχέδια, ιδέες, κριτική (αλλά μόνο καλόπιστη) και ότι άλλο έρθει στο μυαλό σας, στην ηλεκτρονική διεύθυνση του
**[Magaz](mailto:magaz@linux.gr)**.

90
content/articles/01/02_hellas.md Κανονικό αρχείο

@ -0,0 +1,90 @@
+++
title = '\Ελληνες και Linux'
date = '1998-01-01T00:00:00Z'
description = ''
author = 'Γεωργάτος Φώτης gef@ceid.upatras.gr(mailto:gef@ceid.upatras.gr?subject=LINUX-MAGAZ)'
issue = ['Magaz 01']
issue_weight = 2
+++
----------------------------------------------------------------------------------------------------------------------------------------------------------------
*Το 1997 είναι αναμφισβήτητα η χρονιά που το Linux κέρδισε τους \'Ελληνες. Η χρονιά που έφυγε, μας αφήνει με σημαντικές προόδους στην ελληνική υποστήριξη του
Λ.Σ., αναλυτική τεκμηρίωση στην Ελληνική γλώσσα, πληθώρα σελίδων στο Δίκτυο και ένα σύνολο από ένθερμους Linuxάδες που από ότι φαίνεται θα τραγανίσουν
οποιοδήποτε πρόβλημα παρουσιαστεί στους \'Ελληνες το 1998.*
----------------------------------------------------------------------------------------------------------------------------------------------------------------
Ας δούμε αναλυτικά την κατάσταση.
Αυτή την στιγμή η ελληνική Linux κοινότητα έχει περί τα 200 μέλη. Τα κυριότερα προβλήματα σε σχέση με τα Ελληνικά έχουν επιλυθεί μέσα από διάφορα πακέτα και
καταγραφεί σε κείμενα. Το σύνολο της δουλειάς αυτής που έχει γίνει ή θα γίνει είναι η [ελληνική τεκμηρίωση του
Linux](ftp://sunsite.unc.edu/pub/Linux/docs/HOWTO/translations/el/)
Τόσο το παρόν άρθρο, όσο και τα κείμενα και λογισμικό που αναφέρονται σε αυτό επιδέχονται βελτιώσεων. Εάν έχετε υπ\' όψιν σας κάτι που μας διαφεύγει ή δεν είναι
ακριβές μην διστάσετε να ενημερώσετε το αντίστοιχο άτομο σχετικά. Ας μην ξεχνάμε ότι πάνω σε αυτή την φιλοσοφία είναι χτισμένο όλο το Linux. Παρ\' όλα αυτά,
**σεβαστείτε τον χρόνο των εθελοντών** που είναι έτσι και αλλιώς πιεσμένος, και μην τους κάνετε ερωτήσεις χωρίς να έχετε διαβάσει τα HOWTO, FAQ, INFO-SHEET, τις
οδηγίες, κλπ προσεχτικά. Για οτιδήποτε χρειαστείτε η Ελληνική Linux Κοινότητα είναι στη διάθεσή σας.
**1. Πακέτα εξελληνισμού του Linux**
-------------------------------------------------------------
**2. Ελληνική τεκμηρίωση**
---------------------------------------------------
**3. Ελληνικό Linux στο Internet**
-----------------------------------------------------------
### [1. Πακέτα εξελληνισμού του Linux]{#s1}
- [grISOXkbd-1.1](ftp://argeas.argos.hol.gr/pub/unix/linux/GREEK/grISOXKb-1.1.tar.gz) (Δημήτρης Μπούρας και Λευτέρης Τσιντζέλης). Είναι το σημαντικότερο
πακέτο για εξελληνισμό του Linux σε γραφικό περιβάλλον. Είναι αρκετά πλήρες, μόνο μειονέκτημα είναι η δυσκολία εγκατάστασής του για αρχάριους. Μην ξεχάσετε
να βάλετε και [γραμματοσειρές](ftp://argeas.argos.hol.gr/pub/unix/linux/GREEK/fonts) πρώτα!
- greek12 (Αλέξιος Κουκούλας). Μάλλον είναι το πρώτο πακέτο που κυκλοφόρησε ευρέως για εξελληνισμό του Linux. Έχει πλέον ξεπεραστεί και αντικαθίσταται από το
επόμενο:
- [greek-console](ftp://argeas.argos.hol.gr/pub/unix/linux/GREEK/greek-console-1.0.0-2.i386.tar.gz) (Κεραμίδας Γιώργος). Είναι εύκολο στην εγκατάσταση ακόμη
και για αρχάριους, (υπάρχει και σε [rpm](ftp://argeas.argos.hol.gr/pub/unix/linux/GREEK/greek-console-1.0.0-2.i386.rpm) ) και δίνει ελληνικά 737 και 928 σε
περιβάλλον κονσόλας.
- Υπάρχουν επίσης τα εξής στον [Αργέα](ftp://argeas.argos.hol.gr/pub/unix/linux/GREEK/): **greekXfonts-full-1.1.tgz** (\'Αγγελος Χαρίτσης), **XgreekFonts**
(Μωραϊτάκης Κωνσταντίνος), **X11greek** (Παναγιώτης Χρηστιάς), **a2ps** (Μανώλης Λουράκης και Γιάννης Μουζάκης), **ispell** (Γιάννης Καβακλής), **minicom**
(Γιάννης Ιωάννου), **moreH** (Μανώλης Λουράκης).
### [2. Ελληνική τεκμηρίωση]{#s2}
Τα κείμενα που βρίσκονται αυτή τη στιγμή στο στάδιο της ολοκλήρωσής τους είναι:
- [Linux-Hellenic-FAQ](http://students.ceid.upatras.gr/~gef/linux/docs/FAQ/). Συντηρείται από το Γεωργάτο Φώτη. Αυτό το κείμενο είναι η απευθείας μετάφραση
του αγγλικού Linux-FAQ. Το περιεχόμενο του είναι **τυπικές ερωτήσεις** σχετικά με το Linux.
- [Hellenic-HOWTO](http://students.ceid.upatras.gr/~gef/linux/docs/HOWTO/). Συντηρείται από το Γεωργάτο Φώτη. Αυτό το κείμενο έχει οτιδήποτε αφορά
αποκλειστικά έναν Έλληνα, και στο μεγαλύτερο μέρος του ασχολείται με την σωστή **ρύθμιση των Ελληνικών** στο σύστημα.
- [Hellenic-INFO-SHEET](http://students.ceid.upatras.gr/~keramida/linux/doc/INFO-SHEET/). Συντηρείται από τον Κεραμίδα Γιώργο. Αυτό το κείμενο έχει ουσιαστικά
τις **προδιαγραφές του Linux**, και είναι, επίσης, μετάφραση του αγγλικού INFO-SHEET. Περιέχει συνοπτικά όλες τις τεχνικές λεπτομέρειες και δυνατότητες που
έχει το λειτουργικό.
### [3. Ελληνικό Linux στο Internet]{#s3}
Εκτός από την τεκμηρίωση μπορεί να κανείς να βρεί στο Internet τα εξής.
- Κόμβος [www.linux.gr](http://www.linux.gr/) Συντηρείται από το Γεωργάτο Φώτη και (φιλοδοξεί να) είναι το εστιακό σημείο για το Linux στην Ελλάδα. Περιέχει
κυρίως τις τελευταίες εκδόσεις της ελληνικής τεκμηρίωσης και συνδέσμους σε άλλες σχετικές σελίδες στο Internet όπως τα παρακάτω.
- Κόμβος [ftp.linux.gr](ftp://ftp.linux.gr) Συντηρείται από τον Γιώργο Κουλογιάννη και έχει μέχρι και 9GB λογισμικό για το Linux. Εκεί θα βρείτε τα τελευταία
distributions, πυρήνες, κλπ.
- Κανάλι IRC: [\#linux-gr](http://www.co.umist.ac.uk/~vp/irc/). Συντηρείται από το Βάϊο Παπαϊωάννου και είναι κατάλληλο για άμεσες ερωτήσεις και κουβέντα\...
- Η ελληνική λίστα συζητήσεων [linux-greek-users](http://argeas.argos.hol.gr/linux-greek-users). Συντηρείται από το Γιάννη Ιωάννου και είναι ο σπόρος που τα
γέννησε όλα :-). Μία πύλη προς [ομάδα συζητήσεων (news gateway)](news://edessa.topo.auth.gr/local.linux.greek.users), έχει στηθεί από τον Χρήστο Ρικούδη και
Κώστα Λιαλιαμπή. Εάν θέλετε να γραφτείτε, στείλτε email στο <majordomo@argeas.argos.hol.gr>, με τη γραμμή \"subscribe linux-greek-users\" στο σώμα του
μηνύματος.
- Κόμβος ftp [argeas.argos.hol.gr](ftp://argeas.argos.hol.gr/pub/unix/linux/GREEK/). Συντηρείται από το Γιάννη Ιωάννου και είναι ο βασικός κόμβος για αρχεία
που έχουν σχέση με εξελληνισμό. Όλα τα προγράμματα που έχουν σχέση με ελληνικά θα τα βρείτε εδώ, συγκεντρωμένα.
- Το νέο μας on-line περιοδικό [magaz](http://www.linux.gr/magaz). Συντηρείται από το Μιχάλη Καμπριάνη, Παναγιώτη Βρυώνη, Γεωργάτο Φώτη.
- Πρόσθετες σελίδες - που θα βρείτε και στο www.linux.gr - έχουν γράψει και άλλοι, αναφέρω όμως τα ονόματά τους: Αντώνης Παπαγεωργίου (Hellenic Linux
Resources), Κώστας Βλάσσης (HELLUG), Βούλα Σανιδά, Θαλής Καλφιγόπουλος, Νίκος Αράχωβας. Ο Νίκος Αράχωβας έχει φτιάξει επίσης τον πιγκουίνο με την ελληνική
σημαία, που φαίνεται σε πολλές ελληνικές σελίδες του Linux. Τρία ακόμα σημαντικά μέλη της ενεργής Ελληνικής Linux Κοινότητας είναι ο Αντώνης Καβαρνός, ο
Λάμπρος Π. Ρορρής και ο Ευθύμιος Μαυρογεωργιάδης. Ο τελευταίος έχει αναλάβει και την συντήρηση της λίστας ελληνικής ορολογίας, μίας φιλόδοξης προσπάθειας να
έχουμε έναν τυποποιημένο τρόπο για μετάφραση των αγγλικών όρων. Οι Τάσος Κάπιος, Κοξαράς Άρης, Σωτήρης Τσιμπόνης, Παπαδημητρίου Σπύρος, Γιάννης Μήτσος,
Σακαλής Γιώργος, Μάματας Λευτέρης έχουν βοηθήσει σημαντικά στην ελληνική τεκμηρίωση. Ο Παναγιώτης Βρυώνης έχει αναλάβει τον [εξελληνισμό του
KDE](http://users.hol.gr/~vrypan/cactus/kde.html), ενός πολλά υποσχόμενου γραφικού περιβάλλοντος για Unix.

138
content/articles/01/03_free-software.md Κανονικό αρχείο

@ -0,0 +1,138 @@
+++
title = 'Περί ελεύθερου (τζάμπα) λογισμικού.'
date = '1997-01-01T00:00:00Z'
description = ''
author = 'Παναγιώτης Βρυώνης'
issue = ['Magaz 01']
issue_weight = 3
+++
----------------------------------------------------------------------------------------------------------------------------------------------------------------
*Αφού εφυγα από την συνάντηση που είχαμε με τους υπόλοιπους linux-άδες, πηγα να συναντήσω την κοπέλα μου. Εντάξει, είχα αργήσει, αλλά αυτό που δεν μπορουσε να
καταλάβει είναι γιατί κάποιος θα μπορούσε να διαθέτει τόσο μεγάλο μέρος του χρόνου του χωρίς να πληρώνεται. Όταν μαλιστα της εξηγησα ότι δεν είμαι μόνο εγώ ο
\"τρελός\" αλλά οτι υπάρχουν εκατομύρια άλλοι (μάλλον πιο τρελαμένοι) τότε το μυστήριο έγινε μεγαλύτερο\...*
----------------------------------------------------------------------------------------------------------------------------------------------------------------
Θυμάμαι και τις δικές μου πρώτες σκέψεις όταν βρέθηκα στον κόσμο του linux. Γιατί όλοι αυτοί οι άνθρωποι να προσφέρουν πόρους για να δημιουργηθεί κάτι το οποίο
δεν θα τους αποφέρει οικονομικά οφέλη; Ακόμη και αν αυτό γίνεται, πώς είναι δυνατό κάτι τόσο πολύπλοκο όσο ένα ολόκληρο λειτουργικό σύστημα να δημιουργηθεί από
εκατοντάδες ή χιλιάδες hackers που ο καθένας βάζει ένα λιθαράκι; Και για να πάω ένα βήμα παρακάτω, πως είναι δυνατόν το αποτέλεσμα αυτό να είναι ίδιας ποιότητας
και σταθερότητας με το αποτέλεσμα μιας καλά οργανωμένης και στελεχωμένης ομάδας ειδικών που πληρώνεται πλουσιοπάροχα από μία εταιρεία;
**1. Τι κερδίζει ο προγραμματιστής;**
---------------------------------------------------------------------
**2. Πώς μπορεί το αποτέλεσμα να είναι ποιοτικό;**
----------------------------------------------------------------------------------
**3. Επιγραμματικά**
----------------------------------------------------
### [1. Τι κερδίζει ο προγραμματιστής;]{#s1}
Ας πάρουμε τα πράγματα με την σειρά και ας προσπαθήσουμε να ρίξουμε λίγο φώς στο \"γιατί\". Αν και δεν είναι δυνατό να προσδιορίσουμε τα ακριβή κίνητρα του κάθε
προγραμματιστή που χωρίς να πληρώνεται κάθεται και συνεισφέρει σε μία ομάδα τον χρόνο του, τις ικανότητές του, τις γνώσεις του καθώς και το μηχάνημά του (εκεί
δουλεύει), μπορούμε να σκιαγραφήσουμε κάποια από αυτά.
Είναι δεδομένο ότι όποιος ασχολείται με τον προγραμματισμό χωρίς να πληρώνεται το κάνει γιατί του αρέσει. Είναι το χόμπι του. Όπως κάποιος άλλος μπορεί να
διέθετε όλο το Σαββατοκύριακό του για να φτιάξει μία βιβλιοθήκη στο δωμάτιό του ή ακόμη περισσότερο, θα πήγαινε να βοηθήσει ένα φίλο του που μαστορεύει και
ζήτησε την βοήθειά του, έτσι και ο προγραμματιστής μας, διαθέτει τον χρόνο του για να γράψει ένα driver ή μία εφαρμογούλα ή να προσφέρει βελτιώσεις στην
εφαρμογή που έγραψε κάποιος άλλος, ή ακόμη και να γράψει τα εγχειρίδια μίας εφαρμογής.
Βλέποντας τα πράγματα από την παραπάνω οπτική γωνία, μπορεί κανείς να καταλάβει ότι και μόνο η ικανοποίηση της ενασχόλησης με κάτι το οποίο θεωρούμε ενδιαφέρον
είναι μια ουσιαστική ανταμοιβή. Υπάρχει όμως και μία ακόμη σημαντικότερη κατά την γνώμη μου: η δόξα και η αναγνώριση. Ένα καλό πρόγραμμα σημαίνει για τον ή τους
δημιουργούς του αναγνώριση από ένα σωρό κόσμο (που στον χώρο του linux κατά κανόνα είναι και γνώστες του αντικειμένου). Μπορεί να μην δέχεται ο προγραμματιστής
λεφτά για τις υπηρεσίες του, γίνεται όμως αποδέκτης αυτού που οι περισσότεροι θα ψάξουν να αγοράσουν με τα λευτά που κερδίζουν από την δουλειά τους: αναγνώριση.
(Δεν είμαι εναντίον της αγοράς εργασίας, μην με παρεξηγήσετε, σκεφθείτε όμως σε μία καταναλωτική κοινωνία με ποιό βασικό κριτήριο ξοδεύουμε το μεγαλύτερο μέρος
των χρημάτων μας.) Άλλωστε, η αναγνώριση και η φήμη μπορεί στο μέλλον να σας προσφέρουν μία πολύ καλη δουλειά\...
Δεν πρέπει να παραγνωρίσουμε και ένα ακόμη παράγοντα που οδηγεί κάποιον στο να γράψει (ή να συνεισφέρει ιδέες και κώδικα σε κάποιους που γράφουν) προγράμματα:
την επίλυση ενός προβλήματος που αντιμετωπίζει ο ίδιος.
Ας πούμε για παράδειγμα ότι χρησιμοποιείτε ένα απλό διευθυνσιογράφο που βρήκατε χωρίς χρέωση στο Internet. Όλα καλά, αλλά θα σας βόλευε πάρα πολύ να μπορείτε να
τυπώνετε καρτέλες με τις διευθύνσεις για να τις κολλάτε σε φακέλους. Επειδή όμως έχετε το σαράκι του προγραμματισμού κοιτάτε τον πηγαίο κώδικα (source code) και
κάνετε μερικές προσθήκες που σαν αποτέλεσμα έχουν την ζητούμενη δυνατότητα. Από το σημείο αυτό κι έπειτα έχετε δύο επιλογές.
Η μία είναι να κρατήσετε τις αλλαγές για τον εαυτό σας θεωρώντας οτι είναι άδικο να επωφεληθεί κάποιος άλλος από τον δικό σας κόπο (αν και εσείς χρησιμοποιείτε
το πρόγραμμα που προσφέρει κάποιος δωρεάν).
Η άλλη επιλογή είναι να στείλετε τις αλλαγές στον δημιουργό του προγράμματος. Αν αυτός θεωρεί ότι πρέπει να ενσωματωθούν στο πρόγραμμα του, θα το κάνει στην
επόμενη έκδοση. Στην έκδοση αυτή θα δείτε και το όνομά σας ανάμεσα σε αυτούς που βοήθησαν και ίσως μετά από αρκετό καιρό να διαβάσετε σε ένα περιοδικό ότι το
πρόγραμμα αυτό έχει εξελιχθεί σε ένα από τα πιο δυνατά προγράμματα της κατηγορίας του!
Εσείς τί θα επιλέγατε;
Οι λόγοι που ανέφερα μέχρι στιγμής δεν είναι βέβαια οι μοναδικοί. Σε αυτούς μπορούμε να συμπεριλάβουμε τον πειραματισμό με αντικείμενα που ένας συγκεκριμένος
προγραμματιστής να μην έχει την δυνατότητα να ασχοληθεί στην εργασία του, την ανάπτυξη λογισμικού από μη κερδοσκοπικούς οργανισμούς και/ή πανεπιστήμια καθώς και
τις περιπτώσεις που ένα πρόγραμμα ξεκιναέι σαν εμπορικό αλλά οι δημιουργοί/χρηματοδότες του χάνουν το ενδιαφέρον τους σε αυτό και αντί να το θάψουν το δίνουν
στο ευρύ κοινό να κάνει ότι νομίζει καλύτερο με αυτό.
### [2. Πώς μπορεί το αποτέλεσμα να είναι ποιοτικό;]{#s2}
Ας εξετάσουμε τώρα το ερώτημα πώς μπορεί ένα τόσο μεγάλο project όπως ένα λειτουργικό σύστημα να αναπτυχθεί τζάμπα και μάλιστα το αποτέλεσμα να είναι ποιοτικό.
Για να καταλάβουμε την απάντηση πρέπει πρώτα να δούμε τί είναι το GPL. Το GPL (GNU General Public Licence ή αλλιώς copyleft) είναι ένας τρόπος έκδοσης και
διανομής προγραμμάτων που διασφαλίζει την ελευθερία στο λογισμικό. Όπως αναφέρει και το κείμενο που περιγράφει το GPL, όταν λέμε ελευθερία δεν εννοούμε μόνο
χωρίς χρέωση, αλλά την ελευθερία να διανέμει κανείς το χωρίς χρέωση λογισμικό (και να πληρώνεται για αυτό αν το επιθυμεί) την δυνατότητα να δει τον πηγαίο
κώδικα, να τον αλλάξει ή και να χρησιμοποιήσει τμήματά του σε άλλα προγράμματα και όλα αυτά τα δικαιώματα να είναι κατοχυρωμένα από τον νόμο.
Το Linux για παράδειγμα είναι κατοχυρωμένο με το GPL. Ο αρχικός δημιουργός του, ο Linus Torvalds, λειτουργεί περισσότερο σαν μάνατζερ του όλου εγχειρήματος:
είναι αυτός που δέχεται τις τροποποιήσεις και τις νέες δυνατότητες, τις ενσωματώνει ή τις απορίπτει και εκδίδει την νέα έκδοση του κυρίως μέρους του Linux, του
πυρήνα όπως λέγεται. Ο πηγαίος κώδικας (που από το GPL ορίζεται ως η μορφή στην οποία μπορούν να γίνουν ευκολότερα αλλαγές στο πρόγραμμα) είναι διαθέσιμη σε
όποιον ενδιαφέρεται να την δει και να την τροποποιήσει.
Ο περισσότερος κόσμος θεωρεί ότι για να γίνει ένα καλό πρόγραμμα χρειάζεται κάποιος, ή έστω μία μικρή ομάδα, που θα είναι αρκετά ευφυής για να συλλάβει την
αρχική ιδέα και να την υλοποιήσει χωρίς λάθη. Αυτή η αντίληψη όμως απέχει πολύ από την πραγματικότητα. Μερικοί από τους λόγους;
- Ένα καλό πρόγραμμα έχει ανάγκη από χρήστες και μόνο αυτοί μπορούν να προσδιορίσουν με ακρίβεια τις ανάγκες τους.
- Όταν μιλάμε για μεγάλα προγράμματα, δεν είναι δυνατό η υλοποίηση να γίνει χωρίς λάθη (bugs), είτε στην λογική (στον αλγόριθμο) είτε στην συγραφή του
προγράμματος. Λυπηρό ίσως, αλλά ΔΕΝ ΥΠΑΡΧΕΙ ΤΕΛΕΙΟ ΠΡΟΓΡΑΜΜΑ !!!
- Ένα καλό πρόγραμμα πρέπει να συνοδεύεται από κατατοπιστικά εγχειρίδια που θα βοηθήσουν τους χρήστες του.
- Πρέπει να μπορεί να προσαρμόζεται με νέες εκδόσεις στα δεδομένα που επικρατούν στον χώρο και τα οποία αλλάζουν κάθε τόσο.
Η αντιμετώπιση όλων των παραπάνω στον χώρο του Linux, με την βοήθεια του GPL είναι πραγματικά εντυπωσιακή.
Η πολιτική του ελεύθερου λογισμικού και της αναγνώρισης όσων βοηθούν με τον ένα ή τον άλλο τρόπο κάνουν πολλούς από τους χρήστες να αισθάνονται ότι είναι και
μέρος της ομάδας ανάπτυξης του προγράμματος. Έτσι διασφαλίζεται μία συνεχής ροή παρατηρήσεων, εντοπισμού λαθών τροποποιήσεων και ιδεών προς τους
προγραμματιστές. Τα bugs εντοπίζονται πολύ γρήγορα και συχνά η αναφορά για αυτά συνοδεύεται και από τον προσδιορισμό του κοματιού του πηγαίου κώδικα που είναι
ελλατωματικός καθώς και από την προτεινόμενη διόρθωση (βλέπετε ο πηγαίος κώδικας δεν είναι επτασφράγιστο μυστικό όπως στην περίπτωση των εμπορικών
προγραμμάτων!). Όπως λέει και ο Eric S. Raymond στο άρθρο του The Cathedral and the Bazzar <http://www.kde.org/food/cathedral/cathedral-paper.html>, *\"Δοθέντων
αρκετών ματιών, όλα τα bugs είναι ρηχά\"*. Το παράδειγμα του Linux είναι αρκετό για να πείσει και τον πιο δύσπιστο: Θεωρείται από τα πιο σταθερά λειτουργικά
συστήματα!
Νομίζω ότι ενδιαφέρον είναι και αυτό που απάντησε σε μία σχετική ερώτηση ο ίδιος ο Linus ( [σε μια συνέντευξή
του.](http://students.ceid.upatras.gr/~keramida/linux/doc/linus.html)) *\"Όταν μιλάμε για λογισμικό προτιμώ σαφώς το ελεύθερο λογισμικό γιατί πολύ σπάνια έχω
δεί ένα πρόγραμμα που να δουλεύει αρκετά καλά για τις ανάγκες μου και το να έχεις τον πηγαίο κώδικα μπορεί να σε γλιτώσει.\"*
Ένα άλλο θέμα είναι η ταχύτητα με την οποία αναπτύσεται μία εφαρμογή. Ειδικά στα εμπορικά προγράμματα, είναι δεδομένο ότι η επιτυχία ενός προγράμματος μπορεί να
κριθεί από το αν βγήκε στην διανομή έγκαιρα, που σημαίνει ότι η ταχύτητα με την οποία το πρόγραμμα θα αναπτυχθεί είναι κρίσιμος παράγοντας. Στην περίπτωση του
ελεύθερου λογισμικού (GPL) οι προγραμματιστές έχουν ένα ακόμη πλεονέκτημα: μπορούν να χρησιμοποιήσουν κώδικα που είναν γράψει άλλοι! Όπως λένε, οι καλοί
προγραμματιστές ξέρουν τί να γράψουν, οι μεγάλοι προγραμματιστές ξέρουν τί να ξαναγράψουν (και να ξανα χρησιμοποιήσουν).
Η ελεύθερη πρόσβαση στον πηγαίο κώδικα, η εύκολη και άμμεση επικοινωνία με τους προγραμματιστές καθώς και το κλίμα αλληλοβοήθειας που επικρατεί στον χώρο του
ελέυθερου λογισμικού επιτρέπουν και οδηγούν πολλούς από τους χρήστες να γράψουν εγχειρίδια χρήσης και άλλα βοηθητικά κείμενα σχετικά με το πρόγραμμα. Όποιος
έχει αμφιβολία για αυτό, ας ρίξει μία ματιά στο <http://sunsite.unc.edu/LDP> για να δει το πλήθος και ποιότητα των κειμένων σχετικά με την χρήση και εγκατάσταση
του Linux.
Ο κώδικας που γράφεται στο πλαίσιο του ελεύθερου λογισμικού είναι κατά μέσο όρο πολύ υψηλών προδιαγραφών. Ο λόγος είναι ότι οι προγραμματιστές χρειάζονται (αφού
συνήθως θέλουν να καλύψουν κάποια δικιά τους ανάγκη) και αγαπούν τον κώδικα που γράφουν (κάτι που δεν ισχύει πάντα στην περίπτωση εμπορικού κώδικα που γράφεται
γιατί πρέπει να καλύψει την ανάγκη κάποιου πελάτη).
Τέλος, καθώς ο χώρος αλλάζει, κάποιοι θα χρειαστούν μία νέα δυνατότητα που ή θα ζητήσουν από τους προγραμματιστές που αρχικά ανέπτυξαν την εφαρμογή ή θα την
προσθέσουν μόνοι τους, άν γνωρίζουν προγραμματισμό. Ανακοινώσεις της μορφής *\"Ο τάδε πρότεινε αυτή την δυνατότητα, υπάρχει κάποιος που ενδιαφέρεται να την
υλοποιήσει\"* είναι πολύ συχνές σε χώρους που αναπτύσεται ελεύθερο λογισμικό. Το πρόγραμμα θα συνεχίσει να εξελίσεται και να προσαρμόζεται όσο οι
χρήστες-προγραμματιστές του το θεωρούν χρήσιμο. Ακόμη και αν ο αρχικός προγραμματιστής κάποια στιγμή αποφασίσει να αποτραβηχθεί, πολύ συχνά θα το \"υιοθετήσει\"
### [3. Επιγραμματικά]{#s3}
Προσπάθησα μέσα από αυτό το άρθρο να εξηγήσω πώς δουλεύει ο κόσμος του ελεύθερου λογισμικού, ένας κόσμος που σε εμάς που έχουμε μάθει να λειτουργούμε με τους
κανόνες της αγοράς μπορεί να φαίνεται παράλογος.
Άν ενδιαφέρεστε να μάθετε περισσότερα, επισκευθείτε τις διευθύνσεις:
- <http://www.fsf.org/>
- και <http://www.kde.org/food/food.html>

336
content/articles/01/04_coffee-howto.md Κανονικό αρχείο

@ -0,0 +1,336 @@
+++
title = 'Πώς φτιάχνεται ένας γκαϊφές'
date = '1998-01-01T00:00:00Z'
description = ''
author = 'Γεωργάτος Φώτης gef@ceid.upatras.gr(mailto:gef@ceid.upatras.gr?subject=COFFEE-HOWTO)'
issue = ['Magaz 01']
issue_weight = 4
+++
----------------------------------------------------------------------------------------------------------------------------------------------------------------
*Μία από τις πιο ενοχλητικές ερωτήσεις που έχω ακούσει για λογισμικό είναι εάν φτιάχνει καφέ. Ε, ναι λοιπόν, φτιάχνει. Και καλό καφέ.*
----------------------------------------------------------------------------------------------------------------------------------------------------------------
Επί μακρόν την ανθρωπότητα την εβασάνιζε το πώς θα ημπορούσε να χρησιμοποιήσει τον υπολογιστή, ώστε να παράγει καφέ. Τον καφέ τον χρειαζόμαστε για καθόμαστε
στον υπολογιστή με τις ώρες χωρίς να νυστάζουμε, διότι ως γνωστόν την νύχτα γράφεται ο καλύτερος κώδικας.
Το κυριότερο πρόβλημα είναι να συνδέσουμε την καφετιέρα με τον υπολογιστή και να την ελέγχουμε μέσω λογισμικού. Αυτό συνήθως ανάγεται σε ένα κύκλωμα διακόπτη
ON/OFF, που ελέγχει την τροφοδοσία της καφετιέρας.
**1. Είδη καφέ**
-----------------------------------------------
- [1.1 Ελληνικός](#ss1.1)
- [1.2 Γαλλικός](#ss1.2)
- [1.3 Nescaffe](#ss1.3)
- [1.4 frappe](#ss1.4)
- [1.5 freddo](#ss1.5)
- [1.6 cappuccino](#ss1.6)
- [1.7 espresso](#ss1.7)
**2. Κυκλώματα σύνδεσης της καφετιέρας**
-----------------------------------------------------------------------
- [2.1 Οδήγηση με 0-5V από τον υπολογιστή](#ss2.1)
- [2.2 \'Ελεγχος με Relay](#ss2.2)
- [2.3 \'Ελεγχος με TRIAC \#1](#ss2.3)
- [2.4 \'Ελεγχος με TRIAC \#2](#ss2.4)
**3. Λογισμικό**
-----------------------------------------------
- [3.1 Πρόγραμμα σε C](#ss3.1)
- [3.2 Σαν device driver](#ss3.2)
- [3.3 Διασύνδεση με Internet](#ss3.3)
**4. Συμπτώματα υπερδοσολογίας**
---------------------------------------------------------------
**5. Επεκτάσεις**
------------------------------------------------
**6. Αναφορές**
----------------------------------------------
### [1. Είδη καφέ]{#s1}
### [1.1 Ελληνικός]{#ss1.1}
Είναι επίσης γνωστός και ως τούρκικος, αλλά είναι παραλλαγή του. Παλιά είχαν για σηματάκι τον παπαγάλο, αλλά τώρα χρησιμοποιούν τον πιγκουίνο. Χαρακτηριστικό
του καφέ αυτού είναι το κατακάθι στον πάτο του ποτηριού, που μπορεί να χρησιμεύσει για να μαντέψετε την ατυχία σας.
Αναμιγνύουμε καφέ και ζάχαρη στη σωστή αναλογία, με ποσότητα νερού αντιστοίχου του φλιτζανίου. Παραδοσιακά παρασκευάζεται σε ζεσεοδοχείο (μπρίκι) με γκαζιέρα,
αλλά απουσία φτηνών εξαρτημάτων για τον έλεγχο του αερίου, θα χρησιμοποιήσουμε ένα απλό μάτι. (εεε! της κουζίνας)
Οι κατηγορίες του ελληνικού καφέ είναι: (κουταλιές)
- Γλυκός: 1 καφέ, 2 ζάχαρη
- Βαρύ γλυκός: 2 καφέ, 3 ζάχαρη
- Γλυκύβραστος: 1/2 καφέ, 1 ζάχαρη
- Μέτριος: 1 καφέ, 1 ζάχαρη
- Σκέτος (Πικρός): 1 καφέ
- Πολλά βαρύς και όχι: 2 καφέ, συνοδεύεται με ναργιλέ
Ανακατεύουμε συνεχώς μέχρι το μίγμα να αρχίσει να ξεχειλίζει, οπότε με γρήγορες κινήσεις το παίρνουμε από τη φωτιά. Αργείς-χάνεις, απλή λογική. Το βήμα αυτό
συζητείται να υλοποιηθεί με robot.
### [1.2 Γαλλικός]{#ss1.2}
Δημοφιλής καφές για προγραμματιστές μιας και δεν χρειάζεται προσοχή. Η ανάρπαστη γεύση του έχει εμπνεύσει χιλιάδες προγραμματιστών σε έργα λογισμικού αμύθητης
τελειότητας, υλοποιημένα άγρια χαράματα. Τα Windows για παράδειγμα είναι γραμμένα 5:00 το πρωί, με τα νεύρα ΝΑ. Εγγυημένο αποτέλεσμα.
### [1.3 Nescaffe]{#ss1.3}
Το κουνάς πριν
### [1.4 frappe]{#ss1.4}
Το κουνάς μετά
### [1.5 freddo]{#ss1.5}
Δύσκολος καφές.
Μην τον ζητήσετε από τον τύπο στο Πάρκο της Ειρήνης/Πανεπιστήμιο Πάτρας
### [1.6 cappuccino]{#ss1.6}
### [1.7 espresso]{#ss1.7}
### [2. Κυκλώματα σύνδεσης της καφετιέρας]{#s2}
Το σχηματικό είναι κάπως έτσι:
**ΣΗΜΕΙΩΣΗ: \'Εχει παρατηρηθεί ότι μερικά σχήματα δεν φαίνονται σωστά. Σε τέτοια περίπτωση, δείτε τα με \"View-\>Document source\".**
> --------- 0-5V --------- ~220V -----------
> | Η/Υ |===>===|Ελεγχος|========|Καφετιέρα|
> --------- --------- -----------
Η γενική ιδέα είναι ότι παίρνουμε μία τάση ελέγχου από τον υπολογιστή, ο οποία οδηγεί ένα κύκλωμα με απομόνωση (OPTOTRIAC ή RELAY).
Εάν η καφετιέρα είναι μεγάλη (πχ περισσότερο από 200W), χρησιμοποιείστε οπωσδήποτε RELAY, αλλιώς μπορείτε να βάλετε TRIAC. Εάν δεν κάνετε ακριβώς αυτό, απλά θα
πετάξετε τα λεφτά σας με τον ή με τον άλλο τρόπο.
Σημειώστε ότι τα κυκλώματα που έχουμε παρακάτω, είναι όλα τουλάχιστον μια φορά δοκιμασμένα, αλλά η διασύνδεση με τον υπολογιστή γίνεται με ΔΙΚΗ ΣΑΣ ΕΥΘΥΝΗ. Εάν
δεν έχετε εμπειρία με ηλεκτρονικά, καλόν θα είναι να μην την αποκτήσετε με αυτά τα κυκλώματα, γιατί θα είναι κακή μάλλον\...
Να είστε πολύ προσεχτικοί στους πειραματισμούς με τα 220V, και δεν θα είναι πολυτέλεια να χρησιμοποιήσετε ασφάλεια ανάλογη του φορτίου σας\...
### [2.1 Οδήγηση με 0-5V από τον υπολογιστή]{#ss2.1}
Εδώ είναι ένα απλό παράδειγμα για το πώς θα πάρετε μια απλή τάση 0-5V από τον υπολογιστή, μέσω της παράλληλης θύρας.
> Back View ----- Pin 10 - ACK
> Male DB-25 | | Pin 9 - D7
> Connector | | Pin 2 - D0
> v v v Pin 1 -
> ~Strobe
> ____________________________________________________________
> / \
> \ 13 12 11 10 9 8 7 6 5 4 3 2 1 /
> \ /
> \ 25 24 23 22 21 20 19 18 17 16 15 14 /
> \______________________________________________________/
Ο ακροδέκτης 1 είναι το Strobe( αρνητικής λογικής)
Οι ακροδέκτες 2-9 είναι τα σήματα του DATA BUS, όπως αυτά διαμορφώνονται, έπειτα από μία εντολή τύπου OUT στην παράλληλη θύρα.
Ο ακροδέκτης 10 είναι το ACK, δηλαδή τον ελέγχετε εσείς, παράγοντας interrupt.
Τα 18-25 είναι βραχυκυκλωμένα και είναι η γείωση.
Πιο αναλυτικά:
> <= in DB25 Cent Name of Reg
> => out pin pin Signal Bit Function Notes
> ------ ---- ---- -------- --- -----------------------------
> => 1 1 -Strobe C0- Set Low pulse >0.5 us to send
> => 2 2 Data 0 D0 Set to least significant data
> => 3 3 Data 1 D1 ...
> => 4 4 Data 2 D2 ...
> => 5 5 Data 3 D3 ...
> => 6 6 Data 4 D4 ...
> => 7 7 Data 5 D5 ...
> => 8 8 Data 6 D6 ...
> => 9 9 Data 7 D7 Set to most significant data
> <= 10 10 -Ack S6+ IRQ Low Pulse ~ 5 uS, after accept
> <= 11 11 +Busy S7- High for Busy/Offline/Error
> <= 12 12 +PaperEnd S5+ High for out of paper
> <= 13 13 +SelectIn S4+ High for printer selected
> => 14 14 -AutoFd C1- Set Low to autofeed one line
> <= 15 32 -Error S3+ Low for Error/Offline/PaperEnd
> => 16 31 -Init C2+ Set Low pulse > 50uS to init
> => 17 36 -Select C3- Set Low to select printer
> == 18-25 19-30, Ground
### [2.2 \'Ελεγχος με Relay]{#ss2.2}
Το πιο απλό κύκλωμα που μπορεί να φτιάξει κανείς είναι το εξής:
> Vcc
> |
> +------+
> | __|__
> Relay /^\ Diode 1N4002
> Coil /---\
> | |
> +------+
> |
> | /
> 4.7K B |/ C
> parallel port >-\/\/\/\/---| NPN Transistor: BC547A or 2N2222A
> data pi |\ E
> | V
> |
> parallel port >--------------+
> ground pin |
> Ground
Συνδέστε το Vcc με τάση αντίστοιχη με τον τύπο του relay που έχετε βρει (5 ή 12V). Προφανώς το relay πρέπει να διαλέξετε να είναι επαρκές για την καφετιέρα σας.
Αυτό ίσως εξηγεί τους κακούς καφέδες: Οι barmen συχνά κάνουν το λάθος να βάζουν το relay αντί στον συλλέκτη (C), στον εκπομπό (E) του τρανζίστορ, πολώνοντάς το
έτσι με λάθος τρόπο. Η δίοδος 1N4002 είναι για να προστατεύει το τρανζίστορ από τα ανάστροφα ρεύματα του Relay, όταν το ρεύμα σε αυτό αλλάζει. Εάν δεν την
βάλετε, λογικά το τρανζίστορ θα γίνει πιο μαύρο και θα μυρίζει.
### [2.3 \'Ελεγχος με TRIAC \#1]{#ss2.3}
Εάν θέλετε ένα απλό κύκλωμα μπορείτε να χρησιμοποιήσετε ένα Motorola MOC301\[012\] (οδηγός για TRIAC), μαζί με ένα γενικής χρήσης TRIAC όπως το SC141D. Το
πλεονέκτημα αυτού του κυκλώματος είναι ότι δεν χρειάζεται τάση τροφοδοσίας.
Για μη επαγωγικό φορτίο το κύκλωμα είναι ως εξής:
> 270 1 +-------+ 6 180
> +5v -VAVAVA-----+ +----VAVAVA-----+-------------- Line Hot
> 2 | MOC | |
> TTL in ---------+ 3012 +nc VA SC141D
> | | 4 / |
> nc+ +------------/ |
> +-------+ +----\/\/\/---- Line Neutral
> LOAD
Εάν πρόκειται να δουλέψετε με 220V, προτιμήστε ένα 3021. Εάν έχετε επαγωγικό φορτίο ενδείκνυται να βάλετε bypass πυκνωτές, δείτε σχετικά Motorola Application
Note AN-780. Οι καφετιέρες είναι κυρίως ωμικά φορτία (το θερμαντικό νήμα) και όχι επαγωγικά (όπως είναι πχ ένα μοτέρ) αλλά επειδή ποιος ξέρει τι καφετιέρα
έχετε\...
### [2.4 \'Ελεγχος με TRIAC \#2]{#ss2.4}
> +5VDC
> | 180 180 2.2k
> +---/\/\/\----+-----+ +----/\/\/-+--/\/\/\---+-------> 120V
> | 1| |6 | | Hot
> | +=====+ | | MT1
> | | MC | TRIAC | +-+
> | | 3032| Driver | G | | TRIAC
> | +=====+ | /| |
> \ 2| |4 | / +-+
> 2N3904 |----+ | | | | MT2
> / | +--------- | -------+ |
> V \ | | |
> | / | \ |
> | \ 43 .01u --- 10k / |
> | / 500V --- \ |
> | | | / |
> +------+ | | | Neutral
> | +--------+--+---o o--> 120V
> / load
> >-/\/\--| 2N3904
> \
> V
> |
> ---
> ///
> You should change resistors accordingly for 220V.
Περιγραφή κυκλώματος:
Το MC3032 είναι ένας οπτοαπομονωτής, κατάλληλος για οδήγηση TRIAC. Η αντίσταση των 180Ω ρυθμίξει το ρεύμα για τον εκπέμπον LED του οπτοαπομονωτή. Εάν
χρειάζεται, αλλάξτε την τιμή της αντίστασης για να πάρετε μία λογική τιμή ρεύματος (πχ 15 mA).
Δώστε σημασία στην ένδειξη 500V για τον πυκνωτή των .01μF. Σημειώσατε ότι δεν μπορείτε να ελέγξετε αυτό το κύκλωμα δίχως φορτίο. Το TRIAC δεν θα αλλάξει
αγωγιμότητα παρά μόνον εάν συνδεθεί με την πηγή παροχής εναλλασόμενου ρεύματος (δίκτυο) και με το φορτίο. Προσέξτε το φορτίο να μην είστε ΕΣΕΙΣ.
### [3. Λογισμικό]{#s3}
\'Εφτασεεεε\...
### [3.1 Πρόγραμμα σε C]{#ss3.1}
Φτιάξτε ένα εκτελέσιμο, που θα κάνει χοντρικά τα εξής:
- Θα παίρνει τα κατάλληλα δικαιώματα για την διεύθυνση I/O, με αίτηση στον πυρήνα, μέσω της ioperm: πχ ioperm( BASE, range ,1);
- θα εκτελεί το κατάλληλο out request, για να επιβάλει την σωστή τάση στην παράλληλη θύρα. πχ outb( 1, BASE );
- Θα περιμένει κατάλληλο χρονικό διάστημα για να ψηθεί ο καφές, ( καλόν θα είναι αυτό να το διαβάζει από την γραμμή εντολών )
- στην συνέχεια θα κλείνει την καφετιέρα. outb( 0 , BASE );
- Προαιρετικά, θα δίνει πίσω την θύρα με ioperm( BASE, range, 0);
Όπου BASE = 0x3bc για /dev/lp0, 0x378 για /dev/lp1, και 0x278 για /dev/lp2, range=8.
Καλόν θα είναι να το κάνετε setuid, για να μπορεί όλος ο κόσμος να φτιάχνει καφέ.
### [3.2 Σαν device driver]{#ss3.2}
Δεν έχετε παρά να διαβάσετε το kernel hacker\'s guide, να υλοποιήσετε έναν device driver (μπορεί να είναι και user space). Πλιιζ, κάνετέ το module, να μην
κάνουμε compile όλη την ώρα. Μετά θα γράφετε:
echo baryglykos >/dev/coffee
Και θα έχετε ζεστό καφέ σε 1 λεπτό. Θυμηθείτε να δώσετε τα σωστά permission στο /dev/coffee, ανάλογα με το εάν θέλετε να φτιάχνει καφέ μόνο ο root ή όχι.
Το πλεονέκτημα αυτής της μεθόδου είναι ότι επιτρέπει να χρησιμοποιηθεί το ACK της παράλληλης θύρας, ώστε οι \"έξυπνες\" καφετιέρες να μπορούν να παράγουν
interrupt.
Αφήνεται σαν άσκηση.
### [3.3 Διασύνδεση με Internet]{#ss3.3}
Αφού έχετε υλοποιήσει το πρόγραμμα σε C (βλέπε παραπάνω), δεν έχετε παρά να φτιάξετε ένα cgi τσι σειράς (ας είναι και β\' διαλογής), που θα καλεί το
προγραμματάκι για να φτιάξει τον καφέ. Τι web server? apache φυσικά\...
### [4. Συμπτώματα υπερδοσολογίας]{#s4}
- ευεξία
- νευρικότητα
- ταχυκαρδία ή καρδιακή αρυθμία
- τέντωμα μυών
- δυσκοιλιότητα :-(
### [5. Επεκτάσεις]{#s5}
Αυτές είναι μερικές ιδέες που είχαμε:
- Με λίγη προσπάθεια η ηλεκτρονική καφετιέρα μπορεί να επεκταθεί ώστε να υποστηρίζει τοστ, παστίτσιο, κουραμπιέδες κλπ.
- Cluster με 8 καφετιέρες. Αυτό θα επιτρέπει να έχετε καφέ ακόμη και όταν \"πέφτει\" η μία καφετιέρα, με αντίστοιχη μείωση της απόδοσης. Η παράλληλη
ανυσματική καφετιέρα είναι στα υπ\' όψιν.
- Εάν θέλουμε πλήρη αυτοματοποίηση χρειαζόμαστε επιπρόσθετα κυκλώματα και αισθητήρες, ώστε να ελέγχουμε την ροή του νερού, την θερμοκρασία του, την ποσότητα
του καφέ κλπ.
- Στο μέλλον σκεφτόμαστε να υλοποιήσουμε και SNMP. Α μα πια, αυτές οι καφετιέρες να μην έχουν έθερνετ ιντερφέις\...
- Σειριακή καφετιέρα στα 115Kbps.
### [6. Αναφορές]{#s6}
- [Χριστόφορος Κολόμβος](http://sunsite.unc.edu/expo/1492.exhibit/c-Columbus/columbus.html). Το πραγματικό του όνομα είναι Cristobal Colon. \'Εφερε πρώτος τον
καφέ από την Αμερική, την οποία πρώτος (από τους Ευρωπαίους) ανακάλυψε το 1492.
- <http://daisy.uwaterloo.ca/~alopez-o/caffaq.html> Το απόλυτο κείμενο σχετικά με τον καφέ. Βασικά, είναι το coffee-FAQ από το Internet.
- <http://lonestar.texas.net/~andrew/f_pc_.htm> Πολλά κυκλώματα σε ASCII, ανάμεσά τους και με έλεγχο από παράλληλη
- <http://shell.rmi.net/~hisys/parport.html> \'Οτι θέλατε να μάθετε για την παράλληλη θύρα και δεν τολμούσατε να ρωτήσετε.
- <http://sunsite.unc.edu/LDP/HOWTO/mini/IO-Port-Programming> Προγραμματισμός I/O θυρών σε Linux.
- <http://www.redhat.com:8080/HyperNews/get/khg.html> Πώς να γράψετε τους δικούς device drivers. Εμπρός λοιπόν, τι κάθεστε;
- <http://www.hut.fi/Misc/Electronics/circuits/parallel_output.html> Ας το θέσουμε έτσι: εάν ασχολείστε με ηλεκτρονικά, οι σελίδες του Tomi Engdahl είναι
must.
- <http://www.yahoo.com/Computers_and_Internet/Internet/Entertainment/Interesting_Devices_Connected_to_the_Net/Coffee_Machines/> Καφετιέρες on-line. Δυστυχώς,
δεν έχει συγκριτικά test.
- <http://www.cs.su.oz.au/~bob/coffee.html> Η εν λόγω συσκευή προσφέρει μόνο cappuccino. \'Αντε αναβαθμίστε το, ρε παιδιά.
- <http://einstein.et.tudelft.nl/~janssen/> Ζεστός ολλανδικός καφές
- http://circe.chinalake.navy.mil/cgi-bin/spion/snapit.cgi
- http://www.cl.cam.ac.uk/coffee/coffee.html
- http://www.menet.umn.edu/coffeecam/

34
content/articles/01/05_realworld.md Κανονικό αρχείο

@ -0,0 +1,34 @@
+++
title = 'Ορισμένοι το παίρνουν σοβαρά - CISCO Systems'
date = '1997-01-01T00:00:00Z'
description = ''
author = 'Παναγιώτης Βρυώνης'
issue = ['Magaz 01']
issue_weight = 5
+++
----------------------------------------------------------------------------------------------------------------------------------------------------------------
*Πολλές μεγάλες επιχειρήσεις και οργανισμοί ανά τον κόσμο χρησιμοποιούν το Linux. Αυτό τον μήνα παρουσιάζουμε την CISCO Systems.*
----------------------------------------------------------------------------------------------------------------------------------------------------------------
Η CISCO Systems είναι μία εταιρεία κολλοσός στον χώρο της δικτύωσης για το Internet. Πουλάει τα προϊόντα της (High-end Routers, WAN switches, LAN switches, Hubs
κ.λ.) σε 90 χώρες μέσω ενός δικτύου απ\'ευθείας πωλήσεων, αντιπροσώπων, μεταπωλητών και systems integrators. Εκτός από τα κεντρικά γραφεία της στο San Joze της
Καλιφόρνιας, έχει 200 ακόμη γραφεία πωλήσεων και υποστήριξης σε 54 χώρες. Ο ημερήσιος τζίρος της είναι πάνω από 6 εκατομμύρια δολάρια και το οικονομικό έτος
1997 ανήλθε συνολικά στα 6,44 δισ. δολάρια!!! (βλ. <http://www.cisco.com>)
Πριν από δύο χρόνια είχαν ένα τεράστιο πρόβλημα με την διαχείρηση των εκτυπωτών τους (1600 εκτυπωτές που χρησιμοποιούνται από 10.000 ανθρώπους σε όλο τον
κόσμο!). Ήταν αδύνατο να ξέρουν κάθε στιγμή την κατάσταση ενός εκτυπωτή στο δύκτιο, αφού εκατοντάδες χρήστες σε δεκάδες συστήματα μπορούσαν να στέλουν
εκτυπώσεις σε αυτόν.
Ο υπεύθυνος διαχειριστής συστήματος για τους εκτυπωτές, σχεδίασε ένα σύστημα στο οποίο όλες οι εκτυπώσεις για ένα συγκεκριμένο εκτυπωτή θα περνούσαν από ένα
μηχάνημα που θα λειτουργούσε ως spooler. Οι spoolers αυτοί θα έπρεπε όμως να μπορούν να επικοινωνούν με κάθε λογής \"πελάτες\" (Windows, NT, Unix, Novell κ.λ.).
Έπρεπε να είναι αρκετά φθηνοί ώστε να μπορούν να αγοραστούν εκατοντάδες από αυτούς. Τέλος, έπρεπε να μπορεί κανείς να βασιστεί σε αυτούς, από τεχνικής απόψεως.
Σήμερα, όλοι αυτοί οι 10.000 άνθρωποι ανά τον κόσμο μπορούν να εκτυπώνουν σε οποιονδήποτε από τους 1600 εκτυπωτές. Και όλες αυτές οι εκτυπώσεις περνάνε μέσα από
μηχανήματα που τρέχουν Linux.
Η ιστορία αυτή αναφέρεται στο *Linux Journal (Dec 1997/Issue 44, σελ.35)* .
Ακόμη, στο <http://www.m-tech.ab.ca/linux-biz/cisco.html> αναφέρεται ότι η CISCO χρησιμοποιεί Linux μηχανήματα σαν Network file servers, για συγγραφή κειμένων
(με ApplixWare), για σύνδεση με το Internet (Netscape Navigator, e-mail) καθώς και για software development\...

47
content/articles/01/06_redhatinst.md Κανονικό αρχείο

@ -0,0 +1,47 @@
+++
title = 'Πώς να εγκαταστήσετε το Redhat Linux από το Internet'
date = '1998-01-01T00:00:00Z'
description = ''
author = 'Γεωργάτος Φώτης gef@ceid.upatras.gr(mailto:gef@ceid.upatras.gr?subject=LINUX-MAGAZ) Κεραμίδας Γιώργος'
issue = ['Magaz 01']
issue_weight = 6
+++
----------------------------------------------------------------------------------------------------------------------------------------------------------------
*Από τους μεγαλύτερους πονοκέφαλους στο Linux είναι η εγκατάστασή του, γιατί συνήθως είναι χρονοβόρα και εάν \"σκαλώσει\" σε κάποιο πρόβλημα, θέλει κάποια
εμπειρία για να καταλάβει κανείς τι είναι καλύτερο να κάνει και πώς. Η κατάσταση αυτή αλλάζει σιγά-σιγά, καθώς η εγκατάστασή του γίνεται όλο και πιο εύκολη.*
----------------------------------------------------------------------------------------------------------------------------------------------------------------
Τελευταία, δοκιμάσαμε μία διανομή του Linux, που φάνηκε πολύ εύκολη στην εγκατάσταση ακόμη και για αρχάριους: το Redhat 5.0. Επιπρόσθετα, εάν κανείς είναι
συνδεδεμένος με καλή ταχύτητα στο Internet (\>100Kbps, όχι modem!), το μόνο που απαιτεί είναι να φτιάξει κανείς δυο δισκέτες, και να κάνει εκκίνηση με αυτές.
Η εγκατάσταση έγινε με χαρακτηριστική ευκολία, καθώς οι πιο πολλές ρυθμίσεις έγιναν αυτόματα. Οι σημαντικότερες πληροφορίες που έπρεπε να παρέχουμε εμείς ήταν η
διεύθυνση IP, το domainname, ο εξυπηρέτης DNS, ο ftp server που είχε το Linux σε μορφή εγκατάστασης (πχ ftp.linux.gr), και η διαδρομή μέσα σε αυτον
(/pub/redhat/redhat-5.0/i386/). Επίσης ενημερώσαμε στο πρόγραμμα εγκατάστασης το λογισμικό (πακέτα) που θέλαμε.
Από την στιγμή που πατήσαμε το τελευταίο ENTER, για 2 ώρες η εγκατάσταση προχώρησε ομαλότατα, ξεπερνώντας τις δυσκολίες ενός πολύ ασταθούς δικτυακού
περιβάλλοντος, όπως είναι ένα υπολογιστικό κέντρο σχολής Η/Υ, που την συγκεκριμένη στιγμή ήταν και εξαιρετικά φορτωμένο. Υποθέτουμε ότι με μία καλή σύνδεση και
επιλέγοντας ώρα που το δίκτυο δεν είναι φορτωμένο, μπορεί να γίνει σε 20\'.
Αφού τελείωσε η εγκατάσταση, μπήκαμε στο νέο σύστημα και διαπιστώσαμε ότι η RedHat έχει κάνει πολλές επιλογές και αυτοματισμούς για λογαριασμό ενός νέου χρήστη,
που αυξάνουν σημαντικά την ευχρηστία του Linux. Χαρακτηριστικό είναι το περιβάλλον του fvwm-95, που δίνει την αίσθηση που έχει κανείς σε άλλα δημοφιλή γραφικά
περιβάλλοντα. Μεγάλη ευκολία είναι ο Redhat Package Manager (RPM), που δίνει μεγάλη ευκολία στην (απ)εγκατάσταση εφαρμογών. Δεν χρειάστηκε kernel compile, καθώς
όλες οι ρυθμίσεις έγιναν αυτόματα.
Εμείς δοκιμάσαμε και στήσαμε και το KDE-beta2, το οποίο αν και beta δείχνει αρκετά όμορφο και σχετικά σταθερό. Σας συνιστούμε τουλάχιστον να το δείτε:
<http://www.kde.org>
Το Redhat 5.0, το βρήκαμε και στα εξής μέρη στην Ελλάδα: ( Επιλέξτε αυτό που είναι πιο γρήγορο σε εσάς )
- <ftp://ftp.linux.gr/pub/redhat/redhat-5.0/i386/>
- [ftp://ftp.csi.forth.gr/sunsite/linux/sunsite\_archive/
distributions/redhat/redhat-5.0/i386/](ftp://ftp.csi.forth.gr/sunsite/linux/sunsite_archive/distributions/redhat/redhat-5.0/i386/)
- <ftp://ftp.ntua.gr/pub/linux/redhat/redhat-5.0/i386/>
Στον υποκατάλογο images θα βρείτε τα boot.img, supp.img που είναι οι 2 δισκέτες για την εκκίνηση, που θα φτιάξετε χρησιμοποιώντας το ./dosutils/rawrite.exe.
Στον ίδιο κατάλογο υπάρχει το fips, ένα εργαλείο για να \"κόψετε\" τον σκληρό σας δίσκο σε partitions, διατηρώντας τα δεδομένα που ήδη έχει.
Να έχετε υπ\' όψιν σας ότι η εγκατάσταση του Redhat 5.0 μπορεί να γίνει και από τα ανάλογα bootable CD της Redhat. Επίσης, ενημερωθήκαμε ότι τέλος Ιανουαρίου θα
κυκλοφορήσει το [Linux Developer\'s Resource](http://www.infomagic.com/infomagic/2linux.html) της Infomagic (6CD, περιλαμβάνει το Redhat).

84
content/articles/01/07_kerncomp.md Κανονικό αρχείο

@ -0,0 +1,84 @@
+++
title = 'Επιτάχυνση της κατασκευής πυρήνα μέσω NFS'
date = '1998-01-01T00:00:00Z'
description = ''
author = 'Γεωργάτος Φώτης gef@ceid.upatras.gr(mailto:gef@ceid.upatras.gr?subject=LINUX-MAGAZ)'
issue = ['Magaz 01']
issue_weight = 7
+++
----------------------------------------------------------------------------------------------------------------------------------------------------------------
*Από τις πιο εντυπωσιακές διαφορές του Linux από τα άλλα λειτουργικά συστήματα, είναι η μεταγλώττιση του πυρήνα (kernel).*
----------------------------------------------------------------------------------------------------------------------------------------------------------------
Όταν πρωτοστήνει κανείς ένα Linux σύστημα, συνήθως παίρνει ένα πυρήνα που να δουλεύει, αλλά σπάνια αυτός αντιστοιχεί στις πραγματικές ανάγκες ενός χρήστη, άρα η
κατασκευή ενός νέου είναι επιβεβλημένη. Η διαδικασία αυτή είναι μάλλον διασκεδαστική - γιατί αφήνει την αίσθηση του πλήρη ελέγχου στον Η/Υ - αλλά και λίγο
χρονοβόρα, συνήθως είναι υπόθεση 15 λεπτών.
Θα σας δείξω, τώρα, πώς χάρις στην μεγάλη ευελιξία του Unix (άρα και του Linux), κατάφερα να μειώσω στο 1/20, τον χρόνο μεταγλώττισης, χρησιμοποιώντας την
ταχύτητα και μνήμη ενός γρήγορου συστήματος, που δούλευε για λογαριασμό ενός αργού.
Είχα ένα τοπικό δίκτυο ethernet με δύο Linux Η/Υ, έναν 386SX-20, 6MB RAM, 340MB HDD (Πόρος), και έναν 486DX-100, 20MB RAM, 1.2GB HDD (Κατελειός).
|----*---------------*------|
| |
-------- -----------
|ΠΟΡΟΣ | |ΚΑΤΕΛΕΙΟΣ|
|386-20| | 486-100 |
-------- -----------
Ο 486-100 ήθελε γύρω στα 30 λεπτά, αλλά ο 386-20 ήταν απαράδεκτα αργός στην κατασκευή πυρήνα γιατί ήθελε 17 ώρες (1 προς 34).
Την πρώτη φορά που έκανα το compile στον 386, νόμιζα ότι είχε κολήσει γιατί δούλευε όλη την ώρα στον δίσκο (swapfile). Αιτία ήταν ότι το compile, και ειδικά του
πυρήνα, απαιτεί μεγάλες ποσότητες μνήμης τις οποίες ο 386 με 6MB τις παρείχε σαν ιδεατή μνήμη (virtual memory). Δεν ήμουν σίγουρος για το τι συμβαίνει και έτσι
διέκοψα την μεταγλώττιση (απλά με control-c). Λίγες μέρες αργότερα τον έβαλα να φτιάξει πυρήνα και μέτρησα περίπου 17 ώρες.
Κάποια στιγμή χρειάστηκε ο Πόρος νέο πυρήνα οπωσδήποτε, αλλά δεν ήμουν πρόθυμος να τον περιμένω 17 ώρες\... Το να φτιάξω πυρήνα στον 486 μέσα σε ένα μισάωρο,
και να τον αντιγράψω δεν έστεκε σαν λύση, γιατί το compile εκτός από το 1 αρχείο που φτιάχνει και είναι ο πυρήνας (zImage), κάνει πολυάριθμα άλλα πράγματα όπως
τα modules και κάποιες ρυθμίσεις στο /boot και στα include αρχεία, νομίζω. Κοντολογίς, θα έφτιαχνα \"μισό\" πυρήνα και θα χάλαγα ενδεχομένως τον 486 στις
ρυθμίσεις του.
Ιδού λοιπόν η λύση: Κάνω **export** το / (root filesystem) του Πόρου,
echo "/ kateleios(rw,no_root_squash)" >>/etc/exports
kill -HUP `pidof rpc.nfsd rpc.mountd`
και το προσαρτώ στον 486 σε έναν υποκατάλογο του:
mount poros/ /mnt.
Αυτό το σύστημα λέγεται **NFS** (Network FileSystem), και είναι η τυπική μέθοδος για την διανομή αρχείων μεταξύ Unix συστημάτων.
Στην συνέχεια εκτελώ την εντολή **chroot** στον Κατελειό, ως root:
chroot /mnt sh
Αυτή η εντολή λέει στον πυρήνα ότι η διεργασία sh (που τρέχει στον Κατελειό) και τα παιδιά της, αλλάζει το root directory και όταν θα αναφέρεται στο
/usr/local/src ας πούμε, θα εννοεί το /mnt/usr/local/src. Τι σύμπτωση, εκεί είναι ο πηγαίος κώδικας του πυρήνα του Πόρου\... Ότι κάνουμε από εδώ και στο εξής,
\"τρέχει\" σαν διεργασία στον Κατελειό αλλά φορτώνει και δουλεύει από τον δίσκο του Πόρου.
Αρχίζουμε λοιπόν, μέσα από το \"περίεργο\" shell:
cd /usr/src/linux
make config
make dep
make clean
make zImage
Σε ένα 40λεπτο ο πυρήνας είναι έτοιμος, χρησιμοποιώντας την άπλετη μνήμη και υπολογιστική ισχύ του 486. Δεν τελειώσαμε όμως:
make modules
make modules_install
Ο νέος πυρήνας υπάρχει στο /usr/src/linux/arch/i386, αλλά δεν είναι ακόμα ενήμερο το LILO στον Πόρο. Όχι!!! μην γράψετε lilo στο shell αυτό, γιατί μόνο το MBR
του 486 είναι ορατό στο lilo. Απλά, βγήκα από το shell και έκανα telnet poros, μπήκα σαν root, αντέγραψα τον πυρήνα στο /zImage (εγώ τον τοποθετώ εκεί) και
εκτέλεσα lilo. Το σύστημα ενημερώθηκε για την αλλαγή του πυρήνα και στο επόμενο reboot δούλεψε μια χαρά.
Υποδείξεις:
- Το όταν παίξετε με τη chroot, δοκιμάστε με το directory /bin, ώστε να μπορείτε να κάνετε ls.
- Το read-write export του /, πιθανόν να είναι πρόβλημα ασφάλειας για το σύστημά σας. Εάν το τοπικό δίκτυό σας το παραμονεύει κανένας cracker, θα έπρεπε να
προσέχετε.
- Τα νέα συστήματα (πχ PPro-200,32MB) κάνουν την κατασκευή πυρήνα μέσα σε 5 λεπτά, σχεδόν interactive\...
- Ο τελευταίος πυρήνας υπάρχει στο <http://www.kernel.org>, και είναι ο linux-2.0.33 (31-12-97).