Tilck Project, en forenklet kjerne som er kompatibel med Linux

sett kryss

Tilck er en pedagogisk monolitisk x86-kjerne designet for å være kompatibel med Linux på binært nivå.

Nyheten ble sluppet om en ny utvikling som har navnet «Project Tilck», der en VMware-ansatt utvikler seg en monolitisk kjerne som er fundamentalt forskjellig fra Linux, men designet for å være kompatibel binær med Linux og i stand til å kjøre applikasjoner bygget for Linux.

Utviklingen har som mål å implementere minimumskravene, unngå overbelastning av funksjonalitet, enkel og forståelig arkitektur, maksimal kodeforenkling, liten størrelse på binære filer, forutsigbar (deterministisk) oppførsel, sikre minimale forsinkelser, oppnå høy pålitelighet og forenkle utviklings- og testprosesser.

Tilck er fundamentalt forskjellig fra Linux ved at den ikke retter seg mot flerbrukerservere eller stasjonære maskiner, ikke i det hele tatt fordi det ikke gir mening: Linux er ikke stort og komplekst på grunn av dårlig implementering, men på grunn av det utrolige antallet funksjoner den har. tilbud og den iboende kompleksiteten de krever. Med andre ord, Linux er flott gitt problemet det løser. Tilck vil tilby færre funksjoner i bytte mot:

enklere kode (langt)
minste binære størrelse
ekstremt deterministisk oppførsel
ultra lav latenstid
enklere utvikling og testing
ekstra robusthet

Prosjektet ikke beregnet for bruk i flerbrukerservermiljøer eller skrivebordssystemer. Av filsystemene støttes FAT16 og FAT32 i lesemodus, det samme er ramfs, devfs og sysfs. Blokker enheter er ennå ikke implementert; alt er i minnet.

VFS er gitt for å abstrahere operasjonene til FS. Multithreading på det nåværende utviklingsstadiet er bare tilgjengelig på kjernenivå (ennå ikke tilgjengelig i brukerområdet).

Kjernen støtter forebyggende multitasking og implementerer rundt 100 grunnleggende samtaler. til Linux-systemet, som fork(), waitpid(), read(), write(), select() og poll(), som er tilstrekkelige til å kjøre konsollapplikasjoner som BusyBox, Vim, TinyCC, Micropython og Lua, så vel som rammebufferbaserte grafiske applikasjoner som spillet fbDOOM. For å lage programmer for Tilck, leveres et sett med verktøy basert på Musl-biblioteket.

Det er nevnt at det foreslåtte driversettet tillater å kjøre Tilck både i QEMU-miljøet som i konvensjonelle systemer som starter opp fra en USB-stasjon. I tillegg til dette bemerkes det også at det er støtte for SSE, AVX og AVX2 utvidede instruksjonssett. Den tilbyr sin egen interaktive bootloader som støtter BIOS og UEFI-systemer, men det er også mulig å bruke tredjeparts bootloadere som GRUB2. Når den er lastet inn i QEMU, kan kjernen kjøre i et miljø med 3 MB RAM.

Tiden, prosjektet er posisjonert som et pedagogisk prosjekt, men på lang sikt er det mulig at Tilck vil vokse til et nivå som er egnet for bruk som en kjerne for innebygde systemer som krever forutsigbar oppførsel og lav ventetid.

Mens Tilck internt bruker konseptet med en tråd, er multithreading for øyeblikket ikke eksponert for brukerplass (kjernetråder eksisterer, selvfølgelig). Både fork() og vfork() er implementert riktig og copy-on-write brukes for forked prosesser. Waitpid()-systemkallet er fullt implementert (som innebærer prosessgrupper osv.).

En interessant funksjon på dette området fortjener en spesiell omtale: til tross for mangelen på multithreading av brukerrom, har Tilck full støtte for TLS.

Det forventes det Sett kryss bygge bro mellom Linux-kjernebaserte løsninger og dedikerte sanntidsoperativsystemer, som FreeRTOS og Zephyr. Planene inkluderer migrering av Tilck til ARM- og ikke-Memory Management Unit-prosessorer (MMU), å legge til et nettverksundersystem, støtte for blokkenheter og ytterligere filsystemer som ext2.

Koden er skrevet i C og distribueres under BSD-lisensen. På det nåværende utviklingsstadiet støtter kjernen kun x86-arkitekturen, men koden er designet med universalitet og implementering i tankene for fremtidig støtte for andre arkitekturer.

endelig hvis du er det interessert i å vite mer om det, kan du sjekke detaljene I den følgende lenken.


Legg igjen kommentaren

Din e-postadresse vil ikke bli publisert. Obligatoriske felt er merket med *

*

*

  1. Ansvarlig for dataene: AB Internet Networks 2008 SL
  2. Formålet med dataene: Kontroller SPAM, kommentaradministrasjon.
  3. Legitimering: Ditt samtykke
  4. Kommunikasjon av dataene: Dataene vil ikke bli kommunisert til tredjeparter bortsett fra ved juridisk forpliktelse.
  5. Datalagring: Database vert for Occentus Networks (EU)
  6. Rettigheter: Når som helst kan du begrense, gjenopprette og slette informasjonen din.