操作系统实际上做了什么?

Ell*_*Ell 13 c++ operating-system

操作系统究竟做了什么?我知道操作系统可以编程,例如,C++,但我之前认为C++程序必须在操作系统下运行?有人可以解释并给出链接吗?我们提前谢谢了

ssu*_*ube 13

操作系统是代码(用户代码)和硬件之间的一个层.

操作系统负责管理物理组件,并为您提供一个简单的(希望)API来构建.它处理哪些程序运行,何时,谁先行,如何处理内存,谁获取内存,视频绘图以及所有好东西.

例如,在创建GUI时,不要将每个位发送到监视器,而是告诉操作系统(或窗口管理器)创建窗口.然后告诉它在窗口中放置一个按钮.操作系统然后处理绘制窗口,移动窗口,移动按钮(但保持它应该在窗口中的位置).

现在,您可以使用C++编写操作系统,但这并不容易.您必须开发内核和诸如此类的东西,找到与硬件接口的方法,然后将该接口公开给您的用户及其程序.

因此,基本上,操作系统处理软件到硬件的接口并管理您的物理资源.C++程序可以在OS中运行,或者通过足够的工作,可以自己运行,甚至可以运行OS.

  • @Earlz:过去编写了一个OS调度程序,我可以自信地说编写一个调度程序来处理线程和多任务处理比编写多线程应用程序要容易得多(而且更有趣!).我不会说用任何语言编写操作系统都很"容易",但...... (8认同)
  • @BlueRaja是的.低水平的工作是最好的! (4认同)

Pot*_*ter 6

实际上,C++标准本身就可以解决这个问题.§1.4/ 7:

定义了两种实现:托管和独立.对于托管实现,此国际标准定义了可用库集.独立实现是一种可以在没有操作系统的情况下执行的实现,并且具有包含某些语言支持库的实现定义的库集(17.4.1.3).

在17.4.1.3中,

独立实现具有实现定义的头集.该集合应至少包括以下标题,如表13所示:

Table 13—C++ Headers for Freestanding Implementations
_______________________________________________
? Subclause Header(s)
? 18.1 Types    <cstddef>   
? 18.2 Implementation properties    <limits>
? 18.3 Start and termination    <cstdlib>
? 18.4 Dynamic memory management    <new>
? 18.5 Type identification  <typeinfo>  
? 18.6 Exception handling   <exception> 
? 18.7 Other runtime support    <cstdarg>   
Run Code Online (Sandbox Code Playgroud)

提供的标题版本应至少声明函数abort(),atexit()和exit()(18.3).

这些头文件定义常量或为编译器提供基本支持.实际上,在操作系统完成一些初始化之前,某些语言功能将会丢失,例如newcatch.