Tilck Project, një kernel i thjeshtuar i pajtueshëm me Linux

shënoni

Tilck është një kernel monolit edukativ x86 i krijuar për të qenë i pajtueshëm me Linux në nivel binar.

Lajmi është bërë i ditur për një zhvillim i ri që ka emrin «Project Tilck», në të cilën po zhvillohet një punonjës i VMware një kernel monolit që është thelbësisht i ndryshëm nga Linux, por i krijuar për të qenë i pajtueshëm binar me Linux dhe i aftë për të ekzekutuar aplikacione të ndërtuara për Linux.

Zhvillimi synon të zbatojë karakteristikat minimale të kërkuara, shmangia e mbingarkesës së funksionalitetit, arkitektura e thjeshtë dhe e kuptueshme, thjeshtimi maksimal i kodit, madhësia e vogël e skedarëve binare, sjellja e parashikueshme (përcaktuese), sigurimi i vonesave minimale, arritja e besueshmërisë së lartë dhe thjeshtimi i proceseve të zhvillimit dhe testimit.

Tilck është thelbësisht i ndryshëm nga Linux në atë që nuk synon serverët me shumë përdorues ose makinat desktop, aspak sepse kjo nuk do të kishte kuptim: Linux nuk është i madh dhe kompleks për shkak të zbatimit të dobët, por për shkak të numrit të pabesueshëm. të veçorive që ka. ofertat dhe kompleksitetin e brendshëm që ato kërkojnë. Me fjalë të tjera, Linux është i mrekullueshëm duke pasur parasysh problemin që zgjidh. Tilck do të ofrojë më pak veçori në këmbim të:

kod më i thjeshtë (deri tani)
madhësia më e vogël binare
sjellje jashtëzakonisht deterministe
latente ultra e ulët
zhvillim dhe testim më i lehtë
qëndrueshmëri shtesë

El Proyecto jo i destinuar për përdorim në mjediset e serverëve me shumë përdorues ose sisteme desktop. Nga sistemet e skedarëve, FAT16 dhe FAT32 mbështeten në modalitetin e leximit, siç janë ramfs, devfs dhe sysfs. Pajisjet e bllokimit nuk janë zbatuar ende; gjithçka është në kujtesë.

VFS ofrohet për të abstraguar operacionet e FS. Multithreading në fazën aktuale të zhvillimit është i disponueshëm vetëm në nivelin e kernelit (nuk ofrohet ende në hapësirën e përdoruesit).

Kerneli mbështet multitasking parandalues ​​dhe zbaton rreth 100 thirrje themelore. në sistemin Linux, të tilla si fork(), waitpid(), read(), write(), select() dhe poll(), të cilat janë të mjaftueshme për të ekzekutuar aplikacionet e konsolës si BusyBox, Vim, TinyCC, Micropython dhe Lua, si dhe aplikacione grafike të bazuara në framebuffer si loja fbDOOM. Për të krijuar programe për Tilck, ofrohet një grup mjetesh të bazuara në bibliotekën Musl.

Përmendet se grupi i propozuar i drejtuesve lejon ekzekutimin e Tilck si në mjedisin QEMU si në sistemet konvencionale që nisin nga një disk USB. Përveç kësaj, vërehet gjithashtu se ka mbështetje për grupet e instruksioneve të zgjeruara SSE, AVX dhe AVX2. Ai ofron ngarkuesin e vet interaktiv që mbështet sistemet BIOS dhe UEFI, por është gjithashtu e mundur të përdoren ngarkues të palëve të treta si GRUB2. Kur ngarkohet në QEMU, kerneli mund të funksionojë në një mjedis me 3 MB RAM.

Aktualisht, projekti pozicionohet si projekt edukativ, por në afat të gjatë është e mundur që Tilck të rritet në një nivel të përshtatshëm për t'u përdorur si një kernel për sistemet e integruara që kërkojnë sjellje të parashikueshme dhe vonesë të ulët.

Ndërsa Tilck përdor nga brenda konceptin e një thread, multithreading aktualisht nuk është i ekspozuar ndaj hapësirës së përdoruesit (temat e kernelit ekzistojnë, sigurisht). Të dy fork() dhe vfork() janë implementuar në mënyrë korrekte dhe copy-on-write përdoret për proceset e forkuara. Thirrja e sistemit waitpid() është implementuar plotësisht (që nënkupton grupet e procesit, etj.).

Një veçori interesante në këtë fushë meriton një përmendje të veçantë: pavarësisht mungesës së multithreading hapësirës së përdoruesve, Tilck ka mbështetje të plotë për TLS.

Pritet që Shënoni për të mbushur hendekun midis zgjidhjeve të bazuara në kernel Linux dhe sistemeve operative të dedikuara në kohë reale, si FreeRTOS dhe Zephyr. Planet përfshijnë migrimin e Tilck në procesorë ARM dhe jo-Memory Management Unit (MMU), shtimin e një nënsistem rrjeti, mbështetje për pajisjet e bllokut dhe sisteme skedarësh shtesë si ext2.

Kodi është shkruar në C dhe shpërndahet nën licencën BSD. Në fazën aktuale të zhvillimit, kerneli mbështet vetëm arkitekturën x86, por kodi është projektuar duke pasur parasysh universalitetin dhe zbatimin për mbështetjen e ardhshme për arkitekturat e tjera.

më në fund nëse jeni të interesuar të dinë më shumë për të, ju mund të kontrolloni detajet Në lidhjen vijuese.


Lini komentin tuaj

Adresa juaj e emailit nuk do të publikohet. Fusha e kërkuar janë shënuar me *

*

*

  1. Përgjegjës për të dhënat: AB Internet Networks 2008 SL
  2. Qëllimi i të dhënave: Kontrolloni SPAM, menaxhimin e komenteve.
  3. Legjitimimi: Pëlqimi juaj
  4. Komunikimi i të dhënave: Të dhënat nuk do t'u komunikohen palëve të treta përveç me detyrim ligjor.
  5. Ruajtja e të dhënave: Baza e të dhënave e organizuar nga Occentus Networks (BE)
  6. Të drejtat: Në çdo kohë mund të kufizoni, rikuperoni dhe fshini informacionin tuaj.