Tilck Project, een vereenvoudigde kernel die compatibel is met Linux

Kruis aan

Tilck is een educatieve monolithische x86-kernel die is ontworpen om compatibel te zijn met Linux op binair niveau.

Het nieuws werd vrijgegeven van een nieuwe ontwikkeling die de naam «Project Tilck» draagt, waarin een VMware-medewerker zich ontwikkelt een monolithische kernel die fundamenteel verschilt van Linux, maar ontworpen is om compatibel te zijn binair met Linux en geschikt voor het uitvoeren van applicaties die voor Linux zijn gebouwd.

De ontwikkeling heeft tot doel de minimaal vereiste kenmerken te implementeren, het vermijden van overbelasting van functionaliteit, eenvoudige en begrijpelijke architectuur, maximale vereenvoudiging van de code, kleine omvang van binaire bestanden, voorspelbaar (deterministisch) gedrag, zorgen voor minimale vertragingen, bereiken van hoge betrouwbaarheid en vereenvoudigen van ontwikkelings- en testprocessen.

Tilck verschilt fundamenteel van Linux doordat het zich niet richt op servers voor meerdere gebruikers of desktopmachines, helemaal niet omdat dat onzinnig zou zijn: Linux is niet groot en complex vanwege een slechte implementatie, maar vanwege het ongelooflijke aantal van de functies die het heeft. aanbiedingen en de intrinsieke complexiteit die ze vereisen. Met andere woorden, Linux is geweldig gezien het probleem dat het oplost. Tilck biedt minder features in ruil voor:

eenvoudigere code (verreweg)
kleinste binaire grootte
extreem deterministisch gedrag
ultra lage latentie
gemakkelijker ontwikkelen en testen
extra stevigheid

El proyecto niet bedoeld voor gebruik in serveromgevingen met meerdere gebruikers of desktopsystemen. Van de bestandssystemen worden FAT16 en FAT32 ondersteund in leesmodus, evenals ramfs, devfs en sysfs. Blokkeerapparaten zijn nog niet geïmplementeerd; alles zit in het geheugen.

VFS wordt geleverd om de bewerkingen van FS te abstraheren. Multithreading is in het huidige ontwikkelingsstadium alleen beschikbaar op kernelniveau (nog niet beschikbaar in de gebruikersruimte).

De kernel ondersteunt preventieve multitasking en implementeert ongeveer 100 basisaanroepen. naar het Linux-systeem, zoals fork(), waitpid(), read(), write(), select() en poll(), die voldoende zijn om console-applicaties uit te voeren zoals BusyBox, Vim, TinyCC, Micropython en Lua, evenals op framebuffer gebaseerde grafische toepassingen zoals het spel fbDOOM. Om programma's voor Tilck te maken, wordt een set tools geleverd op basis van de Musl-bibliotheek.

Er wordt gezegd dat met de voorgestelde driverset kan Tilck beide in de QEMU-omgeving worden uitgevoerd zoals bij conventionele systemen die opstarten vanaf een USB-station. Daarnaast wordt ook opgemerkt dat er ondersteuning is voor SSE, AVX en AVX2 uitgebreide instructiesets. Het biedt zijn eigen interactieve bootloader die BIOS- en UEFI-systemen ondersteunt, maar het is ook mogelijk om bootloaders van derden te gebruiken, zoals GRUB2. Wanneer geladen in QEMU, kan de kernel draaien in een omgeving met 3 MB RAM.

nog, het project is gepositioneerd als een educatief project, maar op de lange termijn is het mogelijk dat Tilck uitgroeit tot een niveau dat geschikt is voor gebruik als kernel voor embedded systemen die voorspelbaar gedrag en lage latentie vereisen.

Hoewel Tilck intern het concept van een thread gebruikt, wordt multithreading momenteel niet blootgesteld aan gebruikersruimte (kernelthreads bestaan ​​natuurlijk). Zowel fork() als vfork() zijn correct geïmplementeerd en copy-on-write wordt gebruikt voor gevorkte processen. De waitpid() systeemaanroep is volledig geïmplementeerd (wat procesgroepen impliceert, enz.).

Een interessant kenmerk op dit gebied verdient een speciale vermelding: ondanks het ontbreken van multithreading in de gebruikersruimte, biedt Tilck volledige ondersteuning voor TLS.

Verwacht wordt dat Kruis aan overbrug de kloof tussen op Linux-kernel gebaseerde oplossingen en speciale real-time besturingssystemen, zoals FreeRTOS en Zephyr. Plannen omvatten het migreren van Tilck naar ARM- en niet-Memory Management Unit (MMU)-processors, het toevoegen van een netwerksubsysteem, ondersteuning voor blokapparaten en aanvullende bestandssystemen zoals ext2.

De code is geschreven in C en wordt gedistribueerd onder de BSD-licentie. In het huidige ontwikkelingsstadium ondersteunt de kernel alleen de x86-architectuur, maar de code is ontworpen met het oog op universaliteit en implementatie voor toekomstige ondersteuning voor andere architecturen.

eindelijk als je bent geïnteresseerd om er meer over te weten, kunt u de details bekijken In de volgende link.


Laat je reactie achter

Uw e-mailadres wordt niet gepubliceerd. Verplichte velden zijn gemarkeerd met *

*

*

  1. Verantwoordelijk voor de gegevens: AB Internet Networks 2008 SL
  2. Doel van de gegevens: Controle SPAM, commentaarbeheer.
  3. Legitimatie: uw toestemming
  4. Mededeling van de gegevens: De gegevens worden niet aan derden meegedeeld, behalve op grond van wettelijke verplichting.
  5. Gegevensopslag: database gehost door Occentus Networks (EU)
  6. Rechten: u kunt uw gegevens op elk moment beperken, herstellen en verwijderen.