linux基础--字节青训营

158 阅读9分钟
一、计算机硬件

1、主要构成:控制器、运算器、存储器单元、输入单元、输出单元

2、解释

1)控制器:协调指挥其他部件进行工作,控制器负责从内存中获取指令并解释执行。协调计算机中各个部件的工作。控制器和运算器共同组成了cpu。

2)存储器:分为外存和内存,外存举例:磁盘,框区都属于外存。

3)输入单元:包括键盘、鼠标等,它们用于实现用户与计算机之间的交互。

4)输出单元: 显示器,它们用于实现用户与计算机之间的交互。

image.png

二、操作系统

1、操作系统:操作系统需要处理如管理与配置内存、决定系统资源供需的优先次序、控制输入设备与输出设备、操作网络与管理文件系统等基本事务。简单来说就是:管理计算机的硬件和软件,承上启下。

image.png

2、启动流程:通过BIOS,UEFI,可以理解为这两个东西是运行在磁盘上的一段代码。UEFI是通过BIOS的升级版本。

image.png

3、操作系统的主要功能

操作系统的主要功能包括:

  • 硬件管理:操作系统负责管理计算机的硬件资源,如CPU、内存、磁盘、输入输出设备等。
  • 进程管理:操作系统负责管理计算机上运行的进程,包括进程的创建、调度、同步和通信等。
  • 文件管理:操作系统负责管理计算机上的文件和目录,包括文件的创建、删除、读写和保护等。
  • 内存管理:操作系统负责管理计算机的内存资源,包括内存分配、回收和保护等。
  • 设备驱动:操作系统负责管理计算机上的设备驱动程序,以支持各种不同类型的硬件设备。

常见的操作系统有Windows、macOS、Linux等。

三、linux操作系统

(一)linux版本

1、内核版本

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

image.png

(二)、查看linux系统内核版本

方法一: uname -a

方法二: cat /prov/version

image.png

四、linux基本组成

1、内核:主要分为五部分:进程调度,内存管理,虚拟文件系统,网络接口,进程间通信。进程调度 (SCHED) 控制进程对CPU的访问。linux内核的作用概括来说就是它负责管理计算机的硬件和软件资源。

2、shell:命令解释器,通过shell达到与内核的交互,从而达到管理和使用linux的一些资源。

3、文件系统: 将用户文件存入磁盘中。Linux文件系统的设计目的是用来存储文件和管理文件。理念是:一切都是文件。

4、应用:运行在用户空间的应用程序,它们通过系统调用与内核交互,完成各种任务。

五、linux体系结构

linux体系结构主要分为用户空间和内存空间,内核的作用可以概括为:

1、内核是硬件和软件之间的中间层,理解为它负责管理计算机的硬件和软件资源,为应用程序提供服务。

2、内核是一个资源管理程序,它负责管理计算机的内存、CPU、输入输出设备等资源,以确保系统的稳定 运行。

3、内核提供一组面向系统的命令,这些命令可以用来管理系统资源、执行任务和进行系统维护等操作。这些命令通常由系统管理员使用,用来对系统进行管理和维护。

image.png

六、linux系统结构(进程管理)

(一)、进程特点

1、进程是正在执行的程序和命令。

2、进程有自己的地址空间,占有一定的资源。

3、一个cpu核同一时间只能运行一个进程。

4、进程由它的进程ID(PID)和父进程ID(PPID)唯一识别。

qus: 为什么使用父进程创建子进程?

anw: 在Linux系统中,进程的创建是通过父进程调用fork()函数来实现的。这个函数会创建一个新的进程,它是父进程的副本。新创建的子进程会继承父进程的许多属性,但也有一些区别。这种设计可以让操作系统更好地管理和调度进程,因为它可以通过父子关系来组织进程。此外,这种设计也使得进程间通信更加容易,因为父子进程之间可以共享某些资源。

(二)、查看进程信息的命令

1、查看启动的nginx进程:ps -ef | grep nginx

2、查看某个进程:top -p 90384 (进程号)

3、关闭进程:kill 90384 (进程号)

4、全部进程实时动态图: top

image.png

(三)进程调度

image.png

(四)进程调度原则

进程调度是指操作系统在多个进程之间选择一个进程将其送上CPU执行。调度程序通常会遵循一些原则来决定哪个进程应该被执行。这些原则包括:

  1. 所有进程都应该获得公平的CPU时间。
  2. 一个cpu核同一时间只能运行一个进程
  3. 对比逻辑CPU而言,进程调度使用轮询方式执行,当轮询完成则回到第一个进程反复。
  4. 进程执行时间与进程执行量成正比。

额外补充几点

  1. 效率:调度程序应该最大化CPU的利用率。
  2. 响应时间:调度程序应该尽量减少用户等待响应的时间。
  3. 吞吐量:调度程序应该最大化单位时间内完成的进程数量。

根据这些原则,操作系统会采用不同的调度算法来实现进程调度。常见的调度算法包括先来先服务(FCFS)、短作业优先(SJF)、优先级调度、时间片轮转(RR)和多级反馈队列调度(MLFQ)等。

七、linix文件系统

(一)Linux文件系统:是用来存储和管理文件的。

它的设计理念是“一切皆文件”,这意味着在Linux系统中,所有的资源都被视为文件,包括硬件设备。硬件所形成的文件通常称为设备文件。这样用户就可以通过读写文件的方式来访问硬件设备,这样带来的优势也是显而易见的。

例如,linux权限模型也是围绕文件的概念来建立的,所以对设备也就可以同样处理了

Linux文件系统不仅包含着文件中的数据,而且还有文件系统的结构。Linux用户和应用程序看到的文件、目录、软连接及文件保护信息等都存储在其中。此外,Linux文件系统采用树状结构图,方便归类和整理,方便文件的查找和管理

que: linux有很多不同的文件系统,如何完成对外提供统一的API:

ans:虚拟文件系统,虚拟文件系统是一个内核软件层,它为用户程序提供文件和文件系统操作的统一接口,屏蔽不同文件系统的差异和操作细节。它的作用是处理与 linux 标准文件系统相关的所有系统调用,并为各种文件系统提供一个通用的接口

(二)查看文件系统的命令:

1、df -T / mount: 查看文件系统的磁盘利用率

2、ls: 查看文件夹下内容

3、mkdir: 创建文件夹

4、rmdir:删除空目录

5、cp:复制文件或目录。

6、 mv:移动或重命名文件或目录。

7、touch:创建空文件或更改文件时间戳。

额外补充一些基础命令:

  • pwd:显示当前工作目录。
  • cat:查看文件内容。
  • more/less:分页查看文件内容。
  • head/tail:查看文件的开头/结尾部分内容。
  • nano/vi/vim: 编辑文本文件。

(三)文件读取流程

读取文件流程概括:

  1. 应用程序通过系统调用(如read)发起文件读取请求。
  2. 内核接收请求并检查文件描述符是否有效,以及用户是否有权限访问该文件。
  3. 内核检查文件数据是否已经缓存在页缓存(page cache)中。如果是,则直接从页缓存中读取数据;否则,内核将文件数据从磁盘读取到页缓存中。这一步可以通过DMA技术来加速。
  4. 内核将文件数据从页缓存复制到应用程序的用户空间缓冲区。
  5. 应用程序可以访问用户空间缓冲区中的文件数据。

需要理解的几个概念:

DMA:是一种硬件技术,它允许某些硬件子系统(如磁盘控制器)在不经过CPU的情况下直接访问系统内存。这样可以减少CPU的负担,提高数据传输效率。

在文件读取流程中,DMA可以用来将数据从磁盘直接传输到内存中的文件读取缓冲区,而不需要经过CPU。这样可以大大提高文件读取的速度

image.png

八、linux用户权限

(一)用户账户

image.png

1、w:显示当前登录用户的信息。

2、groups: 查看当前用户所属的组

3、id:显示当前用户的UID、GID和所属组。

(二)文件权限

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

image.png

九、linux软件包管理

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

2、软件包管理

底层工具:主要用来处理安装和删除软件包文件等任务,DPKG, RPM

上层工具:主要用于数据的搜索任务和依赖解析任务,APT, YUM, DNF

ps: 不同的Linux发行版使用不同的软件包管理系统来管理软件包,常见的有apt(用于Debian、Ubuntu等)、yum(用于Red Hat、CentOS等)、pacman(用于Arch Linux等)等。

上层工具相当于 把底层工具要做的事情做好了。

image.png

(二)、Debian APT常用命令

1、列出所有可更新的软件清单命令: apt update

2、安装指定的软件命令: apt install <package. name>

3、安装多个软件包: apt install <package_1> spackape_2> <package_3>

4、更新指定的软件命令; apt update <packape_name>

5、删除软件包命令: apt remove <package_name>

6、查找软件包命令: apt search

7、列出所有已安装的包: apt list --Installed

(三)Debian 配置软件源

image.png