Skip to content

Linux

Linux,一般指GNU/Linux(单独的Linux内核并不可直接使用,一般搭配GNU套件,故得此称呼),是一种免费使用和自由传播的类UNIX操作系统,其内核由林纳斯·本纳第克特·托瓦兹(Linus Benedict Torvalds)于1991年10月5日首次发布,它主要受到Minix和Unix思想的启发,是一个基于POSIX的多用户、多任务、支持多线程和多CPU的操作系统。它支持32位和64位硬件,能运行主要的Unix工具软件、应用程序和网络协议。

Linux继承了Unix以网络为核心的设计思想,是一个性能稳定的多用户网络操作系统。Linux有上百种不同的发行版,如基于社区开发的Debian、Arch Linux,和基于商业开发的Red Hat Enterprise Linux、SUSE、Oracle Linux等。此教程基于Arch Linux。

Arch Linux

Arch Linux 是一种通用操作系统,它是基于 x86-64 架构的一类 GNU/Linux 发行版。

Arch Linux 采用滚动升级模式,尽全力为用户提供最新的稳定版软件。初始安装完成的 Arch Linux 只是一个基本系统,随后用户可以根据自己的喜好安装需要的软件并配置成符合自己理想的个性化系统。

Arch Wiki 是一个由社区驱动的 Arch Linux 知识库,在阅读此教程时请顺便参考 Arch Wiki。

简洁

Arch Linux 将简洁定义为:避免任何不必要的添加、修改和复杂化的增加。它提供的软件包都来自原始开发者(以下简称上游),且仅进行和本发行版(以下简称下游)相关的最小修改版本。

  • 不包含上游不愿意接受的补丁。绝大部分 Arch 下游补丁都已经被上游接受,会在下一个正式版本里被包含。
  • 配置文件也是来自上游,它仅包含发行版必须的调整,比如特殊的文件系统路径变动。Arch Linux 不会在安装一个软件包后就自动启动软件包的服务。
  • 软件包通常都和一个上游项目直接对应。仅在极少数情况下才会拆分软件包。
  • 官方不支持图形化配置界面,建议用户使用命令行或文本编辑器修改设置。

现代化

Arch Linux 尽全力使软件处于最新的稳定版本,只要没有出现系统软件包损坏,都会尽量使用最新版本的软件包。

Arch Linux 采用滚动更新的方式,安装之后可以通过命令持续更新系统与软件包。

Arch Linux 向 GNU/Linux 用户提供了许多新特性,包括 systemd 初始化系统、现代化的文件系统、LVM2/EVMS、软件磁盘阵列(软 RAID)、udev 支持、initcpio(附带 mkinitcpio)以及最新的 Linux 内核。

实用性

Arch Linux 注重实用性,且尽力避免意识形态之争。最终的设计决策都是由开发者之间的共识决定,开发者依赖基于客观事实的技术分析和讨论,避免国家之间和政治因素的影响,不被世俗流行观点左右。

Arch Linux 的仓库中包含大量的软件包和编译脚本。用户可以按照需要进行自由选择。仓库中既提供了开源、自由的软件,也提供了闭源软件。即实用性大于意识形态。

以用户为中心

许多 Linux 发行版都试图变得更加“用户友好”,Arch Linux 则一直是,且永远会是“以用户为中心”。本发行版是为了满足贡献者的需求,而不是为了吸引尽可能多的用户。

Arch Linux 适用于乐于自己动手的用户,因为他们往往更愿意花时间阅读文档,解决自己的问题。

Arch Linux 鼓励每一个用户参与和贡献,报告和帮助修复 bugs,提供软件包补丁和参加核心项目:Arch 开发者都是志愿者,通过持续的贡献成为团队中的一员。Archers 可以自行贡献软件包到 Arch 用户仓库,提升 ArchWiki 文档质量,在论坛、邮件列表或者 IRC 中给其它用户提供技术支持。

Arch Linux 现在是全球许多 GNU/Linux 用户的选择,已经有许多国际社区提供帮助和文档的翻译。

通用性

Arch Linux 作为一种通用 Linux 发行版,它的初始安装仅提供命令行环境:用户不需要删除大量不需要的软件包,而是可以从官方软件仓库成千上万的高质量软件包中进行选择,并搭建自己的系统。目前支持 x86-64 架构。( 对 i686 架构的支持已经结束)

Arch Linux 使用 Pacman 包管理系统实现系统和软件包的滚动升级。并且 Arch Linux 还提供一个类似 ports 的包构建系统(Arch Build System),通过它可以轻松从源码构建和安装软件包,并用一个命令完成同步。您甚至可以用一个命令重新构建整个系统。Arch 还提供 Arch 用户仓库,它包含了成千上万个由用户自行维护的 PKGBUILD 脚本,配合 makepkg 工具,从编译到打包一气呵成。用户还能轻松构建和维护属于自己的自定义软件源。

重要概念

  • Linux目录结构

    Linux的目录是由/左斜杠开头的树状结构,所以/被称为根目录(root目录)。例如/home就是根目录下的home目录,/home/fubangkun就是根目录下的home目录里面的fubangkun目录。

  • 挂载

    意思是把硬盘分区对应到某个目录。

  • 挂载点(Mount Point)

    假设把/dev/nvme0n1这个设备挂载到/mnt目录,那就称/dev/nvme0n1的挂载点为/mnt

  • 文件系统

    文件系统决定了文件的存放和检索方式,不同的文件系统有不同的功能和特性。此教程使用xfs文件系统,最大的特点性能强大。

  • BootLoader引导程序

    引导程序,用来引导系统启动。常用的有grub和systemd-boot,此教程使用systemd-boot。

  • EFI系统分区(ESP)

    一个特殊的分区,用于存放.efi文件,这是启动系统的“第一把钥匙”,文件系统必须是FAT。

    常用挂载点为/boot/boot/efi/efi/boot是最典型的挂载点,很多BootLoader程序只有ESP挂载点为/boot时才能正常工作,但是/boot存放着系统启动和初始化相关的文件,需要分配较大空间。/boot/efi/efi没有这个问题。