Projek Tilck, kernel ringkas yang serasi dengan Linux

tandakan

Tilck ialah kernel x86 monolitik pendidikan yang direka untuk serasi dengan Linux pada peringkat binari.

Berita dikeluarkan tentang a pembangunan baru yang mempunyai nama «Projek Tilck», di mana pekerja VMware sedang membangun kernel monolitik yang pada asasnya berbeza daripada Linux, tetapi direka untuk serasi binari dengan Linux dan mampu menjalankan aplikasi yang dibina untuk Linux.

Pembangunan bertujuan untuk melaksanakan ciri-ciri minimum yang diperlukan, mengelakkan beban kefungsian, seni bina yang ringkas dan mudah difahami, penyederhanaan kod maksimum, saiz fail binari yang kecil, tingkah laku yang boleh diramal (deterministik), memastikan kelewatan minimum, mencapai kebolehpercayaan yang tinggi, dan memudahkan proses pembangunan dan ujian.

Tilck pada asasnya berbeza daripada Linux kerana ia tidak menyasarkan pelayan berbilang pengguna atau mesin desktop, tidak sama sekali kerana itu tidak masuk akal: Linux tidak besar dan kompleks kerana pelaksanaan yang lemah, tetapi kerana bilangan yang luar biasa daripada ciri-ciri yang dimilikinya. tawaran dan kerumitan intrinsik yang mereka perlukan. Dalam erti kata lain, Linux hebat memandangkan masalah yang diselesaikannya. Tilck akan menawarkan lebih sedikit ciri sebagai pertukaran untuk:

kod yang lebih mudah (setakat ini)
saiz binari terkecil
tingkah laku yang sangat deterministik
kependaman ultra rendah
pembangunan dan ujian yang lebih mudah
keteguhan tambahan

Projek itu tidak bertujuan untuk digunakan dalam persekitaran pelayan berbilang pengguna atau sistem desktop. Daripada sistem fail, FAT16 dan FAT32 disokong dalam mod baca, begitu juga ramfs, devfs dan sysfs. Peranti blok masih belum dilaksanakan; semuanya dalam ingatan.

VFS disediakan untuk mengabstrakkan operasi FS. Multithreading pada peringkat pembangunan semasa hanya tersedia pada peringkat kernel (belum disediakan dalam ruang pengguna).

Kernel menyokong multitasking preemptive dan melaksanakan kira-kira 100 panggilan asas. kepada sistem Linux, seperti fork(), waitpid(), read(), write(), select() dan poll(), yang mencukupi untuk menjalankan aplikasi konsol seperti BusyBox, Vim, TinyCC, Micropython dan Lua, serta aplikasi grafik berasaskan framebuffer seperti permainan fbDOOM. Untuk mencipta program untuk Tilck, satu set alat berdasarkan perpustakaan Musl disediakan.

Disebutkan bahawa set pemacu yang dicadangkan membenarkan menjalankan Tilck kedua-duanya dalam persekitaran QEMU seperti dalam sistem konvensional but daripada pemacu USB. Di samping itu, ia juga diperhatikan bahawa terdapat sokongan untuk set arahan lanjutan SSE, AVX dan AVX2. Ia menawarkan pemuat but interaktifnya sendiri yang menyokong sistem BIOS dan UEFI, tetapi ia juga mungkin untuk menggunakan pemuat but pihak ketiga seperti GRUB2. Apabila dimuatkan ke dalam QEMU, kernel boleh berjalan dalam persekitaran dengan 3 MB RAM.

Pada masa ini, projek itu diletakkan sebagai projek pendidikan, tetapi dalam jangka panjang adalah mungkin Tilck akan berkembang ke tahap yang sesuai untuk digunakan sebagai kernel untuk sistem terbenam yang memerlukan tingkah laku boleh diramal dan kependaman rendah.

Walaupun Tilck secara dalaman menggunakan konsep benang, multithreading pada masa ini tidak terdedah kepada ruang pengguna (benang kernel wujud, sudah tentu). Kedua-dua fork() dan vfork() dilaksanakan dengan betul dan copy-on-write digunakan untuk proses bercabang. Panggilan sistem waitpid() dilaksanakan sepenuhnya (yang membayangkan kumpulan proses, dsb.).

Satu ciri menarik di kawasan ini patut diberi perhatian khusus: walaupun kekurangan multithreading ruang pengguna, Tilck mempunyai sokongan penuh untuk TLS.

Ia dijangkakan bahawa Tandakan merapatkan jurang antara penyelesaian berasaskan kernel Linux dan sistem pengendalian masa nyata khusus, seperti FreeRTOS dan Zephyr. Pelan termasuk memindahkan Tilck ke ARM dan pemproses Unit Pengurusan Bukan Memori (MMU), menambah subsistem rangkaian, sokongan untuk peranti blok dan sistem fail tambahan seperti ext2.

Kod ini ditulis dalam C dan diedarkan di bawah lesen BSD. Pada peringkat pembangunan semasa, kernel hanya menyokong seni bina x86, tetapi kod itu direka bentuk dengan mengambil kira kesejagatan dan pelaksanaan untuk sokongan masa depan untuk seni bina lain.

akhirnya jika anda berminat untuk mengetahui lebih lanjut mengenainya, anda boleh menyemak perinciannya Dalam pautan berikut.


Tinggalkan komen anda

Alamat email anda tidak akan disiarkan. Ruangan yang diperlukan ditanda dengan *

*

*

  1. Bertanggungjawab untuk data: AB Internet Networks 2008 SL
  2. Tujuan data: Mengendalikan SPAM, pengurusan komen.
  3. Perundangan: Persetujuan anda
  4. Komunikasi data: Data tidak akan disampaikan kepada pihak ketiga kecuali dengan kewajiban hukum.
  5. Penyimpanan data: Pangkalan data yang dihoskan oleh Occentus Networks (EU)
  6. Hak: Pada bila-bila masa anda boleh menghadkan, memulihkan dan menghapus maklumat anda.