Sortie du système d'exploitation ToaruOS 1.14 et du langage de programmation Kuroko 1.1

La version du projet ToaruOS 1.14 est disponible, développant un système d'exploitation de type Unix écrit à partir de zéro avec son propre noyau, son propre chargeur de démarrage, sa bibliothèque C standard, son gestionnaire de packages, ses composants d'espace utilisateur et une interface graphique avec un gestionnaire de fenêtres composite. Au stade actuel de développement, les capacités du système sont suffisantes pour exécuter Python 3 et GCC. Le code du projet est écrit en C et distribué sous licence BSD. Une image en direct de 14 Mo a été préparée pour le téléchargement, qui peut être testée dans QEMU, VMware ou VirtualBox.

Sortie du système d'exploitation ToaruOS 1.14 et du langage de programmation Kuroko 1.1

Le projet a débuté en 2010 à l'Université de l'Illinois et s'est initialement développé comme un travail de recherche dans le domaine de la création de nouvelles interfaces graphiques composites. Depuis 2012, le développement s'est transformé en système d'exploitation ToaruOS, initialement développé comme un projet étudiant, puis devenu un passe-temps du week-end, repris par la communauté formée autour du projet. Dans sa forme actuelle, le système est équipé d'un gestionnaire de fenêtres composite, prend en charge les fichiers exécutables liés dynamiquement au format ELF, le multitâche, les graphiques et les piles réseau.

Le package comprend un portage du langage de programmation Python 3.6, qui est utilisé dans le développement de certaines applications graphiques spécifiques à ToaruOS, telles qu'un gestionnaire de packages, un éditeur graphique, une visionneuse PDF, une calculatrice et des jeux simples. Les programmes tiers portés sur ToaruOS incluent Vim, GCC, Binutils, FreeType, MuPDF, SDL, Cairo, Doom, Quake, l'émulateur Super Nintendo, Bochs, etc.

ToaruOS est basé sur un noyau qui utilise une architecture modulaire hybride combinant un cadre monolithique et des outils d'utilisation de modules chargeables, qui constituent la majorité des pilotes de périphériques disponibles, tels que les pilotes de disque (PATA et ATAPI), les systèmes de fichiers EXT2 et ISO9660, le framebuffer. , claviers, souris, cartes réseau (AMD PCnet FAST, Realtek RTL8139 et Intel PRO/1000), puces audio (Intel AC'97), ainsi que des modules complémentaires VirtualBox pour les systèmes invités.

Les primitives fournies par le noyau incluent les threads Unix, TTY, le système de fichiers virtuel, le multithreading, l'IPC, la mémoire partagée, le multitâche et d'autres fonctionnalités standard. ext2 est utilisé comme système de fichiers. Pour interagir avec le noyau, une implémentation pseudo-FS /proc est fournie, créée par analogie avec Linux.

Les plans pour 2021 incluent des travaux sur l'architecture x64-86 64 bits (pour l'instant, les assemblages sont générés uniquement pour les systèmes x32 86 bits) et la prise en charge des systèmes multiprocesseurs (SMP). D'autres objectifs incluent l'amélioration de la compatibilité avec les spécifications POSIX dans le domaine des méthodes de traitement du signal et de synchronisation, l'amenement de la bibliothèque C standard au niveau Newlib et la mise en œuvre de son propre compilateur et outils de développement en langage C.

Le projet développe également son propre langage de programmation dynamique, Kuroko, conçu pour remplacer Python lors du développement d'utilitaires et d'applications personnalisées pour le système. Le langage prend en charge la compilation et l'interprétation du bytecode, sa syntaxe ressemble à Python (il se positionne comme un dialecte abrégé de Python avec une définition explicite des variables) et a une implémentation très compacte. L'interpréteur de bytecode fournit un garbage collector et prend en charge le multithreading sans utiliser de verrouillage global. Le compilateur et l'interpréteur peuvent être compilés sous la forme d'une petite bibliothèque partagée (~ 500 Ko), intégrée à d'autres programmes et extensible via l'API C. En plus de ToaruOS, le langage peut être utilisé sous Linux, macOS, Windows et exécuté dans les navigateurs prenant en charge WebAssembly.

La nouvelle version de ToaruOS s'est concentrée sur le développement de la bibliothèque standard C et du langage de programmation Kuroko. Par exemple, les fonctions mathématiques nécessaires au calcul correct des paramètres d'éclairage dans le jeu Quake ont été ajoutées à la libc. La possibilité de démarrer dans VirtualBox en mode EFI a été améliorée. La taille de l'image ISO a été réduite en utilisant la compression de l'image du disque RAM.

La nouvelle version du langage Kuroko 1.1 ajoute la prise en charge d'async et d'attente, implémente le multithreading, améliore la compatibilité avec Python 3, prend en charge plusieurs affectations de valeurs, étend les outils d'écriture de gestionnaires en langage C, ajoute la prise en charge des annotations de type pour les fonctions, ajoute le les mots-clés « yield » et « yield from », les modules os, dis, fileio et time ont été intégrés, de nouvelles méthodes ont été implémentées en str, list, dict et bytes, le support de la précompilation en bytecode a été ajouté, la licence a été ajoutée. a été remplacé par MIT (auparavant, il existait une combinaison de MIT et ISC).

Source: opennet.ru

Ajouter un commentaire