karena saya bisa.
Miliki waktu yang baik adalah dorongan saya untuk proyek ini + Saya belajar banyak hal -hal yang keren di samping itu!
Kernel Cavos adalah monolitik x86_64 yang ditulis dalam C yang relatif sederhana dengan beberapa bit perakitan intel di sana -sini. Ini menggunakan bootloader limine dan memanfaatkan sistem file FAT32 untuk booting bersama dengan Ext2 untuk partisi root. Saya mencoba menjaga agar struktur kode tetap bersih dan cukup mudah dimengerti, sambil menghindari terlalu banyak abstraksi. Oleh karena itu, kualitas kode dan kejelasan terkadang diprioritaskan daripada keuntungan kinerja.
Userspace adalah fokus utama saya pada saat itu, dengan kernel cukup stabil. Saya mencoba membuat OS ini sedekat mungkin dengan Linux, sambil menambahkan barang -barang saya sendiri di atasnya. Ini terlihat dengan panggilan sistem yang persis seperti Linux. Itu tidak acak, saya ingin Cavos kompatibel dengan biner dengan itu!
TIDAK! Kernel Cavos tidak berbagi kode sumber atau header dengan Linux. Kode sumber Linux ditarik selama perakitan ruang pengguna, tetapi hanya karena beberapa program pihak ketiga (porting) bergantung pada headernya. Bahkan kemudian, tidak ada kode aktual yang dibagikan.
Penting untuk menyebutkan tujuan -tujuan ini mungkin tidak akan pernah puas, membutuhkan waktu yang sangat lama untuk diselesaikan (kita berbicara bertahun -tahun di jalan) atau mungkin tidak pernah dilakukan sama sekali. Selain itu, daftar ini tidak akan termasuk setiap fitur yang diterapkan atau direncanakan dan dapat diubah kapan saja ...
systemcall Segala sesuatu tentang ini dapat ditemukan di Install.md. Pergi ke sana untuk info lebih lanjut tentang membangun OS dengan benar, membersihkan binari yang tidak digunakan dan barang -barang lainnya.
Sabtu 2 Maret tahun 2024. Melalui banyak solusi, keputusan "buruk" dan mentalitas "hanya-kerja" yang sombong, saya telah menyatukan kernel murni x86 (32-bit) yang tidak dapat mendorong aplikasi ruang pengguna. Masih memegang kode lama (dari belakang ketika saya hampir tidak memahami konsep -konsep sederhana, seperti mengatakan paging), perpustakaan yang sudah ketinggalan zaman dan banyak hal lainnya. Terkadang berhasil, tetapi saya tidak puas.
17:00; Sore itu saya memutuskan untuk memulai proses yang panjang untuk memigrasi segalanya ke arsitektur x86_64 dan menyelesaikan banyak masalah keandalan, yang membuat mimpi buruk yang sebenarnya untuk debug. Saya pada dasarnya mencapai titik tertentu untuk memahami bahwa solusi cepat & dity hanya menyebabkan kesalahan yang sepenuhnya dapat dihindari, yang sangat sulit ditentukan setelah jumlah abstraksi yang luar biasa ditambahkan.
Proyek ini dilisensikan berdasarkan GPL V3 (GNU General Public License v3.0). Untuk informasi lebih lanjut, buka file lisensi.