5 poin oleh GN⁺ 2025-07-18 | 1 komentar | Bagikan ke WhatsApp
  • Tilck adalah kernel monolitik yang kompatibel secara biner dengan Linux, dirancang untuk tujuan edukasi dan sistem tertanam
  • Menargetkan penggunaan sumber daya seminimal mungkin, sehingga berguna pada perangkat embedded atau lingkungan yang terbatas
  • Dapat langsung menjalankan aplikasi userspace Linux yang sudah ada seperti BusyBox, sehingga tidak perlu menulis aplikasi terpisah
  • Mendukung arsitektur i686 dan RISC-V64, dengan rencana porting ke ARM serta CPU tanpa MMU di masa depan
  • Menyertakan berbagai fitur seperti filesystem, manajemen proses, konsol, debugging, dan juga dapat menjalankan Vim, Micropython, Lua
  • Mendukung boot di QEMU maupun perangkat nyata, serta memiliki lingkungan pengujian dan debugging yang baik sehingga pemula pun mudah mencobanya

Overview

  • What is Tilck?

    • Tilck adalah kernel edukasi yang kompatibel dengan Linux dengan desain kecil dan sederhana
    • Alih-alih membutuhkan aplikasi khusus seperti kernel lain, Tilck dapat menggunakan program Linux yang dibangun dengan toolchain berbasis musl
    • Dapat menjalankan berbagai aplikasi seperti BusyBox, Vim, TinyCC, dan lainnya
    • Menggunakan struktur monolithic yang menangani semua fungsi dalam satu ruang kernel seperti Linux
    • Juga menaruh fokus besar pada eksekusi di perangkat keras nyata
  • Future plans

    • Cocok untuk lingkungan embedded yang membutuhkan sistem ultra-rendah latensi dan sepenuhnya deterministik
    • Menargetkan posisi ceruk di antara Embedded Linux dan FreeRTOS/Zephyr
    • Ada rencana dukungan untuk ARM64, tanpa MMU, jaringan (UDP/IP), serta penyimpanan (FAT32, ext2)
    • Tujuan jangka panjangnya adalah mendukung fitur jaringan dan penyimpanan pada SoC seperti Raspberry Pi 3/4
  • What Tilck is NOT?

    • Tilck bukan proyek yang bertujuan menggantikan Linux
    • Tidak menargetkan desktop OS (misalnya tidak mendukung X server)
    • Tilck meminimalkan fitur demi menjaga kesederhanaan dan karakter real-time
  • Tilck vs Linux

    • Linux kompleks karena sangat multifungsi, sementara Tilck memilih kesederhanaan, ukuran kecil, dan latensi sangat rendah
    • Tilck juga berupaya memiliki infrastruktur pengujian yang mendekati level enterprise

Features

  • i686 support

    • Mendukung perangkat keras lama (8259 PIC, 8254 PIT, dll.) sekaligus fitur modern (SSE, AVX, ACPI, dll.)
    • Melalui ACPI, dapat menangani peristiwa daya dan memeriksa informasi baterai
    • Sudah diuji pada berbagai lingkungan x86 (BIOS, UEFI, CSM, dll.)
  • riscv64 support

    • Arsitekturnya berfokus pada embedded
    • Mendukung QEMU dan board Sipeed licheerv-nano
    • Informasi perangkat disampaikan melalui device tree, dan tidak ada kode kernel yang bergantung pada board tertentu
    • Mendukung ns16550 UART, pengendali interupsi PLIC/INTC, dan lainnya
  • File systems

    • Mendukung ramfs, devfs, sysfs
    • FAT16 dan FAT32 didukung dalam mode hanya-baca, dan dapat di-memory-map
    • Memiliki VFS, tetapi belum mendukung block device (semua berjalan di dalam memori)
  • Processes and signals

    • Mendukung fitur dasar proses/sinyal seperti fork, vfork, waitpid, rt_sigaction, dll.
    • Tidak mendukung multithreading userspace, tetapi TLS (set_thread_area) diimplementasikan sesuai kebutuhan libmusl
  • I/O

    • Selain read dan write, juga mendukung readv, writev, select, poll
    • epoll belum didukung
  • Console

    • Mengimplementasikan lebih dari 90% fitur konsol Linux
    • Mendukung mode teks maupun framebuffer
    • Implementasinya cukup matang hingga Vim dapat berjalan sempurna di Tilck
  • Userspace applications

    • Dapat menjalankan aplikasi konsol dan framebuffer seperti BusyBox, Vim, Micropython, Lua, fbDOOM

Booting Tilck

  • Tilck's bootloader

    • Tilck menyertakan bootloader yang mendukung BIOS maupun UEFI
    • Dapat mengatur mode video, memilih kernel, dan mengedit command line
  • 3rd-party bootloaders

    • Tilck dapat di-boot dengan bootloader yang mendukung Multiboot 1.0 (misalnya GRUB)
    • Contoh konfigurasi GRUB juga disediakan

A comment about user experience

  • Tilck dirancang agar developer pemula pun mudah membangun dan menguji
  • Menyediakan skrip build toolchain sendiri tanpa beban besar instalasi dependensi
  • Mirip buildroot, tetapi jauh lebih sederhana
  • Juga menyediakan berbagai skrip untuk menjalankan QEMU

1 komentar

 
GN⁺ 2025-07-18
Komentar Hacker News
  • Terasa seperti proyek menarik yang berada di titik tengah antara Unix lawas seperti xv6 (versi 1975, lihat Lion book) dan kernel Linux penuh; senang melihatnya berjalan di board RISC-V seharga $9 bernama LicheeRV Nano (CPU 64-bit 1.0GHz (C906), MMU, FPU, unit vektor 128-bit, dilengkapi 256MB DDR3); board ini performanya mirip Pentium III era pertengahan atau PowerPC G4; sepertinya porting ke Milk-V Duo 256M atau Duo S yang memakai SoC yang sama, atau bahkan Duo (RAM 64MB, model seperti $5) juga akan sangat mudah; saat ini belum ada dukungan jaringan, block device, maupun multicore

    • Linux tanpa jaringan dan multicore masih bisa dibayangkan, tetapi OS tanpa block device terasa asing; penasaran apakah maksudnya hanya character device, dan bagaimana driver FAT bekerja
  • G4 dengan Altivec menghasilkan performa multimedia yang kurang lebih setara dengan PIV yang memiliki SSE2

  • Setiap beberapa bulan muncul kernel OS baru yang hanya berjalan di VM tanpa abstraksi hardware; Tilck bukan jenis seperti itu; Tilck adalah sistem operasi sungguhan; berjalan di hardware nyata; ranah yang pertama sudah jenuh, sedangkan Tilck terasa mengisi celah yang sejak lama hampir tidak pernah terisi

  • Kesan bahwa Tilck boot sangat cepat dan bahkan menjalankan doom lewat framebuffer cukup mengesankan; bisa dilihat di tautan https://www.youtube.com/watch?v=Ce1pMlZO_mI; menyenangkan juga melihat developernya dengan ramah menjawab langsung pertanyaan calon mahasiswa CS di YouTube

    • Videonya singkat dan langsung ke inti; juga memperlihatkan menjalankan Vim, dan cukup mengesankan bahwa hanya dengan sebagian dari berbagai syscall Linux, software besar seperti Vim bisa dikompilasi dan dijalankan
  • Sudah melihat Tilck ditandai sebagai "untuk pendidikan", tetapi penasaran apakah dengan hanya mengganti bootloader ini juga cukup layak dipakai pada perangkat embedded kecil

  • File README Tilck ternyata lebih panjang dan lebih menarik dari dugaan, sehingga wajib dibaca kalau seorang developer OS

  • Bagi orang seperti saya yang tumbuh belajar dengan Minix sebagai sarana pendidikan, saya penasaran seberapa bergunanya Tilck

    • Tilck adalah monokernel yang sangat kecil dan deterministik; saat ini mengimplementasikan sekitar 100 syscall Linux dalam bentuk kompatibel Linux; bagus sebagai alat pendidikan, tetapi dalam jangka panjang menargetkan kernel RTOS yang kompatibel dengan Linux; saat ini hanya mendukung biner yang ditautkan secara statis dengan musl dan hanya membutuhkan sekitar 3MB RAM untuk boot dan berjalan; codebase-nya kecil dan sederhana sehingga cocok untuk tujuan pendidikan, dan pada akhirnya targetnya adalah dipakai juga di lingkungan produksi nyata untuk sistem embedded
  • Membagikan tautan diskusi HN lama terkait Tilck:

  • Tilck memang menarik, tetapi ketiadaan dukungan multi-user terasa disayangkan; setidaknya jika mendukung perubahan pemilik dan grup file seperti chmod/chgrp, kegunaannya untuk hal seperti server NFS akan jauh lebih besar, jadi ada harapan developer mempertimbangkan lagi dukungan multi-user

    • Kompatibilitas filesystem Tilck adalah masalah yang lebih besar daripada itu; sebenarnya untuk kebutuhan saya, platform yang keandalannya sudah teruji lebih baik, dan karena Tilck disesuaikan untuk pendidikan, ia kurang cocok dari sisi keamanan informasi maupun ketahanan data

    • Bisa juga dibayangkan cara dengan hanya mencatat nilai user:group di filesystem lalu menerapkannya saat runtime hanya ketika melayani klien; misalnya jika file server Linux berjalan sebagai root, tanpa mengganti user internal pun pemeriksaan izin dan pengelolaan kepemilikan tetap bisa dilakukan; selain itu, jika melakukan fork per sesi lalu beralih ke user klien terkait, kernel akan memaksakan pemberian izin sehingga penanganan izin file juga otomatis terselesaikan

  • Proyek ini benar-benar mengesankan; mengingatkan pada masa ketika Linux untuk firewall NAT dijalankan dari floppy 3,5 inci