Tujuan utama Mimiker adalah untuk memberikan sistem operasi minimal seperti Unix, yaitu kernel dan satu set program ruang pengguna.
Desain kernel sangat terinspirasi oleh sistem FreeBSD & NetBSD dengan beberapa ide yang diambil dari Linux, Plan9 dan OS lainnya. Kami menghabiskan banyak waktu membaca kode sumber sistem operasi open-source. Kami dengan hati -hati memilih keputusan desain, ide, algoritma, API, praktik, dan sebagainya, menyaringnya untuk minimum dan menerapkannya kembali atau beradaptasi dengan basis kode Mimiker. Kami berharap tidak mengulangi kesalahan mereka dan menjauh dari solusi warisan dan tidak sempurna.
Proyek Mimiker mengumpulkan orang -orang yang berpikiran seperti yang menghargai minimalis, kesederhanaan, dan keterbacaan kode. Kami berjuang untuk kompleksitas solusi serendah mungkin. Kami senang membuang kode yang tidak terlalu berguna atau menangani casing tepi yang langka. Kami tahu nilai debuggability dan kami tidak ragu untuk menghabiskan waktu menulis alat yang membantu memperbaikinya.
Meskipun program Userspace adalah bagian dari proyek Mimiker, mereka hanya porting dari NetBSD atau Proyek Susak. Kami fokus pada pengembangan kernel, karena kami merasa lebih menarik. Kami tidak ingin menginvestasikan terlalu banyak waktu ke driver perangkat, jadi kami menyimpan daftar platform target kecil.
Jika Anda ingin terlibat dalam proyek, silakan baca wiki kami untuk mencari tahu lebih lanjut!
Mimiker adalah sistem operasi real-time. Kernel preemptible dan mutex kami mendukung prioritas warisan. Kami meminimalkan pekerjaan yang dilakukan dalam konteks interupsi dengan mendelegasikannya untuk mengganggu utas alih -alih menjalankannya menggunakan interupsi lunak.
Mimiker menjalankan MIPS (32-bit), AARCH64 dan RISC-V (baik arsitektur 32-bit dan 64-bit) di bawah qemu dan kontrol renode.
Mimiker memiliki set alat debugging yang bagus: skrip gdb yang ditulis dalam Python, pembersih alamat kernel, validator ketergantungan kunci, pembersih konkurensi kernel. Kami bahkan mendapat dukungan untuk profil kernel menggunakan gprof ! Kami menggunakan dentang untuk mengkompilasi basis kode kami, oleh karena itu kami dapat menggunakan algoritma analisis dinamis dan statis yang canggih untuk membantu relablitas kode.
Satu set umum primitif sinkronisasi disediakan, yaitu spin -lock, mutex dan variabel bersyarat - semuanya dengan semantik sederhana. Kami tidak memiliki banyak primitif yang melakukan hal serupa, tetapi sedikit berbeda, yang umum untuk freebsd atau kernel linux.
Memori kernel Mimiker terhubung (yaitu non-swappable), jadi Anda tidak perlu khawatir memilih kunci yang tepat saat mengakses memori kernel, tidak seperti di Freebsd. Kami memiliki alokator memori Buddy untuk memori fisik, pengalokasi ruang alamat virtual, dan alokasi slab berdasarkan majalah dan kertas VMEM. Alokasi memori kami sederhana namun efisien.
Infrastruktur Driver Mimiker Abstrak Away Konsep register perangkat keras dan mengganggu dengan cara yang mirip dengan Newbus Freebsd. Perawatan khusus diambil untuk membuat pengemudi portabel. Kami memiliki rutinitas enumerator yang dilampirkan perangkat autodetect ke bus PCI dan USB. Kami menggunakan pohon datar untuk mendorong konfigurasi kernel selama fase startup.
Sistem file virtual dan manajemen ruang alamat virtual pengguna secara longgar didasarkan pada ide -ide freeBSD. Mereka membutuhkan jumlah pekerjaan substatial untuk menjadi matang seperti pada kernel FreebsD atau Linux.
Kami memiliki lebih dari delapan puluh syscall yang memungkinkan kami menjalankan berbagai alat open-source, termasuk Korn Shell Netbsd, editor Atto Emacs, Lua Interpreter, dan banyak lagi. Kami bahkan memiliki permainan:
Mimiker mendukung:
Kami ingin mendukung:
Ada banyak pekerjaan yang harus dilakukan. Silakan merujuk ke peta jalan kami!