Linux基础 | 青训营笔记

70 阅读4分钟

Linux以企鹅为logo,表达其开源思想。GPL:通用公共许可)协议

计算机硬件 组成:

控制器
运算器
存储器单元(内、外存)
输入单元
输出单元

计算机操作系统 (OS,Operating System)

useage:

 控制管理计算机系统中硬件和软件资源,用于用户和系统硬件间传递信息。计算机中最大软件。起承上启下作用。
 具体例子:Linux, Apple ,Android, HarmonyOS
 操作系统的执行:
         1、BIOS-BIOS自检-Boodloader-OS
         2  UEFI-Boodloader-OS 
 

Linux部分:

版本:内核版本(作者本人维护)与发现版本    内核版本+Linux内核=Linux发行版本

image.png

代码部分:
查看Linux内核版本:
    1、name -a 
    2、cat/proc/version
cat/etc/os-release #查看Linux系统版本 
应用领域:IT服务器、嵌入式和智能设备、个人办公桌面、学术研究与研发
结构:
   内核:提供操作系统底层能力。内存、进程、文件系统、硬件资源的管理
   shell:命令解释器。通过shell输入指令实现与内核的交互。
   文件系统:将用户文件存到磁盘
   应用程序:DIM...
体系结构:(安全与权限方面的考虑)
   用户空间:用户态
   内核空间:内核态

内核漫画 image.png

Linux系统结构

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

命令:

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

image.png

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

image.png 调用原则:

    一个CPU核同一时间只能运行一个进程
    每个进程有几乎相等的执行时间
    对于逻辑CPU而言进程调度使用轮询的方式执行,当轮询完成则回到第一个进程反复(队列形式,保住低优先级的进程也会被执行)
    进程执行消耗时间和进程度成正比

进度过程的系统调用:

内核空间Kernal Space:系统内核运行空间
用户空间User Space:应用程序运行空间
  

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

Attention:Linux中一切皆文件。保证对文件的操作统一,接口调用的统一。
树状结构: 最上层是/(根)目录
虚拟文件系统(VFS)

指令:

df -T  #报告文件系统磁盘空间利用率
mount  #挂载文件系统使用的,不带任何参数运行,会打印包含文件系统类型在内的磁盘分区信息

文件基本操作:

image.png

文件读取流程:具体看图 image.png

术语DMA:直接存储访问。可直接与磁盘进行交互,获取磁盘数据,将磁盘数据写入内核缓冲区。
缓冲区:减少对系统的调用次数,集中调用,提高系统性能

用户权限

用户账号
 普通用户:在系统中进行普通作业
 超级用户账号:在系统中对普通用户和整个系统进行管理
组账户
  标准组:可以容纳多个用户
  私有组:只有用户自己
 代码部分:
         w          #查看当前用户信息
         groups     #查看当前用户所属组(p.s.一个用户可以属于多个组)
         id xxxx    #查看当前用户uid

文件权限

所有者:
所有组:
其他人:
每个用户对用户有不同权限,包括r,w,x(执行)
e.g.

image.png 代码部分: image.png 注释:chown 改变该文件夹所拥有用户。

软件包管理

软件包::通常指一个应用程序,为GUI应用程序、命令行工具或(其他软件程序需要的)软件库
软件包管理:底层工具:主要用于安装和删除软件包文件等任务,DPKG,RPM
           上层工具:主要用于数据的搜索任务和依赖解析任务,APT,YUM,DNF
 

image.png

Debian APT常用命令

image.png

Debian配置软件源

image.png

Linux是广泛应用的一种操作系统。本文的内容主要复现了老师上课所讲。如果你看到这里,你会发现,虽然本文有不少代码方面的例子,但是这显然不是文章的重点。这节课有很大一部分讲操作系统,着重介绍了Linux作为一个强大、广泛应用的操作系统的特性。课程很棒的一点是从安全性的角度引出了用户权限、文件权限的内容。——这门课对我来说重要的是对操作系统,尤其是Linux操作系统的介绍。它使我得以从一角窥见计算机世界内的东西。计算机科学里边的理论很有趣,我们一起探索!