Αυξητικό σύστημα αρχείων από την Google
Η Google εργάζεται σε ένα νέο είδος συστήματος αρχείων που επιτρέπει την εκτέλεση δυαδικών αρχείων πριν από τη φόρτωση ενός πλήρους πακέτου. Λαμβάνοντας ως παράδειγμα την ανάπτυξη εφαρμογών Android, πρέπει να περιμένετε να μεταδοθεί ολόκληρο το δυαδικό στον εξομοιωτή ή στην πραγματική συσκευή δοκιμής για εντοπισμό σφαλμάτων. Το σύστημα αύξησης αρχείων μειώνει δραματικά αυτήν την καθυστέρηση επιτρέποντας την εκτέλεση του δυαδικού κώδικα πριν από τη μετάδοση ολόκληρου του πακέτου. Αυτό ακούγεται πάρα πολύ περίπλοκο και αυτό είναι, αλλά μπορούμε ακόμα να το ρίξουμε για να κατανοήσουμε καλύτερα ποια πιθανότατα θα είναι μια προεπιλεγμένη λειτουργία στο Android 12 και μεταγενέστερη.
Ένα εικονικό σύστημα αρχείων που ονομάζεται "incfs"
Η λύση εικονικού συστήματος αρχείων της Google, η οποία στην πρώτη επανάληψή της θα χρησιμοποιηθεί αποκλειστικά για APK και AAB που φορτώνονται από το Play Store, είναι ένα επίπεδο που βρίσκεται πάνω από το πραγματικό σύστημα αρχείων. Για την καλύτερη απεικόνιση της αρχιτεκτονικής, χρησιμοποιώ μερικές διαφάνειες που έχει δημιουργήσει η Google για μια τεχνική ομιλία. Μπορείτε να βρείτε τον σύνδεσμο στο προσάρτημα στο τέλος αυτής της σελίδας.
Επιστρέφοντας στο θέμα, το στοιχειώδες σύστημα αρχείων της Google μπορεί να θεωρηθεί ως προσωρινή μνήμη, όπου οι δημιουργημένες οντότητες αναφέρονται απευθείας σε αρχεία στο πραγματικό σύστημα αρχείων. Ο ίδιος ο κώδικας είναι βαθιά ενσωματωμένος στο λειτουργικό σύστημα ως μονάδα πυρήνα - το οποίο φαίνεται λογικό λόγω της χαμηλού επιπέδου τοποθέτησής του στη συνολική αρχιτεκτονική.
Πλεονέκτημα ενός εικονικού συστήματος αρχείων
Το πλεονέκτημα ενός τέτοιου εικονικού FS είναι ότι δεν είστε δεσμευμένοι στα όρια ενός πραγματικού συστήματος αρχείων, όπου η ανάγνωση και η επακόλουθη εκτέλεση ενός προγράμματος συνήθως μπορούν να συμβούν μόνο εάν είναι διαθέσιμο το πλήρες πακέτο - από το πρώτο έως το τελευταίο Byte. Με το "Incremental Filesystem", αυτός ο περιορισμός διαγράφεται τεχνικά. Ωστόσο, με ένα τόσο ισχυρό χαρακτηριστικό έρχεται ένα μεγάλο σύνολο πολύπλοκων πτυχών που πρέπει να ληφθούν υπόψη.
Λαμβάνοντας από έναν μηχανικό της Google, μια μεγάλη πρόκληση είναι ο σωστός χειρισμός των εγγραφών. Το εικονικό σύστημα αρχείων έχει τη δική του κατάσταση σχετικά με τις εκκρεμείς αναγνώσεις, αλλά πρέπει ακόμη να διατηρήσει την ακεραιότητα των δεδομένων των φορτωμένων αρχείων.
Η πρόκληση αντιμετωπίζεται δημιουργώντας ένα προσαρμοσμένο ευρετήριο στο "incfs". Κάθε πραγματικό αρχείο συσχετίζεται άμεσα με μια οντότητα στο εικονικό σύστημα αρχείων, ακόμα και όταν το αρχικό αρχείο μετονομαστεί.
Μία ακόμη συντομογραφία που ονομάζεται "ioctl"
Αυτή η συντομογραφία σημαίνει "έλεγχος εισόδου / εξόδου" και οδηγεί στη δημιουργία ενός τέτοιου αρχείου ευρετηρίου στο αυξητικό σύστημα αρχείων της Google. Το "ioctl" προέρχεται από το λειτουργικό σύστημα και η τεχνική του εξήγηση είναι εκτός πεδίου για αυτό το άρθρο. Αν θέλετε να διαβάσετε περισσότερα, υπάρχει και ένας σύνδεσμος στο προσάρτημα.
Επίσης πολύ ενδιαφέρον: το "incfs" διαθέτει ενσωματωμένο μηχανισμό καταγραφής. Αυτή η δυνατότητα θα χρησιμοποιηθεί για τον προσδιορισμό της πραγματικής απόδοσης της εφαρμογής της για περαιτέρω βελτιώσεις.
Πρακτική χρήση
Η έναρξη αυτής της λειτουργίας ήταν τον Μάιο του 2019, όταν ορισμένοι από τους μηχανικούς της Google άρχισαν να κάνουν αλλαγές στον πυρήνα Linux. Η τοποθέτησή τους εκεί επέτρεψε να το χρησιμοποιήσουν απλώς στο Android Open Source Project (AOSP), το τμήμα ανοιχτού κώδικα του Android και το κύριο θεμέλιο αυτού του λειτουργικού συστήματος, καθώς το AOSP είναι επίσης ενσωματωμένο στον πυρήνα Linux.
Οι συντελεστές Linux δεν ήταν όλοι τόσο ευχαριστημένοι, καθώς είχαν ήδη γίνει παρόμοιες προσεγγίσεις για τη βελτίωση ενός συστήματος αρχείων, όπως το FUSE ή το OverlayFS. Ωστόσο, από την πλευρά της Google, αυτές οι υλοποιήσεις δεν ήταν αρκετά αποτελεσματικές σε συσκευές Android τελευταίας τεχνολογίας. Αυτό οδήγησε στην ανάπτυξη του αυξητικού συστήματος αρχείων.
Για την πρώτη επανάληψη, θα χρησιμοποιηθεί για παιχνίδια που έχετε κατεβάσει από το Play Store ξεκινώντας από το Android 12 για να μειώσετε το χρόνο που απαιτείται για την έναρξη του παιχνιδιού. Αυτό το πραγματικά εξαιρετικό χαρακτηριστικό προϋποθέτει το αυξητικό σύστημα αρχείων, αλλά και κάποια λογική ενσωματωμένη στο Android για να καθορίσει πώς να ξεκινήσετε απόλυτα αυτά τα παιχνίδια νωρίς - χωρίς αλλαγές από τον προγραμματιστή, σύμφωνα με την Google.