Tilck Project, un nucli simplificat compatible amb Linux

tilck

Tilckes un nucli x86 monolític educatiu dissenyat per ser compatible amb Linux a nivell binari.

Es va donar a conèixer la notícia d'un nou desenvolupament que té com a nom «Projecte Tilck», en el qual un empleat de VMware està desenvolupant un nucli monolític que és fonamentalment diferent de Linux, però dissenyat per ser compatible binàriament amb Linux i capaç d'executar aplicacions creades per a Linux.

el desenvolupament té com a objectiu la implementació de les característiques mínimes requerides, evitar la sobrecàrrega de funcionalitat, arquitectura simple i comprensible, màxima simplificació de codi, mida petita d'arxius binaris, comportament predictible (determinista), assegurant retards mínims, aconseguint alta fiabilitat i simplificant el desenvolupament i processos de prova.

Tilck és fonamentalment diferent de Linux, ja que no apunta a servidors multiusuari ni màquines descriptori, en absolut perquè això no tindria sentit: Linux no és gran i complex a causa duna implementació deficient , sinó a la increïble quantitat de característiques que té. ofereix i la complexitat intrínseca que requereixen. En altres paraules, Linux és genial atès el problema que resol. Tilck oferirà menys funcions a canvi de:

codi més simple (per molt)
mida binària més petita
comportament extremadament determinista
latència ultrabaixa
desenvolupament i proves més fàcils
robustesa addicional

El Projecte no pretén ser utilitzat en entorns de servidor multiusuari o sistemes descriptori. Dels sistemes de fitxers, FAT16 i FAT32 són compatibles en mode de lectura, així com ramfs, devfs i sysfs. Els dispositius de blocs encara no s'han implementat; tot és a la memòria.

Es proporciona VFS per abstreure les operacions de FS. Els subprocessos múltiples a l'etapa actual de desenvolupament només estan disponibles a nivell de kernel (encara no es proporcionen a l'espai de l'usuari).

El kernel admet la multitasca preventiva i implementa unes 100 trucades bàsiques al sistema Linux, com fork(), waitpid(), read(), write(), select() i poll(), que són suficients per executar aplicacions de consola com BusyBox, Vim, TinyCC, Micropython i Lua, així com aplicacions gràfiques basades en framebuffer com el joc fbDOOM. Per crear programes per a Tilck, s'ofereix un conjunt d'eines basat a la biblioteca Musl.

S'esmenta que el conjunt de controladors proposat permet executar Tilck tant a l'entorn QEMU com en sistemes convencionals arrencant des d'una unitat USB. A més, també es destaca que hi ha suport per a conjunts d'instruccions esteses SSE, AVX i AVX2. Ofereix el vostre propi carregador d'arrencada interactiva que admet sistemes amb BIOS i UEFI, però també és possible utilitzar carregadors d'arrencada de tercers com GRUB2. Quan es carrega a QEMU, el nucli es pot executar en un entorn amb 3 MB de RAM.

Actualment, el projecte es posiciona com un projecte educatiu, però a llarg termini és possible que Tilck creixi a un nivell adequat per al seu ús com a kernel per a sistemes integrats que requereixen un comportament predictible i baixa latència.

Si bé Tilck utilitza internament el concepte de subprocés, els subprocessos múltiples no estan actualment exposats a l'espai d'usuari (els subprocessos del nucli existeixen, és clar). Tots dos fork() i vfork() estan implementats correctament i la còpia en escriptura es fa servir per a processos bifurcats. La waitpid() anomenada al sistema està completament implementada (la qual cosa implica grups de processos, etc.).

Una característica interessant en aquesta àrea mereix una menció especial: malgrat la manca de subprocessos múltiples a l'espai d'usuari, Tilck té suport complet per a TLS

S'espera que Tilck ompliu el buit entre les solucions basades en el kernel de Linux i els sistemes operatius dedicats en temps real, com FreeRTOS i Zephyr. Els plans inclouen la migració de Tilck a ARM i processadors que no siguin unitats d'administració de memòria (MMU), l'addició d'un subsistema de xarxa, suport per a dispositius de bloc i sistemes de fitxers addicionals com a ext2.

El codi està escrit a C i es distribueix sota la llicència BSD. A l'etapa actual de desenvolupament, el nucli només admet l'arquitectura x86, però el codi està dissenyat tenint en compte la universalitat i la implementació del suport futur per a altres arquitectures.

Finalment si estàs interessat a poder conèixer més sobre això, Pots consultar els detalls en el següent enllaç.


Deixa el teu comentari

La seva adreça de correu electrònic no es publicarà. Els camps obligatoris estan marcats amb *

*

*

  1. Responsable de les dades: AB Internet Networks 2008 SL
  2. Finalitat de les dades: Controlar l'SPAM, gestió de comentaris.
  3. Legitimació: El teu consentiment
  4. Comunicació de les dades: No es comunicaran les dades a tercers excepte per obligació legal.
  5. Emmagatzematge de les dades: Base de dades allotjada en Occentus Networks (UE)
  6. Drets: En qualsevol moment pots limitar, recuperar i esborrar la teva informació.