Tangkapan layar maestro
Rust telah mendapatkan popularitas yang cukup sedemikian rupa sehingga telah menjadi salah satu bahasa yang dipilih untuk diintegrasikan sebagai bahasa sekunder di Linux, serta di sistem operasi lain, seperti kasus Android, yang sudah memiliki sebagian kode di Rust, Windows yang juga antara lain telah memberikan persetujuan.
Karat telah terbukti menjadi bahasa yang kuat dan telah menghasilkan kepercayaan tersebut Beberapa sistem operasi bahkan telah dibuat dengan bahasa pemrograman ini dan hanya beberapa yang kami miliki: redoks, Kami juga memiliki Kernel yang ditulis dari awal seperti Kerla atau Kernel yang digunakan di satelit yang baru-baru ini diluncurkan Tiongkok.
Alasan untuk menyebutkan ini adalah karena saya baru-baru ini menemukan sebuah berita yang menarik perhatian saya dan itu adalah itu Sebuah proyek dipresentasikan di mana Kernel yang ditulis dalam Rust dikembangkan dan yang sebagian kompatibel dengan Linux.
Nama proyek ini adalah "Guru" dan seperti yang disebutkan, adalah kernel mirip Unix yang ditulis dalam Rust yang mengimplementasikan subset panggilan sistem dari kernel Linux cukup untuk menciptakan lingkungan kerja standar. Dengan demikian, proyek "Maestro" bukanlah sesuatu yang baru, karena pengembang menyebutkan bahwa proyek tersebut lahir pada tahun 2018, namun pada saat itu ditulis dalam C dan karena perbedaan manfaat dan karakteristik Rust, proyek tersebut ditulis ulang dari nol.
Di halaman proyek Alasan perubahan tersebut dijelaskan:
Saat itu saya memutuskan untuk beralih ke Rust (proyek pertama saya dalam bahasa ini), yang memberikan beberapa keuntungan:
- Mulai ulang proyek dari awal, dengan menggunakan pembelajaran dari kesalahan sebelumnya.
- Jadilah sedikit lebih inovatif daripada sekadar menulis kernel mirip Linux di C. Lagi pula, gunakan saja Linux saat itu juga.
- Gunakan keamanan bahasa Rust untuk memanfaatkan beberapa kesulitan pemrograman kernel. Menggunakan sistem penulisan Rust memungkinkan Anda mengalihkan sebagian tanggung jawab keamanan memori dari pemrogram ke kompiler.
Dalam pengembangan kernel, debugging sangat sulit karena beberapa alasan:
- Dokumentasi seringkali sulit ditemukan dan implementasi BIOS bisa bermasalah (lebih sering dari yang Anda kira).
- Saat boot, kernel memiliki akses penuh ke memori dan dapat menulis di tempat yang tidak seharusnya (kodenya sendiri, misalnya).
- Mengatasi masalah kebocoran memori tidaklah mudah. Alat seperti valgrind tidak dapat digunakan.
- gdb dapat digunakan dengan QEMU dan VMWare, namun kernel mungkin berperilaku berbeda ketika dijalankan pada emulator atau mesin virtual yang berbeda. Selain itu, emulator tersebut mungkin tidak mendukung gdb (mis. VirtualBox).
- Beberapa fitur hilang dari dukungan gdb di QEMU atau VMWare dan gdb bahkan terkadang crash
Berhubungan dengan karakteristik proyek, terlihat bahwa Kernel bersifat monolitik dan saat ini hanya didukung pada sistem x86 dalam mode 32-bit. Basis kode kernel mencakup sekitar 49 ribu baris, dapat dieksekusi baik pada perangkat keras nyata maupun di lingkungan virtual, seperti QEMU atau VirtualBox.
Dalam perkembangan «Maestro» saat ini, 31% telah dilaksanakan (135 tahun 437) panggilan sistem Linux. Ini adalah cukup untuk memuat lingkungan konsol berdasarkan Bash dan perpustakaan C standar Musl. Selain itu, lingkungan berbasis Maestro dapat menjalankan beberapa utilitas dari rangkaian GNU coreutils dan pengemasan dasar dari sistem Unix mana pun. Saat ini, pekerjaan sedang dilakukan untuk mengimplementasikan tumpukan jaringan dan pekerjaan juga sedang dilakukan untuk mengembangkan
entre las Fitur-fitur Maestro yang tersedia menonjol pengikut::
- Pengontrol untuk keyboard dan terminal PS/2 dengan mode teks dan dukungan parsial untuk urutan ANSI.
- Sistem alokasi memori dengan dukungan memori virtual.
- Penjadwal tugas berdasarkan algoritma round-robin dengan dukungan sinyal POSIX.
- Definisi perangkat PCI.
- Pengontrol IDE/PATA.
- Sistem file ext2.
- Dukungan untuk sistem file virtual /tmp dan /proc.
- Kemampuan untuk memasang partisi disk FS, MBR dan GPT.
- dukungan initramfs.
- Pengontrol RTC untuk pengatur waktu dan waktu yang tepat.
- Dukungan untuk memuat modul kernel.
- Kemampuan untuk menjalankan file yang dapat dieksekusi dalam format ELF.
untuk tertarik untuk belajar lebih banyak tentang proyek ini, Anda dapat memeriksa detailnya Di tautan berikut. Bagi mereka yang tertarik dengan kode proyek, mereka harus mengetahuinya didistribusikan di bawah lisensi MIT.