我用谷歌搜索了它,并在某处读到....
是的你可以.这种情况发生在嵌入式系统中
我想不,这是不可能的.任何平台都必须具有操作系统.否则,您的程序本身必须是一个操作系统.无论是软线还是硬线.没有操作系统,您的组件将无法运行.
我是对的还是任何人都能解释我的答案?(我对嵌入式系统没有任何想法...)
当然可以.所有(典型的)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. ...