Πριν λίγες ημέρες η Canonical, ανακοίνωσε την διαθεσιμότητα του Ubuntu Core 18, ένα λειτουργικό σύστημα για IoT συσκευές το οποίο θα λαμβάνει ενημερώσεις για τα επόμενα 10 χρόνια. Φυσικά είναι ελεύθερο και δωρεάν και οποιοσδήποτε θέλει μπορεί να το κατεβάσει και να το δοκιμάσει σε εικονική μηχανή στον υπολογιστή του αλλά και σε μερικά από τα γνωστότερα single-board computers.

Ας δούμε όμως σε τι διαφέρει η διανομή Ubuntu Core από ένα παραδοσιακό λειτουργικό σύστημα.

Όπως γνωρίζουν οι περισσότεροι, η Canonical διαθέτει το Ubuntu για συστήματα Desktop και Server ενώ πριν λίγα χρόνια ξεκίνησε και το Ubuntu Core για συστήματα IoT. Η τελευταία έκδοση του Ubuntu Core 18, σύμφωνα με την επίσημη ανακοίνωση1 θα λαμβάνει ενημερώσεις ασφαλείας και διορθώσεων για 10 χρόνια.

Σε αντίθεση με το «παραδοσιακό» Ubuntu, το Ubuntu Core είναι κατασκευασμένο με εντελώς διαφορετικό τρόπο με σκοπό να μπορεί να ενημερώνεται αυτόματα, οι εφαρμογές να είναι απομονωμένες από το λειτουργικό σύστημα και να διαθέτει αυτόματο roll-back σε πρότερη λειτουργική κατάσταση σε περίπτωση που δεν είναι δυνατή η εκκίνηση του συστήματος.

Για να μπορέσουμε να κατανοήσουμε την δομή του Ubuntu Core θα χρειαστεί να φέρουμε στο μυαλό μας το πως είναι δομημένο ένα λειτουργικό για κινητά τηλέφωνα (πχ Android). Αν, όσο διαβάζετε το παρακάτω, το «φανταστείτε» ως ένα λειτουργικό που διαθέτει κάποιες από τις ιδιότητες που έχουν τα λειτουργικά για κινητά, θα σας είναι πιο «εύπεπτο» ως ιδέα.

Τι είναι το Ubuntu Core;

ubuntu-core-iot-leitourgiko-eksupnes-suskeyes
Οι «έξυπνες συσκευές» που συνδέονται στο δίκτυο χρειάζονται ένα λειτουργικό σύστημα ειδικά διαμορφωμένο για ασφάλεια και αξιοπιστία.

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

Σε μέγεθος είναι περίπου 250 MB και το κατεβάζετε ως έτοιμο image για να το γράψετε σε κάποια SD ή να το τρέξετε σε εικονικό υπολογιστή KVM.

Σε τι διαφέρει το Ubuntu Core από το Ubuntu και τις παράγωγες διανομές;

Σε αντίθεση με το παραδοσιακό Ubuntu, όπου τα πάντα αποθηκεύονται και κατανέμονται σε ένα σύστημα καταλόγου (δείτε το σχετικό άρθρο Πως είναι διαμορφωμένο το σύστημα αρχείων του Linux;) το Ubuntu Core διαφέρει στο γεγονός ότι όλο το λειτουργικό σύστημα αποτελείται από Snap πακέτα.

Όπως είχαμε μιλήσει στο εισαγωγικό άρθρο για το τι είναι τα Snap πακέτα, τα snap πακέτα αποτελούν

  • στιγμιότυπα εφαρμογών (app images)
  • με περιορισμούς σε δικαιώματα χρήσης των πόρων και συσκευών του συστήματος
  • είναι read-only
  • ψηφιακά υπογεγραμμένα για να διασφαλίζουν την ακεραιότητα του λογισμικού IoT

Αν έχετε ασχοληθεί με ROMs του Android, τα παραπάνω λογικά σας θυμίζουν κάτι, σωστά; Όπως λοιπόν στο Android η αναβάθμιση του λειτουργικού είναι ανεξάρτητη των εφαρμογών, έτσι και στο Ubuntu Core, το λειτουργικό σύστημα και ο πυρήνας είναι ανεξάρτητα των εφαρμογών snap που τρέχει ο χρήστης. Επίσης, όπως στο Android οι ενημερώσεις του συστήματος και των εφαρμογών είναι συναλλακτικές (transactional) έτσι και στο Ubuntu Core αν μια αναβάθμιση – εγκατάσταση λογισμικού δεν ολοκληρωθεί σωστά, το σύστημα αυτόματα και χωρίς την παρέμβαση του χρήστη κάνει επαναφορά την προηγούμενη έκδοση.

ubuntu-core-iot-leitourgiko-enimeroseis-anavathmiseis
Η αδιάλειπτη λειτουργία των έξυπνων συσκευών, απαιτεί διαφορετική προσέγγιση στον τομέα των ενημερώσεων συστήματος

Αυτές οι ιδιότητες που αναφέραμε (η απομόνωση, read-only σύστημα αρχείων, transactinal updates, δικαιώματα εφαρμογών) είναι κρίσιμης σημασίας διότι επιτρέπει στους προγραμματιστές και τους κατασκευαστές IoT να επικυρώνουν τις εφαρμογές και τις ενημερώσεις σε ολόκληρο το οικοσύστημα των συσκευών, προτού αυτά εφαρμοστούν και ενεργοποιηθούν. Σκεφτείτε λίγο, πόσο σημαντικό είναι για μια εταιρεία που κατασκευάζει χιλιάδες έξυπνες συσκευές, να μπορεί να τα ενημερώνει με διορθώσεις ασφαλείας και να μπορεί να είναι σίγουρη ότι οι δικλείδες ασφαλείας του λειτουργικού θα διασφαλίσουν την ακεραιότητα και την αξιοπιστία των συσκευών της και δεν θα προκαλέσουν προβλήματα στους χρήστες.

Παρόλο που όπως έχουμε δει, το κλασσικό Ubuntu αλλά και άλλες διανομές μπορούν να τρέχουν εφαρμογές snap, το Ubuntu Core διαφέρει σε βασικά σημεία από την παραδοσιακή διανομή3.

Ubuntu Core Ubuntu
Minimum απαιτήσεις 500 MHz μονοπύρινος CPU 256 MB RAM
512 MB Αποθ. χώρος
1 GHz dual core CPU
1GB RAM
2 GB Αποθ. χώρος
Γραφικό περιβάλλον Δεν διαθέτει GNOME ή άλλα γραφικά περιβάλλοντα
Σύστημα εγκατάστασης εφαρμογών snap Deb και snap πακέτα
Ασφάλεια εφαρμογών Απομόνωση μέσω AppArmor και Seccomp Δικαιώματα χρηστών (για τα Deb) και απομόνωση μέσω AppArmor και Seccomp (για τα snap)
Ενημερώσεις Αυτόματες

Λαμβάνονται από δημόσιο Store & προαιρετικά από  ιδιωτικό Store (εταιρικό) Όλες οι ενημερώσεις είναι συναλλακτικές

Μη αυτόματες (εξαιρούνται οι ασφαλείας)

Παραδοσιακές ενημερώσεις μέσω αποθετηρίων για τα Deb. Για τα Snap οι ενημερώσεις είναι συναλλακτικές

Διαθέτει γραφικό περιβάλλον;

ubuntu-core-iot-leitourgiko-termatiko
Μπορείτε να συνδεθείτε στο Ubuntu Core με SSH

Όπως θα είδατε και από τον παραπάνω πίνακα, το Ubuntu Core δεν διαθέτει γραφικό περιβάλλον αλλά μπορεί να χρησιμοποιήσει το Wayland ή το Mir, σε περίπτωση που ο κατασκευαστής μιας εφαρμογής ή συσκευής IoT το χρειαστεί (πχ ένα ξενοδοχείο που χρειάζεται kiosk). Με λίγα λόγια η διαχείρισή του ubuntu core γίνεται μέσω τερματικού.

Σε τι μπορεί να χρησιμεύσει στον οικιακό χρήστη;

Μέχρι στιγμής, με αυτά που έχετε διαβάσει, μπορεί να μοιάζει ότι το Ubuntu Core απαιτεί γνώσεις μηχανικού για να το χρησιμοποιήσει κανείς.

Αντιθέτως, αν έχετε ακολουθήσει τον οδηγό μας σχετικά με εγκατάσταση home server σε raspbery pi, η έχετε χρησιμοποιήσει κάποιο single board computer, τότε μπορείτε να χρησιμοποιήσετε το Ubuntu Core για να στήσετε σε αυτό π.χ. με μία εντολή ένα ολόκληρο σύστημα διαχείρισης αρχείων όπως το Nextcloud και να μην ασχοληθείτε ποτέ με ενημερώσεις του Ubuntu Core και του Nextcloud.

Που μπορώ να το κάνω εγκατάσταση;

To Ubuntu Core μπορεί να γίνει εγκατάσταση σε:

  1. Raspberry Pi 2 και μετέπειτα
  2. Raspberry Pi Compute Module 3
  3. Orange Pi Zero
  4. DragonBoard 410c
  5. Intel NUC
  6. Samsung Artik 5 και 10
  7. Intel Joule
  8. Στον υπολογιστή σας μέσω εικονικού υπολογιστή KVM

Για την λήψη του κατάλληλου image επισκεφτείτε την σελίδα λήψης. Αν σκοπεύετε να χρησιμοποιήσετε σε κάποιο από τα παραπάνω single board, μπορείτε να χρησιμοποιήσετε το Etcher για να το γράψετε σε SD κάρτα.

Πως κάνω εγκατάσταση προγραμμάτων στο Ubuntu Core

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

  1. Πώς ρυθμίζουμε την Linux διανομή μας για τα Snap πακέτα
  2. Snap Package: Η νέα μορφή πακέτων εγκατάστασης για Ubuntu (Μέρος 1)
  3. Video: Βασικές εντολές και χρήση του Snap για εγκατάσταση πακέτων (Μέρος 2)

Πέρα από το Snap, στο Ubuntu Core μπορούν να χρησιμοποιηθούν και Docker images όπως επίσης και LXD containers (όπως το κάνει το ChromeOS) σε περίπτωση που κάποια υπηρεσία η εφαρμογή δεν είναι διαθέσιμη σε snap πακέτο.

Επίλογος

Όσοι ασχολούνται με την κατασκευή έξυπνων συσκευών λογικά θα έχουν ακούσει για το Ubuntu Core. Αυτό όμως δεν σημαίνει ότι και κάποιος «οικιακός χρήστης» με όρεξη και διάθεση πειραματισμών, δεν μπορεί να χρησιμοποιήσει το Ubuntu Core.

Με άλλα λόγια, μπορεί μεν το Ubuntu Core να χρησιμοποιείται σε ένα ευρύ φάσμα συσκευών από μεγάλες εταιρείες όπως οι Dell, Rigado, Intel, Qualcomm, Samsung, NXP, Vodafone, αλλά και από οργανισμούς όπως η Ευρωπαϊκή Διαστημική Υπηρεσία, αυτό δεν σημαίνει ότι δεν μπορούμε και εμείς στο σπίτι μας να φτιάξουμε κάτι χρήσιμο με το Ubuntu Core.


Παραπομπές: