Tilck Project, isang pinasimpleng kernel na tugma sa Linux

tik

Ang Tilck ay isang pang-edukasyon na monolithic x86 kernel na idinisenyo upang maging tugma sa Linux sa binary level.

Inilabas ang balita ng a bagong pag-unlad na may pangalan na «Project Tilck», kung saan umuunlad ang isang empleyado ng VMware isang monolithic kernel na sa panimula ay naiiba sa Linux, ngunit idinisenyo upang maging tugma binary na may Linux at may kakayahang magpatakbo ng mga application na binuo para sa Linux.

Ang pag-unlad naglalayong ipatupad ang pinakamababang kinakailangang katangian, pag-iwas sa sobrang karga ng functionality, simple at nauunawaan na arkitektura, maximum na pagpapasimple ng code, maliit na sukat ng mga binary file, predictable (deterministic) na pag-uugali, tinitiyak ang pinakamababang pagkaantala, pagkamit ng mataas na pagiging maaasahan, at pagpapasimple ng mga proseso ng pagbuo at pagsubok.

Sa panimula ang Tilck ay naiiba sa Linux dahil hindi nito tina-target ang mga multi-user na server o desktop machine, hindi talaga dahil hindi iyon makatuwiran: Ang Linux ay hindi malaki at kumplikado dahil sa hindi magandang pagpapatupad, ngunit dahil sa hindi kapani-paniwalang bilang ng mga tampok na mayroon ito. alok at ang intrinsic complexity na kailangan nila. Sa madaling salita, mahusay ang Linux dahil sa problemang nalulutas nito. Mag-aalok ang Tilck ng mas kaunting feature kapalit ng:

mas simpleng code (sa ngayon)
pinakamaliit na laki ng binary
labis na deterministikong pag-uugali
napakababang latency
mas madaling pag-unlad at pagsubok
karagdagang katatagan

Ang proyekto hindi nilayon para gamitin sa mga multi-user na kapaligiran ng server o mga desktop system. Sa mga file system, ang FAT16 at FAT32 ay sinusuportahan sa read mode, tulad ng mga ramfs, devfs, at sysfs. Ang mga block device ay hindi pa naipapatupad; lahat ay nasa alaala.

Ang VFS ay ibinigay upang i-abstract ang mga operasyon ng FS. Ang multithreading sa kasalukuyang yugto ng pag-unlad ay magagamit lamang sa antas ng kernel (hindi pa ibinigay sa espasyo ng gumagamit).

Sinusuportahan ng kernel ang preemptive multitasking at nagpapatupad ng mga 100 pangunahing tawag. sa Linux system, tulad ng fork(), waitpid(), read(), write(), select() at poll(), na sapat para magpatakbo ng mga console application gaya ng BusyBox, Vim, TinyCC, Micropython at Lua, pati na rin ang mga graphical na application na nakabatay sa framebuffer tulad ng larong fbDOOM. Upang lumikha ng mga programa para sa Tilck, isang set ng mga tool batay sa Musl library ay ibinigay.

Nabanggit na pinapayagan ng iminungkahing set ng driver ang pagpapatakbo ng Tilck pareho sa kapaligiran ng QEMU tulad ng sa mga maginoo na system na nag-boot mula sa isang USB drive. Bilang karagdagan dito, nabanggit din na mayroong suporta para sa SSE, AVX at AVX2 extended instruction sets. Nag-aalok ito ng sarili nitong interactive na bootloader na sumusuporta sa BIOS at UEFI system, ngunit posible ring gumamit ng mga third-party na bootloader gaya ng GRUB2. Kapag na-load sa QEMU, maaaring tumakbo ang kernel sa isang kapaligiran na may 3 MB ng RAM.

sa kasalukuyan, ang proyekto ay nakaposisyon bilang isang proyektong pang-edukasyon, ngunit sa pangmatagalang panahon ay posible na ang Tilck ay lalago sa isang antas na angkop para sa paggamit bilang isang kernel para sa mga naka-embed na system na nangangailangan ng predictable na gawi at mababang latency.

Habang ang Tilck ay panloob na gumagamit ng konsepto ng isang thread, ang multithreading ay kasalukuyang hindi nakalantad sa espasyo ng gumagamit (siyempre, umiiral ang mga kernel thread). Parehong fork() at vfork() ay ipinatupad nang tama at copy-on-write ay ginagamit para sa mga forked na proseso. Ang waitpid() system call ay ganap na ipinatupad (na nagpapahiwatig ng mga pangkat ng proseso, atbp.).

Ang isang kawili-wiling tampok sa lugar na ito ay nararapat sa isang espesyal na pagbanggit: sa kabila ng kakulangan ng multithreading ng userspace, ang Tilck ay may ganap na suporta para sa TLS.

Inaasahan na Lagyan ng tsek tulay ang agwat sa pagitan ng Linux kernel-based na mga solusyon at dedikadong real-time na mga operating system, tulad ng FreeRTOS at Zephyr. Kasama sa mga plano ang paglipat ng Tilck sa ARM at mga non-Memory Management Unit (MMU) na mga processor, pagdaragdag ng network subsystem, suporta para sa mga block device, at karagdagang mga file system tulad ng ext2.

Ang code ay nakasulat sa C at ipinamamahagi sa ilalim ng lisensya ng BSD. Sa kasalukuyang yugto ng pag-unlad, sinusuportahan lamang ng kernel ang x86 na arkitektura, ngunit ang code ay idinisenyo nang nasa isip ang pagiging pangkalahatan at pagpapatupad para sa hinaharap na suporta para sa iba pang mga arkitektura.

sa wakas kung ikaw nga interesadong malaman ang higit pa tungkol dito, maaari mong suriin ang mga detalye Sa sumusunod na link.


Iwanan ang iyong puna

Ang iyong email address ay hindi nai-publish. Mga kinakailangang patlang ay minarkahan ng *

*

*

  1. Responsable para sa data: AB Internet Networks 2008 SL
  2. Layunin ng data: Kontrolin ang SPAM, pamamahala ng komento.
  3. Legitimation: Ang iyong pahintulot
  4. Komunikasyon ng data: Ang data ay hindi maiparating sa mga third party maliban sa ligal na obligasyon.
  5. Imbakan ng data: Ang database na naka-host ng Occentus Networks (EU)
  6. Mga Karapatan: Sa anumang oras maaari mong limitahan, mabawi at tanggalin ang iyong impormasyon.