Linux

Linux 详解指南

1. Linux 简介

1.1 什么是 Linux

Linux 是一个开源的类 Unix 操作系统内核,由芬兰学生 Linus Torvalds 于 1991 年创建。严格来说,Linux 只是指操作系统的内核,但在日常使用中,"Linux"通常指代基于 Linux 内核的完整操作系统,包括各种软件和库。

Linux 具有以下主要特点:

  • 开源免费:遵循 GPL 许可证,源代码公开
  • 多用户:支持多用户同时在系统上工作
  • 多任务:能够同时运行多个程序
  • 高安全性:具有强大的安全机制
  • 可移植性:支持多种硬件架构
  • 稳定性:系统稳定,可长时间运行
  • 网络支持:强大的网络功能

1.2 Linux 的历史

Linux 的发展历程可以概括为以下几个重要阶段:

  • 1983年:Richard Stallman 启动 GNU 项目,目标是创建一个完全自由的操作系统
  • 1989年:GNU 项目开发了许多组件,但核心部分(内核)尚未完成
  • 1991年:Linus Torvalds 开始开发 Linux 内核
  • 1992年:Linux 被采用 GPL 许可证,成为自由软件
  • 1993年:Slackware 和 Debian 等第一批 Linux 发行版出现
  • 1994年:Linux 内核 1.0 版发布
  • 1996年:Linux 吉祥物 Tux(企鹅)诞生
  • 1998年:大企业如 IBM 开始支持 Linux
  • 2000年代初:Linux 在服务器市场获得广泛应用
  • 2005年:Linus Torvalds 创建 Git 版本控制系统用于管理 Linux 内核开发
  • 2008年:Android(基于 Linux 内核)发布
  • 2011年:Linux 内核 3.0 发布
  • 2015年:Linux 内核 4.0 发布
  • 2019年:Linux 内核 5.0 发布
  • 2023年:Linux 内核 6.0 系列持续发展

1.3 Linux 与 Unix 的关系

Linux 虽然与 Unix 有密切关系,但它们并不相同:

  • Unix 是在 1969 年由贝尔实验室开发的专有操作系统
  • Linux 是遵循 Unix 设计哲学和接口的重新实现,但不包含任何 Unix 代码
  • Linux 是开源的,而 Unix 有多种版本,包括商业版本和开源版本
  • Linux 与 POSIX(可移植操作系统接口)标准兼容,这使得为 Unix 编写的软件可以相对容易地在 Linux 上运行

1.4 Linux 发行版

Linux 发行版是基于 Linux 内核构建的完整操作系统,包括各种应用程序和工具。主要的 Linux 发行版可以分为以下几类:

1.4.1 基于 Debian 的发行版
  • Debian:注重稳定性和自由软件原则
  • Ubuntu:面向普通用户的用户友好发行版
  • Linux Mint:专注于易用性和现代界面
1.4.2 基于 Red Hat 的发行版
  • Red Hat Enterprise Linux (RHEL):面向企业的商业发行版
  • Fedora:由 Red Hat 赞助的创新社区发行版
  • CentOS:基于 RHEL 源代码的免费版本
  • Rocky Linux/AlmaLinux:CentOS 转变后的社区替代品
1.4.3 其他主要发行版
  • SUSE/openSUSE:德国开发的企业级和社区发行版
  • Arch Linux:遵循简洁、极简主义设计的滚动更新发行版
  • Gentoo:源代码级别的定制发行版
  • Slackware:最古老的仍在维护的发行版之一

2. Linux 系统架构

2.1 核心架构

Linux 的系统架构可以分为以下几层:

  1. 硬件层:包括 CPU、内存、存储设备等物理硬件
  2. 内核层:Linux 内核,管理硬件资源并提供底层服务
  3. 系统库层:提供各种功能的系统库和 API
  4. 系统工具层:各种系统工具和实用程序
  5. 应用层:用户应用程序
+----------------------+
|   应用程序           |  用户空间
+----------------------+
|   系统库/工具         |
+----------------------+
|   内核               |  内核空间
+----------------------+
|   硬件               |
+----------------------+

2.2 Linux 内核

Linux 内核是操作系统的核心,负责管理系统资源,提供基础功能。内核的主要组件包括:

  • 进程管理:负责创建和终止进程,控制进程执行和调度
  • 内存管理:管理物理内存和虚拟内存
  • 设备驱动程序:与硬件交互的接口
  • 文件系统:管理文件和目录的存储与访问
  • 网络栈:实现网络协议和通信
  • 系统调用接口:为用户空间程序提供与内核交互的接口

2.3 用户空间与内核空间

Linux 系统将内存划分为两个主要区域:

  • 内核空间:内核代码运行的受保护区域,具有对系统资源的完全访问权限
  • 用户空间:普通应用程序运行的区域,权限受限

这种分离增强了系统的安全性和稳定性,防止用户程序直接访问或破坏关键系统资源。

3. Linux 文件系统

3.1 文件系统层次结构

Linux 使用单一的文件系统树,所有存储设备都挂载到这个树中。主要目录包括:

  • /bin:基本命令二进制文件
  • /boot:引导加载程序文件和内核
  • /dev:设备文件
  • /etc:系统配置文件
  • /home:用户主目录
  • /lib:共享库文件
  • /media:可移动媒体挂载点
  • /mnt:临时挂载点
  • /opt:可选软件包
  • /proc:进程和系统信息的虚拟文件系统
  • /root:root 用户的主目录
  • /run:运行时变量数据
  • /sbin:系统二进制文件
  • /srv:服务数据
  • /sys:系统和设备信息的虚拟文件系统
  • /tmp:临时文件
  • /usr:用户程序和数据
  • /var:可变数据文件(如日志)

3.2 常见文件系统类型

Linux 支持多种文件系统类型:

  • ext2/ext3/ext4:Linux 的原生文件系统系列
  • XFS:高性能的日志文件系统
  • Btrfs:下一代 Linux 文件系统,支持高级功能
  • ZFS:源自 Solaris 的高级文件系统
  • NTFS/FAT32:Windows 文件系统(有限支持)
  • NFS:网络文件系统,用于网络共享

3.3 文件类型

Linux 中的文件有以下几种类型:

  • 普通文件:包含数据的

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/38543.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

LiteratureReading:[2023] GPT-4: Technical Report

文章目录 一、文献简明(zero)二、快速预览(first)1、标题分析2、作者介绍3、引用数4、摘要分析(1)翻译(2)分析 5、总结分析(1)翻译(2)…

java使用Apache POI 操作word文档

项目背景: 当我们对一些word文档(该文档包含很多的标题比如 1.1 ,1.2 , 1.2.1.1, 1.2.2.3)当我们删除其中一项或者几项时,需要手动的对后续的进行补充。该功能主要是对标题进行自动的补充。 具…

OpenHarmony 开源鸿蒙北向开发——linux使用make交叉编译第三方库

这几天搞鸿蒙,需要编译一些第三方库到鸿蒙系统使用。 头疼死了,搞了一个多星期总算搞定了。 开贴记坑。 一、SDK下载 1.下载 在linux下使用命令 wget https://cidownload.openharmony.cn/version/Master_Version/OpenHarmony_5.1.0.54/20250313_02…

SVN简明教程——下载安装使用

SVN教程目录 一、开发中的实际问题二、简介2.1 版本控制2.2 Subversion2.3 Subversion的优良特性2.4 工作原理2.5 SVN基本操作 三、Subversion的安装与配置1. 服务器端程序版本2. 下载源码包3. 下载二进制安装包4. 安装5. 配置版本库① 为什么要配置版本库?② 创建目…

OpenCV旋转估计(1)用于估计图像间仿射变换关系的类cv::detail::AffineBasedEstimator

操作系统:ubuntu22.04 OpenCV版本:OpenCV4.9 IDE:Visual Studio Code 编程语言:C11 算法描述 基于仿射变换的估计器。 这种估计器使用匹配器估算的成对变换来为每个相机估算最终的变换。 cv::detail::AffineBasedEstimator 是 OpenCV 库中…

大数据学习栈记——HBase安装

本文介绍大数据技术中流行的非关系型数据库HBase的安装,操作系统:Ubuntu24.04 安装Zookeeper 安装HBase前需要先安装Zookeeper,HBase使用Zookeeper作为其分布式协同服务,存储了HBase集群的元数据信息,并提供了分布式…

SpringBoot+VUE(Ant Design Vue)实现图片下载预览功能

目录 背景 1.后端实现下载接口 2.前端请求实现 第一步:导入api 第二步:请求接口 3.前端展示实现 4.实现效果展示 5.总结 背景 这段时间通过SpringBootVUE(Ant Design Vue)框架做了一个项目,但是在图片下载,展示的时候在网…

Java 推送钉钉应用消息

前言: 本文的目的是通过手机号获取钉钉成员的userid,实现钉钉应用的消息推送。 一、创建钉钉应用 登录钉钉开放平台 二、应用相关凭证 需要获取 Client ID (原 AppKey 和 SuiteKey) Client Secret (原 AppSecret 和 SuiteSecret) App ID 原企业内部…

SpringCloud介绍

什么是SpringCloud? SpringCloud 是分布式微服务架构下的一站式解决方案,是各个微服务架构落地技术的集合体,俗称微服务全家桶。 官方介绍: SpringCloud是基于SpringBoot提供了一套微服务解决方案,包括服务注册与发现…

YOLOv11 目标检测

本文章不再赘述anaconda的下载以及虚拟环境的配置,博主使用的python版本为3.8 1.获取YOLOv11的源工程文件 链接:GitHub - ultralytics/ultralytics: Ultralytics YOLO11 🚀 直接下载解压 2.需要自己准备的文件 文件结构如下:红…

【Linux】——环境变量与进程地址空间

文章目录 环境变量环境变量的概念常见的环境变量PATH相关指令 main的三个参数前两个参数第三个参数 程序地址空间进程地址空间 环境变量 环境变量的概念 环境变量一般是指在操作系统中用来指定操作系统运行环境的一些参数,将来会以shell的形式传递给所有进程&…

Kafka--常见问题

1.为什么要使用 Kafka,起到什么作用 Kafka是一个高吞吐量、分布式、基于发布订阅的消息系统,它主要用于处理实时数据流 Kafka 设计上支持高吞吐量的消息传输,每秒可以处理数百万条消息。它能够在处理大量并发请求时,保持低延迟和…

Flutter:页面滚动,导航栏背景颜色过渡动画

记录:导航默认透明,页面发生滚动后,导航背景色由0-1,过渡到白色背景。 view import package:ducafe_ui_core/ducafe_ui_core.dart; import package:flutter/material.dart; import package:get/get.dart; import package:redo…

探秘格式化:数据危机与恢复之道

引言 在数字化飞速发展的当下,数据已然成为我们生活中不可或缺的一部分。无论是珍贵的家庭照片、重要的工作文档,还是企业关键的业务数据,都承载着我们的回忆、努力和希望。然而,格式化这一操作却如同隐藏在数字世界中的“幽灵”…

人工智能 - 通用 AI Agent 之 LangManus、Manus、OpenManus 和 OWL 技术选型

一、核心项目概览 1. Manus(闭源通用 AI Agent) 定位 :全球首个全流程自动化通用 AI Agent,GAIA 基准测试 SOTA 水平。核心能力 : 全流程自动化 :从任务规划(如撰写报告)到执行(代码生成、表格制作)的端到端处理。智能纠错机制 :基于沙箱环境的实时错误反思与调整…

封装一个分割线组件

最终样式 Vue2代码 <template><div class"sep-line"><div class"sep-label"><span class"sep-box-text"><slot>{{ title }}</slot> <!-- 默认插槽内容&#xff0c;如果没有传递内容则使用title -->&…

走进Java:String字符串的基本使用

❀❀❀ 大佬求个关注吧~祝您开心每一天 ❀❀❀ 目录 一、什么是String 二、如何定义一个String 1. 用双引号定义 2. 通过构造函数定义 三、String中的一些常用方法 1 字符串比较 1.1 字符串使用 1.2 字符串使用equals() 1.3 使用 equalsIgnoreCase() 1.4 cpmpareTo…

第2.2节 Android Jacoco插件覆盖率采集

JaCoCo&#xff08;Java Code Coverage&#xff09;是一款开源的代码覆盖率分析工具&#xff0c;适用于Java和Android项目。它通过插桩技术统计测试过程中代码的执行情况&#xff0c;生成可视化报告&#xff0c;帮助开发者评估测试用例的有效性。在github上开源的项目&#xff…

OpenGL ES ->乒乓缓冲,计算只用两个帧缓冲对象(Frame Buffer Object)+叠加多个滤镜作用后的Bitmap

乒乓缓冲核心思想 不使用乒乓缓冲&#xff0c;如果要每个滤镜作用下的绘制内容&#xff0c;也就是这个滤镜作用下的帧缓冲&#xff0c;需要创建一个Frame Buffer Object加上对应的Frame Buffer Object Texture使用乒乓缓冲&#xff0c;只用两个Frame Buffer Object加上对应的F…

Unity导出WebGL,无法加载,data文件无法找到 404(NotFound)

问题&#xff1a;data文件无法找到404Not found 示例是使用IIS托管启动 F12可以看到not found 的报错 解决办法&#xff1a; iis无法识别data文件&#xff0c;在MIME类型中增加data 类型&#xff1a;application/octet-stream 添加之后&#xff0c;会在根目录下生产一个…