如何编写不依赖操作系统的程序。就是裸机上可以运行的。汇编或c语言生成文件都是exe啊只能在win下
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何编写不依赖操作系统的程序。就是裸机上可以运行的。汇编或c语言生成文件都是exe啊只能在win下相关的知识,希望对你有一定的参考价值。
其实代码都差不多。平时做的程序,生产exe是因为在编译的时候,链接了编译器给的入口,然后代码里面以main作为起始运行。
而如果编译的时候,不指定这个入口,而是采用其它的不依赖于操作系统的接口,那么就可以裸机跑了。常见的,包括uboot, ecos,ucosII,eboot等等,这些都是有类似实现的。 感兴趣可以看看uboot源码,spl阶段和uboot阶段都是类似方式处理的。追问
恩
参考技术A 回答这个问题会在操作系统的定义上发生争论:如果说windows,linux,unix......这些才算操作系统的话,那么简单, 首先你向各个硬件厂商拿到各个接口(如果你本身对这些硬件非常了解, 那么自己写硬件接口), 然后你在你的程序上直接对各个硬件接口进行直接控制; 而那些所谓的标准库, 系统库都用不到了;;;;如果说操作系统的定义是: 硬件的整合; 那么你程序本身就是自带操作系统了;
要知道BOIS本身就是操作系统的一种(basic input output system); 所以关键是怎么定义操作系统;;;;;
楼上那个回答是误人子弟的,不知道为什么会变为最佳答案, 所以我才回答; 参考技术B 不可能。操作系统是软件程序赖以存在的平台,是连接底层硬件和用户应用层之间的桥梁。没有操作系统,你怎么去控制硬件。 参考技术C 参考:orange's 一个操作系统的实现
操作系统
目标
- 了解操作系统及作用
1. 操作系统(Operation System,OS)
操作系统作为接口的示意图
没有安装操作系统的计算机,通常被称为 裸机
- 如果想在 裸机 上运行自己所编写的程序,就必须用机器语言书写程序
- 如果计算机上安装了操作系统,就可以在操作系统上安装支持的高级语言环境,用高级语言开发程序
1.1 操作系统的作用
- 是现代计算机系统中 最基本和最重要 的系统软件
- 是 配置在计算机硬件上的第一层软件,是对硬件系统的首次扩展
- 主要作用是管理好硬件设备,并为用户和应用程序提供一个简单的接口,以便于使用
- 而其他的诸如编译程序、数据库管理系统,以及大量的应用软件,都直接依赖于操作系统的支持
1.2 不同应用领域的主流操作系统
- 桌面操作系统
- 服务器操作系统
- 嵌入式操作系统
- 移动设备操作系统
1> 桌面操作系统
- Windows 系列
- 用户群体大
- macOS
- 适合于开发人员
- Linux
- 应用软件少
2> 服务器操作系统
- Linux
- 安全、稳定、免费
- 占有率高
- Windows Server
- 付费
- 占有率低
3> 嵌入式操作系统
- Linux
4> 移动设备操作系统
- iOS
- Android(基于
Linux
)
1.3 虚拟机
虚拟机(Virtual Machine)指通过软件模拟的具有完整硬件系统功能的、运行在一个完全隔离环境中的完整计算机系统
- 虚拟系统通过生成现有操作系统的全新虚拟镜像,具有真实操作系统完全一样的功能
- 进入虚拟系统后,所有操作都是在这个全新的独立的虚拟系统里面进行,可以独立安装运行软件,保存数据,拥有自己的独立桌面,不会对真正的系统产生任何影响
- 而且能够在现有系统与虚拟镜像之间灵活切换的一类操作系统
以上是关于如何编写不依赖操作系统的程序。就是裸机上可以运行的。汇编或c语言生成文件都是exe啊只能在win下的主要内容,如果未能解决你的问题,请参考以下文章