操作系统
操作系统笔记
书忆江南
https://github.com/hackeryang
展开
-
Linux容器化原理笔记
一、容器1. 从一台物理机虚拟化出很多虚拟机这种方式,一定程度上实现了资源创建的灵活性。但是同时会发现,虚拟化的方式还是非常复杂的, CPU、内存、网络、硬盘全部需要虚拟化,还有性能损失。那有没有一种更加灵活的方式,既可以隔离出一部分资源,专门用于某个进程,又不需要费劲周折的虚拟化这么多的硬件呢?毕竟最终只想跑一个程序,而不是要一整个Linux系统。在Linux操作系统中,有一项新的技术称...原创 2020-05-04 20:54:37 · 3189 阅读 · 0 评论 -
Linux虚拟化原理笔记
一、虚拟机1. 操作系统上的程序分为两种,一种是用户态的程序例如Word、Excel等,一种是内核态的程序例如内核代码、驱动程序等。为了区分内核态和用户态,CPU专门设置四个特权等级0、1、2、3。在虚拟化技术出现以前,内核态运行在第0等级,用户态运行在第3等级,占了两头中间的还没用。如果用户态程序做事情,就切换到第3等级,一旦要申请使用更多的资源,就需要到内核态第0等级,内核才能在高权限访问...原创 2020-04-09 07:38:51 · 3489 阅读 · 0 评论 -
Linux网络系统原理笔记
一、Socket网络协议基本原理1. 假设这里就涉及三台机器。Linux服务器A和B处于不同的网段,通过中间的Linux服务器作为路由器进行转发,如下图所示:说到网络协议,还需要简要介绍一下两种网络协议模型,一种是OSI标准七层模型,一种是业界标准的TCP/IP模型,它们的对应关系如下图所示:为什么网络要分层呢?因为网络环境过于复杂,不是一个能够集中控制的体系。全球数以亿记的服...原创 2020-03-29 15:07:39 · 2062 阅读 · 4 评论 -
Linux进程间通信原理笔记
一、进程间通信1. 在讲进程间通信之前,先来讲讲管道模式。记得最初学Linux命令的时候,有下面这样一行命令:ps -ef | grep 关键字 | awk '{print $2}' | xargs kill -9这里面的竖线“|”就是一个管道。它会将前一个命令的输出,作为后一个命令的输入。从管道的这个名称可以看出,管道是一种单向传输数据的机制,它其实是一段缓存,里面的数据只能从一端...原创 2020-03-16 22:05:19 · 1295 阅读 · 0 评论 -
Linux输入输出系统原理笔记
一、输入与输出1. 对于操作系统来讲,控制各种输入输出设备是一件复杂的事情,因为这么多设备,形状、用法、功能都不一样。因此,CPU并不直接和设备打交道,它们中间有一个叫作设备控制器(Device Control Unit)的组件,例如硬盘有磁盘控制器、USB有USB控制器、显示器有视频控制器等。这些控制器就像代理商一样,它们知道如何应对硬盘、鼠标、键盘、显示器的行为。控制器其实有点像一台小...原创 2020-03-05 22:19:30 · 1602 阅读 · 0 评论 -
Linux文件系统原理笔记
一、文件系统1. 在文件系统中,每个文件都有一个名字,文件名就是一个普通的文本。当然文件名会经常冲突,不同用户取相同名字的情况还是会经常出现的。要想把很多的文件有序地组织起来,就需要让它们成为目录或者文件夹。这样,一个文件夹里可以包含文件夹,也可以包含文件,这样就形成了一种树形结构,可以将不同的用户放在不同的用户目录下,就可以一定程度上避免了命名的冲突问题。如下图所示:不同用户的文件放...原创 2020-02-19 21:27:08 · 1564 阅读 · 0 评论 -
Linux内存管理原理笔记
一、内存管理1. 每个进程应该有自己的内存空间。内存空间都是独立的、相互隔离的。对于每个进程来讲,看起来应该都是独占的。进程不能直接访问物理内存地址,因为假如三个程序同时访问或写入同一个物理内存地址,就会产生冲突或数据安全问题。为了解决该问题,操作系统会给进程分配一个虚拟地址。所有进程看到的这个地址都是一样的,里面的内存都是从0开始编号。在程序里面,指令写入的地址是虚拟地址。操作系统会提供...原创 2020-02-16 21:09:42 · 2801 阅读 · 0 评论 -
Linux进程管理原理笔记
一、程序从编译(编译汇编、链接、装载到内存)到运行为进程1. 在Linux上写程序和编译程序,也需要一系列的开发套件,运行下面的命令,就可以在centOS 7操作系统上安装开发套件:yum -y groupinstall "Development Tools"接下来就可以开始写程序了。在Windows上写的程序,都会被保存成.h或者.c文件,容易让人感觉这是某种有特殊格式的文件,但其...原创 2020-02-09 22:18:23 · 919 阅读 · 0 评论 -
Linux系统初始化基础原理笔记
一、x86架构1. x86架构奠定了当今计算机开放平台的标准和基础,其中最经典的一款处理器是8086处理器。虽然它已经很老了,但是现在操作系统中的很多特性都和它有关,并且一直保持兼容。它的结构示意图如下所示:8086处理器内部有8个16位的通用寄存器,也就是CPU内部的数据单元,分别是AX、BX、CX、DX、SP、BP、SI、DI,这些寄存器主要用于在计算过程中暂存数据。这些寄存器比较...原创 2020-01-30 18:48:08 · 750 阅读 · 2 评论 -
Linux操作系统基础综述笔记
一、Linux内核基础白话1. 在操作系统中,输入设备驱动其实就像客户对接员。有时候新插上一个鼠标的时候,会弹出一个通知安装驱动,这就是操作系统这家外包公司在配备对接人员。当客户告诉对接员需求的时候,对于操作系统来说,输入设备会发送一个中断。这个概念很好理解,客户肯定希望外包公司把正在做的事情都停下来服务它。所以,这个时候客户发送的需求就被称为中断事件(Interrupt Event)。显...原创 2020-01-28 15:03:07 · 678 阅读 · 0 评论