Dalam beberapa tahun terakhir, saya memiliki kesempatan untuk mempelajari kode sumber sekitar tiga lusin sistem operasi sampai tingkat tertentu. Saya mungkin bahkan tidak akan mengingat semuanya. Pada dasarnya, ini adalah perpustakaan kecil untuk mikrokontroler, tetapi OS "besar" juga harus dilihat dengan berbagai tingkat perendaman.
Selama ini, saya juga melihat posting tentang "pengembangan OS" pada berbagai sumber daya, yang pada dasarnya bermuara pada output "hello world" di QEMU, dan mengeluh bahwa tidak perlu membingungkan OS dan "sebuah program yang dapat dijalankan dengan bare metal" ... OS sama sekali bukan tentang bekerja pada perangkat keras, itu, pertama-tama, tentang sinkronisasi dan semua jazz itu.
Orang mungkin berpendapat bahwa siapa pun yang tertarik dengan pengembangan "akademik" harus membaca buku, bukan posting HOWTO di Internet. Di sisi lain, buku-buku seperti karya E. Tanenbaum juga memiliki kekurangan, yang mengarah pada kenyataan bahwa aliran posting yang disebutkan di atas tidak mengering. Buku Tanenbaum (tentang MINIX) masih memiliki level yang agak "tinggi", dan banyak pertanyaan yang muncul dalam praktiknya tidak dianggap sama sekali. Dan ada satu hal lagi. Pengembangan sistem operasi untuk tujuan umum dan RTOS secara historis bergerak ke arah yang berlawanan: dalam sistem operasi mirip UNIX, proses single-threaded pertama kali muncul, dan hanya setelah beberapa saat proses menjadi multi-threaded; di ranah RTOS itu adalah sebaliknya, pertama ada "proses tunggal" sistem multithreaded, dan hanya kemudian bisa ada lebih dari satu proses. Ada pendapat bahwa kasus kedua lebih baik untuk belajar,karena Anda bisa mulai dengan sesuatu yang lebih sederhana dan rumit secara bertahap, dan akhirnya sampai pada hal yang sama. Tapi saya ngelantur.
Semua keluhan saya ini dipenuhi oleh orang lain dan kolega dengan frasa seperti "mengkritik - menyarankan", "berbuat lebih baik", "pianis memainkan yang dia bisa", "semua orang dapat menyinggung artis", dll. Karena itu, suatu hari kesabaran habis dan saya bilang oke, tantangan diterima. Dan dia duduk untuk menulis versinya sendiri tentang "jalan yang benar."
Ngomong-ngomong, untuk dukungan finansial dan moral dari seluruh acara ini, saya ingin mengucapkan terima kasih kepada perusahaan Eremex, serta kolega yang melakukan prestasi kerja dalam bentuk membaca dan mengedit draft awal.
Ketika volume mencapai 250 halaman, menjadi jelas bahwa perlu untuk menghentikan waktu. Pekerjaan ini, secara umum, masih belum selesai, tetapi, bagaimanapun, saya pikir, bahkan dalam bentuk ini, buku ini menggambarkan konsep dengan baik dan dapat bermanfaat bagi mereka yang tertarik dengan topik tersebut. Menurut ulasan, agak sulit untuk membacanya, jadi jika ada saran tentang cara memperbaikinya, saya akan berterima kasih untuk mereka.
Menurut pendapat saya, OS adalah jawaban untuk serangkaian masalah yang muncul ketika perlu untuk mengatur pekerjaan beberapa tugas independen. Oleh karena itu, Anda harus mulai dengan deskripsi masalah dan kemungkinan pendekatan untuk solusi mereka, dan tidak hanya mengatakan bahwa itu terjadi secara historis, mari kita bahas secara tepat bagaimana hal itu terjadi. Jadi buku ini tidak bertentangan dengan karya-karya klasik, tetapi lebih melengkapi mereka dan menawarkan pandangan yang sedikit berbeda dari sisi embedded system dan RTOS.
Saya ingin membahas masalah yang dihadapi bukan oleh ahli teori yang mempelajari jalannya sistem operasi di universitas, tetapi oleh programmer. Oleh karena itu, pertanyaan seperti "mengapa switching konteks sinkron bukan ide yang baik secara umum?", "Apa yang secara kualitatif berubah di kernel ketika diperlukan untuk mendukung proses yang terisolasi?" dll.
Ada juga sudut pandang bahwa sistem operasi belum mengalami transformasi arsitektur dan ideologis mirip dengan yang dialami oleh kompiler karena pembagian menjadi frontend dan backend dalam bentuk LLVM. Pada awalnya, tidak ada efek yang terlihat dari pemisahan ini, programmer menggunakan kompiler dengan cara yang sama sebelum dan sesudah. Tetapi pemisahan inilah yang memungkinkan munculnya bahasa Rust dan lainnya, yang penciptanya dapat segera fokus pada semantik bahasa mereka, dan backend siap digunakan. Demikian juga, akan diinginkan untuk membagi OS menjadi beberapa bagian sehingga semua ini ditulis oleh orang yang berbeda sebagai proyek independen. FX-RTOS
digunakan untuk menggambarkan prinsip-prinsip yang dijelaskan.sebagai salah satu pendekatan yang mungkin untuk masalah ini juga. Tentu saja, agar dapat menggambarkan beberapa bagian dari kernel tanpa menyentuh bagian lain, itu harus ditulis sedemikian rupa untuk memungkinkannya. Meskipun di sini saya menempatkan kereta sedikit di depan kuda, karena pada awalnya OS itu sendiri muncul, dan kemudian menjadi jelas bahwa arsitekturnya sangat cocok untuk mempelajari subjek menggunakan contohnya, karena Anda dapat meningkatkan fungsionalitas dalam langkah-langkah yang sangat kecil dan masuk semua konsep secara bertahap.
Sumber yang disebutkan di atas dapat digunakan untuk menggambarkan konsep hingga dan termasuk bab 6, maka Anda sudah dapat dengan lancar beralih ke MINIX.
Agar semuanya tidak terlihat seperti lompatan, saya harus menambahkan dua bab pertama, yang dikhususkan untuk konsep umum dan perangkat keras. Pemrogram dapat melewati mereka tanpa mempengaruhi pemahaman sisanya.
Anda dapat mengunduh buku secara gratis tanpa registrasi dan SMS di sini .
Terima kasih atas perhatian Anda, ulasan kritis dipersilahkan, tetapi jika panjangnya lebih dari dua kalimat, maka lebih baik menulis dalam pesan pribadi, karena komentar cenderung tumbuh dan berubah menjadi pohon diskusi tentang masalah terkait, yang sulit dan tidak nyaman untuk digunakan.
PS Jika topiknya ternyata menarik, saya akan menulis tentang FX-RTOS itu sendiri nanti.