Tilck Project, en förenklad kärna som är kompatibel med Linux

bock

Tilck är en pedagogisk monolitisk x86-kärna designad för att vara kompatibel med Linux på binär nivå.

Nyheten släpptes om en ny utveckling som har namnet «Project Tilck», där en VMware-anställd utvecklas en monolitisk kärna som skiljer sig fundamentalt från Linux, men utformad för att vara kompatibel binär med Linux och kan köra applikationer byggda för Linux.

Utvecklingen syftar till att implementera de minsta nödvändiga egenskaperna, undvika överbelastning av funktionalitet, enkel och begriplig arkitektur, maximal kodförenkling, liten storlek på binära filer, förutsägbart (deterministiskt) beteende, säkerställa minimala förseningar, uppnå hög tillförlitlighet och förenkla utvecklings- och testprocesser.

Tilck skiljer sig fundamentalt från Linux genom att det inte riktar sig mot fleranvändarservrar eller stationära maskiner, inte alls eftersom det inte skulle vara vettigt: Linux är inte stort och komplext på grund av dålig implementering, utan på grund av det otroliga antalet funktioner den har. erbjudanden och den inneboende komplexitet de kräver. Linux är med andra ord bra med tanke på problemet det löser. Tilck kommer att erbjuda färre funktioner i utbyte mot:

enklare kod (överlägset)
minsta binära storlek
extremt deterministiskt beteende
ultralåg latens
lättare utveckling och testning
ytterligare robusthet

Projektet inte avsedd för användning i servermiljöer med flera användare eller stationära system. Av filsystemen stöds FAT16 och FAT32 i läsläge, liksom ramfs, devfs och sysfs. Blockenheter har ännu inte implementerats; allt finns i minnet.

VFS tillhandahålls för att abstrahera driften av FS. Multithreading i det aktuella utvecklingsstadiet är endast tillgängligt på kärnnivå (ännu inte tillgängligt i användarutrymmet).

Kärnan stöder förebyggande multitasking och implementerar cirka 100 grundläggande anrop. till Linux-systemet, såsom fork(), waitpid(), read(), write(), select() och poll(), som är tillräckliga för att köra konsolapplikationer som BusyBox, Vim, TinyCC, Micropython och Lua, samt rambuffertbaserade grafiska applikationer som spelet fbDOOM. För att skapa program för Tilck tillhandahålls en uppsättning verktyg baserade på Musl-biblioteket.

Det nämns det den föreslagna drivrutinsuppsättningen tillåter körning av Tilck både i QEMU-miljön som i konventionella system som startar från en USB-enhet. Utöver detta noteras också att det finns stöd för SSE, AVX och AVX2 utökade instruktionsuppsättningar. Den erbjuder en egen interaktiv bootloader som stöder BIOS och UEFI-system, men det är också möjligt att använda tredjeparts bootloaders som GRUB2. När den är laddad i QEMU kan kärnan köras i en miljö med 3 MB RAM.

För närvarande, projektet är positionerat som ett utbildningsprojekt, men på lång sikt är det möjligt att Tilck kommer att växa till en nivå som lämpar sig för användning som en kärna för inbyggda system som kräver förutsägbart beteende och låg latens.

Medan Tilck internt använder konceptet med en tråd, är multithreading för närvarande inte exponerad för användarutrymme (kärntrådar finns förstås). Både fork() och vfork() är korrekt implementerade och copy-on-write används för forked processer. Systemanropet waitpid() är fullt implementerat (vilket innebär processgrupper, etc.).

En intressant funktion i detta område förtjänar ett speciellt omnämnande: trots bristen på multithreading för användarutrymme har Tilck fullt stöd för TLS.

Det förväntas det Bock överbrygga klyftan mellan Linux-kärnbaserade lösningar och dedikerade realtidsoperativsystem, som FreeRTOS och Zephyr. Planerna inkluderar migrering av Tilck till ARM- och MMU-processorer (non-Memory Management Unit), lägga till ett nätverksundersystem, stöd för blockenheter och ytterligare filsystem som ext2.

Koden är skriven i C och distribueras under BSD-licensen. I det nuvarande utvecklingsstadiet stöder kärnan bara x86-arkitekturen, men koden är designad med universalitet och implementering i åtanke för framtida stöd för andra arkitekturer.

äntligen om du är det intresserad av att veta mer om detkan du kontrollera detaljerna I följande länk.


Lämna din kommentar

Din e-postadress kommer inte att publiceras. Obligatoriska fält är markerade med *

*

*

  1. Ansvarig för data: AB Internet Networks 2008 SL
  2. Syftet med uppgifterna: Kontrollera skräppost, kommentarhantering.
  3. Legitimering: Ditt samtycke
  4. Kommunikation av uppgifterna: Uppgifterna kommer inte att kommuniceras till tredje part förutom enligt laglig skyldighet.
  5. Datalagring: databas värd för Occentus Networks (EU)
  6. Rättigheter: När som helst kan du begränsa, återställa och radera din information.