Assembly 在程序集中创建自定义Linux/bsd引导加载程序
所以我对Linux比较熟悉,已经使用了几年了,最近我一直在玩弄FreeBSD和Dragonfly BSD。我最近想基于Dragonfly BSD创建自己的发行版。我真的很喜欢他们对FreeBSD代码库所做的工作。但我一直想在汇编中从头开始创建一个引导加载程序。我不想创建任何大而复杂的东西,比如带有多引导的grub。我只需要一个系统引导程序。只是为了启动linux/Dragonfly BSD内核。但我不知道从哪里开始学习汇编,之后我将如何创建这样的引导加载程序。我不是在寻找代码,只是在正确的方向上寻找一个点来学习汇编和简单地引导单个Linux/Dragonfly BSD内核 启动x86并不简单。现在大多数系统都可以在EFI模式下启动,而不是传统的BIOS模式,因此内核加载程序可以是EFI应用程序(有关使用gummiboot/systemd boot.Source的文档,请参阅)。许多用户会喜欢这种方式,但旧硬件或配置为在传统BIOS模式下引导的新硬件将需要传统的引导扇区。您可以找到许多传统实模式引导扇区的示例,请注意,加载FreeBSD或Dragonfly BSD内核并不容易,因为内核需要在引导时加载内核模块才能正常工作。基本上,您必须实现Assembly 在程序集中创建自定义Linux/bsd引导加载程序,assembly,bootloader,dragonfly-bsd,Assembly,Bootloader,Dragonfly Bsd,所以我对Linux比较熟悉,已经使用了几年了,最近我一直在玩弄FreeBSD和Dragonfly BSD。我最近想基于Dragonfly BSD创建自己的发行版。我真的很喜欢他们对FreeBSD代码库所做的工作。但我一直想在汇编中从头开始创建一个引导加载程序。我不想创建任何大而复杂的东西,比如带有多引导的grub。我只需要一个系统引导程序。只是为了启动linux/Dragonfly BSD内核。但我不知道从哪里开始学习汇编,之后我将如何创建这样的引导加载程序。我不是在寻找代码,只是在正确的方向上
ld所做的大量工作。因此所做的工作并不容易。您还需要实现一个文件系统驱动程序,以便从磁盘读取内核。我不建议将此作为初学者项目。