我最近了解了Linux的启动过程.我不禁想知道为什么我们经历了在BIOS之后接受MBR的麻烦,以便那里的指令可以反过来将内核加载到RAM中.
为什么中间人 - 为什么BIOS不直接加载内核?
我正在开展一个小项目,并试图匹配我在网络上找到的一些颜色.模式13h是否有256色图表可用于此操作?我似乎无法在Google上找到一个.
颜色代码示例:
0fh ;white
0ah ;light green
Run Code Online (Sandbox Code Playgroud)
最后:
https://upload.wikimedia.org/wikipedia/commons/4/49/VGA_palette.svg
ROM或RAM中的中断向量表是?如果它在RAM中,它从哪里加载?此外,该表是否依赖于操作系统?例如,在MS-DOS中,"int 0x80"用于播放音乐和内容,但在Linux中它是一个系统调用.那么,在MS-DOS中,操作系统或ROM是否处理中断0x80?如果它在ROM中,Linux是否会覆盖表项?
网络上的一些程序似乎在不使用int指令的情况下也能完成相同的工作,例如直接写入bx800. 在这种情况下,BIOS 究竟如何知道是否应该将某些文本写入控制台?是否保证初始中断发生?如果是这样,ah那么完成相同工作的等效装配线(或中断向量 和 的组合)是什么时候?
任何人都可以推荐一本书或提供描述x86-16汇编语言软件中断的Web引用吗?
例如,
mov ah,1
int 21h
Run Code Online (Sandbox Code Playgroud)
读一个字符.
我正在开发一种用于教育目的的汇编语言的实验操作系统.是否可以从BIOS只读存储器读取并以任何方式存储它,是否有任何中断?它受到保护吗?
我正在寻找PC提供的BIOS中断列表。
为了获得最常见的BIOS调用,可以使用各种公共资源,但是我希望获得PC的所有BIOS调用列表(可能不是非常公开)。
是否有程序可以做到这一点,或者有什么方式可以编写一个(最好是用汇编或C语言编写)?
我的目标是避免BIOS拆卸。我也知道BIOS的底层API相对相似,因此API调用列表也相似。
我练习汇编已经有一段时间了,我在 YouTube 上看到了一个教你如何制作引导加载程序的视频。在观看视频时,我的脑海中出现了“int”是什么的问题。开始搜索,发现是interrupt的缩写。我想到了“什么是中断?”。我再次搜索并开始了解。但是,我很好奇中断是如何产生的,它们是如何产生的?...制造商会自己产生中断吗?或者是什么?
我一直想知道,作为一个对操作系统背后发生的事情几乎没有经验的开发人员,为什么固件如此混乱。我试图至少了解这些部分适合的位置。UEFI 是否试图取代所有这些以前与固件交互的标准,或者它合并了它们?