Από τα 1 δολάριο στο web server: Βουτιά στο embedded hosting
Web Server σε 8-Bit Microcontroller: Γιατί Όχι;
Στον κόσμο των projects που δουλεύουν θεωρητικά αλλά είναι τρελά στην πράξη, ξεχωρίζουν αυτά που σου μαθαίνουν τα πάντα για το πώς λειτουργεί το ίντερνετ. Σήμερα, βλέπουμε πώς ένας developer έφτιαξε site σε microcontroller που κοστίζει λιγότερο από σοκολάτα.
Το Hardware: Απλά και Φθηνά
Ο πρωταγωνιστής είναι το AVR64DD32. Κοστίζει γύρω στο 1 δολάριο. Δες τα specs:
- CPU: 8-bit AVR core, μέχρι 24 MHz
- RAM: 8 KB
- Flash: 64 KB
- Τροφοδοσία: 1.8-5.5 V
- Τιμή: 1 δολάριο. Σοβαρά.
Για 8-bit chip, είναι αρκετά ισχυρό. Πιο φθηνό και καλύτερο από το Atmega328 του Arduino. Το θέμα; Χρειάζεται σύνδεση στο δίκτυο.
Το Πρόβλημα του Δικτύου: Ethernet Όχι
Ethernet φαίνεται ιδανικό. Είναι παντού και σταθερό. Αλλά οι ταχύτητες δεν βγαίνουν: 10 Mbps γίνονται 20 Mbps λόγω κωδικοποίησης. Τα GPIO pins του AVR φτάνουν 12 MHz. Πολύ λιγότερο.
Dedicated Ethernet chip; Προσθέτει κόστος και μπελάδες. Δεν ταιριάζει στο πείραμα.
Η Έξυπνη Λύση: SLIP Protocol
Εδώ μπαίνει το SLIP (RFC 1055). Από εποχή dial-up. Πολύ απλό:
- Περιβάλλει packets με 0xC0
- Αντικαθιστά 0xC0 με 0xDB 0xDC
- 0xDB γίνεται 0xDB 0xDD
Χωρίς εξειδικευμένο hardware. Απλά USB-to-serial adapter στα 115200 baud. Στο Linux:
stty -F /dev/ttyUSB0 115200 raw cs8
slattach -m -F -L -p slip /dev/ttyUSB0
Το microcontroller τροφοδοτείται από το adapter. Ένα καλώδιο αρκεί.
Το Protocol Stack: Από Μηδέν
Με 8 KB RAM, φτιάχνεις networking από την αρχή.
IP: Απλό Καθρέφτης
IP header 40 bytes. Αντί να διαχειριστείς fragmentation (που κανείς δεν θέλει πια), αντιστρέφεις source/destination, μηδενίζεις TTL και στέλνεις πίσω. Δεν χρειάζεται κατανόηση IP.
TCP: Ο Εφιάλτης
TCP θέλει:
- States σύνδεσης
- Retransmissions
- Edge cases (άπειρα)
- Timeouts
Χρειάστηκαν μέρες debug. Λειτουργεί για απλή σελίδα, με κάποιες ιδιομορφίες.
HTTP: Σταθερή Απάντηση
Hardcode το response. Μία URL, ίδιο content. Απλό και elegant.
Σύνδεση στο Ίντερνετ: Η Κλεψίμενη Ιδέα
Το microcontroller συνδέεται serial σε dev machine. Αυτή πηγαίνει σε VPS στη Φινλανδία με public IPv4.
Πρόβλημα: Δεν έχει public IP. IPv4 σπάνια.
WireGuard VPN
Λύση: WireGuard tunnel.
- Dev machine συνδέεται VPS
- VPS proxy-άει /mcu/* στο microcontroller
- Επισκέπτες πάνε στο VPS
- Traffic φτάνει τοπικά
Όπως κάνει το Twitch. Το chip μένει κρυφό.
Τι Μάθαμε Πραγματικά
Ανούσιο project, αλλά διδακτικό. Βγάζει τα πάντα στην επιφάνεια.
- Modular networking. Serial ή Ethernet, ίδιες αρχές.
- Περιορισμοί = Καινοτομία. 8 KB φόρμαρε καθαρό κώδικα.
- Παλιά protocols ζουν. SLIP από '88, Linux το υποστηρίζει.
- Ίντερνετ απλό. Bytes μεταξύ διευθύνσεων.
Το Μεγάλο Μάθημα
Στο NameOcean, ξεσκεπάζουμε τα μυστικά του web. Από cloud μέχρι microcontrollers, τα βασικά (DNS, TCP, HTTP) σε κάνουν καλύτερο dev.
Δεν αντικαθιστά cloud hosting. Αλλά δείχνει γιατί το χρειαζόμαστε. Ξαναφτιάχνοντας από κονσέρβα, εκτιμάς τις αφηρέσεις.
Μην το δοκιμάσεις σε smartwatch.
Θες περισσότερα για networking; Δες guides μας για DNS, TCP/IP και γιατί το domain μετράει πάνω από hardware. Για σοβαρό hosting, AI λύσεις χωρίς soldering.