老男孩教育专注IT教育10余年,只培养IT技术精英

全国免费咨询电话(渠道合作):400-609-2893

Linux系统中的内核态是什么?老男孩Linux培训班

老男孩IT教育

行业新闻

2022年8月5日 10:13

在Linux技术大佬口中,我们经常会时不时听到内核态、用户态等,内核主要是和硬件打交道,管理最核心的内容,如硬盘、内存、CPU等,那你知道在Linux系统中,内核态具体是什么吗?请看下文:

       在Linux技术大佬口中,我们经常会时不时听到内核态、用户态等,内核主要是和硬件打交道,管理最核心的内容,如硬盘、内存、CPU等,那你知道在Linux系统中,内核态具体是什么吗?请看下文:

Linux培训机构

       Linux系统中的内核态本质是内核,一种特殊的软件程序,用于控制计算机的硬件资源,例如协调CPU资源,分配内存资源,并且提供稳定的环境供应用程序运行。0-4G范围的虚拟空间地址都可以操作,尤其是对3-4G范围的高位虚拟空间地址必须由内核态去操作。

       用户态提供应用程序运行的空间,为了使应用程序访问到内核管理的资源,例如CPU,内存,I/O等。用户态只能受限的访问内存,且不允许访问外设 (硬盘、网卡等);内核态CPU可以访问内存所有数据,包括外设,且可以将自己从一个程序切换到另一个程序。

       从用户态切换到内核态有以下三种方式:

       系统调用:是用户态进程主动要求切换到内核态的一种方式,用户态进程通过系统调用申请使用操作系统提供的服务程序完成工作。例如上面的例子、还比如fork()实际上就是执行了一个创建新进程的系统调用。(其实系统调用本身就是中断,是软件中断)

       异常:如果当前进程运行在用户态,如果这个时候发生了异常事件,就会触发切换。例如:缺页异常。

       外设中端:当外设完成用户的请求时,会向 CPU 发送中断信号,此时 CPU 会暂停执行下一条即将要执行的指令转而去执行与中断信号对应的处理程序,如果先前执行的指令是用户态下的程序,那么这个转换的过程自然也就发生了由用户态到内核态的切换。例:如硬盘读写操作完成后,系统会切换到硬盘读写的中断处理程序中执行后续操作。

       老男孩教育Linux运维云计算课程汇集了虚拟化、云计算、安全攻防、Python开发、SRE等技术,课堂效率高、内容丰富全面,由浅入深,循序渐进,帮助学员稳扎稳打,夯实基础,在有限的时间内帮助学员高效提升,成为符合企业需求的技术型人才。

   推荐阅读:

       Linux与Windows系统的主要区别在哪?老男孩Linux运维课程

       Linux查看路径的命令都有哪些?老男孩Linux培训班

       新手学习Linux系统的6点建议!老男孩LinuxSRE课程

本文经授权发布,不代表老男孩教育立场。如若转载请联系原作者。