Moh*_*ain 16 c operating-system
我用谷歌搜索了它,并在某处读到....
是的你可以.这种情况发生在嵌入式系统中
我想不,这是不可能的.任何平台都必须具有操作系统.否则,您的程序本身必须是一个操作系统.无论是软线还是硬线.没有操作系统,您的组件将无法运行.
我是对的还是任何人都能解释我的答案?(我对嵌入式系统没有任何想法...)
unw*_*ind 19
当然可以.所有(典型的)CPU需求都是电源和对存储器的访问,然后它将执行其硬编码的引导序列.
通常,这将涉及读取一些预定义的地址,将其中的内容解释为指令,并开始运行它们.
这些指令当然可以来自C程序,尽管在这个级别上,在汇编中编写非常早期的阶段(称为bootstrapping)更为常见.
这当然并不意味着,如果我从字面上阅读你的问题标题,那么任何C程序都是以这种方式运行的.如果程序假定有操作系统,但没有操作系统,则无法运行.这应该是非常明显的.
您可以在没有操作系统的系统中运行程序......该程序本身不必是操作系统.
想想汽车里面的所有电脑(或者你喜欢的处理器):发动机管理,空调,ABS ......,......
所有这些系统都有一个程序(可能用C语言编写)运行.没有处理器具有OS.
该标准明确区分hosted implementations和freestanding implementations:
5.1.2.1 Freestanding environment
1 In a freestanding environment (in which C program execution may take place
without any benefit of an operating system), the name and type of the
function called at program startup are implementation-defined. Any library
facilities available to a freestanding program, other than the minimal set
required by clause 4, are implementation-defined.
2 The effect of program termination in a freestanding environment is
implementation-defined.
5.1.2.2 Hosted environment
1 A hosted environment need not be provided, but shall conform to the
following specifications if present.
...
小智 5
我认为编写设计用于在 QEMU(或虚拟化平台,Xen + MiniOS 是我的最爱之一)等模拟器下运行的“玩具”内核会很有趣。没有(太多)困难,您就可以启动并运行一个基本控制台并开始向其打印内容。它真的很有趣,有教育意义,同时又令人满意。
如果您正在 x86 上工作......并且让您的漂亮内核在 QEMU 下工作......那么它很有可能也可以在真实硬件上工作。你可能会喜欢它。
无论如何,你的问题的答案是肯定的。如果您碰巧使用引导加载程序,则尤其容易。例如,谷歌 memtest86 并获取代码。
| 归档时间: |
|
| 查看次数: |
8231 次 |
| 最近记录: |