侧边栏壁纸
博主头像
v林羽博主等级

行动起来,活在当下

  • 累计撰写 172 篇文章
  • 累计创建 34 个标签
  • 累计收到 21 条评论

目 录CONTENT

文章目录

【Linux基础】之--Linux基础学习(1)-Linux系统介绍

v林羽
2024-08-10 / 1 评论 / 0 点赞 / 88 阅读 / 9933 字 / 正在检测是否收录...
温馨提示:
本文最后更新于 2024-08-10,若内容或图片失效,请留言反馈。部分素材来自网络,若不小心影响到您的利益,请联系我们删除。

【Linux基础】之--Linux基础学习(1)-Linux系统介绍

#系统 #Linux #教程 #arch #archlinux

严格的说,Linux只是一个内核,它需要和一系列软件工具构成一个完整的操作系统提供给用户使用,下面先从操作系统说起。

1. 操作系统介绍

操作系统位于底层硬件与用户之间,是两者沟通的桥梁,它的作用是管理和控制计算机系统中的硬件和软件资源,合理地组织计算机系统的工作流程,以便有效地利用这些资源为使用者提供一个功能强大、使用方便的操作环境。用户可以通过操作系统的用户界面,输入命令。操作系统则对命令进行解释,驱动硬件设备,实现用户要求。以现代标准而言,一个标准PC的操作系统应该提供以下的功能:

  1. 进程管理(Processing Management)

进程管理是操作系统的核心功能之一,负责创建、调度和终止进程。它确保系统资源(如CPU时间)在多个进程之间公平分配,并提供进程间通信(IPC)机制。

  • 创建和终止进程:操作系统可以创建新进程(如通过fork系统调用)和终止现有进程。
  • 调度:操作系统使用调度算法(如轮转调度、优先级调度)来决定哪个进程在何时运行。
  • 同步和通信:提供进程间通信(如管道、消息队列)和同步机制(如信号量、互斥锁)。
  1. 内存管理(Memory Management)

内存管理负责管理系统的主存(RAM),确保各个进程能够安全、高效地使用内存。

  • 内存分配:操作系统分配内存给进程,并在进程终止时回收内存。
  • 虚拟内存:通过分页或分段机制,操作系统可以使进程使用比实际物理内存更多的内存。
  • 内存保护:确保一个进程不能访问另一个进程的内存区域,防止数据泄露和系统崩溃。
  1. 文件系统(File System)

文件系统管理存储设备上的数据,提供文件和目录的创建、删除、读取和写入功能。

  • 文件管理:提供文件的创建、删除、读取、写入和权限管理。
  • 目录管理:组织文件,提供目录的创建、删除和导航功能。
  • 存储管理:管理磁盘空间,处理文件的物理存储和检索。
  1. 网络通信(Networking)

网络通信模块负责管理系统的网络连接,提供数据传输和网络服务。

  • 协议栈:实现网络协议(如TCP/IP),处理数据包的发送和接收。
  • 网络接口:管理网络接口卡(NIC),处理网络连接的建立和断开。
  • 网络服务:提供网络服务(如DNS、DHCP),支持应用层协议(如HTTP、FTP)。
  1. 安全机制(Security)

安全机制保护系统和数据免受未经授权的访问和恶意攻击。

  • 身份验证:验证用户身份(如用户名和密码、双因素认证)。
  • 访问控制:控制用户和进程对系统资源的访问权限(如文件权限、ACL)。
  • 加密:保护数据的机密性和完整性(如SSL/TLS、文件加密)。
  1. 用户界面(User Interface)

用户界面提供用户与操作系统交互的方式,可以是命令行界面(CLI)或图形用户界面(GUI)。

  • 命令行界面(CLI):通过命令行解释器(如Bash、PowerShell)接受用户输入的命令。
  • 图形用户界面(GUI):通过窗口、图标、菜单和指针(WIMP)提供直观的交互方式。
  1. 驱动程序(Device Drivers)

驱动程序是操作系统与硬件设备之间的桥梁,负责控制和管理硬件设备。

  • 设备控制:提供对硬件设备的低级控制(如读写磁盘、发送打印任务)。
  • 设备抽象:抽象硬件设备的细节,提供统一的接口供操作系统和应用程序使用。
  • 中断处理:处理硬件设备发出的中断信号,确保设备与操作系统的高效通信。

这些功能模块共同协作,确保操作系统能够高效、安全地管理计算机资源,并为用户和应用程序提供友好的操作环境。

2. Linux介绍

Linux是一个类Unix(Unix-like)的操作系统。1991年10月份由芬兰赫尔辛基大学的在校生林纳斯·托瓦兹(Linus Torvalds)所发布。

Linux操作系统由内核和一系列软件和工具构成,包括系统调用接口、设备驱动程序、文件系统、网络协议栈等。它以其高度的稳定性和安全性,以及对硬件的广泛支持而著称。Linux可以运行在各种不同的硬件架构上,从个人电脑、服务器到嵌入式设备如手机、路由器、智能电视等。

Linux内核(Kernel)遵循GNU通用公共许可协议(GPL),这使得它成为了一个开源项目,吸引了全世界成千上万的程序员参与开发和改进,形成了一个庞大的全球开发者和用户社区。林纳斯·托瓦兹仍然拥有Linux内核选择代码和合并新方法的最终裁定权。

Linux发行版(distribution)是基于Linux内核和GNU工具的完整操作系统,它们包含了图形用户界面、办公应用、开发工具、多媒体软件等,以适应不同用户的需求。常见的Linux发行版包括Red Hat、Debian、Arch Linux、Fedora、Ubuntu等,每种发行版都有其独特的特点和用户群。

3. Linux历史

1969年,肯·汤普逊(Ken Thompson)在参与美国 AT&T 公司贝尔实验室的Multics操作系统项目的过程中开发了一款游戏Space Travel。Multics项目失败之后,他找来丹尼斯·里奇(Dennis Ritchie)为这个游戏开发一个极其简单的操作系统,并于 1970 年被命名为Unix

1973年,丹尼斯·里奇用C语言(内核和 I/O 除外)重新编写了Unix系统。高级语言编写的操作系统具有更佳的兼容性,也能更容易地移植到不同的计算机平台。

1979年,AT&T 公司宣布了对Unix系统的商业化计划,随之开源软件业转变成了版权式软件产业,源代码被当作商业机密,成为专利产品,人们再也不能自由地享受科技成果。

1983年,理查德·马修·斯托曼(Richard Stallman)面对于如此封闭的软件创作环境,发起了GNU源代码开放计划并制定了著名的GPL许可协议。

1987年,GNU计划获得了一项重大突破,即发布了gcc编译器,这使得程序员可以基于该编译器编写出属于自己的开源软件,GNU项目开发出许多高质量的免费软件,其中包括有名的Emacs编辑系统、Bash Shell程序、GCC系列编译程序、GDB调试程序等等。

1991年10月,芬兰赫尔辛基大学的在校生林纳斯·托瓦兹(Linus Torvalds)编写了一款名为Linux的操作系统,该系统因其较高的代码质量且基于GNU的GPL许可协议的开放源代码特性,迅速得到了GNU计划和一大批黑客程序员的支持。

1991年10月5日(这是第一次正式向外公布时间)。Linux存在着许多不同的Linux版本,但它们都使用了Linux内核。

1994年3月,Linux1.0发布,代码量17万行,当时是按照完全自由免费的协议发布,随后正式采用GPL协议。

1995年1月,BobYoung创办了RedHat(小红帽),以GNU/Linux为核心,集成了400多个源代码开放的程序模块,搞出了一种冠以品牌的Linux,即Red Hat Linux,称为Linux"发行版"。

1996年6月,Linux2.0内核发布,此内核有大约40万行代码,并可以支持多个处理器。此时的Linux已经进入了实用阶段,用户350万人

1998年以后,随着GNU源代码开放计划和Linux系统的继续火热,以IBM和Intel为首的多家IT企业巨头开始大力推动开放源代码软件的发展。

2001年1月,Linux2.4内核发布,它进一步地提升了SMP系统的扩展性,同时它也集成了很多用于支持桌面系统的特性:USB、PC卡(PCMCIA)的支持、内置的即插即用等等功能。

2003年4月,Red Hat Linux 9.0发布。重点放在改善桌面应用方面,包括改进安装过程、更好的字体浏览、更好的打印服务等。统计表明,2003年,Red Hat的 Linux市场份额为86% 。

现如今Linux各种发行版也越发成熟稳定,如Red Hat、Debian、Arch Linux、Fedora、Ubuntu、openSUSE等。这些发行版在内核相同的基础上,提供了不同的用户界面、软件包管理系统和预装软件,以满足不同用户和场景的需求,不仅主流服务器、x86桌面系统,其还常常被用于嵌入式系统,机顶盒、手机、交换机、游戏机、PDA、网络交换机、路由器等等。

截至2024年8月,Linux6.10内核发布。

4. Linux系统结构

Linux系统结构可以抽象为3个层次,Linux内核(Kernel)、命令解释层(Shell)、应用层。

  1. 内核层:内核层是Linux系统的核心和基础,它直接附着在硬件平台之上,控制和管理系统内各种资源(硬件资源和软件资源),有效地组织进程的运行,从而扩展硬件的功能,提高资源的利用效率,为用户提供方便、高效、安全、可靠的应用环境。
  2. Shell层:Shell层是与用户直接交互的界面。用户可以在提示符下输入命令行,由Shell解释执行并输出相应结果或者有关信息,所以我们也把 Shell 称作命令解释器,利用系统提供的丰富命令可以快捷而简便地完成许多工作。
  3. 应用层:应用层提供一套图形环境。在Linux上广泛应用的有Gnome、KDE等桌面环境;i3、bspwm、dwm等窗口管理器。

5. Linux内核

LInux内核发布地址: https://www.kernel.org/

Mainline(主线版)是Linux内核的最新开发版本,由Linus Torvalds维护和发布。它代表了Linux内核的主分支,包含了最新的功能和改进。主线上的内核版本大约每十周发布一次,这些版本可能包含新的特性和实验性的代码,因此它们可能不如稳定版那样适合生产环境。

Stable(稳定版)是指Linux内核的一个版本,它在主线(mainline)版本中经过充分测试和调试后发布。稳定版内核通常包括了一系列的bug修复和安全更新,但不引入新的功能或重大更改。稳定版内核的目的是提供一个既可靠又稳定的运行环境,适合大多数用户和应用场景。

Longterm(长期支持版)是Linux内核的一个特别类别,它提供比常规稳定版更长的维护期。长期支持版内核主要用于那些需要长期稳定性和安全更新的环境,例如服务器和嵌入式系统。这些版本通常会接收重要的bug修复和安全补丁,直到它们达到生命周期的终点(EOL - End Of Life)。

目前最新的内核版本是2024年8月3日公布的6.10.3版,Linux内核版本号命名的规则:r.x.y

r:表示目前发布的内核主版本。

x:x是偶数表示稳定版本,主要用于企业等生产环境; 若是奇数表示开发中版本,主要用于开发和测试新功能。

y: 修订版本号,表示修改的次数。

6. Linux名称争议

GNU计划的支持者与开发者,特别是其创立者 理查德·斯托曼(Richard Matthew Stallman)主张 Linux 应称为“GNU/Linux”较为恰当,因为此类操作系统使用了众多 GNU 程序,包含Bash(Shell 程序)、库、编译器等等作为 Linux 内核上的系统包。Linux 社区中的一些成员,如埃里克·斯蒂芬·雷蒙(Eric Steven Raymond)、Linus等人,偏好 Linux 的名称,认为 Linux 朗朗上口,短而好记,拒绝使用“GNU/Linux”作为操作系统名称。并且认为 Linux 并不属于 GNU 计划的一部分。现在,有部分 Linux 发行版,如 Debian ,采用了“GNU/Linux”的称呼。

7. Linux发行版

Linux发行版通常包含了桌面环境、办公软件、媒体工具、数据库等。为用户预先集成好了Linux操作系统及各种应用软件。用户安装后,只需简单设置就可以使用。不同的发行版通过包管理系统来进行应用软件的管理。这些操作系统通常由Linux内核、以及来自GNU计划的大量的函数库,和基于X Window或者Wayland的图形界面。有些发行版考虑到容量大小而没有预装图形界面,如:Arch Linux。

包管理系统(Package Management System)是Linux操作系统中用于自动化管理软件包的工具集。它负责软件包的安装、更新、配置和卸载,同时处理软件包之间的依赖关系。包管理系统通过集中式的软件仓库来存储软件包,这些仓库可以是本地的,也可以是远程的,从而简化了软件的分发和维护过程.

7.1. Red Hat Enterprise Linux (RHEL)

特点:企业级稳定性和安全性,适合关键业务应用。提供长期服务级别协议(SLA)和专业技术支持。广泛的硬件和软件认证。

应用场景:服务器环境、云计算基础设施、企业数据中心。

Red Hat: https://www.redhat.com/

7.2. Debian

特点:以稳定性和安全性著称,注重自由软件原则。通过严格的软件包审核流程确保系统的可靠性。提供广泛的软件选择。

应用场景:服务器、桌面环境、开发平台。

Debian: https://www.debian.org/

7.3. Arch Linux

特点:简单、轻量级和高度可定制的特点。采用滚动发布模式,允许用户始终保持最新的软件版本。社区活跃,提供大量的软件包和文档。

应用场景:技术爱好者、高级用户、对系统控制有高要求的用户。

Arch Linux: https://archlinux.org/

7.4. Fedora

特点:强调最新的软件和技术,作为技术先锋的发行版。有较短的发布周期,每六个月发布一个新版本。由Red Hat赞助,拥有强大的社区支持。

应用场景:开发者、技术爱好者、需要最新软件和技术的用户。

Fedora: https://fedoraproject.org/

7.5. Ubuntu

特点:易于使用,面向桌面用户。拥有强大的社区支持和软件库。定期更新和长期支持版(LTS)。

应用场景:个人桌面、教育机构、企业桌面环境。

Ubuntu: https://ubuntu.com/

7.6. openSUSE

特点:易于使用,提供图形化配置工具YaST。注重用户体验和开源创新。提供稳定的Leap版本和滚动更新的Tumbleweed版本。

应用场景:个人桌面、服务器环境、开发者工作环境。

openSUSE: https://www.opensuse.org/

7.7. Manjaro

特点: 基于Arch Linux,继承了其滚动更新和最新软件的优点,同时通过预配置和优化提高了稳定性。通过图形化安装程序和硬件检测,Manjaro降低了Linux的入门门槛,适合新手和经验丰富的用户。提供多种桌面环境,如Xfce、KDE Plasma和GNOME,满足不同用户的偏好。

应用场景:个人桌面、教育机构、开发者工作环境。

Manjaro: https://manjaro.org/

7.8. Kali Linux

特点:预装了大量渗透测试和安全审计工具,是网络安全专业人士的首选。Kali Linux允许深度定制,以适应特定的渗透测试需求。具有企业级的稳定性和安全性,适合在专业环境中使用。

应用场景:安全人员、技术爱好者、教育与研究。

Kali Linux: https://www.kali.org/

7.9. Rocky Linux

特点:与Red Hat Enterprise Linux完全兼容,提供了一个稳定的、企业级的操作系统。提供长期支持版本,确保系统在数年内保持稳定和安全。Rocky Linux由一个活跃的开源社区支持,持续改进和维护。

应用场景:服务器环境、云计算、教育和研究。

Rocky Linux: https://rockylinux.org/

8. 扩展阅读

  1. 操作系统 - 维基百科,自由的百科全书
  2. UNIX - 维基百科,自由的百科全书
  3. 类Unix系统 - 维基百科,自由的百科全书
  4. Linux历史 - 维基百科,自由的百科全书
  5. Linux发行版 - 维基百科,自由的百科全书
  6. 一张图带你详细了解 Linux 发展史
0

评论区