7 poin oleh GN⁺ 2024-09-15 | 1 komentar | Bagikan ke WhatsApp
  • Repositori Blog OS berisi kode sumber yang digunakan dalam seri Writing an OS in Rust di os.phil-opp.com
  • Kode untuk tiap artikel tersedia di git branch terpisah, sehingga Anda dapat melihat keadaan perantara setelah mengikuti artikelnya
  • Saat ini, artikel edisi kedua terdiri dari kategori Bare Bones, Interrupts, Memory Management, dan Multitasking, dengan kode artikel terbaru berada di branch post-12
  • Nama branch menggunakan format post-XX; misalnya, post-03 adalah kode untuk artikel VGA Text Mode, dan post-07 untuk artikel Hardware Interrupts
  • Edisi pertama sudah tidak lagi dipelihara, tetapi masih dapat dijadikan referensi; kode proyek, kecuali folder blog/content, menggunakan lisensi pilihan Apache-2.0 atau MIT

Tujuan repositori Blog OS

  • Repositori ini menyediakan kode sumber untuk seri Writing an OS in Rust
  • Pertanyaan dapat diajukan dengan membuka GitHub issue atau melalui chat Gitter

Struktur kode per artikel

  • Kode untuk tiap artikel berada di git branch terpisah
    • Anda dapat melihat keadaan perantara setelah mengikuti artikelnya
    • Kode artikel terbaru ada di post-12
  • Branch untuk setiap artikel dapat ditemukan melalui tautan (source code) pada daftar artikel di bawah
  • Nama branch menggunakan format post-XX
    • post-03: VGA Text Mode
    • post-07: Hardware Interrupts
  • Cara build harus merujuk ke README di masing-masing branch
  • Anda dapat menggunakan git worktree untuk checkout branch tertentu ke subdirektori
git worktree add code post-10
  • Perintah di atas membuat subdirektori code yang berisi kode untuk artikel ke-10, Heap Allocation

Daftar artikel edisi saat ini

Edisi pertama

  • Blog saat ini adalah edisi kedua
  • Edisi pertama sudah lama dan tidak lagi dipelihara, tetapi masih bisa berguna
  • Edisi pertama mencakup artikel dalam kategori Bare Bones, Memory Management, Exceptions, dan Additional Resources

Lisensi dan kontribusi

  • Proyek ini, kecuali folder blog/content, dapat digunakan sesuai pilihan pengguna dengan Apache License 2.0 atau MIT license
  • Untuk lisensi folder blog/content, lihat blog/content/README.md
  • Kecuali dinyatakan lain, kontribusi yang sengaja dikirimkan untuk disertakan akan berlaku di bawah lisensi ganda di atas tanpa syarat tambahan, sesuai definisi Apache-2.0

1 komentar

 
GN⁺ 2024-09-15
Komentar Hacker News
  • Beberapa tahun lalu saya membaca edisi ke-2 sampai selesai, dan isinya benar-benar membuka wawasan.
    Penjelasan tentang pengembangan sistem operasi juga bagus, tetapi setelah membaca buku Rust, materi ini juga berguna sebagai sumber untuk belajar Rust lebih jauh.
    Penulisnya sangat memahami idiom Rust, jadi melihat bagaimana ia mengekspresikan kode dibandingkan dengan cara saya menulisnya juga memberi banyak pelajaran. Secara khusus, async-await in Rust, yang menjelaskan bagaimana future diimplementasikan di Rust, adalah yang terbaik yang pernah saya lihat tentang topik ini.
    Saya berharap Phil kembali bersemangat dan melanjutkan pengerjaan edisi ke-3 berbasis EFI. Dari commit di branch Git, sepertinya terhenti, dan saya juga menjadi sponsor GitHub selama sekitar setahun, tetapi setiap kali melihatnya absen dari tulisan “This Month In Rust OSDev”, rasanya disayangkan.
    Meski begitu, edisi ke-2 adalah materi yang luar biasa untuk mengisi waktu pengembangan di akhir pekan, dan usaha yang dicurahkan jelas terasa.

  • Setelah menyelesaikan tutorial ini 5 tahun lalu, saya mulai mengerjakan MOROS, dan sangat merekomendasikannya kepada siapa pun yang tertarik pada Rust dan pengembangan sistem operasi.
    Phil benar-benar mencurahkan banyak usaha, dan itu terlihat. Proyek ini mencakup banyak hal, dan setelah itu bisa dilanjutkan dengan osdev wiki.
    MOROS: http://moros.cc, https://github.com/vinc/moros

    • Terlihat cukup keren. Sejauh ini proyek favorit saya adalah xv6, karena codebase-nya cukup kecil untuk dipahami dalam beberapa minggu, bisa dibangun dengan GCC standar yang disediakan package manager sehingga tidak perlu membangun GCC kustom dari source, dan juga memiliki user space.
      MOROS tampaknya juga memenuhi kriteria-kriteria ini, jadi saya bookmark.
    • Apakah http://moros.cc tidak punya TLS? :(
    • Saya sudah lama berlangganan feed RSS-nya, dan MOROS terlihat seperti proyek yang sangat keren.
      Namun entah kenapa tidak bisa mulai di QEMU, jadi saya belum sempat mencobanya; kemungkinan besar masalahnya ada di sisi saya, bukan pada sistem operasinya sendiri.
  • Setelah mendalami Rust dan pengembangan sistem operasi, hari ini saya menemukan materi ini dan terkesan dengan kualitas kontennya.
    Kita belajar banyak tentang sejarah dan desain sistem operasi, sekaligus menyerap unsur-unsur Rust secara alami. Phil benar-benar membuatnya dengan sangat baik.

  • Saya baru saja pulang dari Rustconf, dan sepertinya di ekosistem Rust ada sekitar lima rilis sistem operasi besar, terutama banyak yang berfokus pada real-time.
    Namun tidak semuanya open source.

    • Di antara real-time operating system (RTOS) utama ada Tock-OS, Oxid-OS (versi Tock-OS yang menitikberatkan keselamatan, kira-kira posisinya seperti freertos/safertos), dan Hubris dari Oxide Computers. Embassy dan RTIC adalah framework yang umum dipakai untuk scheduling dan manajemen resource pada sistem bare-metal, tetapi bukan RTOS tradisional.
      Selain itu ada juga yang lebih niche atau tidak dipublikasikan.
      Untuk sistem operasi tradisional, yaitu yang bukan real-time, Redox adalah contoh utamanya, dan ada banyak sistem operasi untuk riset, eksperimen, dan pendidikan, termasuk Blog OS dari panduan/posting ini.
  • Saya terutama merekomendasikan edisi pertama dari tulisan-tulisan ini.
    Edisi saat ini menangani seluruh bootloading dengan crate khusus, jadi terasa terlalu banyak membantu.

    • Saya suka bahwa ada cara untuk melewati bagian bootloading.
      Setelah membaca komentar ini, saya jadi ingin benar-benar mencobanya. Saya ingin membuat sistem operasi kecil untuk bersenang-senang, tetapi saya tidak suka bagian yang harus melewati prosedur seperti mantra sihir hanya untuk mencapai kondisi mesin yang layak agar bisa melakukan sesuatu.
      Tentu saja itu bukan hal yang buruk; tiap orang hanya menyukai bagian yang berbeda.
  • Berkat materi ini, saya mulai memakai Rust pada 2021, dan saya sangat berterima kasih ada materi seperti ini.

  • Tulisan Phil tentang pengembangan sistem operasi selalu enak dibaca.

  • Katanya ia akan berbicara di konferensi GOSIM bulan depan.
    https://china2024.gosim.org/speakers#philipp-oppermann
    Semoga bisa bertemu langsung dan berbincang dengannya.

  • https://harvey-os.org/ sudah pensiun, dan timnya sekarang mengerjakan proyek ini: https://github.com/r9os/r9

  • Saya bukan developer profesional, tetapi ketika melihat ungkapan “menulis X di atas Y”, saya teringat meme “But why?” dari Ryan Reynolds: https://screenrant.com/ryan-reynolds-but-why-gif-harold-kuma...
    Kalau untuk tujuan belajar, menurut saya silakan saja. Semakin banyak coding, semakin baik kemampuan kita.
    Selain itu, MOROS terlihat punya proyek dan halaman yang keren.