Εμφάνιση αναρτήσεων με ετικέτα flash memory. Εμφάνιση όλων των αναρτήσεων
Εμφάνιση αναρτήσεων με ετικέτα flash memory. Εμφάνιση όλων των αναρτήσεων

Rαμμένη Oμορφα Mνήμη (και οι LOL!)


Τεχνολογιστορικής φύσης και το σημερινό μας νουμεράκι αγαπητοί φίλοι της Καλής Φάσης (και του Ιδανικού Πλάτους), σχετικά με τη μνήμη που μας ταξίδεψε στο φεγγάρι και το διπλό λογοπαίγνιο με τα ακρώνυμα στον τίτλο.


Η μνήμη, είναι σημαντική έννοια. Όπως λέει και ο Bob Marley "If you know your history, then you know where you coming from". Κι αν ξέρεις απο που έρχεσαι μπορείς να αποφασίσεις και το που θα πάς. Οι άνθρωποι που ξέρουν που πηγαίνουν ακολουθούν tην πορεία τους. Οι άνθρωποι που χάνουν για κάποιο λόγο τη μνήμη τους, περιπλανώνται τυχαία μέσα στο περιβάλον τους. Η μνήμη λοιπόν, καθορίζει τη συμπεριφορά.

Κάπως έτσι λειτουργούν και οι ηλεκτρονικοί αριθμοϋπολογιστές. Το επόμενο βήμα σε ένα υπολογισμό εξαρτάται (τις περισσότερες φορές) απο το προηγούμενο και για να "θυμάται" ένας υπολογιστής απο ποιά βήματα έχει περάσει και ποιά ήταν τα ενδιάμεσα αποτελέσματα των υπολογισμών, χρειάζεται ένα τρόπο για να τα αποθηκεύει, χρειάζεται...μνήμη. Χωρίς μνήμη απο την οποία να διαβάζει ένα πρόγραμμα, ένας υπολογιστής δεν μπορεί να κάνει κανένα βήμα.


Καθώς λοιπόν οι υπολογιστές έγιναν όλο και μικρότεροι και τρύπωσαν σε κάθε πτυχή της ζωής όπου χρειάζεται ο παραμικρός υπολογισμός, εμφανίστηκε στη γλώσσα και η σχετική ορολογία. Για αρκετό καιρό για παράδειγμα κυκλοφορούσε στην Ελλάδα ένα περιοδικό με τον τίτλο RAM (Random Access Memory) ονομασμένο απο τον τύπο προσωρινής μνήμης που χρησιμοποιούν οι υπολογιστές για να αποθηκεύσουν προγράμματα, δεδομένα και πληροφορίες τουλάχιστον για όση ώρα βρίσκονται σε λειτουργία. Απο τη στιγμή που ο υπολογιστής τίθεται εκτός λειτουργίας, τα περιεχόμενα της μνήμης RAM χάνονται. Σε τι μνήμη λοιπόν βρίσκεται γραμμένο (μόνιμα) εκείνο το πρόγραμμα που θα ξεκινήσει να διαβάζει ο υπολογιστής αμέσως μόλις μπεί σε λειτουργία; Αυτό το πρόγραμμα βρίσκεται αποθηκευμένο σε ένα άλλο τύπο μνήμης ο οποίος κατα την παράδοση* ονομάζεται ROM (Read Only Memory), ή αλλιώς "Μνήμη Μόνο Για Ανάγνωση" και δεν χρειάζεται ηλεκτρικό ρεύμα για να διατηρεί τα περιεχόμενα της.


Η μνήμη των υπολογιστών έχει μακριά ιστορία μέχρι να φτάσει στη σημερινή, καθαρά ηλεκτρονική, μορφή της όπου τερατώδης χωρητικότητες της τάξης μεγέθους των GB, μπορούν να χωρέσουν σε μια τσέπη. Για αρκετό καιρό, για παράδειγμα, η μνήμη RAM αποτελούταν απο ηλεκτρομηχανικές διατάξεις όπως οι λεγόμενες "γραμμές καθυστέρησης" ενώ η μνήμη ROM βρισκόταν σε ακόμα πιο ασυνήθιστες (πια) συσκευασίες όπως για παράδειγμα, καλώδια σε βύσματα (!) μια σειρά απο απλούς διακόπτες(!!) ή σε... ψιλό-γαζί απο φερρίτες (!!!).  (1)

Ο Φερρίτης είναι ένα σιδηρομαγνητικό υλικό το οποίο έχει χρησιμοποιηθεί με διάφορους τρόπους σε μνήμες υπολογιστών. Το κλασικό παράδειγμα είναι η μνήμη με δαχτυλίδια (ή πυρήνες) μαγνητικού Φερρίτη. Όταν ένα κομμάτι μαγνητικού Φερρίτη βρεθεί μέσα σε ένα μαγνητικό πεδίο θα μετατραπεί και το ίδιο σε μαγνήτη. Όταν το μαγνητικό πεδίο πάψει να υπάρχει, ο μαγνητικός Φερρίτης διατηρεί τη μαγνητισή του και συμπεριφέρεται σαν να "θυμάται" ότι κάποια στιγμή είχε βρεθεί σε κάποιο μαγνητικό πεδίο. Μνήμη!!!!

Όμως η "Rαμμένη Όμορφα Μνήμη", ένας τύπος μνήμης που όπως είπαμε αποθηκεύει δεδομένα χωρίς να χρειάζεται να τροφοδοτείται με ηλεκτρικό ρεύμα, ΔΕΝ στηριζόταν στις μαγνητικές ιδιότητες του Φερρίτη!

Σε αυτή την περίπτωση, ο απλός Φερρίτης (σίδηρος) χρησίμευε σαν πυρήνας ενός πολύ μικρού μετασχηματιστή!! Αυτός ο μετασχηματιστής αποτελούταν απο δύο ανεξάρτητα πηνία, το πρωτεύον και το δευτερεύον, τυλιγμένα επάνω στο ίδιο δαχτυλίδι Φερρίτη. Όταν εμφανιστεί κάποια τάση στο πρωτεύον πηνίο, θα εμφανιστεί εξ επαγωγής και στο δευτερεύον. Άρα λοιπόν, αν θέλαμε να αποθηκεύσουμε τον δυαδικό αριθμό 1001 θα χρειαζόμασταν 4 μετασχηματιστές απο τους οποίους μόνον του πρώτου και του τέταρτου τα δευτερεύοντα πηνία θα ήταν τυλιγμένα (πλεγμένα) επάνω στους αντίστοιχους φερρίτες! Τα "δευτερεύοντα" του δεύτερου και του τρίτου μετασχηματιστή επειδή δεν θα ήταν τυλιγμένα επάνω στους αντίστοιχους φερίτες ΔΕΝ θα μετέδιδαν οποιοδήποτε ρεύμα θα ερχόταν στις εισόδους τους(**). Κατ' επέκταση, για να αποθηκεύσουμε μια σειρά απο δυαδικούς αριθμούς θα χρειαζόμασταν ένα 'πίνακα' απο μετασχηματιστές σαν αυτόν:

 Για φαντάσου ένα MP3 σε τέτοιο format (!!!!)
(Η φωτογραφία προέρχεται απο το σχετικό άρθρο της Wikipedia για το Core Rope Memory)

Σε αυτόν τον τύπο μνήμης....ήταν γ-ραμμένο, κυριολεκτικά bit πρός bit, το πρόγραμμα....που μετέφερε την αποστολή Apollo-11 στη Σελήνη!

Για να καταλάβουμε λίγο καλύτερα πόσο "ανατριχιαστικό" είναι αυτό το γεγονός αξίζει να αναλογιστούμε τη διαδικασία που υπονοείται!!! Αυτό σημαίνει οτι, κάποιος, έγραψε το πρόγραμμα ναυσιπλοϊας και ελέγχου του Apollo-11 σε κάποια γλώσσα προγραμματισμού, επιβεβαίωσε οτι λειτουργεί σωστά, μετά απο μια σειρά ελέγχων και προσαρμογής του κώδικα και αφού είχε βεβαιωθεί οτι το πρόγραμμα ΔΕΝ ΠΕΡΙΕΧΕΙ ΚΑΝΕΝΑ ΜΑ ΚΑΝΕΝΑ ΛΑΘΟΣ!!! Το μετέφρασε σε δυαδικούς αριθμούς και το "έπλεξε" επάνω στους μετασχηματιστές!!!!!!!!

Πόσο μεγάλο ήταν αυτό το πρόγραμμα; Δεν μπορούμε να ξέρουμε ακριβώς, όμως οι προδιαγραφές του υπολογιστή του Apollo 11 αναφέρουν 36kB ROM και μόλις 2kB RAM. Τριάντα - Έξι Χιλιάδες Bytes!!! Δηλαδή 36000 * 8 = 288000 bits! Σίγουρα λοιπόν, πολλές δεκάδες χιλιάδες πλεγμένα δευτερεύοντα πηνία που υποδήλωναν ένα λογικό-1 bit.

Μα καλά!!! Ποιός έκατσε και έκανε όλη αυτή τη δουλειά;;; Και μετά, ποιός έκατσε και έλεγξε οτι ο προηγούμενος έχει κάνει σωστά τη δουλειά του;;;

Τα "τσιπάκια" της ROM μνήμης του Apollo 11 και οι LOL επι το έργον!
(Η φωτογραφία προέρχεται απο το κ α τ α π λ η κ τ ι κ ο βιβλίο Nasa Mission AS-506 Apollo 11 (1969 including Saturn V, CM-107, SM-107, LM-5) που μοιάζει με Haynes Manual για κοινά οχήματα!)

Πολύ φοβάμαι, πως όλη αυτή τη δουλειά της (υ)ψιλής πλέξης, την έκαναν (οι καημένες) οι Little Old Ladies...Μια ομάδα απο γυναίκες οι οποίες έπλεκαν τη μνήμη, κάτω απο μικροσκόπια (!). Ή όπως τις είχε ονομάσει η ομάδα του MIT που ήταν υπεύθηνη για το σύστημα...οι LOL.

(Καρά-LOL!?!?)


Σημειώσεις:
1) Όπως έγραψα και νωρίτερα, μερικές καταπληκτικές ιστορίες για το υλικό και τα προγράμματα αυτών των υπολογιστών αναφέρονται στο βιβλίο του Mike Hally "Electronic Brains: Stories from the dawn of the computer age". Παρ' όλα αυτά, επειδή η μνήμη ήταν (και είναι) βασικό κομμάτι των υπολογιστών, σχετικές πληροφορίες υπάρχουν γενικά σε διάφορα βιβλία που αναφέρονται σε παλιούς υπολογιστές όπως για παράδειγμα το σύντομο αλλά περιεκτικό "The Pegasus Story: A history of a vintage British computer" του Simon Lavington όπου αναφέρονται εν τάχει εκτός απο τις μνήμες "γραμμής καθυστέρησης" και η ηλεκτροστατική μνήμη. Τέλος, παρ' όλο που αναφέρεται και στο κείμενο, θα ήθελα απλά να ξανα-βάλω εδώ το βιβλίο της Haynes για το Apollo-11, το οποίο περιέχει πραγματικά απίστευτο υλικό, απο το ένα εξώφυλλο ίσα με το άλλο! Μετά το Apollo-11 που πήρα κάποια στιγμή πριν απο περίπου 1 χρόνο, κυκλοφόρησε και το αντίστοιχο manual για το Space Shuttle, το οποίο είναι επίσης γαμμάτο!!!. Η επόμενη αγορά είναι το manual του Enterprise! :-D

*) Γράφω "κατά την παράδοση" γιατί τα σύγχρονα κυκλώματα (ή motherboard) επιτρέπουν την ενημέρωση των περιεχομένων της ROM, οπότε ο όρος πια δεν είναι και τόσο αυστηρός.


**) Προφανώς όλα τα πρωτεύοντα αντιστοιχούσαν στο λεγόμενο Address Bus ενώ τα δευτερεύοντα στο Data Bus...Τα δευτερεύοντα που δεν ήταν πλεγμένα συνέδεαν απλά τη γραμμή στο 0 (γή).

Επιτέλους!!! (To Lazarus και τα PDA (Μέρος 0.33 από 1)

Άλλο ένα άρθρο σε περισσότερα απο ένα μέρη, αυτή τη φορά σχετικό με τον προγραμματισμό συσκευών όπως PDA και Smartphones που χρησιμοποιούν το λειτουργικό σύστημα MS Windows Mobile (WM).

Σε αυτό το πρώτο μέρος θα περιγράψω τι αντιμετώπισα στη προσπάθεια μου να προγραμματίσω ένα PDA ενώ στα επόμενα μέρη θα περιγράψω αναλυτικά τις ρυθμίσεις και τη λειτουργία ενός πάρα πολύ καλού Integrated Development Environment (IDE), το οποίο διατίθεται δωρεάν και μου επέτρεψε να δημιουργήσω τελικά εφαρμογές για το PDA.

Ο στόχος μου, μέσα απο αυτό το άρθρο είναι να δώσω στον αναγνώστη πληροφορίες που είναι διαθέσιμες στο internet αλλά βρίσκοντε εδώ σε ένα ενιαίο κείμενο με βοηθητικά σχόλια και εντυπώσεις απο την όλη διαδικασία.

Ελπίζω να αποτελέσει μια καλή αρχή για όσους ενδιαφέροντε να προγραμματίσουν τα PDA τους.

Το Hardware (απο εδώ ξεκίνησαν όλα)
Πρίν απο περίπου 6 μήνες δέχτηκα ώς δώρο ένα PDA Dell Axim X51 με τον πολύ καλό Intel PXA270 XScale επεξεργαστή στα 624MHz. Η ανάλυση της οθόνης είναι 320x240 με 16bit βάθος χρώματος, έχει λειτουργικό WM 5.0 και πολλές δυνατότητες επέκτασης μέσω CompactFlash και της κάρτας μνήμης SD. Ουσιαστικά, η θύρα για τις μνήμες CompactFlash καταλήγει επάνω σε ένα mini-pcmcia bus μέσω του οποίου είναι δυνατόν να προσαρμοσθούν επάνω στο PDA και άλλες συσκευές όπως, GPS, κάμερα, Σκληροί δίσκοι, Barcode Scanners κλπ.
Όσο αφορά τη συνδεσιμότητα, το PDA μπορεί να συνδεθεί με άλλες συσκευές μέσω Bluetooth, Infrared (IrDA) και WiFi και υπάρχει και η δυνατότητα σύνδεσης του PDA με PC μέσω USB.

Σημείωση:Περίπου μια εβδομάδα αφού είχα λάβει το PDA, η Dell ανακοίνωσε οτι διακόπτει τη σειρά Dell Axim!!! (Οι φήμες λένε οτι ετοιμάζει μια πιο δυνατή PDA σειρά σε συνεργασία με την HTC[1]). Παρ' όλα αυτά, το PDA αυτό είναι αρκετά δυνατό και αν ενδιαφέρεστε για κάτι τέτοιο -ή το ελαφρά βελτοιωμένο X51V- σίγουρα μπορείτε να βρείτε μια καλή προσφορά στο e-bay. Μια πιο εκτενή παρουσίαση των συσκευών αυτών είχε γίνει απο το CNet[2].


Ενώ το Hardware είναι αρκετά δυνατό, κάποιες επιλογές που έχουν γίνει στο λειτουργικό προκαλούν εντύπωση!

Η συσκευή "τρέχει" WM στην έκδοση 5.0 και θα περίμενε κανείς με ένα τόσο δυνατό επεξεργαστή όπως ο PXA270 oti θα μπορούσε να υποστηρίξει όλα τα Services του Bluetooth (Για παράδειγμα, θα μπορούσε κανείς να στείλει ήχο απο το PDA στα Bluetooth ακουστικά ή να χρησιμοποιήσει το PDA ώς Human Interface Device (HID) για το χειρισμό ενός PC για παράδειγμα) .
Αντί αυτού, οι υπόλοιπες Bluetooth συσκευές βλέπουν απο το PDA μόνο μια απλή σειριακή θύρα over bluetooth. Αργότερα ανακάλυψα οτι υπάρχει ένα καλύτερο Bluetooth Stack (Widdcom) το οποίο έχει πολύ περισσότερα services αλλά και μερικά μικρά προβληματάκια [3].

Η συσκευή όπως και πολλές άλλες, δίνει τη δυνατότητα συγχρονισμού του Outlook (ημερολόγιο, reminders, emails, κλπ) με την αντίστοιχη PocketPC έκδοση του. Ενώ θα μπορούσε να κάνει το Synchronisation μέσω του standard Object Binary Exchange Protocol (OBEX)[4] που το υποστηρίζει έτσι κι αλλιώς επειδή έχει τη δυνατότητα IrDA, θα πρέπει να χρησιμοποιήσει κανείς αποκλείστικά το MS Active Sync (!). Το MS Active Sync, είναι μια πολύ απλή εφαρμογή απο τη Microsoft που δημιουργεί μια σύνδεση ανάμεσα στο PC και WM Based PDAs για τη διαχείρηση αρχείων.
Δυστυχώς, για να γίνει το Synchronisation, το ActiveSync πρέπει να τρέχει ΚΑΙ στο PC ΚΑΙ στο PDA. Δηλαδή ενώ υπάρχει η δυνατότητα να γίνει αυτή η μεταφορά με Standard εργαλεία, το ActiveSync δημιουργεί ένα ακόμα πρωτόκολο. Εν το μεταξύ η ενσωμάτοση του με τα Windows με τη δυνατότητα browsing των δίσκων όπως στον Windows Explorer έχει κάποια Bugs επειδή κάνει συνεχώς polling στο PDA για να "προλάβει" τις οποιεσδήποτε αλλαγές[5].

Ένα ακόμα "παράξενο" (που θα μας απασχολήσει και αργότερα, στον προγραμματισμό) είναι οτι δεν υπάρχει Console Device ενώ το console απο πλευράς Input / Output (I/O) είναι υλοποιημένο στα Windows CE. Αυτό σημαίνει οτι δεν μπορείτε να τρέξετε κατ' ευθείαν text mode εφαρμογές (όπως για παράδειγμα Telnet ή Putty).
Για να "δείτε" το Console Device θα πρέπει να κατεβάσετε και να εγκαταστήσετε την εφαρμογή PocketConsole η οποία θα σας δώσει τη δυνατότητα να τρέξετε οποιαδήποτε ανάλογη Text Mode εφαρμογή σε PocketPC[6]

Αναρωτιέμαι γατί έγιναν αυτές οι επιλογές.


Κατα τα άλλα η συσκευή είναι απροβλημάτιστη στη λειτουργία της και αν -καταφέρετε και- την ενσωματόσετε στη καθημερινή σας ζωή ίσως σας φανεί χρήσιμη. Το μόνο ίσως αρνητικό στη χρήση των PDA είναι η έλειψη ενός πλήρους qwerty πληκτρολογίου κάτι που οι πιο νέες αναδιπλώμενες συσκευές έχουν.

Μπορείτε βέβαια να χειριστείτε το PDA μέσω του "εικονικού" πληκτρολογίου ή γράφοντας κατ ευθείαν με το Stylus αλλά σίγουρα αυτός ο τρόπος αλληλεπίδρασης δεν είναι ο πιο βολικός για παρατεταμένη χρήση (Συγγραφή κειμένων, πολλές σημειώσεις, Login σε απομακρυσμένους server και δουλειά μέσω Putty κλπ). Απο την άλλη μεριά αν έχετε τα χρήματα μπορείτε να χρησιμοποιήσετε ένα αναδιπλώμενο Bluetooth πληκτρολόγιο[7].

Προσωπικά βρήκα πολύ χρήσιμα τα reminders και τα ραντεβού τις χειρόγραφες σημειώσεις (τις μετατρέπει αυτόματα σε κείμενο με ενσωματομένο OCR), τις φωνητικές σημειώσεις (απλά με το πάτημα ενός πλήκτρου ηχογραφείτε ένα μήνυμα σε CD quality) και τη δυνατότητα να λαμβάνω email -μέσω web αλλά και μέσω Outlook- συνδεόμενος σε hotspots. Βέβαια μέσω του WiFi είναι επίσης δυνατόν να κάνετε κλήσεις τηλεφωνίας με κάποιο πρόγραμα όπως για παράδειγμα το Skype Mobile[8]...πραγματικά πολύ βολικό.

Παρ' όλες του τις δυνατότητες και εφαρμογές όμως...ήθελα να το προγραμματίσω. Ιδιαίτερα αφου είχα και ένα Bluetooth GPS ήθελα, έτσι απο ενδιαφέρον, να δημιουργήσω μια εφαρμογή για το PDA.

Η αρχική μου σκέψη ήταν μια απλή εφαρμογή GPS Navigation στην οποία θα μπορούσα να φορτώσω οποιοδήποτε χάρτη σαν εικόνα (είτε απο scanner, είτε απο το internet) και να τοποθετήσω μια τελεία στην τρέχουσα τοποθεσία μου. Η μετατροπή των συντεταγμένων απο το πλαίσιο αναφοράς του GPS στο πλαίσιο αναφοράς της εικόνας γίνεται με ένα απλό γραμμικό μετασχηματισμό, οπότε αυτό θα ήταν το ελάχιστο πρόβλημα μου...

Ένα ένα τα βήματα όμως...πρώτα έπρεπε να γράψω και να μεταφέρω το πρόγραμα στο PDA.

Ο προγραμματισμός του PDA
Microsoft Visual Studio
Το πρώτο πράγμα που σκέφτηκα ήταν να κοιτάξω την υποστήριξη του Microsoft Visual Studio για PocketPC συσκευές. Το Visual Studio είναι πραγματικά ένα ανεκτίμητο εργαλείο (δεν είναι βέβαια το μόνο) και ήμουν σίγουρος οτι η Microsoft θα είχε δημιουργήσει κάποιο MSVS Add-On το οποίο θα έκανε τα πάντα με το πάτημα ενός κουμπιού.

Μερικά downloads αργότερα και ενώ το είχα πάρει απόφαση οτι δεν γλύτωνα και την εγκατάσταση του .NET Framework για PocketPC στο PDA, είμαι έτοιμος για τη πρώτη προσπάθεια. Το add-on δημιουργεί ένα νέο Application Template με την ονομασία Smart Device Application και όλες τις ρυθμίσεις έτοιμες. Παρ' όλα αυτά, ότι και να έκανα, αμέσως μετά το πρώτο Dialog Box όπου καθορίζεται το όνομα του Project και η τοποθεσία του, έπαιρνα συνεχώς το ίδιο σφάλμα, σχετικά με κάποιο Component μέσα στη "σελίδα".
(Θυμηθείτε οτι τα Dialog Boxes των wizards του Visual Studio χρησιμοποιούν το CHtmlView)

Έτσι έληξε πρίν καν αρχήσει, η εμπειρία μου με το MSVS. Έτσι κι αλλιώς ήδη είχα αρχήσει να αλλάζω γνώμη όταν διάβασα οτι θα έπρεπε να εγκαταστήσω στο PDA το .NET Framework. Απο την άλλη μεριά το Visual Studio έχει και μεγάλο κόστος κάτι που ίσως αποθαρρύνει τους ενδιαφερόμενους ιδιώτες προγραμματιστές να το επιλέξουν για να δημιουργήσουν τις δικές τους εφαρμογές για PDA.

Java
Η επόμενη σκέψη μου ήταν να χρησιμοποιήσω τη Java. Παρ' όλο που δεν έχω μεγάλη εμπειρία σε αυτή τη γλώσσα (Πέρα απο το βασικό προγραμματισμό), ήμουν διατεθειμένος, να καταβάλω κάθε προσπάθεια για να δώ την εφαρμογή να τρέχει στο PDA. Στο κάτω κάτω, θα μάθαινα και κάτι απο την όλη διαδικασία.

Επειδή τα PDA και οι υπόλοιπες Smart Devices είναι τοσο διαδεδομένες θα περίμενε κανείς οτι θα ήταν πολύ εύκολο να βρεθεί ένα Virtual Machine (που είναι υπεύθηνο για την εκτέλεση τον προγραμμάτων) για το Axim.

Δυστυχώς, μόνο εύκολο δεν ήταν. Αρχικά έψαξα στο αφιερωμένο στη Java, website της Sun αλλά δε βρήκα κάποιο Java Runtime Environment (JRE) για PocketPC. Πολύ χρήσιμη στην αναζήτηση μου ήταν μια λίστα των διαθέσιμων Java Virtual Machines και των μηχανημάτων που τρέχουν, απο τον Dan Fiton του Πανεπιστημίου του Lancaster[10]
Σε αυτή τη λίστα θα βρείτε υλοποιήσεις απο προγραμματιστές ή ομάδες προγραμματιστών, διαφόρων VMs οι οποίες όμως δεν παρέχουν πλήρη υλοποίηση του Java standard ή των διαφόρων πακέτων της.

Μετά απο αρκετό ψάξιμο διαπίστωσα οτι η μόνη εταιρία που διαθέτει ένα αξιόπιστο και πλήρως υλοποιημένο Java Standard για PocketPC στα WM 5.0 είναι η IBM με την έκδοση J9[11].

Το runtime environment αυτό μπορείτε να το κατεβάσετε και να το χρησιμοποιήσετε δωρεάν μόνο για ιδιωτική χρήση και μια πιο εκτενή παρουσίαση του μπορείτε να βρείτε στο πολύ καλό Aximsite[12]

Παρ' όλα αυτά η εγκατάσταση του J9 είναι απλά το πρώτο βήμα που θα σας επιτρέψει να δημιουργήσετε απλές εφαρμογές σε Java και να τις εκτελέσετε στο PDA. Για να προχωρήσετε σε γραφικό περιβάλλον θα πρέπει είτε να εγκαταστήσετε το Standard Widget Toolkit ή να χρησιμοποιήσετε το Abstract Windowing Toolkit[13].

Σε αυτό το σημείο τα πράγματα ήταν ήδη αρκετά πολύπλοκα. Όλο αυτό το διάβασμα και η "μάχη" με τη Java, με έκαναν να νοιώθω οτι έπρεπε να καταβάλω μια πολύ μεγάλη προσπάθεια για να στήσω το Development Environment μου για μια σχετικά απλή εφαρμογή η οποία τελικά ίσως και να μην έτρεχε όσο γρήγορα θα έτρεχε ένα native εκτελέσιμο.

Έτσι λοιπόν αποφάσισα να συνεχίσω την αναζήτηση και να επιστρέψω στη Java αν δεν έβρισκα κάτι καλύτερο.

Adobe Flash
Η επόμενη σκέψη μου ήταν να δοκιμάσω το Flash το οποίο μου είχε κάνει εντύπωση απο τις αρχικές εκδόσεις, επειδή είχε σχετικά απλή δομή και πολλές συναρτήσεις για γραφικά (όπως scaling, rotation, skew, κλπ) ήδη έτοιμες. Το έναυσμα για να αφιερώσω κάποιο χρόνο στο Flash μου το έδωσε το γεγονός οτι υπήρχε ήδη ένας Flash Player (στην έκδοση 7, ενώ το Flash είναι τώρα στην έκδοση 9, αλλά αυτό ήταν το ελάχιστο πρόβλημα) για PocketPC.

Παρ' όλα αυτά, σύντομα ανακάλυψα οτι οι εφαρμογές Flash δεν έχουν καμία πρόσβαση στο περιβάλλον όπου τρέχει ο Flash Player παρα μόνο μέσω ελάχιστων συναρτήσεων για επικοινωνία μέσω δικτύου με Servers.

Αυτό σήμαινε οτι ήταν αδύνατον να έχω πρόσβαση στην εικονική σειριακή θύρα του GPS ή, για τον ίδιο λόγο, πρόσβαση σε οποιοδήποτε αρχείο του συστήματος.

Μετά απο λίγο ψάξιμο στο πραγματικά πολύ καλό site της Adobe, ανακάλυψα οτι κάποιος προγραμματιστής είχε χρησιμοποιήσει το Flash σαν Interface σε μια εφαρμογή που χρησιμοποιούσε GPS για να προσδιορίζει τη τοποθεσία του χρήστη και να του παρέχει την ανάλογη ξενάγηση στο χώρο.

Δυστυχώς όμως, η σχεδίαση της εφαρμογής δεν ακολουθούσε τον πιο σύντομο δρόμο. Η εφαρμογή αυτή ήταν μια Client - Server εφαρμογή, όπου και τα δύο μέρη θα έπρεπε να τρέχουν στο PDA. Ο Server ήταν ένα πρόγραμμα σε C++ το οποίο παρακολουθούσε τη σειριακή θύρα και δημιουργούσε και ένα Listening Socket σε κάποιο port. Αυτός ο Server έκανε επίσης και την αποκωδικοποίηση του GPS Data Stream και παρείχε στο Flash τις τιμές, σαν ένα XML Stream. Ο Client ήταν φτιαγμένος σε Flash και αναλάμβανε μόνο τη σύνδεση στο Server και την αναπαραγωγή των διαφόρων video ή ήχων σε διάφορα checkpoints [14]

Η σχεδίαση αυτή δε μου φάνηκε καθόλου ελκυστική, μια και θα χρειαζόμουν κάποιο C++ Compiler για WM5.0 τον οποίο έτσι κι αλλιώς δεν έιχα.

Παρ' όλα αυτά, θα συνιστούσα να εγκαταστήσετε τον Flash Player στο PocketPC σας έτσι κι αλλιώς και αυτό γιατί θα σας επιτρέψει αφ ενός να τρέξετε τις δικές σας Flash εφαρμογές στο PDA και αφ ετέρου να τρέξετε διάφορες Flash εφαρμογές απο το Internet.

Άλλα Virtual Machines και τρόποι προγραμματισμού για PocketPC
Εδώ ανήκουν διάφορα Virtual Machines με αντίστοιχες γλώσσες προγραμματισμού ή Interpeters που βρήκα καθώς αναζητούσα τρόπους να προγραμματίσω το PDA. Δεν θα ξεκίναγα το project με βάση κάποιο απο αυτά αλλά θεώρησα καλό να τα συμπεριλάβω εδώ.

Εδώ θα ήθελα να πώ οτι το Aximsite και οι χρήστες του με βοήθησαν πάρα πόλυ στην αναζήτηση όλων αυτών των πληροφοριών απαντώντας σε ερωτήματα και δίνοντας τις απόψεις τους. Σε μια απο αυτές τις απαντήσεις βρήκα και τη παρακάτω λίστα με εναλλακτικά προγραμματιστικά εργαλεία [15]

Linux και GCC
Σε αυτό το σημείο έχω εξαντλήσει όλα τα περιθώρια να προγραμματίσω το PDA με σχετικά εύκολο τρόπο -εξακολουθώντας να έχω τις επιφυλάξεις μου για τη Java- και έχω αρχίσει να κοιτάω πιο παρακινδυνευμένες λύσεις.

Παρακινδυνευμένες όχι για κανένα άλλο λόγο αλλά γιατί θα έπρεπε να flashάρω το PDA με ένα νέο ROM Image το οποίο θα περιείχε το Linux, αντί των Windows WM 5.0 και αν κάτι πήγαινε στραβά θα κατέληγα με ένα πολύ όμορφο και άχρηστο PDA.

Πιστεύω όμως οτι θα άξιζε το ρίσκο επειδή στο Linux τα πράγματα όσο αφορά το προγραμματισμό είναι πολύ πίο άμεσα.

Δυστυχώς, ούτε σε αυτή τη περίπτωση στάθηκα τυχερός καθώς ναί μέν, υπάρχει μια διανομή Linux που τρέχει στο Axim X51 (γενικά σε ARM based συσκευές) και μπορεί να κάνει Boot μέσα απο τα WM 5.0 (άρα δεν είναι ανάγκη να Flashάρω το PDA) αλλά δεν υποστηρίζει πλήρως όλο το Hardware και συγκεκριμένα τα Bluetooth και WiFi Chipset, τα πλήκτρα και τα Led της πρόσοψης, το backlight και άλλα.

Η πρόοδος είναι αργή και μπορείτε να ρίξετε μια ματιά στο website www.handhelds.org για την πρόοδο της διανομής Linux Familiar τόσο στο Axim όσο και σε άλλες PDA συσκευές[16,17,18]. Απο ένα μικρό διάλογο που είχα στο IRC με κάποιους προγραμματιστές απο την ομάδα αυτή, είναι πιθανό να δούμε μια σχετικά απροβλημάτιστη έκδοση Linux να τρέχει στα PDA μέσα στα επόμενα 1-1.5 χρόνια.

Απο εκείνη τη στιγμή, παράτησα κάθε προσπάθεια να προγραμματίσω το PDA και για περίπου 2-3 μήνες απλά χρησιμοποιούσα τις υπάρχουσες εφαρμογές.

Βλέποντας το Φώς!
Ώσπου, κάποια στιγμή στις αρχές Σεπτεμβρίου (2007) διαβάζω μια ανακοίνωση για τη τελευταία έκδοση ενός Compiler και του αντίστοιχου IDE του που έθεσε το πιο θεαματικό τέρμα στην αναζήτηση μου!

Περισσότερα όμως για αυτό καθώς επίσης και το πρακτικό μέρος του προγραμματισμού στο επόμενο άρθρο, λίαν συντόμως (ελπίζω ;-) )

Περισσότερες πληροφορίες για θέματα που αναφέροντε μέσα στο άρθρο, απο τις παρακάτω τοποθεσίες:
[1] Dell halts PDA development
[2] Εκτενής παρουσίαση των Dell Axim X51
[3] Widdcom Bluetooth Stack για τα Dell Axim σειράς X51
[4] Object Binary EXchange (OBEX)
[5] Activesync Προβλήματα
[6] PocketConsole για WM PDA
[7] Bluetooth Foldable Keyboard
[8] Skype Mobile
[9] Ο δικτυακός τόπος της Sun για τη Java
[10] Java VMs στα PocketPCs
[11] ΙΒΜ Java VM και Class Library (J9)
[12] Εγκατάσταση και χρήση της IBM J9
[13] Java SWT Στο PocketPC
[14] Invisible Ideas (Πρόσβαση στο GPS μέσω Flash)
[15] Διάφορες γλώσσες προγραμματισμού και περιβάλοντα για PocketPC
[16] Linux On Dell Axim
[17] Screenshot απο Linux στο Axim X3 με τη σχετική πρόοδο
[18] Η πρόοδος της μεταφοράς του Linux στο Dell Axim X5*

Η ανατολή των Flash Memory δίσκων (Μέρος 2ον)

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

Aυτό είναι το δεύτερο άρθρο της σειράς "Η ανατολή των Flash Memory δίσκων", όπου θα παρουιάσω το πρακτικό μέρος της αντικατάστασης ενός σκληρού δίσκου φορητού υπολογιστή με μια CompactFlash μνήμη. Μπορείτε να διαβάσετε το πρώτο μέρος εδώ.

Hardware
Όσο αφορά το hardware αυτά που θα χρειαστείτε είναι:
  • Προσαρμογέα CompactFlash (CF) σε IDE (x1)
  • CompactFlash μνήμη (x1)
Για να προσαρμόσετε τη Flash μνήμη στο φορητό σας, θα χρειαστείτε τον προσαρμογέα ο οποίος ουσιαστικά συγκρατεί τη μνήμη flash επάνω σε ένα πλαίσιο (δείτε την παρακάτω εικόνα) που έχει ακριβώς τις ίδιες διαστάσεις και σημεία στήριξης με τα standards των σκληρών δίσκων.



(Out Of The Box - H CompactFlash μνήμη με τον προσαρμογέα CF-IDE...Το μόνο Hardware που θα χρειαστείτε. )

Δυστυχώς δεν βρήκα κανένα Ελληνικό online μαγαζί που να διαθέτει αυτό το προϊόν και έτσι το προμηθεύτικα απο το Αγγλικό online κατάστημα DigitalEra[1]. Αυτός ο προσαρμογέας είχε κόστος £15 (λίρες Αγγλίας), δηλαδή περίπου €22 και αυτή είναι και η τιμή που θα πρέπει να περιμένετε να βρείτε αυτούς τους προσαρμογείς στο Internet.

Οι δίσκοι των φορητών υπολογστών, παρ όλο που είναι IDE έχουν διαφορετική πρίζα (δείτε στις παρακάτω εικόνες) η οποία εκτός απο δεδομένα αναλαμβάνει να τροφοδοτεί και το δίσκο με ρεύμα. Για να κάνουν την αλλάγη του σκληρού δίσκου εύκολη, οι κατασκευαστές των φορητών υπολογιστών έχουν δημιουργήσει πολλούς διαφορετικούς μηχανικούς τρόπους με τους οποίους προσαρμόζουν τον σκληρό δίσκο στο πλαίσιο του υπολογιστή.

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

Ο υπολογιστής που χρησιμοποίησα ήταν ένας Dell Inspiron 2500 (P3 στο 1GHz με 256MB Ram μνήμης και 30GB σκληρό δίσκο) που είχε το συρταρωτό σύστημα προσαρμογής του σκληρού δίσκου.


(Dell Inspiron 2500 με το συρτάρι του δίσκου ανοιγμένο.)

Αφού αφαίρεσα το σκληρό δίσκο απο το συρτάρι, βίδωσα τον προσαρμογέα και ήμουν έτοιμος για τη CompactFlash κάρτα μνήμης.

Όσο αφορά τη κάρτα μνήμης, ουσιαστικά μπορείτε να τη προμηθευθείτε σε χωρητικότητα και κόστος της αρεσκείας σας. Παρ' όλο που οι διάφορες τιμές των CompactFlash προσαρμογέων ήταν ίδιες απο μαγαζί σε μαγαζί στο internet, οι τιμές των CompactFlash μνημών είχαν πολύ μεγάλες αποκλίσεις και γι' αυτό η καλύτερη λύση, αν αγοράζετε μια καινούρια κάρτα, είναι να την αγοράσετε απο κάποιο online μαγαζί. Παρακάτω παραθέτω ένα πίνακα με τις τιμές μνημών που βρήκα απο διάφορους προμηθευτές και σε διάφορες χωρητικότητες.


Η κάρτα που προτίμησα τελικά ήταν μια Sandisk Extreme στα 4GB στη τιμή των 31 περίπου λιρών

Προς το παρόν, η μεγαλύτερη χωρητικότητα που μπορείτε να βρείτε σε μνήμη Compact Flash είναι τα 16GB (πολύ σύντομα και 32GB διαβάστε στη παράγραφο "Το Μέλλον"), αλλά σε αρκετά υψηλή τιμή.


(Ο Connector στα δεξιά, προσαρμόζεται στον CFtoIDE προσαρμογέα στο κέντρο. Ο προσαρμογέας με τη σειρά του θα βιδωθεί στο συρτάρι στα αριστερά.)


(Η κάρτα CF έτοιμη προς χρήση)



(Επάνω στο συρτάρι του δίσκου και ένα βήμα πρίν την ολοκλήρωση)

Software
Με τον όρο software εδώ δεν εννοώ κάποιο ειδικό πρόγραμμα ή driver για να συνεργαστεί η μνήμη CompactFlash με το φορητό -δε χρειάζεται άλλωστε- αλλά για τα μειονεκτήματα και πλεονεκτήματα που έχουν διαφορετικά λειτουργικά και συστήματα αρχείων όταν λειτουργούν επάνω σε Flash μνήμες.

Η κάρτα CompactFlash αναγνωρίζεται απο το BIOS αυτόματα ώς ένας κοινός σκληρός δίσκος. Για παράδειγμα, η κάρτα της δοκιμής αναγνωρίστηκε αυτόματα ώς Sandisk CFA Disk χωρίς καμία επιπρόσθετη ρύθμιση.



(Το BIOS στο πρώτο boot)

Όσο αφορά το λειτουργικό σύστημα, θεωρητικά μπορείτε να χρησιμοποιήσετε όποιο λειτουργικό θέλετε, παρ' όλα αυτά, τα λειτουργικά που υποστηρίζουν μεγαλύτερη ποικιλία σύγχρονων συστημάτων αρχείων (filesystem) όπως για παράδειγμα το Linux, θα σας δώσουν μεγαλύτερη ευελιξία στη ρύθμιση της λειτουργίας της κάρτας μνήμης με το υπόλοιπο σύστημα.

Για λόγους που έχουν να κάνουν με το Wear Leveling (που περιέγραψα στο προηγούμενο άρθρο) καλό θα ήταν να χρησιμοποιήσετε ένα Journaling File System[2] όπως είναι για παράδειγμα το NTFS στα Windows, το Ext3 στο Linux ή το πολύ καλό BeFS του λειτουργικού BeOS.

Το πλεονέκτημα που έχουν αυτά τα συστήματα αρχείων όταν χρησιμοποιούντε με μνήμες Flash είναι οτι ομαδοποιούν τις εγγραφές προς το φυσικό μέσο. Αυτό έχει σαν αποτέλεσμα λιγότερες προσπελάσεις άρα και μεγαλύτερη δάρκεια ζωής της κάρτας.

Σε παρόμοιο σύστημα αρχείων (Journaled δηλαδή) έχει βασιστεί και το JFFS[3] το οποίο χρησιμοποιείται σε embedded συστήματα (όπως για παράδειγμα PDA, Smart Phones, κλπ), όπου ο επεξεργαστής επικοινωνεί κατ' ευθείαν με τη μνήμη Flash (ενώ στη περίπτωση μας, η CompactFlash κάρτα περιέχει τον controller)
Λειτουργία και Συγκρητικά
Η λειτουργία ενός υπολογιστή με μια κάρτα CompactFlash στη θέση του σκληρού δίσκου είναι πολύ πιο αθόρυβη. Απουσιάζει ο ήχος του κινητήρα που περιστρέφει το σκληρό δίσκο και ο χαρακτηριστικός ήχος που κάνει η κεφαλή κατα την εγγραφή / ανάγνωση.

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

Το καλύτερο ίσως χαρακτηριστικό είναι η ζωή της μπαταρίας. Ο συγκεκριμένος υπολογιστής είχε μια φθαρμένη μπαταρία που κρατούσε το σύστημα σε λειτουργία για περίπου 30 δευτερόλεπτα χωρίς εξωτερική τροφοδοσία. Παρ' όλα αυτά με τη κάρτα μνήμης, μια πλήρης φόρτιση κρατάει το φορητό για περίπου 2 λεπτά χωρίς εξωτερική τροφοδοσία...Αυτό σημαίνει οτι με τη κάρτα μνήμης ο χρόνος λειτουργίας για την ίδια φόρτιση μπορεί και να τετραπλασιαστεί.

Το μηχάνημα της δοκιμής ήταν ένας παλαιότερος φορητός υπολογιστής Dell Inspiron 2500, Pentium 3 στο 1GHz με 256 MB μνήμης. Δοκίμασα την εγκατάσταση και λειτουργία 3 λειτουργικών συστημάτων:
  • Microsoft Windows XP
  • Red Hat Linux 9
  • BeOS Max 3
Και τα 3 λειτουργικά είχαν παρόμοιους χρόνους εγκατάστασης (περίπου 40 λεπτά) στην κάρτα CompactFlash και το σκληρό δίσκο.

Τα Windows XP καταλαμβάνουν περίπου 2 GB επάνω στην κάρτα με σύστημα αρχείων NTFS. Δεν είχα καθόλου καλές εντυπώσεις απο αυτό το λειτουργικό μια και μετά το πρώτο boot και ενώ περίμενα να μπώ στο λειτουργικό, είχα κάποια μηνύματα λάθους σχετικά με την εικονική μνήμη και το σύστημα υπολειτουργούσε.
Παρ' όλο που μπήκα σε Protected Mode και άλλαξα το μέγεθος της εικονικής μνήμης, στο επόμενο boot επανήλθε στο μηδέν.
Απο αυτή τη συμπεριφορά υποψιάζομαι οτι ο controller της κάρτας (ή ο driver των windows) πιθανότατα δεν υποστηρίζει κάποιες λειτουργίες για direct access με αποτέλεσμα αυτά τα προβλήματα.




Το επόμενο λειτουργικό που δοκίμασα ήταν το BeOS MAX 3. Αυτή είναι μια παλιότερη διανομή που έκανε ο Βασίλης Περαντζάκης με το βασικό λειτουργικό BeOS και πάρα πολλές εφαρμογές. Όλα αυτά για περίπου 600 MB χώρου στη κάρτα μνήμης!
Σε αυτό το λειτουργικό επέλεξα το BeFS σαν σύστημα αρχείων. Αυτό το λειτουργικό δεν δημιούργησε κανένα απολύτως πρόβλημα στην εγκατάσταση και λειτουργία απο την CompactFlash μνήμη εκτός απο το οτι δεν έβλεπε πλήρως την κάρτα γραφικών.



Το τελευταίο λειτουργικό που δοκίμασα ήταν το Linux και συγκεκριμένα η έκδοση Red Hat 9.1.
Σε αυτή τη περίπτωση, δεν υπήρξε κανένα απολύτως πρόβλημα. Στην εγκατάσταση επέλεξα το σύστημα αρχείων Ext3 και μετά απο περίπου 30 λεπτά είχα ένα πλήρες λειτουργικό επάνω στη κάρτα Flash σε περίπου 1.5GB (Ομολογουμένος με αρκετά Extras)



Το Μέλλον
Οι Flash μνήμες δείχνουν να κερδίζουν όλο και περισσότερο έδαφος έναντι των σκληρών δίσκων καθώς οι τιμές πέφτουν και οι χρητικότητες ανεβαίνουν.

Οι κατασκευαστές δείχνουν να επιλέγουν τις CF μνήμες απο τους κλασικούς σκληρούς δίσκους για να εξοπλίσουν τα φορητά συστήματα του μέλλοντος λόγο των πολύ καλών χαρακτηριστικών τους.

Μηχανήματα όπως το υπέροχο eee PC[3] της Asus και ο υπολογιστής των "100 δολαρίων"[4] (που τελικά μάλλον θα κοστίζει λίγο παραπάνω) του MIT διαφημίζουν ήδη τη χρήση Flash μνήμης ώς το βασικό τους αποθηκευτικό μέσο.

Μέσα στο 2008 αναμένεται μια συσκευή με τη "μαγική" χωρητικότητα των 160GB[5] απο την Adtron και ένας PCMCIA Flash δίσκος στα 32GB απο την Panasonic[6]. Και τα δύο προϊόντα αναμένεται να επιρρεάσουν την αγορά των φορητών υπολογιστών.


Με τα εξωτικά αποθηκευτικά μέσα (Οπτικά μέσα υπερυψηλής πυκνότητας) να χρειάζονται λίγο ακόμα χρόνο για να μπορούν να λειτουργήσουν αξιόπιστα έξω απο τα εργαστήρια, οι μνήμες Flash δείχνουν να είναι μια γρήγορη και αξιόπιστη λύση με μόνο μειονέκτημα την υψηλή τους τιμή.

Ένα μειονέκτημα που είμαι σίγουρος οτι οι εταιρίες ήδη δουλεύουν σκληρά για να αντιμετωπίσουν!

Περισσότερες πληροφορίες στις παρακάτω τοποθεσίες:
[1] Digital Era, Online Κατάστημα
[2] Journaling File System
[3] JFFS
[4] Eee PC
[5] OLPC (100 Dollar PC) (MIT)
[6] Adtron 160GB Flash Based "Hard" Disk
[7] Panasonic PCMCIA 32GB Hard Disk
[8] Περισσότερες Φωτογραφίες Απο Τη Μετατροπή

Η ανατολή των Flash Memory δίσκων (Μέρος 1ον)

Το άρθρο αυτό, αναφέρεται σε μια προσπάθεια που έκανα να αντικαταστήσω τον σκληρό δίσκο ενός φορητού με Flash μνήμη και το τι αντιμετώπισα. Στο πρώτο μέρος, παρουσιάζω διάφορα συγκρητικά στοιχεία ανάμεσα στις Flash μνήμες και τους σκληρούς δίσκους και στο δεύτερο μέρος θα παρουσιάσω τα αποτελέσματα απο την έρευνα αγοράς και το πρακτικό test.

Ο μεγαλύτερος ίσως εχθρός των φορητών υπολογιστών, είναι οι κραδασμοί και η βίαιη μεταχείρηση. Για να καταλάβει κανείς το πόσο δυνατός θα πρέπει να είναι ένας κραδασμός για να προκαλέσει ζημιά στο σκληρό δίσκο αρκεί να αναλογιστεί οτι η κεφαλή του σκληρού δίσκου "πετάει" πάνω απο μια γρήγορα περιστρεφόμενη επιφάνεια σε μια απόσταση που μετριέται σε μm (10e-006 m)!

Αυτό σημαίνει οτι η χρήση του laptop μέσα σε ένα αυτοκίνητο που κινείται σε δρόμους με κακή ποιότητα κατασκευής μπορεί να αποβεί μοιραία, όπως ακριβώς μοιραίο μπορεί να αποβεί το να πάρει κανείς το laptop απο τα πόδια του, γρήγορα για να απαντήσει για παράδειγμα ένα τηλέφωνο.

Τα τελευταία χρόνια, οι κατασκευαστές των φορητών υπολογιστών έχουν προσθέσει ηλεκτρονικά εξαρτήματα τα οποία προστατεύουν ένα φορητό υπολογιστή απο μια ελεύθερη πτώση. Τα ηλεκτρονικά accelerometers που πλέον κατασκευάζονται σε ολοκληρωμένα κυκλώματα (Micro-Electro-Mechanical-Systems) [1] ανιχνεύουν αν ο φορητός βρίσκεται σε ελεύθερη πτώση και "παρκάρουν" τη κεφαλή στην ασφαλή της τοποθεσία, έξω απο την επιφάνεια του δίσκου, πριν ο υπολογιστής συναντήσει το έδαφος.
Κλασική τέτοια περίπτωση είναι αυτή που κάποιος παρασύρει το καλώδιο τροφοδοσίας και ρίχνει το φορητό -που εκείνη την ώρα λειτουργεί- απο ένα τραπέζι. Το πρώτο θύμα της καταστροφής θα είναι ο δίσκος.

Παρ' όλα αυτά, οι φορητοί υπολογιστές εξακολουθούν να είναι εκτεθειμένοι στους κραδασμούς και εξακολουθούν να είναι απαραίτητοι πολλές φορές σε καθόλου φιλικό περιβάλλον, όπως στη βιομηχανία, εξειδικευμένες εφαρμογές, κλπ.
Όσο αφορά τους σκληρούς δίσκους, η βασική λύση που επιλέγετε για τους φορητούς υπολογιστές ενισχυμένης κατασκευής είναι η flash μνήμη ακριβώς όπως αυτή που βρίσκεται στα USB disks, ή τις CompactFlash [5] κάρτες των ψηφιακών φωτογραφικών μηχανών.

Εξ' ίσου σημαντικό, για τους φορητούς υπολογιστές είναι και το γεγονός οτι οι μνήμες δεν έχουν κινητά μέρη. Αυτό σημαίνει:
  • Μικρότερη κατανάλωση απο τους σκληρούς δίσκους που μεταφράζεται σε μεγαλύτερη διάρκεια λειτουργίας για τον ίδιο χρόνο φόρτισης.
  • Μικρότερος χρόνος προσπέλασης -τουλάχιστον όσο αφορά τους IDE δίσκους- , άρα και μικρότερος χρόνος εκκίνησης για το λειτουργικό.

Παρά τα τόσα πλεονεκτήματα τους όμως, οι flash μνήμες έχουν και κάποια αρνητικά σημεία όπως για παράδειγμα η υψηλή τους τιμή ανα MB έναντι των σκληρών δίσκων.

Αυτό είναι ίσως το σημείο στο οποίο συναντιούνται η εξέλιξη των σκληρών δίσκων με το νόμο του Moor. Όπως είναι γνωστό απο το νόμο (η καλύτερα τη "δήλωση") του Moor [2], ο αριθμός transistor's που μπορούν να τοποθετηθούν με χαμηλό κόστος επάνω στην ίδια επιφάνεια ημιαγωγού διπλασιάζεται κάθε 18-24 μήνες (ανάλογα με το ποιόν ορισμό αποδέχεται κανείς). Αυτό επιρρεάζει και τους επεξεργαστές αλλά και τις flash μνήμες που κατασκευάζονται με τον ίδιο τρόπο. Άρα λοιπόν αργά ή γρήγορα οι τιμές ανα MB θα πέσουν. Απο την άλλη μεριά όμως, μέρα με τη μέρα η έρευνα στην τεχνολογία του μαγνητισμού (Magnetics) και την κωδικοποίηση (Information Source Coding) παράγουν σκληρούς δίσκους με ολοένα μεγαλύτερες πυκνότητες μεγαλώνοντας έτσι τη διαφορά απο τις μνήμες!

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

Το δεύτερο μειονέκτημα των Flash μνημών, ιδιαίτερα όταν προορίζεται να χρησιμοποιηθεί σαν σκληρός δίσκος σε ένα φορητό υπολογιστή, είναι ο "περιορισμένος" χρόνος ζωής τους. Αυτό συμβαίνει επειδή τα λεγόμενα "κύτταρα μνήμης" (το μικρότερο κύκλωμα που χρησιμοποιείται για να κρατήσει ένα bit πληροφορίας) μπορούν να επανεγγραφούν περίπου 20000 φορές (με τη τρέχουσα τεχνολογία).
Αυτός ο περιορισμός έχει ορισμένες επιπλοκές στην επιλογή του συστήματος αρχείων για τη flash κάρτα. Περισσότερα σχετικά με αυτό θα αναφερθούν στο δεύτερο μέρος αυτού του άρθορυ.
Προς το παρόν, αρκεί να αναφερθεί οτι οι κατασκευαστές των μνημών έχουν καταφύγει σε τεχνικές οι οποίες "μοιράζουν" τις εγγραφές / διαγραφές ώστε όλα τα κύτταρα μνήμης να φθείρονται στον ίδιο βαθμό. Αυτές οι τεχνικές ονομάζονται Wear Levelling [3] και εφαρμόζωνται απο ένα μικρό controller που είναι ενσωματομένος στη μνήμη.
Έχει δε διαπιστωθεί θεωρητικά οτι επεκτείνουν τη ζωή της μνήμης κατα πολλές δεκάδες χρόνια [4] (για δεδομένο αριθμό εγγραφών /διαγραφών ανα μονάδα χρόνου και δεδομένο filesystem) σε σχέση με την ίδια μνήμη χωρίς Wear Leveling.

Φαίνεται λοιπόν οτι η τεχνολογία των Flash μνημών βρίσκεται ακόμα σε άνοδο και αυτή είναι και η περίοδος απο την οποία οι εταιρίες και οι καταναλωτές μπορούν να ωφεληθούν περισσότερο.

Το δεύτερο μέρος αυτού του άρθρου περιλαμβάνει:
  • Παρουσίαση μιας μικρής έρευνας αγοράς στις διαθέσιμες Flash μνήμες
  • Την τεχνική διαδικασία με την οποία μπορεί κανείς να αντικαταστήσει τον σκληρό δίσκο του φορητού του με μια Flash μνήμη!
  • Τις πρώτες εμπειρίες απο τη χρήση του φορητού με το Flash σκληρό δίσκο.

Περισσότερα για όρους και τεχνικές που αναφέρονται στο κείμενο:
  1. Micro Electro Mechanical Systems
  2. Ο νόμος του Moor
  3. Τεχνικές Wear Leveling
  4. Το Wear Leveling Στη Πράξη
  5. Μνήμες CompactFlash
top