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

news2025/6/6 23:04:33

一、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.coloradmin.cn/o/2400765.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

NLP学习路线图(二十二): 循环神经网络(RNN)

在自然语言处理(NLP)的广阔天地中,序列数据是绝对的核心——无论是流淌的文本、连续的语音还是跳跃的时间序列,都蕴含着前后紧密关联的信息。传统神经网络如同面对一幅打散的拼图,无法理解词语间的顺序关系&#xff0c…

每日一C(1)C语言的内存分布

目录 代码区 常量区 全局/静态区 初始化数据段(.data) 未初始化数据段(.bss) 堆区 栈区 总结 今天我们学习的是C语言的内存分布,以及这些分区所存储的内容和其特点。今天的思维导图如下。 C语言作为一款直接处…

Photoshop使用钢笔绘制图形

1、绘制脸部路径 选择钢笔工具,再选择“路径”。 基于两个点绘制一个弯曲的曲线 使用Alt键移动单个点,该点决定了后续的曲线方向 继续绘制第3个点 最后一个点首尾是同一个点,使用钢笔保证是闭合回路。 以同样的方式绘制2个眼睛外框。 使用椭…

应用层协议:HTTP

目录 HTTP:超文本传输协议 1.1 HTTP报文 1.1.1 请求报文 1.1.2 响应报文 1.2 HTTP请求过程和原理 1.2.1 请求过程 1、域名(DNS)解析 2、建立TCP连接(三次握手) 3、发送HTTP请求 4、服务器处理请求 5、返回H…

复习——C++

1、scanf和scanf_s区别 2、取地址&#xff0c;输出 char ba; char* p&b; cout<<*p; cout<<p; p(char*)"abc"; cout<<*p; cout<<p; cout<<(void*)p; 取地址&#xff0c;把b的地址给p 输出*p&#xff0c;是输出p的空间内的值…

SPI通信协议(软件SPI读取W25Q64)

SPI通信协议 文章目录 SPI通信协议1.SPI通信2.SPI硬件和软件规定2.1SPI硬件电路2.2移位示意图2.3SPI基本时序单元2.3.1起始和终止条件2.3.2交换一个字节&#xff08;模式1&#xff09; 2.4SPI波形分析&#xff08;辅助理解&#xff09;2.4.1发送指令2.4.2指定地址写2.4.3指定地…

JavaWeb:前后端分离开发-部门管理

今日内容 前后端分离开发 准备工作 页面布局 整体布局-头部布局 Container 布局容器 左侧布局 资料\04. 基础文件\layout/index.vue <script setup lang"ts"></script><template><div class"common-layout"><el-containe…

字节开源FlowGram:AI时代可视化工作流新利器

字节终于开源“扣子”同款引擎了&#xff01;FlowGram&#xff1a;AI 时代的可视化工作流利器 字节FlowGram创新性地融合图神经网络与多模态交互技术&#xff0c;构建了支持动态拓扑重构的可视化流程引擎。该系统通过引入 f ( G ) ( V ′ &#xff0c; E ′ ) f(\mathcal{G})…

(LeetCode 每日一题)3403. 从盒子中找出字典序最大的字符串 I (贪心+枚举)

题目&#xff1a;3403. 从盒子中找出字典序最大的字符串 I 题目&#xff1a;贪心枚举字符串&#xff0c;时间复杂度0(n)。 最优解的长度一定是在[1,n-numFriends]之间。 字符串在前缀都相同的情况下&#xff0c;长度越长越大。 C版本&#xff1a; class Solution { public:st…

GPIO的内部结构与功能解析

一、GPIO总体结构 总体构成 1.APB2(外设总线) APB2总线是微控制器内部连接CPU与外设&#xff08;如GPIO&#xff09;的总线&#xff0c;负责CPU对GPIO寄存器的读写访问&#xff0c;支持低速外设通信 2.寄存器 控制GPIO的配置&#xff08;输入/输出模式、上拉/下拉等&#x…

php7+mysql5.6单用户中医处方管理系统V1.0

php7mysql5.6中医处方管理系统说明文档 一、系统简介 ----------- 本系统是一款专为中医诊所设计的处方管理系统&#xff0c;基于PHPMySQL开发&#xff0c;不依赖第三方框架&#xff0c;采用原生HTML5CSS3AJAX技术&#xff0c;适配手机和电脑访问。 系统支持药品管理、处方开…

智慧物流园区整体解决方案

该智慧物流园区整体解决方案借助云计算、物联网、ICT 等技术,从咨询规划阶段介入,整合供应链上下游资源,实现物流自动化、信息化与智能化。方案涵盖智慧仓储管理(如自动化立体仓储系统、温湿度监控)、智慧物流(运输管理系统 TMS、GPS 监控)、智慧车辆管理(定位、调度、…

【会员专享数据】1960—2023年我国省市县三级逐年降水量数据(Shp/Excel格式)

之前我们分享过1960-2023年我国0.1分辨率的逐日、逐月、逐年降水栅格数据&#xff08;可查看之前的文章获悉详情&#xff09;&#xff0c;是研究者Jinlong Hu与Chiyuan Miao分享在Zenodo平台上的数据&#xff0c;很多小伙伴拿到数据后反馈栅格数据不太方便使用&#xff0c;问我…

OpenCV C++ 心形雨动画

❤️ OpenCV C 心形雨动画 ❤️ 本文将引导你使用 C 和 OpenCV 库创建一个可爱的心形雨动画。在这个动画中&#xff0c;心形会从屏幕顶部的随机位置落下&#xff0c;模拟下雨的效果。使用opencv定制自己的专属背景 目录 简介先决条件核心概念实现步骤 创建项目定义心形结构…

Fullstack 面试复习笔记:Java 基础语法 / 核心特性体系化总结

Fullstack 面试复习笔记&#xff1a;Java 基础语法 / 核心特性体系化总结 上一篇笔记&#xff1a;Fullstack 面试复习笔记&#xff1a;操作系统 / 网络 / HTTP / 设计模式梳理 目前上来说&#xff0c;这个系列的笔记本质上来说&#xff0c;是对不理解的知识点进行的一个梳理&…

安卓Compose实现鱼骨加载中效果

安卓Compose实现鱼骨加载中效果 文章目录 安卓Compose实现鱼骨加载中效果背景与简介适用场景Compose骨架屏与传统View实现对比Shimmer动画原理简介常见问题与优化建议参考资料 本文首发地址 https://h89.cn/archives/404.html 背景与简介 在移动应用开发中&#xff0c;加载中占…

【使用JAVA调用deepseek】实现自能回复

在Spring Boot系统中接入DeepSeek服务&#xff0c;并将其提供给用户使用&#xff0c;通常需要以下步骤&#xff1a; 一、准备工作 &#xff08;1&#xff09;注册DeepSeek开发者账号 访问DeepSeek官网&#xff0c;注册并创建应用&#xff0c;获取API Key。 API文档&#xff1…

【Linux系列】rsync命令详解与实践

博客目录 高效文件同步的艺术&#xff1a;rsync 命令详解与实践rsync 命令解析rsync 的核心优势1. 增量传输&#xff1a;效率的革命2. 归档模式(-a)&#xff1a;保留文件所有属性3. 人性化输出(-h)与进度显示(--progress) 实际应用场景1. 文件备份与版本管理2. 跨设备同步3. 大…

Windows系统工具:WinToolsPlus 之 SQL Server Suspect/质疑/置疑/可疑/单用户等 修复

数据库在数据库列表状态是 Suspect/质疑/置疑/可疑/单用户等 非正常状态时&#xff0c; 使用WinToolsPlus 数据库页签 先设置 数据源 &#xff0c; 选择 需要清理日志的数据库&#xff0c; 点击 Suspect/质疑/置疑/可疑/单用户 按钮即可进修复。 修复过程会有数据库服务停止和启…

C++——智能指针 unique_ptr

unique_ptr的实现原理&#xff1a;简单粗暴的防拷贝 目录 一、使用C11中的新用法unique_ptr 二、使用c11模拟实现 三、使用c98特性实现 四、模拟实现unique_ptr 五、发现问题 一、使用C11中的新用法unique_ptr 由于限制了拷贝以及赋值 导致缺陷&#xff1a;unique_ptr管理…