Ein minimales POSIX-konformes Betriebssystem

8

Zu Bildungszwecken möchte ich mit einer POSIX-kompatiblen Basis beginnen, die eine Shell, grundlegende Dienstprogramme und einen ANSI C-Compiler enthält, und dann sehen, welche Art von Umgebungen ich durch Zusammenstellen von Paketen erstellen kann.

Die meisten minimalen POSIX-konformen Betriebssysteme, auf die ich gestoßen bin, scheinen jedoch eingebettet und / oder proprietär zu sein. Gibt es solche Open Source-Systeme, die ich problemlos unter Virtualbox ausführen kann?

Ich habe ein wenig nach dem Erstellen einer solchen Umgebung von Grund auf gesucht , aber es scheint eine Menge Arbeit zu sein, einfach eine bootfähige / verwendbare Umgebung zu erhalten, geschweige denn eine POSIX-kompatible. Ich könnte versuchen, eines Tages ein POSIX-Betriebssystem zu erstellen, aber ich möchte vorher ein bisschen mehr mit Computern vertraut sein.

Hinweis:

Ich glaube, ich habe irgendwo gehört, dass Linux nicht vollständig POSIX-konform ist, aber solange ich einige der gängigsten und wichtigsten Open Source-Tools (wie wget und w3m) kompilieren und erstellen kann, wäre ich ziemlich glücklich, ob es nun so ist oder nicht benutzte den Linux-Kernel. Gleiches gilt für die anderen Grundkomponenten, von denen ich mir vorstellen würde, dass sie mit dem Betriebssystem geliefert werden (z. B. glibc).

math4tots
quelle
Wenn Sie ein Problem mit "proprietär" sehen, sehe ich nicht, wo das Problem liegt, da proprietär die POSIX-Konformität nicht beeinträchtigt. Wollten Sie "kommerziell" bedeuten?
Hibou57

Antworten:

10

POSIX kein vollständiges Betriebssystem angeben, so dass jeder POSIX-kompatible OS - Befehle haben , die nicht in POSIX sind (wie init, mkfs, passwd, ...). Unterschiedliche Betriebssysteme haben jedoch unterschiedliche Erweiterungen, und GNU-Tools (auf nicht eingebetteten Linux-Systemen verfügbar) haben viele.

BusyBox ist eine Reihe von Befehlszeilentools, die für eingebettete Linux-Systeme vorgesehen sind. Es enthält die meisten von POSIX vorgeschriebenen Dienstprogramme und Optionen (es ist nicht vollständig, aber es kommt nahe). Sie können ein laufendes Linux-System mit einem Bootloader, einem Linux-Kernel, BusyBox und Dropbear erstellen, wenn Sie sich über SSH anmelden möchten. Fügen Sie Gcc hinzu, wenn Sie die Entwicklung auf dem Minimalsystem durchführen möchten.

Wenn Sie lieber von einer vollständigen, aber kleinen Distribution ausgehen möchten, schauen Sie sich MINIX 3 an . Dies ist ein kleines Unix-System für eingebettete Systeme und zum Unterrichten.

Wenn Sie ein einfacher erweiterbares System wünschen, schauen Sie sich OpenBSD an . OpenBSD konzentriert sich auf Sicherheit und ist konservativ in Bezug auf Funktionen, aber das Kernsystem enthält wichtige Komponenten wie Perl und Apache.

Gilles 'SO - hör auf böse zu sein'
quelle
Ich glaube, TCC ist ANSI C / ISO C99 näher als GCC, was es zu einer besseren Option für einen C-Compiler in einer strengen POSIX-Umgebung machen würde, um nicht konforme Funktionen zu vermeiden.
Hibou57