Yang perlu Anda lakukan adalah merancang sistem operasi. Bahkan jika, misalnya, Anda memutuskan bahwa itu haruslah sistem yang mirip UNIX, masih ada banyak keputusan yang harus diambil. Seberapa besar Anda menginginkan UNIX? Bagian UNIX mana yang Anda sukai dan yang menurut Anda perlu ditingkatkan?
Jika Anda tidak mengaturnya seperti UNIX, Anda berakhir dengan genap banyak pertanyaan untuk dijawab: haruskah proses membentuk pohon, atau apakah "datar"? Jenis komunikasi antar proses apa yang ingin Anda dukung? Apakah Anda ingin multi-pengguna, atau hanya multi-tasking (atau mungkin single-tasking)? Apakah Anda ingin menjadi sistem waktu nyata? Apa tingkat isolasi yang ingin Anda berikan di antara tugas-tugas? Di mana Anda ingin jatuh pada skala monolitik vs mikro-kernel? Sejauh mana (jika ada) yang Anda inginkan untuk mendukung operasi terdistribusi?
Saya biasanya akan menyarankan untuk tidak mempelajari kernel Linux untuk inspirasi Anda. Itu tidak bertentangan dengan kernel Linux itu sendiri, tetapi fakta sederhana bahwa Linux dimaksudkan terutama untuk penggunaan produksi, bukan pendidikan. Ini memiliki banyak optimisasi, retas kompatibilitas mundur, dll., Yang sangat berguna untuk produksi tetapi lebih cenderung mengganggu daripada mendidik.
Jika Anda dapat menemukannya, salinan buku Lion ( Lions 'Commentary on UNIX 6th Edition , dengan Source Code , oleh John Lions) adalah titik awal yang jauh lebih mudah. Edisi 6 UNIX masih kecil dan cukup sederhana untuk dibaca dan dipahami dengan cukup cepat, tanpa menjadi sistem mainan yang terlalu disederhanakan.
Jika Anda berencana untuk menargetkan x86 (setidaknya terutama), Anda mungkin juga ingin melihat MMURTL V 1.0 oleh Richard Burgess. Ini menyajikan sistem untuk x86 yang menggunakan perangkat keras x86 lebih banyak seperti yang dimaksudkan oleh perancang CPU - sesuatu yang paling dihindari oleh kebanyakan sistem nyata yang mendukung portabilitas ke CPU lain. Seperti yang Anda duga, ini cenderung berorientasi jauh lebih berat ke ujung perangkat keras. Salinan cetak tampaknya mahal dan sulit ditemukan, tetapi Anda dapat mengunduh teks dan kode secara gratis.
Untungnya, ada beberapa kemungkinan yang cukup banyak juga - Desain dan Implementasi Sistem Operasi , oleh Andrew Tanenbaum dan Albert Woodhull, misalnya.