首页 / 更多教程 / c – 在引导程序上进行线程处理
c – 在引导程序上进行线程处理
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了c – 在引导程序上进行线程处理,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1443字,纯文字阅读大概需要3分钟。
内容图文
![c – 在引导程序上进行线程处理](/upload/InfoBanner/zyjiaocheng/747/42deaedcdb1b4c41a09709e757035102.jpg)
我在哪里可以找到有关如何在x86架构引导程序上实现线程的资源/教程……假设我想在显示进度条的同时在后台加载资源.
解决方法:
这是一个非常不寻常的问题……所以请允许我提出我的意见……
> Bootloader,实际上是一组有限的汇编代码,准确地说是464个字节,64个字节用于分区信息,最后两个字节用于表示引导加载程序结束的魔术标记,总共为512字节.
> Grub等引导加载程序可以通过实现两阶段引导加载程序来解决这个限制,第一阶段是所提到的512字节,然后加载第二阶段,其中执行更多选项等.
>通常,引导加载程序代码是16位汇编代码,因为原始BIOS代码是16位代码,这就是处理器386今天向现代处理器向上启动的实模式.
>使用两相引导加载程序,第一个512字节为16位,然后第二个相位将处理器切换到32位模式,设置寄存器和选通器进行准备,然后跳转到实际程序的入口代码进行启动 – 这是考虑到必须从磁盘上的特定位置读取或读取包含存储启动代码的数据的配置文件.
>在32位模式下执行线程是很棘手的,因为你必须在Assembly中创建某种调度程序(因为你提到在x86架构引导程序上实现线程).
您可以通过使用C实现引导加载程序的第二阶段部分来解决这个问题(但棘手的是,由于尚未设置运行时环境,因此不使用标准库!)
使用Grub或甚至查看这个开源BIOS引导程序here可能会更好,现在,bios可以刷新,因此您可以获得纯粹32位bios的EFI(可扩展固件接口here) – 这将取决于您的处理器.这里还有另一个网站,可能会提供更多信息here.
不幸的是,启动时的进度条用C/C++编写(已经在32位,环境设置,任务调度程序设置,包含线程,虚拟内存管理器加载等等 – 这是内核级别,启动程序完成后) ),其中一个创建线程的进程,在后台运行,说明硬件检测/进一步的环境设置等,使用进度条作为告诉用户“等待,系统正在加载”的方法
内容总结
以上是互联网集市为您收集整理的c – 在引导程序上进行线程处理全部内容,希望文章能够帮你解决c – 在引导程序上进行线程处理所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。