《趣谈 Linux 操作系统》学习笔记(二):对 Linux 操作系统的理解
首先,我们知道操作系统是管理和控制计算机硬件与软件资源的计算机程序。这里把操作系统想象为一个软件外包公司,其内核就相当于这家外包公司的老板,那么我们可以把自己的角色切换成这家外包公司的老板,设身处地的去理解操作系统是如何协调各种资源,帮客户做成事情的。
以鼠标双击 QQ 到运行整个过程理解操作系统:
- 鼠标是输入设备,鼠标双击 QQ 要通过输入设备驱动知道鼠标的动作(外包公司要通过客户对接员知道客户的需求);
- 鼠标双击后产生一个指令,然后会产生中断,调用一个中断处理函数,弄明白指令的含义(了解客户的需求,然后开始立项,立项就需要项目计划书,即项目程序逻辑);
- 设定好了执行步骤,操作系统拿到二进制执行文件,就可以运行这个文件了(QQ 的二进制文件是静态的,称为程序,而运行起来的 QQ 是不断进行的,称为进程);
- 二进制程序是保存在硬盘上的,需要用到文件存储系统;进程的执行也需要分配 CPU 执行,为了管理进程,还需要进程管理子系统;
- 项目立项需要用到各种资源(如开证明、盖公章、打印材料等),有一些操作放在系统内核,不能随便调用,统一在办事大厅,即系统调用,系统调用会列出哪些接口可以调用;
- 每个项目(不同的进程)都有自己私密的资料不能被其他项目组看到,所以需要根据项目来管理和分配空间,这就需要内存管理子系统;
- 项目执行的时候,有了一定成果后要给客户展示,需要交付人员(输出设备驱动程序)交付给显示器(输出设备);
- QQ 启动之后,有一部分代码会在显示器上画一个对话框,并且将键盘的焦点放在了输入框里面,CPU 根据这些指令,就会告知显卡驱动程序,将这个对话框画出来;
- 当用户通过键盘打字时,键盘也是输入设备,也会触发中断,通知相应的输入设备驱动程序;
- 输入成功之后按 enter 键,通过键盘驱动程序告诉操作系统,操作系统会找到 QQ,QQ 将用户的输入发送到网络上(QQ 进程是不能直接发送网络包的,需要调用系统调用,内核使用网卡驱动程序进行发送)。
从外包公司的角度理解操作系统示意图如下
操作系统内核体系整体结构图如下图所示
《趣谈 Linux 操作系统》学习笔记(二):对 Linux 操作系统的理解的更多相关文章
- linux初级学习笔记二:linux操作系统及常用命令,文件的创建与删除和命名规则,命令行展开以及linux中部分目录的作用!(视频序号:02_3)
本节学习的命令:tree,mkdir,rmdir,touch,stat,rm 本节学习的技能:Linux中主要的目录作用以及特殊的目录文件: 文件的命名规则,命令行展开: 文件的创建与删除: Linu ...
- 深挖计算机基础:趣谈Linux操作系统学习笔记
参考极客时间专栏<趣谈Linux操作系统>学习笔记 核心原理篇:内存管理 趣谈Linux操作系统学习笔记:第二十讲 趣谈Linux操作系统学习笔记:第二十一讲 趣谈Linux操作系统学习笔 ...
- Docker学习笔记二(linux下安装Docker)
Docker学习笔记二(linux下安装Docker) 1.在线安装linux Docker 这种方式首先要保证linux 环境下可以上网,当然,小编是在自己的电脑上安装了虚拟机,在虚拟机上安装了,l ...
- Linux内核学习笔记二——进程
Linux内核学习笔记二——进程 一 进程与线程 进程就是处于执行期的程序,包含了独立地址空间,多个执行线程等资源. 线程是进程中活动的对象,每个线程都拥有独立的程序计数器.进程栈和一组进程寄存器 ...
- kvm虚拟化学习笔记(二)之linux kvm虚拟机安装
KVM虚拟化学习笔记系列文章列表----------------------------------------kvm虚拟化学习笔记(一)之kvm虚拟化环境安装http://koumm.blog.51 ...
- linux命令学习笔记(25):linux文件属性详解
Linux 文件或目录的属性主要包括:文件或目录的节点.种类.权限模式.链接数量.所归属的用户和用户组. 最近访问或修改的时间等内容.具体情况如下: 命令: ls -lih 输出: [root@loc ...
- ucore操作系统学习笔记(二) ucore lab2物理内存管理分析
一.lab2物理内存管理介绍 操作系统的一个主要职责是管理硬件资源,并向应用程序提供具有良好抽象的接口来使用这些资源. 而内存作为重要的计算机硬件资源,也必然需要被操作系统统一的管理.最初没有操作系统 ...
- Linux操作系统学习笔记
关于Linux详细介绍可以参见:http://blog.csdn.net/hguisu/article/details/6122513 关于Linux的常用命令可以参见:http://blog.csd ...
- 马哥Linux SysAdmin学习笔记(二)
Linux网络属性管理: 局域网:以太网,令牌环网 Ethernet:CSMA/CD 冲突域 广播域 MAC:media access control地址 48bit: 24bits 24bits ...
- linux命令学习笔记(24):Linux文件类型与扩展名
Linux文件类型和Linux文件的文件名所代表的意义是两个不同的概念.我们通过一般应用程序 而创建的比如file.txt.file.tar.gz ,这些文件虽然要用不同的程序来打开,但放在Linux ...
随机推荐
- DaSiamRPN学习
9月14日,2018年视觉目标跟踪挑战赛(Visual-Object-Tracking Challenge 2018)的结果在ECCV Workshop上揭晓.VOT2018共设三项任务:Baseli ...
- EMC NW NMM to restore MS AG database
Following last article, how to restore MS AG database , that is in the following: You see ? Cheer u ...
- kendo ui 好用的小部件--grid
Kendo Ui Grid控件,继承至Widget. https://demos.telerik.com/kendo-ui/grid/index 快速上手教程 下面的代码来自本教程 做表格时非常方 ...
- Go语言实现:【剑指offer】正则表达式匹配
该题目来源于牛客网<剑指offer>专题. 请实现一个函数用来匹配包括 . 和 * 的正则表达式.模式中的字符.表示任意一个字符,而 * 表示它前面的字符可以出现任意次(包含0次). 在本 ...
- 【题解】战争系列-截获密文I
给你一个最短代码: #include <iostream> #include <string> int main(){ std::string str; std::cin &g ...
- mybatis级联查询,多对一查询问题
在使用Mybatis进行多表级联查询时遇到了一个问题:查询结果只有一项,但正确结果是两项.经测试,SQL语句本身没有问题. 在SQL映射文件(XML)中: <!-- 级联查询数据 --> ...
- 移植freertos到stm32 f103 的基本流程和总结
为什么要在stm32 f103上面移植freertos stm32 f103 以他的全面的文档,亲民的价格,强大的功能.成为无数微设备的方案首选.在市场上有极大的使用量.市场占有率也是非常的高.f ...
- Mysql 5.7 主从复制的多线程复制配置方式
数据库复制的主要性能问题就是数据延时 为了优化复制性能,Mysql 5.6 引入了 “多线程复制” 这个新功能 但 5.6 中的每个线程只能处理一个数据库,所以如果只有一个数据库,或者绝大多数写操作都 ...
- 前端添加复选框checkbox 提交到django后台处理
根据前端勾选的复选框 提交勾选的数据到后台处理 che.html <!DOCTYPE html> <html lang="en"> <head> ...
- hadoop local、伪分布 模式
local模式: 把安装包 解压到 /usr/local 下 [hadoop@master local]$ sudo tar -zxvf hadoop-2.7.3.tar.gz 创建一个软连接 ...