12 poin oleh GN⁺ 2024-01-09 | 3 komentar | Bagikan ke WhatsApp

Pengenalan Motūrus OS

  • Proyek Motūrus mengembangkan MotūrusOS, sistem operasi yang sederhana, cepat, dan aman untuk cloud.
  • Motūrus OS adalah sistem operasi baru yang menargetkan workload berbasis mesin virtual, dan digunakan untuk web server, serverless, edge caching, dan lainnya.

Mengapa Motūrus OS?

  • Saat ini sebagian besar workload produksi yang tervirtualisasi berjalan di Linux.
  • Linux memiliki banyak fitur canggih, tetapi juga membawa beberapa kompleksitas yang tidak ideal untuk workload tervirtualisasi:
    • Linux dioptimalkan untuk bare metal sehingga kurang efisien saat digunakan di dalam VM.
    • Linux sulit digunakan.
    • Secara historis, Linux sangat tidak aman.
  • Sistem operasi baru yang berfokus pada workload tervirtualisasi dapat dibuat jauh lebih sederhana dan aman daripada Linux, sambil melampaui atau menyamai Linux dalam performa maupun efisiensi.

Apa itu Motūrus OS?

  • Motūrus OS adalah sistem operasi berbasis microkernel yang dibangun dengan bahasa Rust, dan hanya menargetkan workload tervirtualisasi.
  • Saat ini mendukung mesin virtual berbasis x64 KVM, dan dapat dijalankan di Qemu atau Cloud Hypervisor.
  • Rust adalah bahasa inti Motūrus OS; bukan hanya implementasinya, ABI-nya juga disediakan dalam Rust.

Fitur yang berfungsi

  • Saat ini sebagian besar subsistem masih berjalan dalam mode POC/MVP, tetapi sudah dapat menjalankan tugas seperti web server.
  • Secara spesifik, fitur-fitur berikut berfungsi:
    • Boot dalam sekitar 200ms melalui MBR(Qemu) atau PVH(Cloud Hypervisor).
    • Microkernel himem.
    • Scheduling: round robin multiprosesor sederhana (SMP), scheduling kernel bersifat kooperatif.
    • Manajemen memori: saat ini hanya mendukung page 4K, stack dilindungi, page fault di user space ditangani dengan benar.
    • Subsistem I/O (di dalam user space): driver VirtIO-BLK dan VirtIO-NET, dua file system sederhana, networking berbasis smoltcp (hanya mendukung TCP).
    • User space: multi-proses, preemption, thread, TLS, sebagian besar pustaka standar Rust telah di-porting.
    • Menyediakan shell sederhana bergaya Unix.

Fitur yang belum berfungsi

  • Sebagian besar komponen belum siap untuk penggunaan produksi.
  • Belum menjalani audit keamanan.
  • Sangat mudah mengalami panic "not implemented" di sys-io (subsistem I/O user space).
  • Secara spesifik, fitur-fitur berikut belum berfungsi:
    • File system: sebagian besar API Rust std::fs telah diimplementasikan sebagai POC, tetapi perlu diimplementasikan ulang menggunakan I/O asinkron.
    • Networking: std::net::TcpStream sebagian besar telah diimplementasikan, tetapi protokol lain belum.
    • Ekosistem di luar standar Rust: beberapa crate dapat dikompilasi dan digunakan dengan penyesuaian kecil, tetapi crate yang bergantung pada async runtime seperti Tokio saat ini belum bisa dikompilasi.

Bagaimana membangun/menjalankan Motūrus OS?

  • Lihat dokumen docs/build.md.

Ucapan terima kasih

  • Ucapan terima kasih yang sebesar-besarnya kepada Philipp Oppermann, yang menulis seri blog tentang menulis OS dengan Rust. Ia telah menginspirasi banyak orang untuk bereksperimen di bidang ini.

Opini GN⁺

  • Pendekatan inovatif: Motūrus OS adalah sistem operasi baru yang dikhususkan untuk lingkungan tervirtualisasi, dan berupaya mengatasi kompleksitas serta inefisiensi Linux.
  • Adopsi bahasa Rust: Rust adalah bahasa yang menekankan keamanan memori dan performa, dan akan berkontribusi pada keamanan serta efisiensi Motūrus OS.
  • Kontribusi bagi komunitas developer: Proyek ini akan membantu developer yang tertarik pada pengembangan sistem operasi untuk mengeksplorasi kemungkinan baru dan melampaui keterbatasan yang ada.

3 komentar

 
ing03201 2024-01-09

Saya juga mengikuti blog writing an os in rust, dan ternyata sudah ada perkembangan dari sekarang!
Sepertinya ini tulisan yang bagus

 
GN⁺ 2024-01-09
Komentar Hacker News
  • Pendapat pengembang/penulis proyek:

    • Berterima kasih atas minat dan diskusi terhadap proyek ini.
    • Ada kekhawatiran tentang keberlanjutan jangka panjang dan dukungan, serta kompatibilitas compiler dan biner.
    • Tanpa komunitas, proyek ini tidak akan bisa berhasil, tetapi mereka percaya potensi manfaat dari proyek seperti Motor OS pada akhirnya akan menghasilkan sistem operasi baru yang digunakan secara luas.
    • Menunjukkan adanya masalah Linux di dalam mesin virtual (dan kadang di luar itu), dan bahwa para pengembang Linux tidak cukup fokus untuk menyelesaikannya.
    • Mengatakan tidak memahami kekhawatiran tentang ketidakstabilan compiler dan kompatibilitas biner, serta menyebutkan bahwa kernel Linux terbaru dapat dikompilasi dengan berbagai toolchain GCC atau LLVM, dan biner lama pun berjalan tanpa masalah.
    • Menyatakan siap menjawab pertanyaan tambahan.
  • Penjelasan tentang pendekatan "Rust-first":

    • "Rust-first" berarti bukan hanya microkernel dan driver yang diimplementasikan dengan Rust, tetapi juga program ruang pengguna untuk saat ini hanya dapat ditulis dengan Rust.
    • Secara teknis, ABI berbasis Rust dan toolchain Rust yang disediakan bisa direkayasa balik untuk menulis aplikasi Motor OS dalam bahasa lain seperti C, tetapi itu memerlukan pekerjaan tersendiri.
    • Menjelaskan bahwa program Rust standar dapat menggunakan pustaka Rust standar serta dikompilasi dan dijalankan tanpa FFI.
  • Rasa penasaran tentang mengapa kernel kecil memerlukan 200ms pada komputer modern:

    • Inisialisasi metadata halaman memori, mounting file system, memulai proses init, dan sebagainya memang diperlukan, tetapi mereka merasa semua itu seharusnya selesai dalam beberapa mikrodetik.
    • Mempertanyakan apakah host memerlukan waktu untuk menyiapkan resource, misalnya ada bagian yang lambat di QEMU dan KVM.
  • Pendapat yang ingin melihat kernel async-first yang ditulis dengan Rust:

    • Mempertanyakan apakah kernel async-first memang sangat sulit dibuat atau tidak cukup bernilai, atau hanya belum ada yang mencoba.
    • Menyebutkan bahwa mereka tahu ini memungkinkan setelah mengikuti seri OS buatan Phil Oppermann dengan Rust, tetapi OS berbasis Rust belakangan ini tampaknya tidak mencoba ke arah itu.
  • Pendapat yang mengingatkan pada pernyataan lama Linus Torvalds tentang persaingan dengan Linux:

    • Mengingat bahwa ketika ditanya apakah ia takut pada persaingan, Torvalds menjawab bahwa ia suka menulis device driver, dan sampai ada orang muda yang bersemangat serta juga menyukai hal itu, ia tidak takut pada persaingan.
  • Pendapat yang tertarik pada proyek seperti Motor OS dan berharap pengembangannya berlanjut:

    • Mengungkapkan bahwa sudah terlalu banyak proyek seperti Motor OS yang gagal, sehingga sulit untuk tetap antusias.
    • Menyebutkan bahwa menggantikan Linux untuk use case tertentu seperti cloud adalah hal yang sangat sulit.
  • Pendapat bahwa Docker, Nix OS, dan "serverless" ada karena kompleksitas Linux:

    • Menjelaskan bahwa Docker dan NixOS ada karena masalah manajemen paket di ruang pengguna, sedangkan serverless ada karena bisnis ingin membayar komputasi sesuai permintaan.
  • Pendapat yang awalnya skeptis terhadap teknologi baru, tetapi setelah dipikir ulang menganggap peningkatan efisiensi dan keamanan dari penghapusan lapisan yang tidak perlu itu menarik:

    • Mengatakan mereka memiliki pendekatan yang sehat terhadap teknologi baru, sambil mengakui bahwa peningkatan efisiensi dan keamanan tersebut memang menarik.
  • Pendapat bahwa Motor OS tampak bersaing dengan Docker dan sejenisnya:

    • Menunjukkan bahwa Motor OS tampaknya lebih langsung bersaing dengan teknologi seperti Docker daripada langsung bersaing dengan Linux.
    • Mengungkapkan keinginan agar alasan memilih Motor OS, yaitu mengapa harus menggunakan Motor OS alih-alih Docker dan sejenisnya, dibahas di bagian "Why?".
  • Pendapat bahwa memulai sistem operasi baru tidaklah sulit, tetapi mendukung sistem operasi itu selama 50 tahun ke depan sangatlah sulit:

    • Menekankan bahwa menulis sistem operasi baru tidak sulit, tetapi mendukungnya dalam jangka panjang adalah hal yang sangat sulit.
 
ahwjdekf 2024-01-10

Bagian "fitur yang tidak berfungsi" benar-benar luar biasa. Proyek mainan.