【Linux】(1)—进程概念-②Linux中的操作系统概念
提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档
文章目录
- 前言
- 一、Linux中的操作系统概念?
前言
一、操作系统的本质与核心作用
操作系统(Operating System,简称OS)作为计算机系统的核心软件,承担着承上启下的关键角色。它既是硬件资源的管理者,也是为用户和应用程序提供服务的基础平台。
1.1 操作系统的双重身份
硬件扩展器:操作系统通过抽象硬件细节,将复杂的硬件操作封装成简单的接口。例如:
-
将磁盘块管理抽象为"文件"概念
-
将物理内存管理抽象为虚拟地址空间
-
将各种网络设备统一为套接字接口
资源协调者:在多任务环境中,操作系统负责:
-
CPU时间分配(进程调度)
-
内存空间分配与回收
-
外设访问权限控制
-
文件系统空间管理
1.2 操作系统的核心功能模块
现代操作系统通常包含以下关键子系统:
-
进程管理:创建、调度、同步进程/线程
-
内存管理:虚拟内存、分页/分段机制
-
文件系统:数据持久化存储与管理
-
设备驱动:硬件设备的抽象与访问控制
-
网络通信:实现系统间数据交换
-
安全机制:用户认证、访问控制、数据加密
二、Linux在操作系统谱系中的定位
2.1 从Unix到Linux的历史沿革
Linux诞生于1991年,由Linus Torvalds开发,其设计遵循了Unix哲学:
-
"一切皆文件"的抽象理念
-
小型、单一目的的程序构成系统
-
通过管道组合简单工具完成复杂任务
-
文本流作为通用接口
与Unix的差异:
-
完全开源(GPL协议)
-
不包含原始Unix代码
-
支持更多硬件平台
-
更活跃的开发社区
2.2 Linux的系统架构定位
Linux采用宏内核(Monolithic Kernel)设计,但通过模块化实现了灵活性:
复制
下载
|---------------------------| | 用户应用程序 | |---------------------------| | 系统调用接口 (glibc等) | |---------------------------| | 进程管理 | 内存管理 | 文件系统 | | 网络协议栈 | 设备驱动 | ... | |---------------------------| | 硬件抽象层 | |---------------------------| | 物理硬件 | |---------------------------|
关键特性:
-
模块化设计:内核可动态加载/卸载模块
-
可移植性:支持从嵌入式设备到超级计算机
-
多用户多任务:完善的权限控制和进程隔离
-
符合POSIX标准:保证应用程序兼容性
三、Linux的核心设计理念
3.1 Unix哲学的延续与扩展
Linux继承了Unix的核心设计哲学并有所发展:
-
KISS原则(Keep It Simple, Stupid)
-
示例:Linux的命令行工具普遍功能单一
-
ls
只负责列出目录内容 -
grep
只负责文本搜索 -
通过管道组合实现复杂功能
-
-
透明性原则
-
系统状态可通过文本文件查看
-
/proc
文件系统暴露内核信息 -
日志系统记录详细运行信息
-
-
组合优于继承
-
Shell脚本组合简单命令
-
管道和重定向机制
-
过滤器模式(filter pattern)
-
3.2 Linux特有的设计选择
-
"一切皆文件"的扩展实现
-
普通文件:
/home/user/file.txt
-
设备文件:
/dev/sda
-
进程信息:
/proc/[pid]/
-
系统参数:
/sys/
-
-
开放的文件描述符设计
c
复制
下载
int fd = open("/dev/input/mice", O_RDONLY); read(fd, &event, sizeof(event));
统一了各类资源的访问接口
-
虚拟文件系统(VFS)抽象层
-
统一接口访问不同文件系统
-
支持ext4、XFS、Btrfs等数十种文件系统
-
允许用户空间文件系统(FUSE)
-
四、Linux作为现代操作系统的典型代表
4.1 多范式支持能力
Linux成功融合了多种计算范式:
-
多用户分时系统:通过用户权限隔离实现
-
多任务操作系统:完善的进程调度器
-
实时系统:RT-Preempt补丁支持硬实时
-
分布式系统:强大的网络协议栈
-
嵌入式系统:通过裁剪适应资源受限环境
4.2 可扩展性设计
Linux通过以下机制实现卓越的扩展性:
-
系统调用过滤(seccomp)
-
能力机制(Capabilities)
-
命名空间隔离(Namespaces)
-
PID命名空间:隔离进程视图
-
网络命名空间:独立网络栈
-
挂载命名空间:独立文件系统视图
-
-
控制组(cgroups)
-
资源配额管理
-
进程组隔离
-
4.3 安全模型演进
Linux安全机制经历了多个发展阶段:
-
传统Unix权限模型
-
用户/组/其他三级权限
-
读/写/执行三种权限
-
-
POSIX能力机制
-
细分特权到具体操作
-
示例:CAP_NET_ADMIN网络管理权限
-
-
LSM框架(Linux Security Modules)
-
支持SELinux、AppArmor等
-
强制访问控制(MAC)实现
-