2、操作系统
kernel是掌管一台pc硬件的程序,核心程序放置在内存当中且是受保护的,并且开机后就一直常驻在内存当中。
从最先面对硬件开发,转而面对kernel开发,但还不是简便的路径,而由操作系统提供接口来供程序开发。
比如c语言,systemcall会将其转换为kernel所能执行的任务函数;--->软件和硬件关系不大,而与kernel有很大关系,硬件和kernel也有很大关系。
kernel根据应用程序提供合理的资源分配(cpu、内存)
操作系统=kernel+接口
不同的硬件集成需要使用不同的操作系统,比如苹果的笔记本不使用兼容技术不能安装windows系统,又如32位的cpu不能安装64位的操作系统。
所用的应用程序都是在操作系统提供的接口下开发的,(每款软件都会指定相应的系统运行环境)
kernel主要功能:
1、分配、管理、调用计算机资源
2、提供systemcallinterface供开发者使用、调用
3、进程管理:对进程排序以便cpu处理,加快整体效能
4、内存管理:当内存不足时,提供虚拟内存使用或者清空部分内存等
5、文件系统管理:I/O管理,文件格式,硬盘格式等
6、驱动管理:kernel并不是对所用硬件都直接管理,或者新硬件要适应已有的操作系统,不能要求kernel提供商重写kernel吧,就自行开发驱动,让kernel通过驱动来管理硬件。