Veröffentlichung des Betriebssystems ToaruOS 1.14 und der Programmiersprache Kuroko 1.1

Die Veröffentlichung des ToaruOS 1.14-Projekts ist verfügbar und entwickelt ein von Grund auf neu geschriebenes Unix-ähnliches Betriebssystem mit eigenem Kernel, Bootloader, Standard-C-Bibliothek, Paketmanager, User-Space-Komponenten und einer grafischen Oberfläche mit einem zusammengesetzten Fenstermanager. Im aktuellen Entwicklungsstadium sind die Fähigkeiten des Systems ausreichend, um Python 3 und GCC auszuführen. Der Projektcode ist in C geschrieben und wird unter der BSD-Lizenz vertrieben. Zum Download wurde ein 14 MB großes Live-Image vorbereitet, das in QEMU, VMware oder VirtualBox getestet werden kann.

Veröffentlichung des Betriebssystems ToaruOS 1.14 und der Programmiersprache Kuroko 1.1

Das Projekt startete 2010 an der University of Illinois und entwickelte sich zunächst als Forschungsarbeit im Bereich der Erstellung neuer zusammengesetzter grafischer Schnittstellen. Seit 2012 hat sich die Entwicklung in das Betriebssystem ToaruOS verwandelt, das zunächst als Studentenprojekt entwickelt wurde und sich dann zu einem Wochenendhobby entwickelte, das von der Community, die sich rund um das Projekt bildete, aufgegriffen wurde. In seiner aktuellen Form ist das System mit einem zusammengesetzten Fenstermanager ausgestattet, unterstützt dynamisch verknüpfte ausführbare Dateien im ELF-Format, Multitasking, Grafiken und Netzwerkstapel.

Das Paket enthält eine Portierung der Programmiersprache Python 3.6, die bei der Entwicklung einiger ToaruOS-spezifischer grafischer Anwendungen verwendet wird, beispielsweise eines Paketmanagers, eines Grafikeditors, eines PDF-Viewers, eines Taschenrechners und einfacher Spiele. Zu den auf ToaruOS portierten Programmen von Drittanbietern gehören Vim, GCC, Binutils, FreeType, MuPDF, SDL, Cairo, Doom, Quake, Super Nintendo-Emulator, Bochs usw.

ToaruOS basiert auf einem Kernel, der eine hybride modulare Architektur verwendet, die ein monolithisches Framework und Tools zur Verwendung ladbarer Module kombiniert, die die meisten verfügbaren Gerätetreiber bilden, wie z. B. Festplattentreiber (PATA und ATAPI), EXT2- und ISO9660-Dateisysteme, Framebuffer , Tastaturen, Mäuse, Netzwerkkarten (AMD PCnet FAST, Realtek RTL8139 und Intel PRO/1000), Soundchips (Intel AC'97) sowie VirtualBox-Erweiterungen für Gastsysteme.

Zu den vom Kernel bereitgestellten Grundfunktionen gehören Unix-Threads, TTY, virtuelles Dateisystem, Multithreading, IPC, Shared Memory, Multitasking und andere Standardfunktionen. Als Dateisystem wird ext2 verwendet. Für die Interaktion mit dem Kernel wird eine Pseudo-FS-/proc-Implementierung bereitgestellt, die analog zu Linux erstellt wurde.

Für 2021 sind Arbeiten an der 64-Bit-x86-64-Architektur (derzeit werden Baugruppen nur für 32-Bit-x86-Systeme generiert) und die Unterstützung von Multiprozessorsystemen (SMP) geplant. Weitere Ziele sind die Verbesserung der Kompatibilität mit POSIX-Spezifikationen im Bereich der Signalverarbeitungs- und Synchronisationsmethoden, die Anhebung der Standard-C-Bibliothek auf das Newlib-Niveau sowie die Implementierung eines eigenen C-Sprach-Compilers und eigener Entwicklungstools.

Das Projekt entwickelt außerdem eine eigene dynamische Programmiersprache, Kuroko, die Python bei der Entwicklung von Dienstprogrammen und benutzerdefinierten Anwendungen für das System ersetzen soll. Die Sprache unterstützt die Kompilierung und Interpretation von Bytecode, ihre Syntax ähnelt Python (sie ist als verkürzter Python-Dialekt mit expliziter Definition von Variablen positioniert) und verfügt über eine sehr kompakte Implementierung. Der Bytecode-Interpreter stellt einen Garbage Collector bereit und unterstützt Multithreading ohne Verwendung globaler Sperren. Der Compiler und Interpreter können in Form einer kleinen gemeinsam genutzten Bibliothek (~500 KB) kompiliert, in andere Programme integriert und über die C-API erweiterbar werden. Zusätzlich zu ToaruOS kann die Sprache unter Linux, macOS und Windows verwendet und in Browsern ausgeführt werden, die WebAssembly unterstützen.

Die neue Version von ToaruOS konzentrierte sich auf die Entwicklung der Standard-C-Bibliothek und der Programmiersprache Kuroko. Beispielsweise wurden der libc mathematische Funktionen hinzugefügt, die für die korrekte Berechnung der Beleuchtungsparameter im Quake-Spiel erforderlich sind. Die Möglichkeit, VirtualBox im EFI-Modus zu starten, wurde verbessert. Die Größe des ISO-Images wurde durch die Komprimierung des RAM-Disk-Images reduziert.

Die neue Version der Kuroko 1.1-Sprache fügt Unterstützung für Async und Wait hinzu, implementiert Multithreading, verbessert die Kompatibilität mit Python 3, unterstützt mehrere Wertzuweisungen, erweitert die Tools zum Schreiben von Handlern in der C-Sprache, fügt Unterstützung für Typanmerkungen für Funktionen hinzu, fügt hinzu Schlüsselwörter „yield“ und „yield from“, die Module os, dis, fileio und time wurden integriert, neue Methoden wurden in str, list, dict und bytes implementiert, Unterstützung für die Vorkompilierung in Bytecode wurde hinzugefügt, die Lizenz wurde hinzugefügt wurde in MIT geändert (zuvor gab es eine Kombination aus MIT und ISC).

Source: opennet.ru

Kommentar hinzufügen