深入浅出理解Linux(内核)

本文详细阐述了Linux操作系统的构成,将其比喻为一家软件外包公司,内核作为老板协调资源。操作系统包括内核、函数库、编译器等多个组件,每个模块如同独立进程。通过实例解释了内核如何处理用户指令,如何通过系统调用、进程管理和内存管理子系统来运行应用程序,以及设备驱动和网络子系统的作用。强调了系统调用、进程管理、内存管理、文件系统和设备管理等关键子系统在操作系统中的角色。
摘要由CSDN通过智能技术生成

需要明确:Linux这个词本身只表示Linux内核,但现在大家已经默认的把Linux理解成整个Linux系统
但一个操作系统包含了内核、以及其他计算机系统所必须的组件(如函数库、编译器、调式工具、文本编辑器、web服务器(例如nginx、apache等),以及一个Unix的使用者接口(Unix shell指令)等,这些都是操作系统的一部分,而且每一个模块如编译器都是一个单独的进程,运行在操作系统中)。
在这里插入图片描述
首先我们可以把操作系统比作一家软件外包公司,而linux系统内核比作外包公司的老板。
而操作系统内核所要完成的事情就是协调各种资源,帮客户完成需求。
简单来说,例如你双击了一个QQ程序,你的鼠标就是输入设备驱动,你可以把它理解为外包公司的对接员,客户点击鼠标即(输入了一个指令),其产生了一个中断,系统调用了中断处理函数。内核(老板)知道其指令后,然后就需要一个立项(项目计划书)(这个项目计划书就是QQ程序的二进制文件,该二进制文件逻辑就相当于项目计划书的各步骤依次执行)。
操作系统执行二进制文件,就可以运行,而运行的QQ程序被称为进程。
二进制程序被保存在硬盘上,需要用到文件存储系统。
而项目计划书(二进制文件)立项需要用到各种审批和资源调度,而有些资源放在系统内核,不能随便申请调用(可以理解为外包公司商业机密不可随意泄露或公开)。
外包公司的办公大厅,就可以被理解为系统调用。系统调用会列出哪些接口可用,哪些不可用。
而当项目实际运行过程中,会产生很多进程,进程必须加载到内存中才能被CPU执行,为了方便管理,就产生了进程管理子系统。当进程很多时,需要cpu调度执行,需要看cpu的调度能力。
项目在执行过程中,需要进行隔离,否则会相互影响(可以类比外包公司分配各个项目团队不能混乱管理)。所以需要分配会议室(内存),即内存管理子系统,执行完毕以后,统一交给外包公司的对接员显示给用户,即为输出设备驱动。
QQ启动后,有一部分代码会告诉启动一个对话框,并将鼠标焦点移到对话框,cpu收到指令之后,告知显卡程序,将对话框调出来,呈现给用户,用户用键盘输入,输入设备会触发中断,调用输入设备驱动程序,用户输入了一个a,焦点在这个进程上,所以操作系统知道发给哪个进程,然后交给QQ程序处理,QQ程序记录下客户的输入,告诉显卡程序,花一个a,画完了,客户就能看到了。输入成功之后,按enter键,通过键盘驱动程序告诉系统,系统找到QQ,将用户的输入发送到网络上。QQ进程需要调用系统调用,内核使用网卡驱动发送。
在这里插入图片描述
对于内核,有几大子系统:系统调用子系统、进程管理子系统、内存管理子系统、文件子系统、设备子系统和网络子系统。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值