一个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 )初始化。