课程咨询: 400-996-5531 / 投诉建议: 400-111-8989
认真做教育 专心促就业
操作系统是程序员在开发软件的时候需要重点关注的一个问题,下面我们就通过案例分析来了解一下,操作系统架构开发基础知识分享。
内核:内核是一个计算机程序,它是操作系统的核心,可以控制操作系统中所有的内容。内核通常是在bootloader装载程序之前加载的一个程序。
bootloader又被称为引导加载程序,它是一个程序,能够将计算机的操作系统放入内存中。
在电源通电或者计算机重启时,BIOS(基本输入输出设备)会执行一些初始测试,然后将控制权转移到引导加载程序所在的主引导记录(MBR)。
内核空间:这个内存空间只有内核程序可以访问;具有高权限,可以直接访问所有资源;程序使用内核空间时,称为内核态。
用户空间:这个内存空间专门给应用程序使用;只能访问受限资源,不能直接访问内存等硬件设备,必须通过系统调用陷入到内核中,才能访问这些特权资源。程序使用用户空间时,称为用户态。
那么为什么要有用户态和内核态呢?
这个主要是访问能力的限制的考量,计算机中有一些比较危险的操作,比如设置时钟、内存清理,这些都需要在内核态下完成。
如果随意进行这些操作,那你的系统得崩溃多少次。
宏内核:整个内核像⼀个完整的程序,包含进程管理,内存管理,文件系统管理,设备驱动等。(linux)
微内核:有⼀个⼩版本的内核,⼀些模块和服务则由用户态管理。比如文件管理,设备驱动就在用户态。这就有一个问题,用户态就需要频繁的切换到内核态操作底层,消耗资源。(鸿蒙系统)
混合内核:有一个小版本的内核,但是整个内核中也有整个模块,相当于宏内核和微内核结合。(windows)
【免责声明】:本内容转载于网络,转载目的在于传递信息。文章内容为作者个人意见,本平台对文中陈述、观点保持中立,不对所包含内容的准确性、可靠性与完整性提供形式地保证。请读者仅作参考。更多内容请加danei0707学习了解。欢迎关注“达内在线”参与分销,赚更多好礼。