Linux基础 | 青训营笔记

130 阅读7分钟

Linux 基础

学习的价值:

  • Linux是现代化应用程序交付的首选平台,无论是部署在裸机、虚拟化还是容器化环境
  • 公司内部服务(TCE、 FaaS、SCM)统一使用 Debian Linux系统
  • 熟悉Linux基础指令,熟练运维前端常用服务( Nginx, Node.js )
  • 加深对操作系统概念和实现的理解,夯实基础知识

为什么选择企鹅作为Logo?

企鹅是南极洲的标志性动物,根据国际公约,南极洲为全人类共同所有,不属于当今世界上的任何国家。Linux选择企鹅图案作标志,其含意也是表明:开源的Linux,为全人类共同所有,任何公司无权将其私有。

计算机硬件

计算机由五大基本单元组成:

  • 控制器
  • 运算器
  • 存储器单元
  • 输入单元
  • 输出单元

image.png

计算机操作系统

操作系统:Perating System ,OS。 管理和控制计算机系统中的硬件和软件资源,用于在用户与系统硬件之间传递信息。

常见操作系统:MacOS、Linux、Windows、Android、HarmonyOS

image.png

程序启动需要操作系统来执行,那操作系统本身也是一个程序,那是如何在开机时被执行的呢?

image.png

BIOS ,是英文Basic Input Output System的缩写,即基本输入输出系统,作用是用来初始化硬件设备,从设定的启动上寻找第一扇区(MBR),MBR引导进入操作系统。界面比较简陋,不友好,不支持鼠标操作,没有图形用户界面。

UEFI,是英文Unified Extensible Firmware Interface的缩写,即统一可扩展固件接口,用来定义操作系统与系统固件之间的软件界面,作为BIOS的替代方案,具有图形用户界面,可以支持文件系统,支持鼠标操作,近些年的新电脑都是UEFI。

那么BIOS和UEFI有什么区别呢?

BIOS:有一个自检的流程,会导致系统启动速度变慢。默认会跟 MBR 磁盘分区配合,那么就不能引导启动2T或2T以上的磁盘。

UEFI:优化自检的流程。与 EFI 磁盘分区配合,引导启动大容量磁盘。

Linux发展历程

  • 1969年,Unix 诞生于贝尔实验室
  • 1984年,贝尔实验室将Unix商业化
  • 1984年,Tanenbaum开发Minix操作系统用于教学并开放源码
  • 1984年,Richard M. Stallman发起自由软件(FSF)与GNU项目,起草GPL (通用公共许可)协议
  • 1991年,Linus Torvalds受Minix影响实现初版的Linux内核
  • 1992年,Linux 内核以GPL协议发行V1.0

GNU通用公共许可证简称为GPL,是由自由软件基金会发行的用于计算机软件的协议证书,使用该证书的软件被称为自由软件。大多数的GNU程序和超过半数的自由软件使用它。Linux操作系统以及与它有关的大量软件是在GPL的推动下开发和发布的。

Linux版本

内核版本:作者本人维护

  • 进程管理
  • 内存管理
  • 文件系统管理
  • 硬件资源管理
  • 一系列底层能力.....

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

我们常用的就是Linux发行版本,如CentOS、Ubuntu等。

image.png

查看Linux系统内核版本: uname -a或者cat /proc/version

查看Linux系统发行版本:cat /etc/os-release

系统应用领域

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

Linux基本组成

  • 内核
  • shell
  • 文件系统
  • 应用程序

Linux体系结构

用户态,内核态权限不同。

内核是硬件和软件之间的中间层,内核是一个资源管理程序,内核提供一组面向系统的命令。

image.png

每个小企鹅可以理解为一个进程。每个小狗可以看作是一个进程管理的监控。

image.png

常用端口介绍:

80:HTTP。用于网站服务例如 IIS、Apache、Nginx 等提供对外访问。

8080:代理端口。8080端口同80端口,是被用于 WWW 代理服务的,可以实现网页浏览,经常在访问某个网站或使用代理服务器的时候,会加上“:8080”端口号。另外 Apache Tomcat web server 安装后,默认的服务端口就是8080。

22:SSH。22端口就是 SSH 端口,用于通过命令行模式远程连接 Linux 系统服务器。

3389:3389端口是 Windows Server 远程桌面的服务端口,可以通过这个端口,用“远程桌面”连接工具来连接到远程的服务器。

21:FTP。FTP 服务器所开放的端口,用于上传、下载。

443:HTTPS。网页浏览端口,能提供加密和通过安全端口传输的另一种 HTTP。

进程管理

定义:进程是正在执行的一个程序或命令。

进程有自己的地址空间,占用一定的系统资源;一个cpu核同一时间只能运行一个进程;进程由它的进程ID(PID)和它的父进程(PPID)唯一识别。

查看进程信息

image.png

系统中运行的程序远远大于CPU的核数,那Linux系统是如何实现同时运行这么多 程序的?

image.png

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

进程调度原则:

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

进程的系统调用(会频繁在用户态和内核态之间切换): image.png

文件系统

Linux中一切皆文件。

文件系统时操作系统中负责管理持久数据的子系统,负责把用户的文件存到磁盘硬件中,持久化的保存文件。

统一视为文件,保证了操作或调用统一。

image.png

Linux中有这么多不同的文件系统,如何实现对用户提供统一调用接口的?

Linux在文件系统和接口调用之间新增了一个中间层:虚拟文件系统(VFS)。VFS对应用层提供一个标准的文件操作接口,对文件系统提供一个标准的文件接入接口,抹平不同文件系统之间的差异。

image.png 查看文件系统类型 image.png

一些简单的操作命令 image.png

文件读取流程

读取:会先在用户缓冲区查看是否有要读取的文件,如果有就直接从缓冲区读取,如果没有,就发起一次系统IO,系统会从用户态变成内核态。 image.png

DMA全称Direct Memory Access(直接访问存储器)。这是指一种高速的数据传输操作,允许在外部设备和存储器之间直接读写数据

链接:blog.csdn.net/wyttRain/ar…

系统结构

用户权限

用户账户

  • 普通用户:在系统中进行普通作业
  • 超级用户root:在系统中对普通用户和整个系统进行管理

组账户

  • 标准组:可以容纳多个用户
  • 私有组:只有用户自己

image.png

文件权限

出来第一个类型位之外,后面每三个一组,字母代表该组对应的权限。如所有者对应有w、x、r 权限。 image.png 文件操作

image.png

软件包的管理

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

  • 底层工具:主要用来处理安装和删除软件包文件等任务,如 DPKG、RPM。
  • 上层工具:主要用于数据的搜索任务和依赖解析任务,如 APT、YUM、DNF等。

上层工具就相当于是一个厨师,你告诉他你要吃番茄炒蛋,他就可以自己执行买菜、烹饪等操作任务。

软件包管理工具: image.png

Debian APT 常用命令

image.png

配置软件源(类似于配置npm下载源): image.png

课程总结

image.png