309 γραμμές
32 KiB
Markdown
309 γραμμές
32 KiB
Markdown
|
+++
|
|||
|
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 δεν τα πήγε
|
|||
|
και άσχημα.
|
|||
|
|