Liunx基础
学习Linux的价值
·Linux是现代化应用程序交付的首选平台,无论是部署在裸机、虚拟化还是容器化环境
·公司内部服务(TCE、FaaS、SCM)统一使用Debian Linux系统
·熟悉Linux基础指令,熟练运维前端常用服务(Nginx,Node.js)
·加深对操作系统概念和实现的理解,夯实基础知识
01 计算机硬件
计算机由五大基本单元组成
·控制器:是整个计算机的中枢神经,是计算机的控制系统
其功能是对程序规定的控制信息进行解释,根据其要求进行控制,
调度程序、数据、地址,协调计算机各部分工作及内存与外设的访问等。
·运算器:是计算机的运算系统,运算器的功能是
对数据进行各种算术运算和逻辑运算,即对数据进行加工处理。
·存储器单元:是计算机存储系统
1.内存:比如内存条,基于电存取数据,断点数据全部丢失,用于临时保存数据,存取速度快
2.外存:用于永久保存数据,断电数据仍然存在
a.机械硬盘:存取数据慢,基于磁存取数据
b.固态硬盘(SSD):依赖电子存取数据,相对机械硬盘速度较快
·输入单元:是向计算机输入数据和信息的设备,键盘、鼠标、麦克风等等
·输出单元:显示器、耳机、打印机等等
五大基本单元的配合工作
02 计算机操作系统
操作系统(Operating System,OS)
管理和控制计算机系统中的硬件和软件资源,用于在用户与系统硬件之间传递信息
承上:在操作系统之上运行我们的应用程序
启下:通过操作系统直接与系统硬件进行交互
操作系统启动流程
程序启动必须有操作系统来执行,那操作系统本身也是一个程序,那是如何在开机时被执行的呢?
分为两类:一类是基于BIOS去引导操作系统启动的一个传统模式;
一类是基于UEFI去引导操作系统启动的一个主流模式。
BIOS,UEFI是固化在主板上的一段程序,主要作用是能够让计算机在开机的时候,就能够去执行和解析
程序,当这段程序启动以后,会进行一系列的初始化动作,然后去找Bootloader(操作系统的引导程序
),找到并运行这段程序,在Bootloader运行后,通过Bootloader加载和运行相应的OS。
区别:
UEFI其实是BIOS的一个优化和升级的版本,BIOS本身有一些限制和问题,BIOS在开机的时候会有一
个自检,会导致启动的速度变慢。BIOS不支持从硬盘2TB以上的地址引导:受限于BIOS硬盘的寻址
方式,BIOS硬盘采用32位地址,因而引导扇区的最大逻辑块地址是232
03 Linux系统概览
1.Linux发展简史
1.1969年,Unix诞生于贝尔实验室
2.1984年,贝尔实验室将Unix商业化
3.1984年,Tanenbaum开发Minix操作系统用于教学并开放源码
4.1984年,Pichard M.Stallman发起自由软件(FSF)与GNU项目,起草GPL(通用公共许可)协议
5.1991年,Linus Torvalds受Minix影响实现初版的Linux内核
6.1992年,Linux内核以GPL协议发行V1.0
2.Linux版本
内核版本:由作者本人去维护的一个版本,是操作系统一块的核心,提供了包括进程管理、内存管理、文件系统管理以及硬件系统管理等一系列的底层能力
发行版本:Linux内核 + 常用软件
3.查看Linux系统内核版本
方法一:uname -a
方法二:cat /proc/version
cat /etc/os-release 查看Linux发行版本
Linux系统应用领域
·IT服务器(操作系统、虚拟化和云计算)
·嵌入式和智能设备
·个人办公桌面
·学术研究与软件研发
04.Linux基本组成
Linux系统一般有4个主要部分
·内核、shell、文件系统、应用程序
Linux体系结构
·内核是硬件与软件之间的中间层
·内核是一个资源管理程序
·内核提供一组面向系统的命令
04 Linux系统结构———进程管理
·进程是正在执行的一个程序或命令
·进程有自己的地址空间,占用一定的系统资源
·一个CPU核同一时间只能运行一个进程
·进程由它的进程ID(PID)和它父进程的进程ID(PPID)唯一识别
查看进程信息
·查看启动的nignx进程
ps -ef | grep nginx
·查看某个进程
top -p 93824
·关闭指定的进程
kill 93824
·全部进程动态实时视图
top
系统中执行的程序远远大于CPU的核数,那Linux系统是如何实现同时运行这么多程序的?
进程调度(操作系统按某种策略或规则选择进程占用CPU进行运行的过程)来实现
进程状态:
·R(TASK_RUNNING),可执行状态
·S(TASK_INTERRUPTIBLE),可中断的睡眠状态
·D(TASK_UNINTERRUPTIBLE)不可中断的睡眠状态
·T(TASK_STOPPED or TASK_TRACED)暂停状态或跟踪状态
·Z(TASK_DEAD-EXIT_ZOMBIE)退出状态,进程成为僵尸进程
·X(TASK_DEAD-EXIT_DEAD)退出状态,进程即将被销毁
进程调度原则
·一个CPU核同一时间只能运行一个进程
·每个进程有近乎相等的执行时间
·对于逻辑CPU而言进程调度使用轮询的方式执行,当轮询完成则回到第一个进程反复
·进程执行消耗时间和进程量成正比
进程的系统调度
内核空间(Kernal Space):系统内核运行的空间
用户空间(User Space):应用程序运行的空间
04 Linux系统结构——文件系统
Linux中一切皆文件
文件系统是操作系统中负责管理持久数据的子系统,负责把用户的文件存到磁盘硬
件中,持久化的保存文件。
Linux文件系统是采用树状的目录结构,最上层/(根)目录
Linux有这么多不同的文件系统,如何实现对用户提供统一调用接口的?
虚拟文件系统(VFS)
·对应用层提供一个标准的文件操作接口
·对文件系统提供一个标准的文件接入接口
查看文件系统类型
文件读取流程
04 Linux系统架构——用户权限
用户账户
·用户账户
普通用户账户:在系统中进行普通作业
超级用户账户:在系统中对普通用户和整个系统进行管理
·组账户
标准组:可以容纳多个用户
私有组:只有用户自己
查看用户信息
04_文件权限
文件权限关于用户有三个概念
所有者:文件的所有者
所在组:文件的所有者所在的组
其他人:除文件所有者及所在组外的其他人
每个用户对于文件都有不同的权限,包括读(R)、写(W)、执行(X)
04_用户权限操作
05 Liunx软件包管理
·软件包
通常指的是一个应用程序,它可以是一个GUI应用程序、命令行工具或(其他软件程序需要的)软件库
·软件包管理
底层工具:主要用来处理安装和删除软件包文件等任务,DPKG,RPM
上层工具:主要用于数据的搜索任务和依赖解析任务,APT,YUM,DNF
05_软件包管理工具
·RPM(Red Hat Package Manager),为 Red hat操作系统的包管理系统
·DPKG (Debian package),为Debian操作系统的包管理系统
05_Debian APT常用命令
·列出所有可更新的软件清单命令:apt update
·安装指定的软件命令: apt install <package_name>
·安装多个软件包: apt install <package_1> <package_2> <package_3>
·更新指定的软件命令: apt update <package_name>
·删除软件包命令:apt remove <package_name>
·查找软件包命令: apt search <keyword>
·列出所有已安装的包: apt list --installed