当前位置: 首页 > news >正文

操作系统学习(十三)——Linux

一、Linux

Linux 是一种类 Unix 的自由开源操作系统内核,由芬兰人 Linus Torvalds 于 1991 年首次发布。如今它广泛应用于服务器桌面嵌入式设备移动设备(如 Android)等领域。

设计思想:

原则描述
模块化与可移植性Linux 内核高度模块化,可运行在多种硬件架构上(x86, ARM, RISC-V 等)
一切皆文件包括设备、进程、网络连接,都抽象为文件接口
多用户、多任务同时支持多个用户和进程,彼此独立
开源与协作开发遵循 GNU GPL 协议,全世界开发者可参与贡献
安全与权限控制严格的访问权限和用户隔离机制
稳定与高性能尤其在服务器环境中表现优越

二、Linux 系统结构

整体架构图:

在这里插入图片描述

三、Linux 内核关键子系统

1. 进程管理

  • 支持 进程、线程(轻量级进程)
  • 使用 CFS(完全公平调度器) 实现调度;
  • 通过 fork()exec() 等创建和控制进程。

2. 内存管理

  • 支持分页、虚拟内存、内存映射(mmap());
  • 提供交换空间(Swap);
  • 高效的内存分配器(如 SLAB)。

3. 文件系统(VFS)

  • 虚拟文件系统(VFS)将具体文件系统(ext4, xfs, FAT32抽象统一接口
  • 所有资源(文件、设备、网络)通过统一的文件描述符访问;
  • 支持挂载机制、权限控制、缓存机制。

4. 设备管理

  • 使用字符设备、块设备模型;
  • 所有设备映射为 /dev/ 下的特殊文件;
  • 支持驱动模块动态加载modprobe, insmod)。

5. 中断与系统调用

  • 异步设备通过中断处理器触发响应
  • 用户空间通过系统调用接口(如 read(), write())访问内核服务。

6. 网络栈

  • 完善的 TCP/IP 协议栈;
  • 支持路由、防火墙(iptablesnftables)、VPNSocket通信等。

四、Linux 内核开发模型

  • 内核源码托管在 kernel.org;

  • 使用 Git 进行协作,主要分支由 Linus 主持;

  • 采用“补丁提交 + 审核合并”方式,全球开发者可贡献代码。

  • 内核版本:

    • LTS(长期支持版);
    • 主线版(每 2-3 月更新一次)。

五、Linux 的发行版(Distros)

Linux 并不是一个完整操作系统,而是内核
各发行版将内核与各种用户空间工具组合,形成完整系统。

类型代表发行版特点
通用桌面Ubuntu, Fedora, Debian适合普通用户,有图形界面
服务器CentOS, RHEL, Ubuntu Server稳定、安全、适合服务部署
滚动更新Arch, Manjaro包新、自由度高,适合高级用户
极简嵌入式OpenWRT, BusyBox, Alpine轻量、适合IoT和容器

六、Linux 的优势与挑战

优势:

  • 开源免费,灵活定制;
  • 安全性好(多用户、权限严格);
  • 社区支持强大,驱动更新快;
  • 大量企业应用与云计算依赖(如 Docker、Kubernetes)。

挑战:

  • 初学者学习曲线相对陡峭
  • 驱动支持相较 Windows 少(部分专有硬件);
  • 桌面体验(GUI)部分仍不如 macOS/Windows 统一。

七、应用领域

领域说明
服务器/数据中心超过 90% 的 Web 服务器、云计算平台使用 Linux
嵌入式系统路由器、智能电视、工业控制系统广泛使用
Android 手机系统Android 基于 Linux 内核
超级计算机全球前 500 台超级计算机几乎全部运行 Linux
开发环境稳定高效、开发工具丰富,是程序员首选

八、典型命令与工具

  • 文件操作:ls, cp, mv, rm, find
  • 权限管理:chmod, chown
  • 软件管理(以 Debian 为例):apt-get, dpkg
  • 系统查看:top, ps, df, du, free, uptime
  • 编程支持:GCCMakeGDBstracelsofvim/emacs
  • Shell 编程:bash/zsh
http://www.xdnf.cn/news/872137.html

相关文章:

  • Elasticsearch 海量数据写入与高效文本检索实践指南
  • 上门服务小程序订单系统框架设计
  • Docker 常用命令详解
  • 洛谷每日1题-------Day40__P1720 月落乌啼算钱(斐波那契数列)
  • 卡西欧模拟器:Windows端功能强大的计算器
  • matlab实现高斯烟羽模型算法
  • AA-CLIP: Enhancing Zero-Shot Anomaly Detection via Anomaly-Aware CLIP
  • Linux操作系统Shell脚本概述与命令实战
  • 英伟达288GB HBM4+50P算力
  • 云数据库选型指南:关系型 vs NoSQL vs NewSQL的企业决策
  • Selenium自动化测试工具安装和使用(PyCharm)
  • Java运行环境配置日志(Log)运行条件,包含鸿蒙HarmonyOS
  • 函数与运算符重载
  • 【freertos-kernel】timer
  • 嵌入式链表操作原理详解
  • 《小明的一站式套餐服务平台:抽象工厂模式》
  • 线夹金具测温在线监测装置:电力设备安全运行的“隐形卫士”
  • GAMES202-高质量实时渲染(Real-Time Physically-based Materials)
  • C++课设:通讯录管理系统(vector、map协作实现)
  • 在VSCode中开发一个uni-app项目
  • 企业级网络安全攻防全景指南:从渗透测试到防御体系建设
  • 基于深度学习(Unet和SwinUnet)的医学图像分割系统设计与实现:超声心脏分割
  • 6. MySQL基本查询
  • Elasticsearch集群状态为RED且存在未分配分片问题排查诊断
  • GitHub 趋势日报 (2025年06月03日)
  • 小白的进阶之路系列之十四----人工智能从初步到精通pytorch综合运用的讲解第七部分
  • Delphi中实现批量插入数据
  • 5分钟了解,Mysql事务事务隔离级别
  • tensorflow image_dataset_from_directory 训练数据集构建
  • 使用 Python 的 psutil 库进行系统资源监控