一個64位全包操作系統,從引導加載程序到用戶空間。
Lensoros正在從Github遷移,轉而使用Foss Codeberg。
Codeberg上的Lensoros
免費,兼容的虛擬機:
如果您只是有興趣在Lensoros周圍戳戳,而不是編輯代碼,我建議您從“版本”頁面上發布預製版本。它將包括所有必要的資源和有關如何運行透鏡的說明。請記住,這將缺少許多功能,以確保整個系統之間的最大兼容性。通過從源構建,您可以為確切的系統構建並啟用所有可能的功能。
注意:除了QEMU之外,沒有任何自動化。但是,有有關如何在VirtualBox和VMware Workstation Player中設置虛擬機的說明。
當生成Cmake構建系統時,它會在您的系統上尋找QEMU;如果找到它,它將將以下目標添加到項目中。如果不是最新的,請調用他們從相應的Lensoros啟動媒體啟動QEMU。
目標:
run_qemu直接從模仿Lensoros.img的目錄runimg_qemu -lensoros.imgruniso_qemu -lensoros.isorunhda_qemu -lensoros.bin(最常見)對於當前不支持GPT分區的目標(即ISO,IMG和Directory from Directory),確實沒有可用的用戶空間。我的意思是,這是可能的,但是您必須修改內容以將用戶空間流程和庫放在啟動分區中,而不是在用戶空間數據分區中,然後修改內核以從那裡加載它們。
假設CMAKE構建系統是在bld/子目錄中生成的,則像以下方式調用:
cmake --build bld --target < name of target > New按鈕以創建新的虛擬機(VM)。Other/Unknown (64-bit)的Other類型和版本。Do not add a virtual hard disk選項。Create按鈕以創建新的虛擬機。Settings按鈕。System 。ICH9 。Enable EFI (special OSes only) 。Storage 。IDE ),然後選擇Remove Controller 。Storage Devices的區域,然後選擇AHCI (SATA) 。.iso或.bin啟動Optical Drive或Hard Disk選擇。Add 。Optical Drive或Hard Disk不同,請選擇LensorOS.iso或LensorOS.bin 。Network 。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-bit的版本。Customize Hardware...New CD/DVD ,然後在右側單擊Advanced... 。SATA ,然後單擊OK 。Use ISO image file ,然後單擊Browse...LensorOS.iso映像文件(位於bin/ )。Remove按鈕卸下硬盤驅動器。Close以關閉硬件配置窗口。Finish 。.vmx結尾的文件打開。firmware="efi" 。一旦VMware Workstation靴子進入Lensoros,您將不得不選擇UEFI Shell (即使它說了Unsupported話)。
Lensoros構建過程中有多個步驟,此處概述了。
注意:預計給出的所有外殼命令的塊將從存儲庫根的工作目錄開始。
如果您還沒有,則下載並安裝以下項目範圍的依賴項,或者您沒有最新的版本。
sudo apt install build-essential make接下來,從存儲庫中克隆源代碼。如果您想編輯代碼並做出貢獻,請務必先分叉並從該存儲庫中克隆。
git clone https://codeberg.org/LensPlaysGames/LensorOS.git這將創建一個標題為LensorOS子目錄,並在當前工作目錄中使用該存儲庫的內容。
注意:本節將要更改,此處的任何信息隨時都可能變得不正確或過時。這是由於將引導加載程序遷移到自我創建的半徑引導加載器中。
引導加載程序是EFI應用程序;特別是為UEFI規格編寫的OS加載程序。 (當前v2.9)。該規範概述了PE32+可執行文件與特定子系統的使用。如您所知,Windows還使用了PE32+格式為其可執行格式。這意味著給定子系統修改,生成Windows可執行文件的編譯器將為EFI應用程序生成適當的可執行文件格式。但是,二十年前,GNU決定編寫自定義重置鏈接腳本,該腳本從Elf oputables創建PE32+可執行文件。這意味著使用生成精靈可執行文件的編譯器,然後將可執行文件轉換為具有EFI應用程序的適當子系統的PE32+可執行文件。幸運的是,所有這些都是由構建系統處理的。
如果您已經擁有構建系統,則可以使用以下來更新引導程序(僅在UNIX上存在目標):
cmake --build bld --target bootloader啟動新鮮時,您可以手動運行Bootloader構建系統。
構建引導程序的依賴項:
cd gnu-efi
make要生成libgnuefi.a 。
從這裡,可以使用bootloader製造目標啟動程序可執行文件:
cd gnu-efi
make bootloader查看工具鏈讀數
一旦工具鏈可用,請繼續此處。
我建議您查看toolchain/config.cmake ,看看有什麼要擺弄,但是使用默認值也是如此。
首先,使用CMAKE生成構建系統。如果您選擇其他構建系統,請記住,並非全部構建系統都尊重我們使用自定義工具鏈的請求。我推薦忍者,因為它可以加快構建時間。加快加速時間的另一個技巧;安裝ccache 。該項目中的CMAKE腳本自動檢測並使用它。
cmake -G Ninja -B bld請注意,上述命令的輸出中存在關鍵消息,可能會詳細介紹由於系統上未找到程序而創建關鍵目標。
要構建libc,用戶空間程序以及最終的內核可執行文件,請調用CMAKE生成的構建系統:
cmake --build bld如果在系統上檢測到適當的依賴關係,CMAKE將創建某些目標。
要查看所有可用目標的列表,請使用以下命令:
cmake --build bld --target helpLens最常用的目標:
runhda_qemuimage_gptimage_vdiuserspacekernel這是與引導媒體生成有關的當前構建目標的列表,以及它們下面列出的依賴項。
image_raw結合了構建的可執行文件和資源,以生成兼容UEFI兼容的FAT32引導媒體。gnu-efi/x86_64/bootloader/main.efi的構建引導加載程序EFI應用程序。Kernel構建目標(依賴於boot/LensorOS/kernel.elf )。sudo apt install mtoolsimage_gpt從FAT32啟動媒體創建gpt分區,可引導的硬盤驅動器映像。image_rawscripts子目錄中的自動構建 +安裝腳本。image_iso創建FAT32啟動媒體的ISO-9660“ El-Torito”可引導CD-ROM圖像。image_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_qemuLensoros的工作始於2022年1月9日。
scripts/sysroot.sh )初始化。