问题标签 [bootloader]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
windows - NTLDR 技术信息
我试图尽可能多地弄清楚它是如何NTLDR
工作的。我最大的问题是:
1)使用什么样的可执行格式NTLDR
?
我也对以下内容感到好奇,但是一旦我知道文件格式,我敢打赌这两个将很容易弄清楚。
2)应该在内存中的哪里NTLDR
加载?
3) 入口点是NTLDR
什么?
windows - Windows XP 引导加载程序 (NTLDR) 是否注意内核导入声明?
我想知道 Windows XP 引导加载程序 ( ntldr
) 是否真的使用了 Windows 内核 ( ntoskrnl.exe
) 导入声明?
ntoskrnl.exe
具有以下导入模块BOOTVID.dll
:HAL.dll
和KDCOM.dll
. 所以这三个模块是最先被加载的。想象一下内核有另一个模块被声明为导入的。这会导致ntldr
也加载它吗?还是ntldr
只知道它应该加载这四个模块而没有办法改变它?
assembly - 实模式,中断向量替换
我正在尝试更多地了解系统是如何在上面所有漂亮的图形下真正工作的。因此,我目前正在使用 BIOS 在启动时加载的 512 字节内存,目前我猜还不能真正将其称为引导加载程序。无论如何,我正在替换一个中断向量,但有问题。更换中断 09h(键盘)后,它可以正常工作,按键时会输出“内存混乱”。但后来什么都没有。之后的每一次按键都无济于事。我不知道系统是否崩溃,或者我的处理程序是否遗漏了一些东西,下面是代码:
linux - 内核参数
内核是否需要从引导加载程序中获取任何内容。通常内核能够从头开始启动系统,那么为什么它需要引导加载程序中的任何内容呢?我见过这样的内核启动消息。
那么传递的变量到底是什么?另外,如何从引导加载程序传递变量?是通过堆栈吗?
assembly - 为什么引导加载程序在内存中重定位?
我正在编写一个引导加载程序,并且我已经记录了大部分细节,但我不确定为什么一些引导加载程序在开始执行大部分操作之前会将自己重新定位到内存中。
谁能解释一下?
这种行为的一个例子是原始的 v0.01 Linux 内核引导加载程序,其中包含以下注释:
boot.s 由 bios-startup 例程在 0x7c00 加载,并将自身移至地址 0x90000,然后跳转到那里。
documentation - 哪里可以找到 PC MBR Bootloader 的源代码?
最好是很好的评论和一些相关的文档和一个 Makefile。
为了清楚起见,这是由 Bios 加载并负责链接到引导分区中的辅助引导加载程序的小于 512 字节(512 字节 - 分区表)的机器代码。
编辑:大卫和 bdonlan 的答案看起来很有希望。最小的 Dos 链接指向 MBR 的 Debian 源程序包,但注释的 Windows 2000/XP MBR 看起来有更详细的注释。
c++ - 用 C 或 C++ 编写引导加载程序?
我正在为嵌入式系统编写程序,更具体地说是引导加载程序。我将使用 C 库与一些硬件组件进行交互,我可以选择用 C 或 C++ 编写它。有什么理由我应该选择其中一个吗?我不需要 C++ 的面向对象特性,但它确实具有更强大的类型系统。它是否有其他语言特性可以使程序更健壮?我知道有些人避免使用 C++,因为它可以(但并非总是)生成大型固件映像。
linux - Linux 引导加载程序
我正在尝试从 SD 卡在 GPS 设备上启动 Linux。
我在 Internet 上找到了有关该设备的一些信息,显然可以加载自定义的 Windows CE。
为此,他们使用扩展名为“.bld”的引导加载程序文件
我在 SD 卡上提取了 Ubuntu MID 的 ISO,但是没有带有 bld 扩展名的文件。我猜它使用不同的引导加载程序系统..这似乎不适用于设备。
所以我的问题是;
有没有办法使用“bld”文件来引导 Linux?如果是这样,我该如何创建文件?
对不起,如果问题是愚蠢或偏离轨道,我对引导加载程序了解不多..
如果您想知道,这是设备:
http://www.curtisint.com/web/browser.asp?productID=GPD359&catName=GLOBAL%20POSITIONING%20SYSTEM
更详细的规格(和模组网站):
http://gpd359.wikidot.com/article:outofbox
编辑:原来我只需要在 SD 卡上放置一个名为“YFGo2CE.bld”的文件(该文件只包含一个随机字符串)并重置设备。从那里我可以直接在 WindowsCE 中启动并加载建议的 Haret ROM 工具。
谢谢!
assembly - 扩展中断 13,读取未格式化的磁盘
自从我做任何 ASM 以来已经有一段时间了,并决定再次尝试编写一个小型引导加载程序,使用 qemu 进行测试。我的问题是中断 13,由于某种原因正在设置进位标志,因此读取失败。目前,我的磁盘映像如下所示:
512 字节 BootLoader <- 这(据我所知)是 LBA 中的块 0
主要功能<- 这将是块 1
基本上,随着 512 字节的 bios 加载到内存中,我想从同一个驱动器加载接下来的 512 字节。但是我不知道出了什么问题。希望我已经提供了足够的信息。
这是代码,问题在于第二个 0x13 中断,就在跳转到 0x7E00 之前:
operating-system - 如何将编译好的引导扇区放到 U 盘或磁盘上?
我实际上对操作系统的工作方式很感兴趣,从引导过程中的 POST 到内核、GUI 等。
好吧,我必须从头开始:引导扇区
大多数教程仅指定如何将您的 .bin 引导程序安装到 Linux 用户的 U 盘上。
但是当我使用 XP 时,我想问一下如何将我的 512 字节 .bin 放到我的 USB 上的正确位置,这绝对不是通过资源管理器复制它:D