Linux学习笔记day1
Linux系统主要由内核、GNU工具、图形桌面环境和应用软件四部分组成。内核负责内存管理、进程控制、硬件驱动和文件系统;GNU工具提供文件处理、文本操作和进程管理功能;Shell作为交互界面支持命令执行和脚本编程;图形桌面环境提供可视化操作界面。Linux支持多种文件系统和Shell类型,其模块化设计使其具有高度灵活性和可扩展性。服务器环境通常省略图形界面以节省资源。
1. 认识 Linux
Linux 可以分为四个主要部分:Linux 内核、图形桌面环境、GNU 工具、应用软件。这四位各司其职。
系统架构流转图
[ 应用软件 ]
│
├─► 扩展系统功能
▼
[ 图形桌面环境 ]
│
├─► 提供可视化操作管理软件界面
▼
[ GNU 工具 ]
│
├─► 用以操作文件/文本的工具
├─► 用以管理进程的工具
▼
[ Linux 内核 ]
│
├─► 管理:系统内存、软件程序、硬件设备、文件系统
▼
[ 底层硬件 ]
(主板、CPU等)
2. Linux 内核 (Kernel) 的四个主要功能
内核是整个系统的核心,管理着硬件和软件,以下是四个主要功能:
① 系统内存管理
这是内核的主要功能,管理着物理内存与虚拟内存。
基本原理:内核通过硬盘上的空间来实现虚拟内存,这块区域叫 交换空间 (Swap);物理内存与 Swap 分区之间不断地交换“页”。简单来说,就是将应用动态生成的、且硬盘上没有对应文件的纯粹的内存数据进行转移。
内存交换示意图
┌──────────────────────────────┐
│ 虚拟内存 │
│ (内核记录哪些页面正在使用, │
│ 自动将未使用的页面复制到 │
│ Swap 分区) │
└──────────────┬───────────────┘
│ 交互
▼
【 Linux 内核 】
▲ ▲
交互 │ │ 交互
│ │
┌─────────────────────┘ └──────────────────────┐
▼ ▼
┌───────────────────────┐ ┌─────────────────────┐
│ 物理内存 │ │ 交换空间 │
│ (按组划分内存为块, │ │ (Swap) │
│ 叫做“页”) │ │ │
└───────────────────────┘ └─────────────────────┘
② 软件程序管理
在 Linux 系统中运行的程序叫进程。
-
内核控制着所有进程。
-
内核创建了
init进程,也叫第一个进程。 -
内核启动的时候,它会将
init进程加载到虚拟内存中;在启动任何新进程的时候,都会在虚拟内存中分配一块专门的区域给新进程存储数据。
③ 硬件设备管理
任何需要与之通信的设备都在内核注入其驱动程序,让系统认识设备。在内核中注入驱动程序有两种方法:
-
编译进内核的设备驱动代码。
-
可插入内核的设备驱动模块。
设备文件分类 Linux 系统将硬件设备当成特殊文件,叫设备文件,分三类:
-
字符型设备文件:每次处理数据时只能处理一个字符的设备。
-
块设备文件:每次处理数据时能处理大块数据的设备。
-
网络设备文件:采用数据包发送和接收数据的设备。
节点与设备号 Linux 为每个设备都创建一种名为节点的特殊文件。每一个节点都有一个唯一的数据对,对应的 Linux 内核标识它。
-
数据对包括一个主设备号与次设备号。
-
类似的设备会被划分到同样的主设备号下,降低代码冗余,防止路由表爆炸。
④ 文件系统管理
不同于 Windows 系统,Linux 支持不同类型的文件系统的读写,除了 Linux 自带的多种文件系统外,还支持其他操作系统的文件系统。
Linux 支持的文件系统列表:
|
序号 |
格式 |
说明 |
|---|---|---|
|
1 |
|
Linux 扩展文件系统 |
|
2 |
|
第二扩展文件系统 (包含后续的 ext3, ext4) |
|
3 |
|
OS/2 高性能文件系统 |
|
4 |
|
ISO9660 光盘文件系统 |
|
5 |
|
IBM 日志文件系统 |
|
6 |
|
MINIX 文件系统 |
|
7 |
|
微软的 FAT16 文件系统 |
|
8 |
|
Netware 文件系统 |
|
9 |
|
网络文件系统 |
|
10 |
|
支持微软的 NT 文件系统 |
|
11 |
|
访问系统内核信息的虚拟文件系统 |
|
12 |
|
提供更好性能的文件系统 |
|
13 |
|
支持网络访问的共享文件系统 |
|
14 |
|
较早期的 Unix 的文件系统 |
|
15 |
|
BSD 文件系统 |
|
16 |
|
建立在 msdos 上的文件系统 |
|
17 |
|
就是 FAT32 文件系统 |
|
18 |
|
高性能 64 位日志文件系统 |
注: Linux 内核采用 虚拟文件系统 (VFS) 作为和每个文件系统交互的接口。为任何类型文件系统通信提供一个标准接口。
3. GNU 工具与 Shell
GNU 工具
GNU 组织开发了一套完整的 Unix 工具,除了执行一些标准功能,还提供了控制文件程序的工具。核心是 Coreutils 软件包,其中包括:
-
用以处理文件的工具
-
用以操作文本的工具
-
用以管理进程的工具
Shell
Shell 工具是一种特殊的交互工具,为用户提供了启动程序和管理文件系统的途径。
-
命令行提示符:Shell 的核心是命令行提示符。它允许用户输入文本命令,由其解释并且执行。
-
内部命令:Shell 包含了一组内部命令,用这些命令可以完成对系统和文件系统的基本管理。
-
Shell 脚本:也可以将多个 shell 命令放入文件中作为程序进行执行,也就是 shell 脚本。可以完成一些自动化的功能。
常见的 Shell 种类 在 Linux 系统上,有好几种 Shell 可供使用,各个 shell 的特性各不相同,所有默认的 shell 基本上是 bash。除了基本的 bash shell 还有另几种 shell 如下:
-
ash: 一种运行在内存受限环境中间的轻量级 shell。 -
korn(ksh): 支持关联数组和浮点计算的高级编程特性。 -
tcsh: 一种将 C 语言中的一些元素引入到 Shell 脚本中的 shell。 -
zsh: 拥有上面三种的特性,同时提供高级编程语言的特性。
4. Linux 桌面环境
Linux 桌面环境其实就是提供了一个类似于 Windows 图形化的操作界面的工具。
-
弊端:会浪费一些系统资源。所以在纯粹的服务器管理中通常不用。
openEuler 是由开放原子开源基金会孵化的全场景开源操作系统项目,面向数字基础设施四大核心场景(服务器、云计算、边缘计算、嵌入式),全面支持 ARM、x86、RISC-V、loongArch、PowerPC、SW-64 等多样性计算架构
更多推荐


所有评论(0)