1)背景:
早期要想让计算机执行程序,那么在编写程序的时候就要参考一大堆的硬件功能函数,并且要学习机器语言才能编写的成,
所以如果换了另一台机器后,该程序就无法运行,需要重新更改程序
,所以这样子相当麻烦,于是人们设想,
能不能有一种东西作为中介,能驱动所有的硬件,并且提供一个开发接口给工程师来开发程序
,那这样子,程序的运行就只需要看是不是同一个操作系统即可,而不用顾虑硬件功能(因为在生活中,操作系统只有那么几套,但是硬件却不一样,巨多!!)
操作系统出生了~
2)操作系统内核:
操作系统内核实际上就是
一组程序
,
这组程序的重点在于驱动硬件,管理计算机的所有活动,
硬件的所有操作都必须由操作系统来完成,这就是内核的功能,
只有内核提供了这些功能,你的计算机系统才能帮你完成。因为内核是如此的重要,所以内核程序所放置的区块是受保护的,且开机后就一直常驻在内存当中。
3)系统调用:
从字面上我们可以看出,这个是
为了调用操作系统而命名
的,而我们之前提到了操作系统内核是介于程序和硬件的中间人,所以不难想象,
这个系统调用实际上就是操作系统提供给工程师开发程序的一组接口
,程序根据这组接口而开发,进而相当于工程师参考内核功能而开发的
程序,有了能够调用操作系统的功能,然后操作系统就会自动根据程序需要利用的硬件资源去调用硬件
,所以我们可以发现,软件与内核关系比较大,与硬件关系不大,硬件也与内核关系比较大
4)内核功能:
系统调用接口,程序管理,内存管理,文件系统管理,设备驱动
——讲完操作系统和应用程序的关系,我们再看下操作系统和硬件的关系——
我们都知道,硬件都是时刻在进步着的,但是硬件和操作系统的进步并不同步,那么是不是意味着我们的操作系统只能用和它匹配的硬件而不支持最新的硬件?所以,为了解决这个问题,操作系统又提供了一组开发接口给制造操作系统的厂商,让他们参照内核的功能来开发驱动程序,如此一来只要用户安装了最新的硬件的驱动程序,那么就可以轻轻松松用上跑起最新的硬件来了