Το έργο Frame αναπτύσσει έναν νέο διακομιστή X γραμμένο εξ ολοκλήρου σε assembler NASM για την αρχιτεκτονική x86_64 και σχεδιασμένο να εκτελείται σε Linux Δεν υπάρχουν εξωτερικές εξαρτήσεις. Αλληλεπίδραση με τον πυρήνα Linux, συμπεριλαμβανομένων των διεπαφών DRM/KMS και evdev, υλοποιείται απευθείας μέσω κλήσεων συστήματος, χωρίς τη χρήση βιβλιοθηκών όπως libc, Mesa και FreeType. Ο κώδικας του Frame διανέμεται δημόσια. Η ανάπτυξη πραγματοποιείται με τη βοήθεια του βοηθού τεχνητής νοημοσύνης Claude Code.
Στόχος του έργου είναι η υλοποίηση επεκτάσεων πρωτοκόλλου X11 επαρκών για την επιφάνεια εργασίας CHasm, οι οποίες έχουν αναπτυχθεί από τον ίδιο συγγραφέα και είναι γραμμένες σε assembly. Η υποστήριξη για την εκτέλεση τυπικών εφαρμογών X11, συμπεριλαμβανομένων των Firefox, VS Code, GIMP και Inkscape, αναφέρεται ως ελάχιστη απαίτηση. Οι επεκτάσεις X11 που έχουν προγραμματιστεί για υλοποίηση περιλαμβάνουν τα SHAPE, RENDER, XKB, COMPOSITE, DAMAGE, RANDR, MIT-SHM, XInput2 και XVideo.
Η ανάπτυξη χωρίζεται σε 14 στάδια. Το έργο βρίσκεται αυτήν τη στιγμή στο στάδιο 7, το οποίο περιλαμβάνει ήδη βασικές δυνατότητες για την εκτέλεση ενός τερματικού και ορισμένων εφαρμογών X11. Το στάδιο 14 θα επιτευχθεί όταν υλοποιηθούν όλες οι δυνατότητες για πλήρη υποστήριξη του Firefox. Προς το παρόν, έχει ανακοινωθεί ότι θα είναι δυνατή η εκτέλεση του βασικού CHasm για επιφάνεια εργασίας, του GIMP και του Firefox (με περιορισμούς).
Οι ήδη υλοποιημένες λειτουργίες περιλαμβάνουν: λήψη αιτημάτων X11 μέσω μιας υποδοχής Unix, απόδοση λογισμικού μέσω του υποσυστήματος πυρήνα DRM/KMS, επεξεργασία εισόδου μέσω evdev, ένα API για διαχείριση εισόδου, υποστήριξη για σύνδεση πολλαπλών πελατών X11, συναρτήσεις για δημιουργία και εργασία με Windows, λειτουργίες pixmap, ατομικές λειτουργίες, επιλογή κειμένου για το πρόχειρο και τις επεκτάσεις X11 SHAPE, RANDR, XKB, XInput2 και MIT-SHM. Τα πρωτόγονα διανυσματικής απόδοσης, η εναλλαγή λειτουργίας ατομικού βίντεο, το πρόχειρο, η εναλλαγή διάταξης πληκτρολογίου, ο έλεγχος δρομέα και οι επεκτάσεις X11 RENDER, DAMAGE και COMPOSITE δεν έχουν ακόμη υλοποιηθεί.
Το περιβάλλον εργασίας CHasm περιέχει περίπου 100 γραμμές κώδικα και περιλαμβάνει στοιχεία γραμμένα σε γλώσσα assembly: τον διαχειριστή παραθύρων Tile, τη γραμμή κατάστασης Strip, το κλείδωμα οθόνης Bolt, το διαδραστικό κέλυφος Bare και τον εξομοιωτή τερματικού Glass. Αυτά τα στοιχεία αντικαθίστανται από μια δέσμη που αποτελείται από τα gdm, X11 Server, i3, conky, wezterm και zsh.
Η ανάπτυξη επικεντρώνεται στην ελάχιστη κατανάλωση ενέργειας όταν χρησιμοποιείται σε φορητό υπολογιστή. Σε κατάσταση αδράνειας, ο διαχειριστής παραθύρων Tile και το τερματικό Glass δεν καταναλώνουν καθόλου πόρους και ενεργοποιούνται μόνο από την αλληλεπίδραση του χρήστη. Το Frame, όταν είναι αδρανές, χρησιμοποιεί σχεδόν τρεις φορές λιγότερους πόρους CPU από το X.Org Server.
Το περιβάλλον που βασίζεται στο Frame και το CHasm είναι ήδη αρκετά σταθερό ώστε ο συγγραφέας του έργου να μπορεί να το χρησιμοποιεί στην καθημερινή του εργασία. Όταν προκύπτουν προβλήματα ή λείπει κάτι, ο συγγραφέας χρησιμοποιεί το Claude όπως απαιτείται για να διορθώσει τυχόν προβλήματα. Αναπτύσσει επίσης ένα σύνολο βοηθητικών προγραμμάτων γραμμής εντολών, το fe2o3, γραμμένο σε Rust και καλύπτει όλες τις ανάγκες του εκτός από ένα πρόγραμμα περιήγησης ιστού. Το fe2o3 περιλαμβάνει τον διαχειριστή αρχείων διπλού παραθύρου Pointer, τον διερμηνέα εντολών rush, τον επεξεργαστή κειμένου τύπου vim του Scribe, τον αναγνώστη RSS Gazette, τον πελάτη email και messenger Kastrup, τον σχεδιαστή ημερολογίου Tock, το εργαλείο διαμόρφωσης Crush και τον προβολέα εγγράφων Viewer.


Πηγή: opennet.ru
