Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/assembly/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Assembly 在程序集中创建自定义Linux/bsd引导加载程序_Assembly_Bootloader_Dragonfly Bsd - Fatal编程技术网

Assembly 在程序集中创建自定义Linux/bsd引导加载程序

Assembly 在程序集中创建自定义Linux/bsd引导加载程序,assembly,bootloader,dragonfly-bsd,Assembly,Bootloader,Dragonfly Bsd,所以我对Linux比较熟悉,已经使用了几年了,最近我一直在玩弄FreeBSD和Dragonfly BSD。我最近想基于Dragonfly BSD创建自己的发行版。我真的很喜欢他们对FreeBSD代码库所做的工作。但我一直想在汇编中从头开始创建一个引导加载程序。我不想创建任何大而复杂的东西,比如带有多引导的grub。我只需要一个系统引导程序。只是为了启动linux/Dragonfly 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内核并不容易,因为内核需要在引导时加载内核模块才能正常工作。基本上,您必须实现
ld所做的大量工作。因此
所做的工作并不容易。您还需要实现一个文件系统驱动程序,以便从磁盘读取内核。我不建议将此作为初学者项目。