Apakah ada OS yang cukup sederhana untuk dipelajari? [Tutup]

19

Saya benar-benar ingin memahami bagaimana sistem operasi bekerja di belakang layar. Namun, saya berpikir bahwa kernel dari kebanyakan OS open-source di luar sana terlalu kompleks untuk tujuan pembelajaran, bahkan untuk dipelajari oleh programmer penuh waktu. Apakah ada OS "sederhana" yang dibuat hanya untuk tujuan belajar?

DotNetStudent
sumber
Saya menemukan ini pada pencarian saya, tidak pernah mencobanya. pdos.csail.mit.edu/6.828/2012/xv6.html tampaknya ditulis untuk menggantikan Unix v6 sebagai alat pembelajaran.
ctrl-alt-delor

Jawaban:

28

Minix Andrew Tanenbaum (lihat Desain dan Implementasi Sistem Operasi ) dimaksudkan untuk tujuan yang persis seperti ini. Kemungkinan lain (walaupun cukup tanggal) adalah membaca Lion's Book , yang mencakup Unix V6 (Unix penuh, tetapi versi yang cukup lama sehingga masih cukup sederhana untuk dipelajari dengan cukup mudah). Kelemahan yang jelas dari yang terakhir adalah bahwa C yang digunakannya cukup usang, sehingga bahkan programmer C yang cukup berpengalaman mungkin menemukan bagian yang agak sulit dibaca, dan Anda tidak dapat merencanakan kompiler modern yang mencerna kode.

Jerry Coffin
sumber
7
MINIX 3 bukan alat pengajaran dan microkernel MINIX 3 jelas tidak mudah dimengerti. Menurut Tanenbaum hanya MINIX 1 yang merupakan alat pengajaran.
sakisk
10

Anda harus mempertimbangkan Unix-a-like, sistem operasi Xv6 modern, yang digunakan dalam kursus OS di MIT. Tampaknya memiliki beberapa materi kursus yang terkait dengannya, juga.

Ini berjalan di emulator Bochs dan Qemu x86. Saya melakukan bagian itu. Itu menyenangkan.

Bruce Ediger
sumber
7

Minix adalah pilihan yang bagus dan dijelaskan dalam salah satu respons lainnya.

Xinu

Juga pertimbangkan XINU - XINU Is Not Unix.

Apakah juga UNIX dieja mundur.

Ada buku karya Douglas Comer yang saya pikir ditulis dengan baik, berilustrasi dengan baik, dan cakupannya bagus.

Ada Xinu Tertanam dan situs web tentang mengajar dengan Xinu.

http://xinu.mscs.mu.edu/Teaching_With_Xinu

FreeRTOS

OS bertubuh kecil lainnya yang mendapat banyak cinta hari ini adalah FreeRTOS. Ini berjalan di hampir semua hal. Jika Anda berasal dari Mars dan memiliki prosesor atau papan eval di mana itu tidak berjalan, Anda bisa membaca sekitar 10 halaman dokumentasi, memodifikasi sekitar lima file yang berkaitan dengan interupsi, timer, dan UART dan Anda akan berjalan.

http://www.freertos.org/

Mereka mengklaim mendukung 31 arsitektur dan 18 rantai alat. Pengalaman saya pada akhir 2009 itu baik, dan saya mendengarnya telah banyak meningkat sejak saat itu.

Tautan Lainnya

Pertanyaan serupa tentang yang mungkin memiliki informasi bermanfaat untuk Anda terdapat di sini:

/programming/254149/how-do-you-write-a-basic-operating-system

Linux dan banyak desain sistem operasi lainnya dipengaruhi oleh UNIX, jadi video ini adalah tempat perancang asli (Kernigan, Richie, dan Thompson dan lainnya) informatif dan mendapatkan ide-ide desain langsung dari sumbernya.

http://techchannel.att.com/play-video.cfm/2012/2/22/AT&T-Archives-The-UNIX-System

Ada buku teks sistem operasi klasik tetapi sering direvisi:

Silberschatz, Galvin, Gagne: Konsep Sistem Operasi, Edisi ke-7

Mungkin ada edisi yang lebih baru juga. Saya jarang menautkan ke buku melalui penjual buku, tetapi pratinjaunya sangat murah hati, jadi untuk mempelajari lebih lanjut tentang sistem operasi, silakan periksa:

http://www.amazon.com/Operating-System-Concepts-Abraham-Silberschatz/dp/0470128720

Pengembang Don
sumber
3

Di universitas saya, kami telah mempelajari NachOS . Ini adalah OS open source yang bagus untuk belajar. Anda juga dapat menemukan banyak latihan universitas di NachOS untuk belajar.

Nachos adalah perangkat lunak instruksional untuk mengajar sarjana, dan berpotensi lulus, kursus sistem operasi level. Distribusi Nachos dilengkapi dengan:

  • Makalah ikhtisar
  • Kode dasar sederhana untuk sistem operasi yang berfungsi
  • Sebuah simulator untuk tugas sampel komputer pribadi / workstation generik
  • C ++ primer (Nachos ditulis dalam subset C ++ yang mudah dipelajari, dan primer membantu mengajar programmer C subset kami)

Tugas menggambarkan dan mengeksplorasi semua bidang sistem operasi modern, termasuk utas dan konkurensi, multiprogramming, panggilan sistem, memori virtual, TLB yang memuat perangkat lunak, sistem file, protokol jaringan, panggilan prosedur jarak jauh, dan sistem terdistribusi.

pengguna
sumber
0

Lihatlah KOS (Kid OD) dan SOS (Simple OS). Keduanya adalah Sistem Operasi yang dirancang untuk mengajarkan internal OS. KOS adalah "bapak" SOS, dan dibangun berdasarkan pengalaman yang diperoleh dari KOS.

Proyek-proyek ini adalah dasar dari banyak artikel pendidikan di Linux Magazine France.

Di situs web KOS, Anda juga dapat menemukan halaman tempat Anda dapat mengunduh sumber OS sederhana lainnya.

barjak
sumber
0

Jika Anda termasuk dalam rangkaian teknologi .NET, Anda dapat melihat Singularity . Itu belum diperbarui sejak 2008, tetapi dapat diunduh dalam sumber dan formulir ISO dari CodePlex di sini .

Jesse C. Slicer
sumber
Alasan khusus untuk downvote, downvoter ? Tautan masih hidup dan ini adalah OS sederhana yang ditulis dalam bahasa tingkat tinggi.
Jesse C. Slicer
0

Orang-orang dapat memahami semua versi CP / M dan DOS awal. Setelah itu semuanya menjadi tidak terkendali dan tidak ada yang tahu segalanya lagi. Mereka tidak dirancang untuk belajar bagaimana OS bekerja tetapi banyak orang melakukan belajar bahwa dari OS tersebut.

Joe Dos
sumber
1
Pertimbangkan untuk menambahkan beberapa referensi atau bukti anekdotal tambahan untuk mendukung jawaban Anda. Atau tambahkan beberapa detail tambahan untuk menunjukkan mengapa versi X lebih mudah dipahami daripada versi Y.
-1

Pergi membaca buku tentang pemrograman dalam assembler. Anda tidak harus menjadi mahir dalam hal itu tetapi itu akan mengajarkan Anda banyak pekerjaan dalam komputer.

Pieter B
sumber