Tilck Project, ein vereinfachter Kernel, der mit Linux kompatibel ist

Tick

Tilck ist ein monolithischer x86-Lernkernel, der auf binärer Ebene mit Linux kompatibel ist.

Die Nachricht wurde von a veröffentlicht Neuentwicklung mit dem Namen «Project Tilck», in dem ein VMware-Mitarbeiter entwickelt ein monolithischer Kernel, der sich grundlegend von Linux unterscheidet, aber auf Kompatibilität ausgelegt ist binär mit Linux und in der Lage, Anwendungen auszuführen, die für Linux erstellt wurden.

Entwicklung zielt darauf ab, die minimal erforderlichen Eigenschaften zu implementieren, Vermeidung von Funktionsüberlastung, einfache und verständliche Architektur, maximale Code-Vereinfachung, geringe Größe von Binärdateien, vorhersagbares (deterministisches) Verhalten, Gewährleistung minimaler Verzögerungen, Erzielung hoher Zuverlässigkeit und Vereinfachung von Entwicklungs- und Testprozessen.

Tilck unterscheidet sich grundlegend von Linux dadurch, dass es nicht auf Multi-User-Server oder Desktop-Maschinen abzielt, schon gar nicht, weil das keinen Sinn machen würde: Linux ist nicht groß und komplex wegen schlechter Implementierung, sondern wegen der unglaublichen Anzahl von Funktionen, die es hat. Angeboten und der intrinsischen Komplexität, die sie erfordern. Mit anderen Worten, Linux ist großartig angesichts des Problems, das es löst. Tilck bietet weniger Funktionen im Austausch für:

einfacherer Code (bei weitem)
kleinste Binärgröße
extrem deterministisches Verhalten
extrem niedrige Latenz
einfacheres Entwickeln und Testen
zusätzliche Robustheit

Das Projekt nicht für die Verwendung in Serverumgebungen mit mehreren Benutzern vorgesehen oder Desktop-Systeme. Von den Dateisystemen werden FAT16 und FAT32 im Lesemodus unterstützt, ebenso wie ramfs, devfs und sysfs. Blockgeräte wurden noch nicht implementiert; alles ist in erinnerung.

VFS wird bereitgestellt, um die Operationen von FS zu abstrahieren. Multithreading ist im aktuellen Entwicklungsstadium nur auf Kernel-Ebene verfügbar (noch nicht im User-Space vorgesehen).

Der Kernel unterstützt preemptives Multitasking und implementiert etwa 100 grundlegende Aufrufe. zum Linux-System, wie fork(), waitpid(), read(), write(), select() und poll(), die ausreichen, um Konsolenanwendungen wie BusyBox, Vim, TinyCC, Micropython und Lua auszuführen, sowie Framebuffer-basierte Grafikanwendungen wie das Spiel fbDOOM. Um Programme für Tilck zu erstellen, wird eine Reihe von Tools bereitgestellt, die auf der Musl-Bibliothek basieren.

Es wird das erwähnt Der vorgeschlagene Treibersatz ermöglicht es, Tilck sowohl in der QEMU-Umgebung auszuführen wie bei herkömmlichen Systemen, die von einem USB-Laufwerk booten. Darüber hinaus wird darauf hingewiesen, dass die erweiterten Befehlssätze von SSE, AVX und AVX2 unterstützt werden. Es bietet einen eigenen interaktiven Bootloader, der BIOS- und UEFI-Systeme unterstützt, aber es ist auch möglich, Bootloader von Drittanbietern wie GRUB2 zu verwenden. Wenn der Kernel in QEMU geladen wird, kann er in einer Umgebung mit 3 MB RAM ausgeführt werden.

Derzeit Das Projekt ist als Bildungsprojekt positioniert, aber langfristig ist es möglich, dass Tilck auf ein Niveau heranwächst, das geeignet ist, als Kernel für eingebettete Systeme verwendet zu werden, die vorhersagbares Verhalten und niedrige Latenzzeiten erfordern.

Während Tilck intern das Konzept eines Threads verwendet, ist Multithreading derzeit nicht im Benutzerbereich verfügbar (es gibt natürlich Kernel-Threads). Sowohl fork() als auch vfork() sind korrekt implementiert und Copy-on-Write wird für Fork-Prozesse verwendet. Der Systemaufruf waitpid() ist vollständig implementiert (was Prozessgruppen usw. impliziert).

Ein interessantes Feature in diesem Bereich verdient besondere Erwähnung: Trotz fehlendem Userspace-Multithreading bietet Tilck volle Unterstützung für TLS.

Das wird erwartet Tick die Lücke zwischen Linux-Kernel-basierten Lösungen und dedizierten Echtzeitbetriebssystemen schließen, wie FreeRTOS und Zephyr. Zu den Plänen gehören die Migration von Tilck auf ARM- und Nicht-MMU-Prozessoren (Memory Management Unit), das Hinzufügen eines Netzwerk-Subsystems, Unterstützung für Blockgeräte und zusätzliche Dateisysteme wie ext2.

Der Code ist in C geschrieben und wird unter der BSD-Lizenz vertrieben. In der aktuellen Entwicklungsphase unterstützt der Kernel nur die x86-Architektur, aber der Code ist auf Universalität und Implementierung im Hinblick auf die zukünftige Unterstützung anderer Architekturen ausgelegt.

schließlich, wenn Sie sind daran interessiert, mehr darüber zu erfahrenkönnen Sie die Details überprüfen im folgenden Link.


Hinterlasse einen Kommentar

Ihre E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind markiert mit *

*

*

  1. Verantwortlich für die Daten: AB Internet Networks 2008 SL
  2. Zweck der Daten: Kontrolle von SPAM, Kommentarverwaltung.
  3. Legitimation: Ihre Zustimmung
  4. Übermittlung der Daten: Die Daten werden nur durch gesetzliche Verpflichtung an Dritte weitergegeben.
  5. Datenspeicherung: Von Occentus Networks (EU) gehostete Datenbank
  6. Rechte: Sie können Ihre Informationen jederzeit einschränken, wiederherstellen und löschen.