เกี่ยวกับ
Laylaos เป็นระบบปฏิบัติการอดิเรกที่มีเคอร์เนลที่เขียนใน C. โครงการเริ่มต้นในช่วงปี 2558 และใช้เวลาเกือบ 9 ปีในการไปถึงจุดที่มั่นคงซึ่งฉันรู้สึกว่ามันสามารถแบ่งปันกับโลกได้ มันมีความหมายว่าเป็นเครื่องมือการเรียนรู้เพื่อให้เข้าใจการทำงานภายในของเคอร์เนลของระบบปฏิบัติการได้ดีขึ้นวิธีการที่ระบบเรียกใช้งานและวิธีการใช้งานอินเทอร์เฟซผู้ใช้กราฟิก (GUI)
มันไม่ ได้ เป็นระบบที่มีความหมายสำหรับการใช้งานในชีวิตประจำวัน (อย่างน้อยก็อย่างน้อย)
ภาพหน้าจอ
ภาพหน้าจอเพิ่มเติม
คุณสมบัติ
คุณสมบัติของโครงการรวมถึง:
- 64 บิต monolithic multitasking เคอร์เนล pre-emptive ที่เขียนใน C (รหัส 32 บิตรวมอยู่ที่นี่ แต่ไม่ทำงานอย่างสมบูรณ์)
- เครือข่ายสแต็ค (ขึ้นอยู่กับ PICOTCP)
- การสนับสนุน ATA/ATAPI และ AHCI
- การสนับสนุนเสียง Intel HDA ขั้นพื้นฐาน
- แป้นพิมพ์และเมาส์ PS2
- คอนโซลเสมือนจริง
- วัตถุที่ใช้ร่วมกันเสมือนจริง (VDSO)
- สิ่งอำนวยความสะดวกการสื่อสารระหว่างกัน (IPC) ในรูปแบบของหน่วยความจำที่ใช้ร่วมกันเซมาฟอร์และคิวข้อความ
- แคชหน้าสำหรับความต้องการโหลดหน้าเว็บ
- การสนับสนุน ACPI ผ่าน ACPICA
- C ห้องสมุด (ปัจจุบันใช้ MUSL)
- พอร์ตของซอฟต์แวร์บุคคลที่สาม (GNU CoreUtiles, Inetutils, Bash, Libraries ภาพและวิดีโอ/วิดีโอหลายรายการ ฯลฯ )
- เดสก์ท็อปกราฟิกที่มีแอพพลิเคชั่น (ส่วนใหญ่สาธิตส่วนใหญ่)
- SDL2
- QT5.12
- openttd
- ส้อมของ SDL2 DOOM
รายการสิ่งที่ต้องทำ
นี่คือการติดตามว่าเราอยู่ที่ไหนและสิ่งที่ต้องทำต่อไป:
- syscalls เพิ่มเติมรวมถึง posix message queues syscalls
- ฟังก์ชั่น GUI เพิ่มเติม (ตัวแก้ไขข้อความ, สิ่งอำนวยความสะดวกภาพหน้าจอ, โปรแกรมสี, ธีมเดสก์ท็อป, Archiver, เว็บเบราว์เซอร์ ฯลฯ )
- VFAT, ext3, ext4, การสนับสนุนระบบไฟล์ NFS (อาจจะ NTFs ในบางจุด)
- การบันทึกเคอร์เนลและอาจเป็นเซิร์ฟเวอร์ syslogd
- การสนับสนุนการแลกเปลี่ยน
- การสนับสนุน USB
- Symmetric Multiprocessing (SMP)
แพ็คเกจ prebuilt
คุณสามารถดาวน์โหลดอิมเมจดิสก์ที่สามารถบู๊ตได้ล่วงหน้าซึ่งมีทุกอย่าง (รวมถึงซอฟต์แวร์พอร์ต) จากหน้ารีลีส อย่างไรก็ตามจงระวังว่าภาพดิสก์คลายซิปนั้นมีแนวโน้มที่จะมีขนาดใหญ่ (ขนาดกิ๊บปี 3+) คุณสามารถใช้ภาพนี้เพื่อเรียกใช้ laylaos ภายใต้ bochs หรือ qemu
หากคุณต้องการลอง Laylaos ภายใต้ Oracle VM VirtualBox คุณจะต้องแปลงอิมเมจดิสก์ที่สามารถบู๊ตได้เป็นภาพ VDI สามารถทำได้โดยการรัน: VBoxManage convertfromraw bootable_disk.img bootable_disk.vdi
จากนั้นคุณสามารถสร้างเครื่องเสมือนใหม่ภายใต้ VirtualBox โดยใช้อิมเมจดิสก์ คุณอาจประสบปัญหาเนื่องจากภาพมีสองไฟล์ ( /boot/grub/grub.cfg และ /etc/fstab ) ด้วยชื่ออุปกรณ์บูต hardcoded (บางอย่างเช่น /dev/hda4 ) เพื่อให้สามารถใช้ดิสก์นี้เป็นดิสก์ SATA (หรือ AHCI) ภายใต้ VirtualBox ที่คุณต้องการ:
- แก้ไขไฟล์สองไฟล์นี้ในภาพดิสก์ที่คุณดาวน์โหลดและเปลี่ยนชื่ออุปกรณ์เป็น
/dev/sda4 (สมมติว่าคุณเชื่อมต่อดิสก์ที่พอร์ต SATA 0; ภาพมี 4 พาร์ติชัน) - สร้าง laylaos จากแหล่งที่มาและสร้างภาพดิสก์ที่สามารถบู๊ตได้โดยใช้:
./create_bootable_disk.sh rootdev sda4
ดูด้านล่างหากคุณตัดสินใจที่จะสร้าง laylaos จากแหล่งที่มา
วิธีการสร้าง
เพื่อสร้าง laylaos จากแหล่งที่มา:
- ดาวน์โหลดที่เก็บนี้และคลายซิปไฟล์ zip
- เปลี่ยนไดเรกทอรีเป็นไดเรกทอรีต้นฉบับที่คลายซิปเช่น
cd ~/downloads/laylaos-master - เปลี่ยนไดเรกทอรีเป็นไดเรกทอรี
build-scripts cd build-scripts - ในการเรียกใช้การสร้าง (สิ่งนี้ จะต้องทำจากไดเรกทอรี
build-scripts ): ./buildos.sh - ไปคว้ากาแฟหรือดีกว่ายังทานอาหารกลางวัน ใช้เวลาน้อย กว่า 3 ชั่วโมง ในการสร้างโครงการทั้งหมด!
- โอ้และคุณต้องมี การเชื่อมต่ออินเทอร์เน็ต เพื่อดาวน์โหลดแหล่งที่มาของซอฟต์แวร์พอร์ต!
- เมื่อสร้างเสร็จแล้วให้สร้างอิมเมจ harddisk ที่สามารถบู๊ตได้โดยเรียกใช้:
./create_bootable_disk.sh - อิมเมจดิสก์ที่สามารถบูตได้ชื่อ
bootable_disk.img และถูกสร้างขึ้นโดยค่าเริ่มต้นในไดเรกทอรีการทำงานปัจจุบัน (คุณสามารถเรียกใช้ ./create_bootable_disk.sh help ดูรายการตัวเลือก) - ไฟล์
bochsrc ถูกสร้างขึ้นโดยอัตโนมัติควบคู่ไปกับ bootable_disk.img (คุณอาจต้องการแก้ไขชื่อของอุปกรณ์ไร้สายที่คุณใช้ในไฟล์) ตอนนี้คุณสามารถเรียกใช้ bochs: bochs -q - สคริปต์อื่นที่เรียกว่า
qemu.sh ถูกสร้างขึ้นเพื่อให้คุณทดสอบระบบปฏิบัติการภายใต้ QEMU อย่างไรก็ตามคุณต้องใช้อุปกรณ์เครือข่าย Tun/Tap เพื่อเรียกใช้ Laylaos ภายใต้ QEMU โดยใช้สคริปต์ที่ให้ไว้ คุณต้องเรียกใช้ sudo ./netprep.sh qemu.sh อื่น
ใบอนุญาต
- Laylaos เปิดตัวภายใต้ GPL V3
- PICOTCP (ซึ่งสร้างสแต็กเครือข่ายของเรา) ถูกปล่อยออกมาภายใต้ GPL V2 หรือ V3
- ACPICA ได้รับการปล่อยตัวภายใต้ใบอนุญาต Intel คู่และ UNIX ที่เข้ากันได้
- ไฟล์ Timidity (จำเป็นสำหรับเสียงใน Doom) อยู่ในโดเมนสาธารณะ (ดูไฟล์
copyright.txt ) - แบบอักษร Monospace ที่ใช้ในคอนโซลระบบและเทอร์มินัล GUI คือ Dina Font ซึ่งเปิดตัวภายใต้ใบอนุญาตฟรี
- libaelf32.a และ libaelf64.a เป็นส่วนหนึ่งของ Asmlib ซึ่งเป็นไลบรารีการเพิ่มประสิทธิภาพของซอฟต์แวร์โดย Agner Fog ซึ่งเปิดตัวภายใต้ GPL
- ซอฟต์แวร์พอร์ตอื่น ๆ ทั้งหมดมาพร้อมกับใบอนุญาตของตน