字节跳动前端青训营笔记|Linux系统基础

字节跳动前端青训营笔记|Linux系统基础

青训营第二天笔记打卡

计算机硬件
计算机操作系统
Linux系统概览
Linux系统结构
Linux系统软件包管理器

计算机硬件

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

  1. 控制器:用于协调和指挥计算机中其他部件进行工作
  2. 运算器:进行算术和逻辑运算
  3. 存储器单元:内存、外存
  4. 输入单元:键盘、鼠标
  5. 输出单元:显示器、音箱

计算机操作系统

操作系统(Operating System, OS)
管理和控制计算机系统中的硬件和软件资源,用于在用户与系统硬件之间传递信息【承上启下】
有如下图两种功能:

联想截图_20230414214509.png

问题引出:
程序启动必须有操作系统来执行,而操作系统本身也是一个程序,是如何在开机的时候被执行的呢?

启动流程分为两类,第二种主流:

BIOS/UEFI 固化在主板上的一段程序,主要作用是让计算机在开机的时候就能执行或解析到这段程序。找到并运行Bootloader。
Bootloader:操作系统启动程序

Linux版本
内核版本:作者本人维护,提供底层能力
发行版本:在内核版本基础上加上一些常用软件

查看当前的Linux是什么系统,内核版本的命令:
#方法一
uname -a
#方法二
cat /proc/version

联想截图_20230416112942.png
查看Linux发行版本
cat /etc/os-release

联想截图_20230414220025.png
Linux 系统应用领域
IT 服务器(操作系统、虚拟化和云计算)
嵌入式和智能设备
个人办公桌面
学术研究与软件开发

Linux系统基本组成
内核:提供核心能力
shell:命令解释器,输入一些命令来实现和Linux内核的交互
文件系统:负责把用户的文件存储到磁盘中
应用程序:在Linux上运行的一些程序

Linux体系结构
如图:

联想截图_20230414215625.png
内核模块应用于内核空间(最高级权限,访问硬件设备的权限,对系统资源管理的权限),应用程序应用于用户空间(不能直接访问内存和资源设备)【处于用户态】

发起系统调用后,程序会从用户态变为内核态,有了最高权限,可与各种硬件设备通信,完成任务后,程序从内核态切换回用户态。【系统调用过程】

联想截图_20230414220233.png

内核:
硬件和软件之间的中间层,实现硬件和软件之间的交互。
内核是一个资源管理程序,包括进程管理、内存管理、虚拟文件系统、网络堆栈等。

联想截图_20230414221012.png

Linux系统结构 (进程管理)

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

联想截图_20230416090024.png
第四点:当Linux开启一个进程的时候,是可以通过父进程来拉进它的子进程的【将父进程作为模板创建一个新进程,将此进程创建出来的系统资源映射到新进程之中】

查看进程信息的命令:

ps -ef | grep nginx
#查看启动的nginx进程
top -p 93824
#查看某个进程
kill 93824
#关闭指定的进程
top
#全部进程动态实时视图

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

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

联想截图_20230416090911.png
进程的状态:(如图)

联想截图_20230416091150.png
进程调度原则:

  1. 一个CPU核同一时间只能运行一个进程
  2. 每个进程有近乎相等的执行时间
  3. 对于逻辑CPU而言进程调度使用轮询的方式执行,当轮询完成则回到第一个进程反复【保证每个进程都会被执行】
  4. 进程执行消耗时间和进程量成正比

进程的系统调用
内核空间(Kernal Space):系统内核运行的空间
用户空间(User Space):应用程序运行的空间
文字描述见上述笔记,如图:

联想截图_20230416091852.png

Linux系统结构(文件系统)

是操作系统中负责管理持久数据的子系统,负责把用户的文件存到磁盘硬件中,持久化的保存文件。
Linux中一切皆文件:【保证了操作统一】
普通文件、目录、硬件设备、套接字(网络连接)

采用树状的目录结构,最上层是/(根)目录。如图:

联想截图_20230416092815.png

问题思考:Linux有这么多不同的文件系统,如何时间对用户提供统一调用接口的?

虚拟文件系统(VFS)【一个中间层,用于抹平不同文件的差异】
对应用层提供一个标准的文件操作接口
对文件系统提供一个标准的文件接入接口

查看文件系统类型
df -T
mount
如图:

联想截图_20230416093333.png
文件基本操作:
ls #查看文件夹下内容
mkdir demo #创建文件夹
mv demo /home #移动demo文件夹到/home
rm -r demo #删除demo文件夹
touch file.txt #创建空文件
cp file.txt file_bak.txt #复制文件

文件读取流程
DMA njx Socket
DMA:可以直接和磁盘交互,获取磁盘中的一些数据,将磁盘上的一些数据写到内核缓冲区
缓冲区:减少对系统的调用次数、集中调用、提高系统性能

Linux的用户权限
用户账户
普通用户账户:在系统中进行普通作业
超级用户账户:在系统中对普通用户和整个系统进行管理

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

查看用户信息
#查看当前登录用户信息
w
#查看当前用户所属的组
groups
#查看用户的uid 信息
id xxxx
如图:
联想截图_20230416095029.png

文件权限
关于用户:
所有者:文件的所有者
所在组:文件的所有者所在的组
其他人:除文件所有者及所在组外的其他人

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

联想截图_20230416095527.png

Linux软件包

软件包:通常指的是一个应用程序,它可以是一个GUI应用程序、命令行工具或(其他软件程序需要的)软件库
软件包管理:
底层工具:主要用来处理安装和删除软件包文件等任务,DPKG,RPM
上层工具:主要用于数据的搜索任务和依赖解析任务,APT,YUM,DNF
软件包管理工具
RPM(Red Hat Package Manager),为Red hat操作系统的包管理系统
DPKG(Debian package),为Debian操作系统的包管理系统
如图:

联想截图_20230416100918.png

Debian APT常用命令:
如图

联想截图_20230416101943.png
—Debian配置软件源
通常Debian系的linux软件源配置文件:/ect/apt/sources.list 如图:

联想截图_20230416102234.png

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值