Από το "τρέχει DOOM" στο "τρέχει Minecraft": Minecraft server σε λάμπα φτηνή IoT λάμπα
Στην επίδειξη φαίνονται τρεις παίκτες να συνδέονται σε έναν ελαφρύ διακομιστή που είναι γραμμένος σε C, ενώ ο αποθηκευμένος κόσμος περιορίζεται γύρω στα 90 KB, λόγω των αυστηρών περιορισμών μνήμης. Το έργο βασίζεται στο «UCraft», μια μινιμαλιστική υλοποίηση του πρωτοκόλλου του Minecraft σε C για μηχανές με ελάχιστους πόρους. Το εκτελέσιμο ξεκινά περίπου από 46 KB χωρίς σύστημα ταυτοποίησης και μπορεί να φτάσει γύρω στα 90 KB με ενσωματωμένο authentication. Σε σενάρια υψηλού φόρτου, η κατανάλωση heap αναφέρεται περίπου στα 70 KB με ταυτοποίηση και ~20 KB χωρίς, με ρητή επισήμανση ότι λείπει το μεγαλύτερο μέρος των δυνατοτήτων του επίσημου διακομιστή.
Γιατί έχει σημασία. Η υλοποίηση δείχνει πόσο αποδοτικά μπορεί να γραφτεί το πρωτόκολλο του Minecraft όταν αφαιρεθούν ενδιάμεσα στρώματα λογισμικού και περιττές εξαρτήσεις. Αναδεικνύει επίσης την ωριμότητα φθηνών SoC (System on Chip, ολοκληρωμένο σύστημα σε μικροτσίπ) με Wi-Fi/BLE (Bluetooth Low Energy) που συναντάμε σε λάμπες και έξυπνες πρίζες. Στα τεχνικά χαρακτηριστικά περιλαμβάνονται 32 KB μνήμη L1 cache (προσωρινή μνήμη πρώτου επιπέδου) και απόδοση της τάξης των 1,46 DMIPS/MHz (μονάδα μέτρησης υπολογιστικής ισχύος), επαρκής για ένα σενάριο διακομιστή με αυστηρούς περιορισμούς.
Για τους κατασκευαστές και τους ενθουσιώδεις του χώρου, πρόκειται για πρακτικό παράδειγμα δικτύωσης και χειρισμού εισόδου/εξόδου σε πραγματικό χρόνο, με αυστηρή διαχείριση μνήμης και πλήρη κατανόηση του πρωτοκόλλου. Η «απόδειξη εφικτότητας» είναι καθαρή: ακόμη και λίγες δεκάδες kilobytes, όταν χρησιμοποιηθούν με πειθαρχία, αρκούν για να στηθεί ένας βασικός, λειτουργικός κόσμος που συγχρονίζεται με πελάτες Minecraft συγκεκριμένης έκδοσης.
Υπάρχουν όμως όρια. Το UCraft δεν στοχεύει σε ισοτιμία χαρακτηριστικών με τον επίσημο διακομιστή. Απουσιάζουν οι περισσότερες δυνατότητες παιχνιδιού και κλιμάκωσης, ενώ οι μετρήσεις προέρχονται από εργαστηριακή επίδειξη σε αποσυναρμολογημένη συσκευή. Σε πραγματικές συνθήκες, το θερμικό περιθώριο, η παροχή ρεύματος και το ραδιοφωνικό περιβάλλον θα επηρεάσουν την αξιοπιστία. Παρ’ όλα αυτά, το project λειτουργεί ως υπόμνηση ότι «λιγότερο» λογισμικό μπορεί, με σωστό σχεδιασμό, να κάνει «περισσότερα» από όσο περιμένουμε.
Με δύο λόγια, δεν είναι «Minecraft στη λάμπα του σαλονιού», είναι μια επιτυχημένη επίδειξη προγραμματισμού χαμηλού επιπέδου: πρωτόκολλο προσαρμοσμένο απευθείας στο υλικό, RISC-V μικροελεγκτής με Wi-Fi που κοστίζει ελάχιστα, και εκτελέσιμο τόσο μικρό που χωρά περίπου στο μέγεθος μιας φωτογραφίας.
268
