เป้าหมายหลักของ Mimiker คือการส่งมอบระบบปฏิบัติการที่มีลักษณะคล้าย UNIX น้อยที่สุดเช่นเคอร์เนลและชุดของโปรแกรม Userspace
การออกแบบเคอร์เนลได้รับแรงบันดาลใจอย่างมากจากระบบ FreeBSD & NETBSD พร้อมแนวคิดบางอย่างที่นำมาจาก Linux, Plan9 และ OSE อื่น ๆ เราใช้เวลาในการอ่านซอร์สโค้ดของระบบปฏิบัติการโอเพนซอร์ซ เราเลือกการตัดสินใจออกแบบความคิดอัลกอริทึมที่ดีที่สุดอย่างรอบคอบ APIs การปฏิบัติและอื่น ๆ กลั่นพวกเขาให้เปลือยเปล่าขั้นต่ำและปรับแต่งใหม่หรือปรับให้เข้ากับฐานรหัส Mimiker เราหวังว่าจะไม่ทำซ้ำความผิดพลาดของพวกเขาและย้ายออกไปจากมรดกและโซลูชั่นที่ไม่สมบูรณ์แบบ
Mimiker Project รวบรวมเหมือนคนที่มีใจซึ่งให้ความสำคัญกับความเรียบง่ายความเรียบง่ายและการอ่านรหัส เรามุ่งมั่นเพื่อความซับซ้อนที่ต่ำที่สุดที่เป็นไปได้ของการแก้ปัญหา เราชอบที่จะทิ้งรหัสที่ไม่มีประโยชน์อย่างมากหรือจัดการกับเคสขอบที่หายาก เรารู้คุณค่าของความสามารถในการหักบัญชีและเราไม่ลังเลที่จะใช้เวลาในการเขียนเครื่องมือที่ช่วยในการปรับปรุง
แม้ว่าโปรแกรม Userspace เป็นส่วนหนึ่งของโครงการ Mimiker แต่พวกเขาได้รับการพอร์ตจากโครงการ NetBSD หรือ Suckless เรามุ่งเน้นไปที่การพัฒนาเคอร์เนลเนื่องจากเราพบว่ามันน่าสนใจมากขึ้น เราไม่ต้องการลงทุนเวลามากเกินไปในไดรเวอร์อุปกรณ์ดังนั้นเราจึงเก็บรายการแพลตฟอร์มเป้าหมายไว้ขนาดเล็ก
หากคุณต้องการมีส่วนร่วมในโครงการโปรดอ่านวิกิของเราเพื่อหาข้อมูลเพิ่มเติม!
Mimiker เป็นระบบปฏิบัติการแบบเรียลไทม์ เคอร์เนลสามารถจับจ้องได้และการสืบทอดลำดับความสำคัญของ mutexes ของเรา เราลดงานที่ทำในบริบทขัดจังหวะโดยมอบหมายให้ขัดจังหวะเธรดแทนที่จะเรียกใช้โดยใช้การขัดจังหวะแบบอ่อน
Mimiker ทำงานบน MIPS (32 บิต), Aarch64 และ RISC-V (ทั้ง 32 บิตและ 64 บิต) สถาปัตยกรรมภายใต้ QEMU และ Renode Control
Mimiker มีชุดเครื่องมือแก้จุดบกพร่องที่ดี: สคริปต์ gdb ที่เขียนใน Python, Kernel ที่อยู่ฆ่าเชื้อ, ผู้ตรวจสอบความถูกต้องของการล็อค, เครื่องฆ่าเชื้อเคอร์เนลพร้อมกัน เรายังมีการสนับสนุนการทำโปรไฟล์เคอร์เนลโดยใช้ gprof ! เราใช้การส่งสัญญาณเพื่อรวบรวมฐานรหัสของเราดังนั้นเราสามารถใช้อัลกอริทึมการวิเคราะห์แบบไดนามิกและแบบคงที่ที่ซับซ้อนเพื่อช่วยความน่าเชื่อถือของรหัส
มีการจัดเตรียมชุดแรกของการซิงโครไนซ์ดั้งเดิมเช่นสปินล็อค, mutexes และตัวแปรเงื่อนไข - ทั้งหมดมีความหมายง่าย ๆ เราไม่ได้มีหลายสิ่งที่ทำสิ่งที่คล้ายกัน แต่แตกต่างกันเล็กน้อยซึ่งเป็นเรื่องธรรมดาสำหรับ Kernels FreeBSD หรือ Linux
หน่วยความจำเคอร์เนลของ Mimiker นั้นมีสาย (เช่นไม่เปลี่ยนง่าย) ดังนั้นคุณไม่ต้องกังวลเกี่ยวกับการเลือกล็อคที่ถูกต้องเมื่อเข้าถึงหน่วยความจำเคอร์เนลซึ่งแตกต่างจาก FreeBSD เรามีการจัดสรรหน่วยความจำบัดดี้สำหรับหน่วยความจำทางกายภาพ, การจัดสรรพื้นที่ที่อยู่เสมือนจริงและการจัดสรรแผ่นตามนิตยสารและกระดาษ VMEM การจัดสรรหน่วยความจำของเรานั้นเรียบง่าย แต่มีประสิทธิภาพ
โครงสร้างพื้นฐานไดรเวอร์ของ Mimiker บทคัดย่อแนวคิดของการลงทะเบียนฮาร์ดแวร์และการขัดจังหวะในลักษณะเดียวกันกับ Newbus ของ FreeBSD มีการดูแลเป็นพิเศษเพื่อให้ไดรเวอร์พกพา เรามีกิจวัตรประจำวันที่อุปกรณ์ตรวจจับอัตโนมัติติดอยู่กับรถบัส PCI และ USB เราใช้แผนผังอุปกรณ์แบนเพื่อขับเคลื่อนการกำหนดค่าเคอร์เนลในระหว่างขั้นตอนการเริ่มต้น
ระบบไฟล์เสมือนจริงและการจัดการที่อยู่เสมือนจริงของผู้ใช้นั้นขึ้นอยู่กับแนวคิด FreeBSD อย่างหลวม ๆ พวกเขาต้องการปริมาณงานที่ไม่สมบูรณ์เพื่อให้เป็นผู้ใหญ่เช่นเดียวกับในเคอร์เนล FreeBSD หรือ Linux
เรามี syscalls มากกว่าแปดสิบที่ช่วยให้เราใช้เครื่องมือโอเพนซอร์ซต่างๆรวมถึง Korn Shell ของ NetBSD, Atto Emacs Editor, Lua Interpreter และอีกมากมาย เรายังมีเกม:
Mimiker รองรับ:
เราต้องการสนับสนุน:
มีงานมากมายให้ทำ โปรดดูแผนงานของเรา!