Linux是一种开源技术,学习Linux基础也可以让人们深入理解开源技术的实践和理念,有利于在开源领域发挥自己的优势。
通过学习Linux命令行,可以更加高效地管理和操作Linux系统,包括文件管理、进程控制、软件安装等方面。
Linux基本组成
- 内核:提供操作系统的底层能力,内存管理、进程管理、文件系统管理、硬件资源管理
- shell:命令解释器,通过shell输入指令来实现与内核的交互,从而达到管理或使用Linux中的资源
- 文件系统:负责把用户的文件存在磁盘中去
- 应用程序:运行的程序
进程管理
- 进程是正在执行的一个程序或命令
- 进程有自己的地址空间,占有一定的系统资源(CPU、内存)
- 一个CPU核同一时间只能运行一个进程
- 进程是由它的进程ID(PID)和它父进程的进程ID(PPID)唯一识别
进程调度
利用进程调度实现同时运行多个程序。
进程调度是指操作系统按某种策略或规则选择进程占用CPU进行运行的过程。
进程的系统调用
内核空间(内核态):系统内核运行的空间
用户空间(用户态):应用程序运行的空间
简单来说,用户程序会频繁的在用户态和内核态之间切换,使得应用程序能够读取到硬件平台的资源,或是调用内核态的资源。
文件系统
文件系统是操作系统中负责管理持久数据的子系统,负责把用户的文件存到磁盘硬件中,持久化的保存文件。
“一切皆文件” 保证了所有对文件的操作统一,接口调用统一。
- Linux文件系统是采用树状的
- bin可执行命令
- dev设备文件目录
- root超级管理员权限目录
- home用户信息目录
虚拟文件系统
通过虚拟文件系统(VFS)实现接口调用统一。
VFS作为中间层磨平各个不同文件之间的差异。