如果将操作系统理解为一个安装在电脑上管理cpu等硬件的大型软件,那么安装(运行)在操作系统上的软件,是在操作系统的帮助下直接更改硬件状态,还是更改大软件(操作系统)的状态之后,间接对硬件进行操作?
人生最曼妙的风景,竟是内心的淡定与从容!
我觉得是第二种。跟硬件相关的操作,通常是操作系统内核才有权限进行的,应用程序不能直接操作硬件。
以读磁盘文件为例:
应用程序进程发起read系统调用。
CPU进入内核态,执行相应的内核代码,进行读操作。
操作完成后,返回用户态,继续执行后面的代码。
个人浅见,如有错误请指正。
操作系统最早就是设计出来用于管理硬件的软件,它封装了很多接口。比如我们熟知的POSIX。这是操作系统的扩展机功能。操作系统的另一个功能就是资源管理,对软硬件的资源分配。扯的有点远。我也觉得是第二种。跟硬件相关的操作,只有管态才可以执行。
我觉得是第二种。
跟硬件相关的操作,通常是操作系统内核才有权限进行的,应用程序不能直接操作硬件。
以读磁盘文件为例:
应用程序进程发起read系统调用。
CPU进入内核态,执行相应的内核代码,进行读操作。
操作完成后,返回用户态,继续执行后面的代码。
个人浅见,如有错误请指正。
操作系统最早就是设计出来用于管理硬件的软件,它封装了很多接口。比如我们熟知的POSIX。这是操作系统的扩展机功能。
操作系统的另一个功能就是资源管理,对软硬件的资源分配。扯的有点远。
我也觉得是第二种。
跟硬件相关的操作,只有管态才可以执行。