Avros
ระบบปฏิบัติการ microkernel แบบฝังตัวของ UNIX สำหรับ ATMEL AVR CPUS
ทำงานบน ATMEGA1284P ด้วย 16K RAM
คุณสมบัติ:
- microkernel น้อยที่สุดพร้อมสิ่งอำนวยความสะดวกการส่งข้อความข้อความส่วนใหญ่ของบริการระบบปฏิบัติการ ("กระบวนการ" การจัดการระบบไฟล์ไดรเวอร์อุปกรณ์) จะถูกนำไปใช้โดยงานแยกต่างหาก (เซิร์ฟเวอร์) ที่สื่อสารกับลูกค้า (งานผู้ใช้)
- เอนทิตีระบบปฏิบัติการที่ใช้งานอยู่ในปัจจุบันเป็นเหมือน Unix ด้วยการโทรระบบที่คุ้นเคยเอนทิตี OS ส่วนใหญ่จะถูกกำหนดโดยงานบริการระบบปฏิบัติการ (เซิร์ฟเวอร์)
- เอนทิตีระบบปฏิบัติการหลายตัวสามารถอยู่ร่วมกันใน CPU เดียวกันโดยใช้ microkernel เดียวกัน
- สหกรณ์และ/หรือตัวจับเวลาขัดจังหวะการใช้มัลติทาสก์ล่วงหน้า
- ระบบไฟล์เสมือนจริงที่มี UNIX -PIPES - (ชื่อไฟล์และโฟลเดอร์ยังไม่ได้ใช้งาน - คุณต้องอ้างถึงแต่ละไฟล์ด้วยอุปกรณ์/หมายเลขอุปกรณ์ที่เกี่ยวข้องเช่นไวยากรณ์เช่น '2/1')
- ไดรเวอร์อุปกรณ์กำลังทำงานเป็นงานแยกต่างหาก (เธรด) รวมถึงอุปกรณ์ท่อ
- อินเทอร์เฟซไดรเวอร์อุปกรณ์แบบครบวงจร
- การเข้าถึงเชลล์ผ่าน USARTS หลายเซสชันสามารถวางไข่เมื่อเริ่มต้น
ที่เก็บ
Main.c: งานแรกและฟังก์ชั่นหลัก - ระบบปฏิบัติการดำเนินงานนี้ก่อน มันสร้างเซิร์ฟเวอร์ตามลำดับ (TS, VFS, ES, PM, ดูความหมายด้านล่าง) ตั้งค่าอุปกรณ์ลงทะเบียนปฏิบัติการแล้วในที่สุดก็วางไข่ 'init' ซึ่งเป็นงานรูทสำหรับทุกงานของผู้ใช้
เคอร์เนล: Microkernel และ HAL (Hardware Abstraction Layer)
- ฟังก์ชั่นพื้นฐาน: การสร้างงานและการกำหนดเวลา (ลำดับความสำคัญรอบโรบิน), การส่งข้อความ, การจัดการขัดจังหวะ, การจัดสรรหน่วยความจำ (เซิร์ฟเวอร์ตัวจัดการหน่วยความจำอยู่ระหว่างการพัฒนาดู MISC/)
- idletask - ทำงานเมื่อไม่มีอะไรให้ทำงาน - หยุด CPU จนกว่าจะขัดจังหวะครั้งต่อไปเพื่อประหยัดพลังงาน
USR
เซิร์ฟเวอร์:
- PM: Process Manager -
ประมวลผลลำดับชั้น, กระบวนการซอมบี้, exit (), wait (), exec (), Spawntask () - VFS: เซิร์ฟเวอร์ไฟล์เสมือน - ตัวอธิบายไฟล์, ตาราง FILP, inodes, open (), close (), อ่าน (), เขียน (), dup (), pipe (), mkdev (), mknod (), fstat (), ฯลฯ ...
- SEMA: Simple Semaphore Server (ไม่ได้ใช้ในปัจจุบัน) - P (), V ()
- TS: Time Server - ตัวจัดการขัดจังหวะตัวจับเวลา, sleep (), เวลาทำงาน, เรียลไทม์
- Ex: Executables Server - ลงทะเบียนแอปพลิเคชัน Runnable และมอบให้กับ PM เมื่องานเรียกใช้งาน exec () (AVR เป็น CPU สถาปัตยกรรมฮาร์วาร์ดระบบปฏิบัติการไม่สามารถโหลดไบนารีได้
ไดรเวอร์:
- TTY_USART0: ไดรเวอร์ TTY ที่ขับเคลื่อนด้วยการขัดจังหวะสำหรับอุปกรณ์ USART 0
- MEMFILE: อุปกรณ์ไดรฟ์หน่วยความจำพร้อมการจัดการ inode
- PIPEDEV: อุปกรณ์ท่อ (มัลติอ่านหลายเขียน)
เอกสาร: เอกสาร (ดูด้วย DIA: https://wiki.gnome.org/apps/dia/)
lib: src/queue.c: รายการที่เชื่อมโยงเป็นสองเท่า