Mari kita mulai!
C Bahasa dan Perakitan x86
Tentu saja, Anda hanya perlu fondasi perakitan sederhana. Adapun bahasa C , Anda tidak perlu banyak pengetahuan untuk memahami proses dari file sumber ke file yang dapat dieksekusi.
Perintah linux Dasar
Dalam kompilasi kernel sederhana, kami menggunakan beberapa alat di bawah linux , seperti nasm , dan tentu saja ada juga di windows , termasuk gcc . Tetapi proses kompilasi dilakukan di mesin virtual linux .
Alat apa yang akan kita gunakan?
Notepad++ , sublime , dll., Notepad paling sederhana adalah OK.sublime itu sendiri dapat ditampilkan dalam bentuk 16 , dan mesin virtual juga memiliki alat untuk membantu kita menguraikan.linux Virtual Machine, kami menggunakan Ubuntu i386 di sini. Perlu menginstal alat nasm , vim , gcc , readelf , dll.Tentu saja, Anda tidak perlu khawatir. Saat menggunakan alat atau materi ini, akan ada hyperlink dalam artikel, Anda dapat mengunduh dan meninjaunya. Pada saat yang sama, ada juga banyak informasi di internet untuk Anda baca.
Apa hasil akhirnya?
Akhirnya, tentu saja, ini bukan sistem operasi yang sangat lengkap. Ini lebih seperti eksplorasi penelitian dan pemahaman OS , serta hubungan antara bahasa C dan perakitan, dan akhirnya, ini adalah pemahaman tentang bagaimana perangkat keras dan perangkat lunak menanganinya.
Dalam 7 bagian, kami hanya menyelesaikan power-on dan power-on, memuat sektor boot utama, dan kemudian memuat lebih banyak informasi ke dalam memori. Akhirnya, kami hanya mewujudkan entri dari mode nyata ke mode yang dilindungi. Itu saja, tetapi prototipe sistem operasi kira -kira sama.
Sepanjang proses, kami merujuk beberapa video dan buku teks elektronik
[1] "Sistem Operasi Homemade 30 Hari"
[2] "Implementasi sistem operasi Oranges "
[3] 51CTO
dll.
Referensi utamanya adalah e-book [2] . Konten dalam [1] lebih komprehensif, dan hasil akhirnya lebih lengkap.
File dan catatan sumber diunggah ke GitHub bersama. Jika Anda memiliki pertanyaan, Anda juga dapat menghubungi saya di [email protected] . Setiap folder adalah struktur independen, dan file biner yang dikompilasi tidak diunggah, tetapi kode sumber dan alat diunggah.