6 καλύτερα σύγχρονα συστήματα Linux 'init' (1992-2023)


Στο Linux και σε άλλα λειτουργικά συστήματα που μοιάζουν με Unix, η διαδικασία init (αρχικοποίηση) είναι η πρώτη διεργασία που εκτελείται από τον πυρήνα κατά την εκκίνηση, η οποία έχει μια διαδικασία ID (PID) του 1, που εκτελείται στο παρασκήνιο μέχρι να τερματιστεί η λειτουργία του συστήματος.

Η διαδικασία init ξεκινά όλες τις άλλες διεργασίες Linux, δηλαδή δαίμονες, υπηρεσίες και άλλες διεργασίες παρασκηνίου, επομένως, είναι η μητέρα όλων των άλλων διεργασιών στο σύστημα.

Μια διεργασία μπορεί να ξεκινήσει πολλές άλλες θυγατρικές διεργασίες στο σύστημα, αλλά αν μια γονική διαδικασία πεθάνει, η init γίνεται ο γονέας της ορφανής διαδικασίας.

Με τα χρόνια, πολλά συστήματα init έχουν εμφανιστεί σε μεγάλες διανομές Linux και σε αυτόν τον οδηγό, θα ρίξουμε μια ματιά σε μερικά από τα καλύτερα συστήματα init με τα οποία μπορείτε να εργαστείτε στο λειτουργικό σύστημα Linux.

1. Σύστημα V Init

Το System V (SysV) είναι ένα ώριμο και δημοφιλές σχήμα init σε λειτουργικά συστήματα που μοιάζουν με Unix, είναι το μητρικό όλων των διεργασιών σε ένα σύστημα Unix/Linux. Το SysV είναι το πρώτο εμπορικό λειτουργικό σύστημα Unix που σχεδιάστηκε.

Σχεδόν όλες οι διανομές Linux χρησιμοποίησαν για πρώτη φορά το σχήμα init SysV εκτός από το Gentoo που έχει προσαρμοσμένο init και το Slackware που χρησιμοποιεί το σχήμα έναρξης τύπου BSD.

Καθώς περνούν τα χρόνια, λόγω κάποιων ατελειών, έχουν αναπτυχθεί αρκετές αντικαταστάσεις SysV init στην προσπάθεια δημιουργίας πιο αποτελεσματικών και τέλειων συστημάτων init για Linux.

Αν και αυτές οι εναλλακτικές λύσεις επιδιώκουν να βελτιώσουν το SysV και πιθανώς προσφέρουν νέες δυνατότητες, εξακολουθούν να είναι συμβατές με τα αρχικά σενάρια SysV init.

2. SystemD

Το SystemD είναι ένα σχετικά νέο σχήμα init στην πλατφόρμα Linux. Παρουσιάστηκε στο Fedora 15, είναι μια ποικιλία εργαλείων για εύκολη διαχείριση συστήματος. Ο κύριος σκοπός είναι η προετοιμασία, η διαχείριση και η παρακολούθηση όλων των διεργασιών του συστήματος κατά τη διαδικασία εκκίνησης και ενώ το σύστημα εκτελείται.

Το Systemd init διαφέρει πλήρως από άλλα παραδοσιακά συστήματα έναρξης Unix, με τον τρόπο που προσεγγίζει πρακτικά τη διαχείριση συστημάτων και υπηρεσιών. Είναι επίσης συμβατό με script init SysV και LBS.

Έχει μερικά από τα ακόλουθα εξέχοντα χαρακτηριστικά:

  • Καθαρός, απλός και αποτελεσματικός σχεδιασμός
  • Ταυτόχρονη και παράλληλη επεξεργασία κατά την εκκίνηση
  • Καλύτερο APIv
  • Επιτρέπει την αφαίρεση προαιρετικών διεργασιών
  • Υποστηρίζει την καταγραφή συμβάντων με χρήση journald
  • Υποστηρίζει τον προγραμματισμό εργασιών χρησιμοποιώντας χρονόμετρα ημερολογίου συστήματος
  • Αποθήκευση αρχείων καταγραφής σε δυαδικά αρχεία
  • Διατήρηση της κατάστασης του συστήματος για μελλοντική αναφορά
  • Καλύτερη ενσωμάτωση με το GNOME και πολλά άλλα

3. Εκκίνηση

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

Είναι ένα υβριδικό σύστημα init που χρησιμοποιεί τόσο σενάρια εκκίνησης SysV και σενάρια Systemd, μερικά από τα αξιοσημείωτα χαρακτηριστικά του συστήματος έναρξης Upstart περιλαμβάνουν:

  • Αναπτύχθηκε αρχικά για Ubuntu Linux, αλλά μπορεί να τρέξει σε όλες τις άλλες διανομές
  • Έναρξη και διακοπή εργασιών και υπηρεσιών βάσει συμβάντων
  • Τα συμβάντα δημιουργούνται κατά την έναρξη και τη διακοπή εργασιών και υπηρεσιών
  • Τα συμβάντα μπορούν να αποσταλούν από άλλες διαδικασίες συστήματος
  • Επικοινωνία με τη διαδικασία init μέσω D-Bus
  • Οι χρήστες μπορούν να ξεκινήσουν και να σταματήσουν τις διαδικασίες τους
  • Επαναγέννηση υπηρεσιών που πεθαίνουν απότομα και πολλά άλλα

4. OpenRC

Το OpenRC είναι ένα σχήμα init που βασίζεται σε εξαρτήσεις για λειτουργικά συστήματα τύπου Unix, είναι συμβατό με το SysV init. Όσο και αν φέρνει κάποιες βελτιώσεις στο Sys V, πρέπει να έχετε κατά νου ότι το OpenRC δεν αποτελεί απόλυτη αντικατάσταση του αρχείου /sbin/init.

Προσφέρει μερικά επιφανή χαρακτηριστικά όπως:

  • Μπορεί να τρέξει σε άλλες πολλές διανομές Linux συμπεριλαμβανομένου του Gentoo και επίσης σε BSD
  • Υποστηρίζει σενάρια init που ξεκινούν από υλικό
  • Υποστηρίζει ένα μόνο αρχείο διαμόρφωσης
  • Δεν υποστηρίζονται διαμορφώσεις ανά υπηρεσία
  • Λειτουργεί ως δαίμονας
  • Εκκίνηση παράλληλων υπηρεσιών και πολλά άλλα

5. ρουνιτ

Το runit είναι επίσης ένα σύστημα init πολλαπλών πλατφορμών που μπορεί να τρέξει σε GNU/Linux, Solaris, *BSD και Mac OS X και είναι μια εναλλακτική λύση στο SysV init, το οποίο προσφέρει επίβλεψη υπηρεσιών.

Έρχεται με ορισμένα πλεονεκτήματα και αξιοσημείωτα στοιχεία που δεν βρίσκονται στο SysV init και πιθανώς σε άλλα συστήματα init στο Linux και αυτά περιλαμβάνουν:

  • Επίβλεψη υπηρεσίας, όπου κάθε υπηρεσία σχετίζεται με έναν κατάλογο υπηρεσιών
  • Μια καθαρή κατάσταση διαδικασίας εγγυάται για κάθε διεργασία μια καθαρή κατάσταση
  • Διαθέτει αξιόπιστη εγκατάσταση υλοτόμησης
  • Γρήγορη εκκίνηση και τερματισμός του συστήματος
  • Είναι και φορητό
  • Φιλικό στη συσκευασία
  • Μικρό μέγεθος κώδικα και πολλά άλλα

6. s6

Το s6 προσφέρει ένα συμπαγές σύνολο εργαλείων για UNIX, προσαρμοσμένα για επίβλεψη διεργασιών, παρόμοια με τα daemontools και runit. Διευκολύνει τις λειτουργίες σε διαδικασίες και δαίμονες.

Σχεδιασμένο ως εργαλειοθήκη διαχείρισης υπηρεσιών χαμηλού επιπέδου, το s6 παρέχει διάφορα εργαλεία που μπορούν να λειτουργήσουν ανεξάρτητα ή εντός του πλαισίου του. Αυτά τα εργαλεία, όταν συνδυάζονται, παρέχουν ισχυρή λειτουργικότητα με ελάχιστο κώδικα.

Όπως είχα αναφέρει προηγουμένως, το σύστημα init ξεκινά και διαχειρίζεται όλες τις άλλες διεργασίες σε ένα σύστημα Linux. Επιπλέον, το SysV είναι το κύριο σχήμα έναρξης στα λειτουργικά συστήματα Linux, αλλά λόγω ορισμένων αδυναμιών απόδοσης, οι προγραμματιστές συστημάτων έχουν αναπτύξει αρκετές αντικαταστάσεις του.

Εδώ, εξετάσαμε μερικές από αυτές τις αντικαταστάσεις, αλλά θα μπορούσαν να υπάρχουν άλλα συστήματα init που πιστεύετε ότι αξίζει να αναφερθούν σε αυτήν τη λίστα. Μπορείτε να μας ενημερώσετε μέσω της παρακάτω ενότητας σχολίων.