- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我没有疯,只是重新发明轮子:D
我编写了引导加载程序、鼠标和键盘迷你驱动程序、迷你操作系统等。
我总是试图避免 DOS 中断,只使用 BIOS 中断,试图发展统一的迷你操作系统,但突然我决定编写自己的 BIOS :)
传说说:
我是一名高级程序员,然后是低级程序员。有一天我将成为一名机器语言程序员!
BIOS 是用汇编语言编写的吗?怎么才能闪现呢?机制是什么?我可以开始编辑当前的 BIOS 吗?
最佳答案
BIOS 可以用汇编语言编写,但不是必须如此,某些部分需要获取系统调用的参数,因为它们与编译器调用约定不匹配。
如何闪光?因主板而异,我会从开源虚拟机开始,并为其编写 BIOS。或者创建一个已编写 BIOS 的虚拟机。该机制因供应商而异,通常启动 dos(dos 并没有消亡,它在 PC 世界、尤其是主板开发和嵌入式系统中非常活跃)。我不会乱搞真正的主板,如果你还不知道所有这些问题的答案,如果你采取这条路,你就会弄坏许多主板。
您可以尝试对主板进行 BIOS 升级并对其进行逆向工程(尽管可能有一个点击协议(protocol)表明您不会这么做)。如果你弄清楚了,你就可以加载它并破解它。我不会去那里,在你弄清楚之前,你的系统就会变砖。
写简历真的是你所追求的吗?相当老派,就像编写 6502 代码一样有趣。有许多更有用、更有趣的低级问题。
如果你会写汇编,那么编写机器代码一点也不困难,你可以只是为了好玩而这样做。 x86 很糟糕,您应该花一些时间学习其他系统及其 asm 和机器代码(并为它们编写操作系统)。 ARM称霸世界,不依赖BIOS。有人告诉我,要在非 x86 系统上安装显卡,您仍然需要在 x86 BIOS 上进行一些 x86 操作,才能弄清楚如何在不需要运行 x86 BIOS 的情况下启动主流显卡。观察模拟器运行BIOS并看看它做了什么,找出在没有BIOS执行的情况下替换开机初始化的电源...编写指令集模拟器或反汇编程序是编写机器代码之外的下一步,我什至不会浪费不过,在 x86 上,我可以建议一个替代方案列表(或者您可以使用我编写或收集的模拟器)。
如果 x86 BIOS 是您想要的方式,那么您最好的途径是为 qemu、virtualbox 或其他虚拟机编写、替换或修改 BIOS。用您的 BIOS 替换该 BIOS 可能会替换某个目录中的文件或使用命令行选项来指定备用 BIOS。一旦你在这方面有了丰富的经验,那么如果仍然有主板上有遗留的BIOS,也许你可以通过自己的方式进行编程(需要为每种类型的主板购买几 block ,因为你会砖化一些)。市场上有如此多的嵌入式系统,只要花费 20 到 200 美元就能获得相同水平的经验,因此在没有像样的原理图和文档的情况下破解 PC 主板是没有意义的。您可以挖出一台原始 PC,其中记录了原理图和 BIOS 列表,并且 BIOS 已插入 socket ,因此如果您的 PC 无法启动(并且不会损坏主板),它不是一 block 砖 block ,您可以重新编程或更换 BIOS芯片。可能想使用微 Controller 来代替假BIOS,因为找到合适的硬件来重新编程更多BIOS芯片可能更难找到工作原始PC的......有一个amiga社区可能更有趣并且会很高兴您改进/调整他们的 BIOS,例如将现代硬件置于遗留系统调用后面。
关于assembly - 编写我自己的BIOS,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10890048/
在进行 BIOS 开发时,我看到了对英特尔 BIOS 引用设计和英特尔固件支持包 (FSP) 的引用。英特尔是否积极支持两者,或者引用设计正在逐步淘汰以支持 FSP。 最佳答案 为了创建 FSP,引用
我知道有一些程序,比如 lojack 用于安装在 BIOS 上的笔记本电脑,但我仍然有点困惑。在阅读有关 lojack 的信息时,在我看来,在用户登录并尝试访问互联网之前,他们无法完全定位笔记本电脑的
关闭。这个问题不满足Stack Overflow guidelines .它目前不接受答案。 想改善这个问题吗?更新问题,使其成为 on-topic对于堆栈溢出。 8年前关闭。 Improve thi
我对 BIO 例程 BIO_read()/BIO_write() 和 SSL_read()/ 之间的区别感到困惑SSL_write() 当 BIO 是内存 BIO 而不是套接字 BIO 时。 我正在尝
我想知道什么样的序列号wmic bios get serialnumber Windows命令实际上给了你什么? 是你主板的序列号吗?文档对此不清楚。 最佳答案 wmic bios get seria
我正在尝试使用 OpenSSL 在 C++ 中创建一个简单的 FTP/FTPS 客户端实现。我已经设法使用 BIO API 与普通 FTP 一起工作。现在的问题是:一旦我有一个不安全的连接和 BIO
pe启动acpl bios error是一个非常简单解决的问题,一般都是主板不支持支持ACPI造成的,只要禁用一下就可以解决了,想要解决的用户可以来看看详细的内容。 pe启动acpl b
这里是代码的上下文: void THREAD_CC server_thread(void *arg) { BIO *client = (BIO *)arg; ... } 表达式
我正在使用 UEFI EDK2 创建 BIOS。我修改了 FDF 以将驱动程序(UEFI 和旧版本)从主固件卷移动到我严格创建的单独固件卷 (FV) 以保存驱动程序。 在我从主 FV 移动驱动程序之前
我们正在运行 32 位和 64 位的 windows xp pro service pack 3。我们正在使用 WMI 来获取 BIOS 制造商和型号,但我们确实更喜欢使用 Win32 API 或汇编
OpenSSL 中的 BIO 对到底是什么?它的用途是什么?我已经检查过 OpenSSL 文档,但任何细节都很少。 最佳答案 OpenSSL 中的 BIO 类似于文件句柄。您可以使用一对它们来安全地相
在此示例代码中: BIO *bio1 = BIO_new(BIO_s_mem()); BIO *bio2 = BIO_new(BIO_s_mem()); SSL_set_bio(ssl, bio1,
我试图将 QEMU 与我正在构建的内核 ISO 一起使用,但我无法运行测试。 我使用的是 Windows 10 64 位,并添加了 pc-bios如果这很重要,请将文件夹添加到 PATH。 到目前为止
我处于不幸的情况,我需要使用 BIOS 未在 ia32 功能控制 MSR 寄存器中启用的 CPU 功能。 BIOS 确实设置了锁定位,因此我无法自己设置该位。 BIOS (Asus UEFI BIOS
我升级了我的 mac 安装,Mountain Lion 10.8.4,但现在每次我尝试加载 Android AVD 时“Eclipse”都会出错。返回的错误是这样的: qemu: 无法加载 PC BI
下面是一些示例代码,展示了我如何使用 OpenSSL: BIO *CreateMemoryBIO() { if (BIO *bio = BIO_new(BIO_s_mem())) {
BIOS 是用汇编语言编写的,机器只能理解二进制文件。 BIOS 是系统启动时加载到内存中的第一个程序。什么编译BIOS生成二进制文件? 最佳答案 BIOS 工程师用 x86 汇编语言编写 BIOS,
使用 OpenGL VBO 时,您可以交错数据 例如,您甚至可以将顶点数据与供 CPU 而不是 GPU 使用的其他数据交错。 交错是有助于还是阻碍主流独立显卡和集成显卡的性能? 最佳答案 一般的答案是
我目前正在编写一个引导加载程序,旨在加载一个比引导扇区允许的时间更长的程序。但是,每次运行程序(我在Virtualbox和QEMU中都测试过),磁盘读取失败,磁盘重置也失败。 bootloader 被
我正在开发一个操作系统项目,使用 isolinux (syslinux 4.5) 作为引导加载程序,加载我的内核与组织在 0x200000 的多重引导头文件。 据我所知,内核已经处于 32 位保护模式
我是一名优秀的程序员,十分优秀!