对操作系统的思考

来源:互联网 发布:burberry 风衣 知乎 编辑:程序博客网 时间:2024/04/29 18:54

操作系统是一个软件。

在编写过裸机程序之后就知道一个程序跑起来是需要怎样的资源与怎样的环境的。这个时候组织这个环境与资源分配的便是操作系统。操作系统就是一个运行在裸机上的程序。

操作系统为上层应用提供接口。

一个操作系统可以为上层应用提供接口,这个时候程序员使用接口的时候就不是面对裸机了,而是面对抽象化之后的一个机器,这个机器就是操作系统。在操作系统抽象化之后,cpu芯片的工作调度与核心功能被封装,此时上层应用在使用cpu芯片计算功能的时候就是调用操作系统提供的接口了。如果要使用其他的硬件设备(外设),就需要使用在操作系统中集成(集成不知道这样说恰不恰当!)的驱动程序。

驱动程序在个人理解是对具体的硬件设备使用方法的软件抽象。此时配合操作系统接口,就能够使得用户在操作系统提供的接口中使用驱动程序封装的软件接口从而调度硬件设备,进而完成应用所要完成的功能。所以有了下图:

                                         user

                                            |

                                  具体上层应用

                                            |

bootloader       --->    操作系统      ------>处理器核心功能                 

                                           |

                                     驱动程序

                                           |

                            外部设备(硬件资源)

booloader是上电后裸机运行的第一个程序,初始化机器以及重定位后面要运行的操作系统(重定位:使程序的链接地址与其所处位置一致,以免造成地址访问的错误),为操作系统运行提供环境。

操作系统是建立在处理器上的,驱动程序面向的是具体硬件,在集成了驱动程序以后的操作系统便可以统一组织起一台机器的各个部件,程序员就可以在此操作系统上进行编程,使用操作系统提供的软件接口访问到具体硬件,完成具体功能。

0 0
原创粉丝点击