Linux基础 | 青训营笔记

148 阅读11分钟

Linux基础

01 计算机硬件

基本组成单元

  • 控制器

    控制器的基本结构

    • 程序计数器:用于指出下一条指令在主存中的存放地址。CPU就是根据PC的内容去主存中取指令的。因程序中指令(通常)是顺序执行的,所以PC有自增功能。
    • 指令寄存器:用于保存当前正在执行的那条指令。
    • 指令译码器:仅对操作码字段进行译码,向控制器提供特定的操作信号。
    • 微操作信号发生器:根据R的内容(指令)、PSW的内容(状态信息)及时序信号,产生控制整个计算机系统所需的各种控制信号,其结构有组合逻辑型和存储逻辑型两种。
    • 时序系统:用于产生各种时序信号,它们都是由统一时钟(CLOCK)分频得到。
    • 存储器地址寄存器(MAR):用于存放所要访问的主存单元的地址
    • 存储器数据寄存器(MDR):用于存放向主存写入的信息或从主存读出的信息
    • MDR的控制信号:MDRin从CPU内部的数据总线输入的数据通路是否有效 MDRinE从外部的数据总线输入的数据通路是否有效
  • 运算器

    运算器的基本结构

    • ALU算术逻辑单元:主要功能是进行算术/逻辑运算,是运算器的核心。

    • 通用寄存器组:如AX、BX、CX、DX、SP等,用于存放各种操作数(包括源操作数、目的操作数及中间结果)和各种地址信息等。SP是堆栈指针,用于指示栈顶的地址。

    • 暂存寄存器:用于暂存从主存读来的数据,这个数据不能存放在通用寄存器中,否则会破坏其原有内容。(专用数据通路时不需要)如两个操作数分别来自主存和R0,最后结果存回Ro,那么从主存中取来的操作数直接放入暂存器,就不会破坏运算前R0的内容。

    • 累加寄存器:它是一个通用寄存器,用于暂时存放ALU运算的结果信息,用于实现加法运算。

    • 程序状态字寄存器(PSW)/标志寄存器:保留由算术逻辑运算指令或测试指令的结果而建立的各种状态信息,如溢出标志(OP)、符号标志(SF)、零标志(ZF)、进位标志(CF)等。PSW中的这些位参与并决定微操作的形成。

    • 移位器:对运算结果进行移位运算

    • 计数器:控制乘除运算的操作步数

  • 存储器单元

    1. 按在计算机中的作用分类

      image-20230509224207252

      主存,用于存储程序和数据,CPU可直接随机地进行读写访问。主存一般由半导体MOS存储器组成,特点:容量小、速度快、成本高。又称内存 Cache 位于主存与CPU之间,存放当前CPU经常使用的指令和数据,速度快,可与CPU匹配,容量小,价格高。 辅存,存放永久性保存信息,容量大,存取速度慢,单位成本低。又称外存

    2. 按存储介质分类

      磁表面存储器(磁盘、磁带)、磁芯存储器、半导体存储器(目前广泛采用,MOS型存储器、双极型存储器)、光存储器(光盘)

      1)双极性存储器:速度快、功耗大、价格贵、适用于高速缓存等 2)MOS存储器:速度慢,但集成度高、功耗小、价格低、适用于大容量主存

    3. 按存取方式分类

      1)存取时间与物理地址无关(随机访问)也即不同的地址可以在相同的时间里面把信息取出或写入。存储单元的内容可按需随机取出或存入,且存取的速度与存储单元的位置无关。

      ​ a.随机存储器(RAM) 在程序执行过程中可读可写

      ​ b.只读存储器(ROM) 在程序执行过程中只读

      2)存取时间与地理地址有关(串行访问)

      ​ a.顺序存取存储器(SAM) 如磁带,只能按地址顺序访问

      ​ b.直接存取存储器(DAM) 如磁盘,不必经过顺序搜索,兼有随机存储器和顺序存储器的访问特性

      事实上很多ROM也可多次读写,只是比较麻烦,BIOS通常写在ROM里

      串行访问存储器,读写某个存储单元所需时间与存储单元所在的物理位置有关

      相联存储器(CAM)即可以按内容访问的存储器,可以按照内容检索到存储位置进行读写,“快表”就是一种相联存储器

    4. 按信息的可保存性分类

      易失性存储器,断电后存储信息消失,RAM

      非易失性存储器,断电后信息仍保存,ROM、磁表面存储器、光存储器

      破坏性读出数据后需有再生操作

      破坏性读出 DRAM芯片,读出数据后要进行重写

      非破坏性读出 SRAM芯片、磁盘、光盘

  • 输入单元

    用于向计算机系统输入命令和文本、数据等信息的部件。键盘和鼠标是最基本的输入设备。

  • 输出单元

    用于将计算机系统中的信息输出到计算机外部进行显示、交换等的部件。显示器和打印机是最基本的输出设备。

02 计算机操作系统

操作系统( Operating System,os)是指控制和管理整个计算机系统的硬件和软件资源,并合理地组织调度计算机的工作和资源的分配,以提供给用户和其他软件方便的接口和环境,它是计算机系统中最基本的系统软件。

现在的操作系统引导方式主要有两种:

  1. BIOS引导

    BIOS→BIOS自检→Bootloader→OS

    BIOS是个人电脑启动时加载的第一个软件。其实,它是一组固化到计算机内主板上一个ROM芯片上的程序,它保存着计算机最重要的基本输入输出的程序、开机后自检程序和系统自启动程序,它可从CMOS中读写系统设置的关键信息,比如:主板的设置、键盘、鼠标、外部接口、频率、电源、磁盘驱动器等方面进行参数控制和调整。

    我们常用的调整硬盘或U盘的启动顺序,电源管理的设置或者一些超频设置。都是在BIOS中完成的。

    BootLoader是在操作系统内核运行之前运行。可以初始化硬件设备、建立内存空间映射图,从而将系统的软硬件环境带到一个合适状态,以便为最终调用操作系统内核准备好正确的环境。

  2. UEFI引导

    UEFI→Bootloader→OS

    UEFI全称“统一的可扩展固件接口”,相比传统BIOS来说,它更易实现,容错和纠错特性也更强,从而缩短了系统研发的时间。简单点说,它是一种更高级的BIOS。

03 Linux系统概览

Linux内核+常用软件=Linux发行版本

  • Debian系列
    • Debian
    • Ubuntu
  • Red Hat系列
    • Centos
    • Fedora
    • RHEL
  • Slackware系列
    • SUSE
  • 国产系列
    • 龙芯
    • 鲲鹏
    • 飞腾

Linux系统应用领域

  • IT服务器(操作系统、虚拟化和云计算)
  • 嵌入式和智能设备
  • 个人办公桌面
  • 学术研究与软件研发

04 Linux系统结构

Linux一般有4个主要组成部分

  1. 内核

    1. 内核是硬件与软件之间的中间层
    2. 内核是一个资源管理程序
    3. 内核提供一组面向系统的命令
  2. shell

    shell是一个应用程序,它连接了用户和 Linux 内核,让用户能够更加高效、安全、低成本地使用 Linux 内核,这就是 Shell 的本质。

  3. 文件系统

  4. 应用程序

进程管理

  • 进程是正在执行的一个程序或命令
  • 进程有自己的地址空间,占用一定的系统资源
  • 一个CPU核同一时间只能运行一个进程
  • 进程由它的进程ID(PID)和它父进程的进程(PPID)唯一识别

进程调度

进程调度是指操作系统按某种策略或规则选择占用CPU进行运行的过程。

实质是一种资源分配。

进程调度原则

  • 一个CPU核同一时间只能运行一个进程
  • 每个进程有近乎相等的执行时间
  • 对于逻辑CPU而言进程调度使用轮询的方式执行,当轮询完成则回到第一个进程反复
  • 进程执行消耗时间核进程量成正比

通常有以下两个进程调度方式:

  1. 非剥夺调度方法

非剥夺调度方式,又称非抢占方式。即,只允许进程主动放弃处理机。在运行过程中即便有更紧迫的任务到达,当前进程依然会继续使用处理机,直到该进程终止或主动要求进入阻塞态。

实现简单,系统开销小,但是无法及时处理紧急任务,适合于早期的批处理系统,不能用于分时系统和大多数的实时系统。

  1. 剥夺调度方法

剥夺调度方式,又称抢占方式。当一个进程正在处理机上执行时,如果有一个更重要或更紧迫的进程需要使用处理机,则立即暂停正在执行的进程,将处理机分配给更重要紧迫的那个进程。

*可以优先处理更紧急的进程,也可实现让各进程按时间片轮流执行的功能(通过时钟中断)。适合于分时操作系统、实时操作系统。*采用剥夺式的调度,对提高系统吞吐率和响应效率都有明显的好处。但“剥夺”不是一种任意性行为,必须遵循一定的原则,主要由优先权、短进程优先和时间片原则等。

文件系统

文件系统负责管理持久化数据的子系统,负责把用户的文件存到磁盘硬件中。Linux中一切皆文件

Linux文件系统采用树状的目录结构,最上层是/(根)目录

虚拟文件系统(VFS)

  • 对应用层提供一个标准的文件操作接口

  • 对文件系统提供一个标准的文件接入接口

用户权限

  • 用户账户
    • 普通用户账户:在系统中进行普通作业
    • 超级用户账户:在系统中对普通用户核整个系统进行管理
  • 用户组
    • 标准组:可以容纳多个用户
    • 私有组:只有自己

文件权限关于用户有三个概念:

所有者:文件的所有者

所在组:文件的所有者所在的组

其他人:除文件所有者及所在组外的其他人

每个用户对于文件都有不同权限,包括读(R)、写(W)、执行(X)

05 Linux软件包管理

  • 软件包

    通常指的是一个应用程序,它可以是一个GUI应用程序、命令行工具或(其他软件需要的)软件库

  • 软件包管理

    底层工具:主要用来处理安装核删除软件包文件等人物,DPKG,RPM

    上层工具:主要用于数据的搜索任务核依赖解析任务,APTYUMDNF

操作系统格式软件包管理系统前端工具
Debian.debdpkgapt,apt-get
Ubuntu.debdpkgapt,apt-get
CentOS.rpmrpmyum
Fedora.rpmrpmdnf
openSUSE.rpmrpmzypper

查看linux系统内核版本

  1. uname -a
  2. cat /proc/version

查看Linux系统版本

cat /etc/os-release

查看文件系统类型

df- T df命令报告文件系统磁盘空间利用率

mount mount命令是挂载文件系统用的,不带任何参数运行,会打印包含文件系统类型在内的磁盘分区的信息

文件基本操作

ls 查看文件夹下内容

mkdir demo 创建文件夹demo

mv demo/home 移动demo文件夹到/home

rm -r demo 删除demo文件夹

touch file.txt 创建空文件

cp file.txt file_bak.txt 复制文件

查看用户信息

w 查看当前登录用户信息

groups 查看当前用户所属的组

id xxx 查看用户xxx的uid信息