库、系统调用、操作系统和硬件之间的关系, linux 课下总结

  PS:操作系统最早的时候被称为监控程序,

    而后才被改为操作系统。

    以下的操作系统全部是指操作系统的内核。



1、硬件设备与操作系统(OS)。  

        

        操作系统的一部分功能就是管理硬件设备,它拥有硬件设备的所有权限, 并且把硬件设备包装隐藏起来。完成所有硬件设备的资源管理和驱动。


        资源切割,为每个程序提供一个虚拟的,独有访问的一块硬件资源,如: 内存块,CPU的时间片和磁盘空间等等等等。

        而运行在这块资源上的程序除了知道监控它的操作系统外,不会知道其实还有其它的程序在运行,这就是多任务操作系统。

  

        运行在操作系统上面的程序,不用管硬件是怎么驱动和管理的,


        如果每写一个程序都要把驱动硬件的功能写上会是一种什么概念。


        而这个也是操作系统的职责范围,用来解决硬件的一切硬件特性和功能。而以人们更方便更容易理解的方式提供给程序使用硬件的目的。

        PS:系统调用



2、 操作系统与系统调用接口。


         操作系统会把一些内核指令 通过一些 函数(接口) 分享出来,  而这个接口就叫作系统调用。 程序只要调用这个接口就可以执行某些硬件动作。

         

         上面1里面说的,操作系统掩盖了硬件特性,而以更简便的方式把使用硬件的方式向上提供给程序, 怎么向上提供呢, 就是用系统调用接口。


         但是这些接口功能简单,很底层,还需要程序员来为这些功能简单的接口通过编程来组合出来复杂的功能,而这个很难,很复杂,很


         而且程序每个都必须要这样作,那就更难了。关键是这些程序可能需要实现的调用接口的功能都是一样的。 所以就引出来了库。



3、 系统调用接口与库。


         这个库就是系统调用接口之上的再次封装来实现某些特殊的复杂的功能的接口。  

         当然啦库有很多的,从名称就看出来了。不是说是一个统一的接口,而是想要用哪个库的功能,就根据哪个库的介绍来调用它。


          简单的说:库就是把各个系统调用的接口的单一的功能,组合起来,来实现一些复杂的,有趣的功能。而它还制作了一个接口,可以被其它程序调用。 库就是一个程序。


             不过现在库广泛多了,也可能是本来就是, 有一些库只是实现了一种功能,而没有去调用系统调用接口。   


有一点需要注意的是, 用这个库编译出来的程序,只能在有这个库的计算机上运行,也不用完全一样,只要它们的功能一样并且接口也一样就行。 


库接口也被称为API(Application Programming Interface,应用程序编程接口)



总结:


      因为  不能每一个程序 都要来驱动硬件设备,

            所以有了操作系统这个中间层,

            操作系统提供系统调用接口供程序员编程。

            而程序也是通过这个接口来达到使用硬件的目地,

            而不用管操作系统是怎么操作硬件的。


      因为  系统调用接口 提供的的功能 单一,数量少, 

            需要程序员繁杂的操纵和组合这些接口来实现功能。

            而且要实现的这个功能,不止就一个程序要用,

            所以 就有了库, 库就是实现了这个功能的程序,

            而这个库提供了一个接入点,接口, 这个接入点就是API。

            程序员要想使用这个库的功能,只要按照库的说明来接入就可以了。

            程序通过库来达到目的, 而不用管库是怎么工作的。


               一个模块一个模块的对接,复杂功能分层化。


关于这些部分的理解,如有错误的地方,有劳指出,一定积级改进, 先谢谢了。


你可能感兴趣的:(linux,操作系统,硬件,系统调用)