ระบบปฏิบัติการแบบรวมแบบรวม 64 บิตตั้งแต่ bootloader ไปจนถึง Userspace
Lensoros กำลังย้ายออกจาก GitHub เพื่อสนับสนุน Foss Codeberg
Lensoros บน Codeberg
ฟรีเครื่องเสมือนที่เข้ากันได้:
หากคุณสนใจที่จะโผล่ไปรอบ ๆ Lensoros และไม่ได้แก้ไขรหัสฉันขอแนะนำให้เปิดตัวที่สร้างไว้ล่วงหน้าจากหน้ารีลีส มันจะรวมถึงทรัพยากรที่จำเป็นทั้งหมดและคำแนะนำเกี่ยวกับวิธีเรียกใช้ lensoros โปรดทราบว่าสิ่งนี้จะขาดคุณสมบัติมากมายเพื่อให้แน่ใจว่าเข้ากันได้สูงสุดในระบบ ด้วยการสร้างจากแหล่งที่มาคุณสามารถสร้างระบบที่แน่นอนของคุณและเปิดใช้งานคุณสมบัติที่เป็นไปได้ทุกอย่าง
หมายเหตุ: ไม่มีระบบอัตโนมัติใด ๆ ยกเว้น QEMU ในตอนนี้ อย่างไรก็ตามมีคำแนะนำเกี่ยวกับวิธีการตั้งค่าเครื่องเสมือนใน VirtualBox และ VMware Workstation Player
เมื่อระบบสร้าง CMake ถูกสร้างขึ้นมันจะมองหา QEMU ในระบบของคุณ หากพบมันจะเพิ่มเป้าหมายต่อไปนี้ในโครงการ เรียกใช้พวกเขาให้เปิดตัว QEMU จากสื่อบูต Lensoros ที่เกี่ยวข้องหลังจากสร้างมันหากยังไม่ทันสมัย
เป้าหมาย:
run_qemu - ตรงจากไดเรกทอรีที่เลียนแบบ lensoros.imgrunimg_qemu - lensoros.imgruniso_qemu - lensoros.isorunhda_qemu - lensoros.bin (พบมากที่สุด)สำหรับเป้าหมายที่ไม่สนับสนุนพาร์ติชัน GPT (เช่น ISO, IMG และตรงจากไดเรกทอรี) ไม่มีผู้ใช้พื้นที่ใช้งานจริง ฉันหมายความว่าเป็นไปได้ แต่คุณจะต้องแก้ไขสิ่งต่าง ๆ เพื่อวางกระบวนการและไลบรารีของผู้ใช้พื้นที่ในพาร์ติชันบูตแทนในพาร์ติชันข้อมูลผู้ใช้พื้นที่และจากนั้นก็ปรับเปลี่ยนเคอร์เนลเพื่อโหลดจากที่นั่น
สมมติว่าระบบสร้าง CMake ถูกสร้างขึ้นใน bld/ Subdirectory, เรียกใช้เช่น:
cmake --build bld --target < name of target > New เพื่อสร้างเครื่องเสมือนใหม่ (VM)Other และรุ่น Other/Unknown (64-bit)Do not add a virtual hard diskCreate เพื่อสร้างเครื่องเสมือนใหม่SettingsSystem ภายในรายการทางด้านซ้ายICH9Enable EFI (special OSes only)Storage ภายในรายการทางด้านซ้ายIDE ) และเลือก Remove ControllerStorage Devices ที่มีป้ายกำกับและเลือก AHCI (SATA)Optical Drive หรือ Hard Disk ขึ้นอยู่กับว่าคุณต้องการบูตจาก .iso หรือ .bin ตามลำดับAdd ในหน้าต่างตัวเลือกสื่อเสมือนใหม่ที่ปรากฏขึ้นOptical Drive หรือ Hard Disk เลือกเลือก LensorOS.iso หรือ LensorOS.binNetwork ภายในรายการทางด้านซ้ายSerial Ports ภายในรายการทางด้านซ้ายEnable Serial Port ถูกเลือก COM1 , IRQ คือ 4 และ I/O Port คือ 0x3F8 Home ในรายการทางด้านซ้าย คลิก Create a New Virtual Machine ทางด้านขวาI will install the operating system later. ตัวเลือก.Other และรุ่น Other 64-bitCustomize Hardware...New CD/DVD ทางด้านซ้ายจากนั้นคลิก Advanced... ทางด้านขวาSATA จากนั้นคลิก OKUse ISO image file จากนั้นคลิก Browse...LensorOS.iso (อยู่ใน bin/ )Remove ใกล้กับกึ่งกลางด้านล่างClose ที่ด้านล่างขวาเพื่อปิดหน้าต่างการกำหนดค่าฮาร์ดแวร์Finish.vmx ในตัวแก้ไขข้อความfirmware="efi" คุณจะต้องเลือก UEFI Shell เมื่อบูทเวิร์กสเตชัน VMware ลงใน Lensoros (แม้ว่ามันจะพูดอะไรบางอย่าง Unsupported )
มีหลายขั้นตอนในกระบวนการสร้าง Lensoros ที่ระบุไว้ที่นี่
หมายเหตุ: บล็อกคำสั่งเชลล์ที่กำหนดทั้งหมดคาดว่าจะเริ่มต้นด้วยไดเรกทอรีการทำงานที่รูทของที่เก็บ
ดาวน์โหลดและติดตั้งการพึ่งพาทั่วทั้งโครงการต่อไปนี้หากคุณยังไม่มีหรือหากเวอร์ชันที่คุณไม่ได้ทันสมัย
sudo apt install build-essential makeถัดไปโคลนซอร์สโค้ดจากที่เก็บ หากคุณต้องการแก้ไขรหัสและบริจาคให้แน่ใจว่าได้แยกก่อนและโคลนจากที่เก็บนั้น
git clone https://codeberg.org/LensPlaysGames/LensorOS.git สิ่งนี้จะสร้างไดเรกทอรีย่อยชื่อ LensorOS ที่มีเนื้อหาของที่เก็บนี้ในไดเรกทอรีการทำงานปัจจุบัน
หมายเหตุ: ส่วนนี้ กำลังจะเปลี่ยนแปลง และข้อมูลใด ๆ ที่นี่อาจไม่ถูกต้องหรือล้าสมัยได้ตลอดเวลา นี่เป็นเพราะอยู่ตรงกลางของการโยกย้าย bootloaders ไปยัง radii bootloader ที่สร้างขึ้นเอง
bootloader เป็นแอปพลิเคชัน EFI โดยเฉพาะตัวโหลดระบบปฏิบัติการที่เขียนขึ้นสำหรับข้อมูลจำเพาะ UEFI (ปัจจุบัน v2.9) ข้อมูลจำเพาะดังกล่าวสรุปการใช้งาน PE32+ Executables กับระบบย่อยเฉพาะ อย่างที่คุณอาจทราบว่ารูปแบบ PE32+ จะถูกใช้โดย Windows เป็นรูปแบบที่ใช้งานได้ ซึ่งหมายความว่าคอมไพเลอร์ที่สร้างปฏิบัติการ Windows Executables จะสร้างรูปแบบที่เหมาะสมของการปฏิบัติการสำหรับแอปพลิเคชัน EFI เนื่องจากการปรับเปลี่ยนระบบย่อย อย่างไรก็ตามยี่สิบปีที่ผ่านมา GNU ตัดสินใจเขียนสคริปต์ Linker Relocation ที่กำหนดเองที่สร้าง PE32+ Executables จาก Elf Executables ซึ่งหมายความว่าคอมไพเลอร์ที่สร้าง ELF Executables ถูกใช้งานจากนั้นจึงสามารถแปลงเป็น PE32+ ที่เรียกใช้งานได้ด้วยระบบย่อยที่เหมาะสมสำหรับแอปพลิเคชัน EFI โชคดีที่ทั้งหมดนี้ได้รับการจัดการโดยระบบการสร้าง
หากคุณมีระบบบิลด์อยู่แล้วคุณสามารถใช้สิ่งต่อไปนี้เพื่ออัปเดต bootloader (เป้าหมายมีอยู่ใน UNIX เท่านั้น ):
cmake --build bld --target bootloaderเมื่อเริ่มต้นใหม่คุณสามารถเรียกใช้ระบบ bootloader build ด้วยตนเอง
สร้างการพึ่งพาสำหรับ bootloader:
cd gnu-efi
make ที่เคยต้องทำเพียงครั้งเดียวเพื่อสร้าง libgnuefi.a
จากที่นี่สามารถสร้าง Bootloader ได้โดยใช้เป้าหมาย bootloader Make Target:
cd gnu-efi
make bootloaderดู readme toolchain
เมื่อเครื่องมือใช้งานสามารถใช้งานได้ให้ดำเนินการต่อที่นี่
ฉันขอแนะนำให้ดูที่ toolchain/config.cmake และดูว่ามีอะไรที่จะเล่นซอ แต่การไปกับค่าเริ่มต้นก็เช่นกัน
ขั้นแรกให้สร้างระบบบิลด์โดยใช้ CMAKE หากคุณเลือกระบบบิลด์ที่แตกต่างกันโปรดจำไว้ว่าระบบการสร้างทั้งหมดให้เกียรติคำขอของเราในการใช้เครื่องมือที่กำหนดเอง ฉันแนะนำนินจาเพราะสามารถเร่งเวลาในการสร้าง เคล็ดลับอีกประการหนึ่งในการเร่งเวลาการสร้าง; ติดตั้ง ccache สคริปต์ CMake ในโครงการนี้ตรวจจับและใช้งานโดยอัตโนมัติ
cmake -G Ninja -B bldโปรดทราบ ว่ามีข้อความสำคัญในผลลัพธ์ของคำสั่งข้างต้นซึ่งอาจมีรายละเอียดเป้าหมายที่สำคัญไม่ได้ถูกสร้างขึ้นเนื่องจากโปรแกรมที่ไม่พบในระบบ
ในการสร้าง LIBC โปรแกรม UsersPACE และในที่สุดก็สามารถเรียกใช้งานเคอร์เนลได้เรียกใช้ระบบบิลด์ที่สร้างโดย CMAKE:
cmake --build bldCMake จะสร้างเป้าหมายบางอย่างหากตรวจพบการพึ่งพาที่เหมาะสมในระบบ
หากต้องการดูรายการเป้าหมายที่มีอยู่ทั้งหมดให้ใช้คำสั่งต่อไปนี้:
cmake --build bld --target helpเป้าหมายที่ใช้มากที่สุดของเลนส์:
runhda_qemuimage_gptimage_vdiuserspacekernelนี่คือรายการของเป้าหมายการสร้างปัจจุบันที่เกี่ยวข้องกับการสร้างสื่อบูตรวมถึงการอ้างอิงที่ระบุไว้ใต้แต่ละรายการ
image_raw รวม Executables และทรัพยากรที่สร้างขึ้นเพื่อสร้างสื่อบูต FAT32 ที่เข้ากันได้กับ UEFIgnu-efi/x86_64/bootloader/main.efiKernel เป้าหมาย (อาศัย boot/LensorOS/kernel.elf )sudo apt install mtoolsimage_gpt สร้างฮาร์ดไดรฟ์ที่มีส่วนร่วมและสามารถบูตได้จาก FAT32 Boot Mediaimage_rawscriptsimage_iso สร้าง ISO-9660 "El-Torito" ภาพ CD-ROM ที่สามารถบูตได้จาก FAT32 Boot Mediaimage_rawsudo apt install xorrisoimage_vdi แปลงภาพดิสก์ดิสก์ดิสก์แบบแยกส่วน GPT เป็นรูปแบบภาพดิสก์เสมือน ( .vdi )image_gptตัวอย่างเช่นภาพบู๊ตที่เข้ากันได้กับ FAT32 ที่จัดรูปแบบ UEFI อาจถูกสร้างขึ้นโดยใช้คำสั่งต่อไปนี้:
cmake --build bld --target image_rawใช้เวลาเพียงหนึ่งคำสั่งในการสร้างเคอร์เนล Lensoros สร้างสื่อบูตใหม่จากนั้นเปิดเครื่องเสมือน QEMU ลงใน Lensoros
cmake --build bld --target runhda_qemuการทำงานกับ Lensoros เริ่มเมื่อวันที่ 9 มกราคม 2565
scripts/sysroot.sh )