Berdasarkan arsitektur树莓派3 dan ARMv8-AArch64 , kernel sistem operasi mikro diimplementasikan.
Proyek ini diselenggarakan dalam bentuk overview + subprojects . overview menyimpan semua kode. Setiap subproject menggunakan kode -kode ini sesuai dengan kebutuhannya sendiri, termasuk memfilter file yang tidak perlu (tidak termasuk mereka dari kompilasi).
Proyek ini dikembangkan menggunakan bahasa C++ modern, dan arsitektur target utama adalah ARMv8 . Kompiler yang digunakan oleh proyek ini adalah g++ , sehingga kode akan berisi beberapa ekstensi sintaks g++ , seperti __attribute__ , __asm__ .
Selain itu, kompilasi
Proyek ini didasarkan pada eclipse ( version > = 4.6.3 ). Saat menyusun, Anda perlu menggunakan versi eclipse yang sesuai. Di Windows , Linux atau MacOS , pilih File -> Open Projects from File System -> Klik Directory , pilih Direktori tempat proyek berada, dan buka -> Finish
Proyek ini memiliki beberapa sub-proyek, terutama: host , qemu_virt , raspi3 dan user_space .
Tujuan (arsitektur) yang sesuai dari konfigurasi ini adalah: pengembangan berdasarkan sistem operasi host host (terutama digunakan untuk menguji manajemen memori dan fungsi independen arsitektur lainnya), pengembangan berdasarkan simulasi QEMU (digunakan untuk menguji memori virtual, interupsi, dll.), Pengembangan berdasarkan Raspberry PI 3 (digunakan untuk verifikasi komprehensif), dan program dalam ruang pengguna.
Semua sub-proyek terletak di bawah Subproyjects.
Proyek ini telah mengonfigurasi beberapa tujuan konstruksi khusus. Lihat Build Targets untuk proyek.
Dalam kernel, menghindari penggunaan variabel global sebenarnya dapat digunakan secara khusus untuk menginisialisasi semua variabel global yang perlu ditentukan. Variabel -variabel itu lebih mudah digunakan hanya karena mereka telah mengalokasikan ruang selama periode kompilasi. Jika Anda harus menggunakannya, tentukan sekali pada definisi dan mendefinisikannya kembali sekali dalam fungsi inisialisasi.
Jika konfigurasi proyek diubah, baris perintah baru harus dimulai kembali karena semua lingkungan gerhana akan diekspor.
Referensi Tinjauan Umum Kemajuan Proyek Progress_current.md
Referensi Catatan Proyek Recording_note.md
Struktur dan Konfigurasi Subproyjects, lihat Subprojects/ReadMe.MD
Dalam proses (mungkin mit-lisensi, tetapi mungkin ditutup lagi, sekarang setengah terbuka dan setengah tertutup).
Tidak, buatlah POSIX sebagai gantinya.
Ikuti beberapa aturan pengkodean yang mungkin kemudian dirujuk di sini
Baca dokumen yang mungkin kemudian diterbitkan
Menggunakan QEMU untuk men -debug beberapa program demostrasi
Cobalah untuk mengubah kode kernel, rerun.
Lalu, git add -a && git commit && git dorong!
Lihat di sini, lihat juga dokumen eksternal.
RSP3-ARMV8-Baremital, proyek aslinya.
Linux, Linux, secara resmi.
Qemu, emulator yang sangat membantu.
GVISOR, kernel ruang pengguna, oleh Google, di Go.
Mode Pengguna Linux (UML), seperti namanya.
x2, kernel kuno di bochs.
Tutorial RASPI3, oleh BZT, sangat berguna untuk pemula.
ARMV8 Hello World, Hello World Contoh untuk ARMV8, berdasarkan QEMU, berguna untuk pemula.