为什么使用Linux ?

简单来说讷,现在世界上流行的 PC 操作系统有三种,Windows,Linux 与 macOS。

如果你是计算机相关专业的学生或者从业者,非常建议你使用 Linux 作为自己的日常系统,真的很方便!你会感受到前所未有的新鲜与效率!在使用 Linux 系统的过程中,可以在不经意间接触各个方面的计算机知识,就算并没有刻意去学习,也会在耳濡目染中收获,当然,使用Linux并不是看起来高大上,也可以在工作学习中也会为你带来相关方面的优势,认为使用Linux一种彰显与众不同或者装b的看法是非常愚蠢无知的,虽然也有一部分人,但他们并不是这个用户群体的代表!

除此之外,操作系统爱好者也一定会尝试Linux ,像MacOS和Windows 都是闭源的系统,强烈不建议使用 Windows 进行编程。

更重要的是,GNU/Linux 是自由软件运动的相关重要产物。自由软件运动拒绝所有专有软件并推广自由软件,它的终极目标在于解放网络世界中的每个人——即每个网络用户。每个人都应该完全拥有,完全掌控所运行软件的权利。

自由软件有如下四项原则:

  • 自由度 0:无论用户出于何种目的,必须可以按照用户意愿,并且自由地运行该软件。
  • 自由度 1:用户可以自由学习并修改该软件,以此来帮助用户完成用户自己的计算。作为前提,用户必须可以访问到该软件的源代码。
  • 自由度 2:用户可以自由地分发该软件的拷贝,这样可以帮助别人。
  • 自由度 3:用户可以自由地分发该软件修改后的拷贝。借此,用户可以把改进后的软件分享给整个社区令他人也从中受益。作为前提,每个用户必须可以易如反掌的访问到该软件的源代码。

 

自由软件:

“自由软件”尊重每一个用户的自由,并且尊重整个社区。粗略来讲,一个软件如果是自由软件,这意味着用户可以自由地运行,拷贝,分享,学习,修改并改进该软件。因此,“自由软件”是关乎自由的问题,与价格无关。

自由软件意味着其用户拥有自由

这无关价格

你可能花钱购买了一个自由软件的拷贝,也可能免费拿到。但是不管你怎样获得的软件拷贝,你都有自由复制和修改该软件,乃至出售该软件拷贝的权利!

自由软件:不只是“优势”

经常被问到自由软件的“优势”是什么。但是,谈到自由时,“优势”这个词就太了。自由软件是一种趋势!生活中没有自由就是压迫,这点在学习和生活中的任何活动都适用。我们必须拒绝把我们的控制权交给程序开发者或者服务商。出于隐私的原因,这是必要的正确做法;但不仅仅只是隐私的原因,更是一种信仰,一种精神!一种对自由软件的支持!

自由也包括和他人合作的自由。剥夺人们的这个自由就是孤立他们,也是谋划压迫他们的开始。在自由软件社区中,所有人都非常注重合作的重要性,因为所有人的工作是由有组织的合作组成的。如果你的朋友来玩,看到你用的一个程序,他可能会要一个拷贝。如果你想给他,任何阻止你发布的行为,都是反社会的行为!比如什么充值会员,转发群聊这种,干扰你进行分享的行为,都是犯罪!我接受任何买断制度,但是前提是我能完全的拥有完整的软体拷贝以及操作说明!开发者也有权利用自己的劳动牟利,但不应该用自己的劳动力去割韭菜!

 

我们支持软件用户的自由,这是每个用户应得的。有了这些自由,软件用户,无论是个人还是集体,都可以完全掌控所运行的软件,并决定这些程序应该如何为自己服务。如果一个软件让用户失去了这种控制权,我们则称它为“非自由”的,或“专有”的程序。与自由软件相反,非自由软件会操控它的用户,而软件的开发者则掌控着软件,所有来讲,是专有软件开发者间接控制着你,这使得非自由软件成为了非正义力量的帮凶。

自由软件可以为大众带来什么?确实是一个值得深入探究的问题。像大家想得那样,人畜无害切是我们的小助手!简单来说,它对每个用户都赋予足够的尊重,并给予用户选择的权利。专有软件践踏用户的隐私、尊严,做着无数无耻且肮脏的行为。用户在这些专有软件开发者的眼中仅仅是一个个可以随意用来使用、贩卖与压迫的数据,而不是当作一个活生生的人。

有压迫,就有反抗。

这句话如今说来,恐怕会让世界上的某些资本恐惧,真是讽刺,就像曾经的资本惧怕路灯与麻绳那般!
有一些人会认为支持自由软件运动的人和组织关注政治是完全不可理解的,仿佛政治是与他们毫不相干的问题。实际上,这种看法是十分无知与愚昧的。这个世界上不存在政治敏感这一说!自由软件运动的主要目标就是保障用户本应享有的自由和尊严。然而在专制国家,人们在选举层面,金融层面,网络层面,言论层面等等方面被全方位的压制与压迫,这使得自由软件运动的支持者们无法袖手旁观。自由软件运动的重点就是“自由”!对于网络方面,他们开发出了突破互联网封锁的软件,如 V2ray 与 Shadowsocks,重新赋予人们自由访问互联网的权利。对于金融方面,他们开发出了区块链以及加密货币体系,重新赋予人们真正掌握自己财产的权利,并且免于政府滥发货币而造成的财富掠夺。对于行政、选举以及决策方面,区块链的透明及不可篡改的特性保证了一切的公开、透明与公正。对于言论方面,长毛象、Telegram、Matrix 等软件重新赋予人们自由表达自己的言论的权利。
然而更危险的是,在很多极权与威权国家,专有软件所属的商业公司与这些极权,威权机构狼狈为奸,对人们进行全方面的监视,对有异议的人进行抓捕。很多时候,每当我们目睹这样的事件发生,就会因为这些人们没有掌握使用自由软件,没有认识到自由软件的价值而感到叹息。

 

兼听则明,偏信则暗。

 

 

这个成语在很多方面都非常适用。编写代码,在阅读尽可能多的类似项目的源代码后,才能对所需要做的项目有更好的掌握。观看新闻,只有听取世界上各个国家、各个媒体的报道,并结合自己的思考才能得到一个较为理性的结论。做出决策,只有在听取相关人员的各个意见后,才能做出一个符合更共同利益的、更加合理与理性的决定。然而在威权与极权国家。看不到任何这种可能。互联网的封锁,使得这些人很难顺畅的或者根本不可能获取世界上的新闻资讯和最新的软件与技术。
    人们只能听到和看到想让他们看到的东西。捂住人们的眼睛、耳朵,最后缝住他们的嘴巴。当然墙的存在不是为了愚化民众,墙的存在保护人民,总不能说:我们门槛如此低你都出不去,这也配网上冲浪?这样讲,如果GFW完全下定决心封闭,任何人都将失去与外界通信的能力,就算不是全部,能出去的必然是精英中的精英,现在的并不叫封锁,应该算是一种筛选。他们选择让谁出去,而不是那种心智尚未成熟的墙头草!可能有人通过某些打着虚拟私有网络技术的名号的钓鱼挖矿app侥幸通过,但那仍不是稳定长久的方案,墙的存在就是双刃剑,个人认为应当有墙,但我仍支持推到它,墙的存在保护愚蠢媒体的丑恶嘴脸,它们妖言惑众,蛊惑人心,自大轻狂!带着自己的政治诉求掩埋一切真相!不惜用下三滥的手段迫害共产主义支持者,欺凌弱势群体,他们用那些破碎的梦想来充实自己的口袋!或者他们只是老板忠实的狗子,这种利欲熏心的行为培养了一代代贪官污吏,它们相互勾结钓名沽誉,蚕食着人们对这个国家的一切美好期望!在这种情况下,人们只会被愈发变本加厉的蒙蔽,最终变得极端和愚笨。我们无法做到目睹这一切却无动于衷、袖手旁观。呵,媒体…

 

我们应该摒弃它!

当今的专有软件通常都是恶意软件,因为 开发者拥有的权力被滥用了

使用自由软件,用户控制软件,无论是单个用户还是集体用户。所以他们控制着计算机!(假设计算机是听话的并且按照用户的程序来执行)。

使用专有软件,软件控制用户,而开发者控制程序,相当于开发者间接控制用户!所以专有软件赋予开发者凌驾于其用户之上的权力。这本身就是不公平的;甚而,这个权力会诱使其开发者用其他方法损害用户

即使专有软件不是完全的恶意,其开发者也有动机使之容易成瘾、有控制权受操控!开发者有道义不那么做,但是一般他们都会被利益驱使或者强迫

自由就意味着能够控制自己的生活。如果你用一款软件去实现你生活中的活动,你的自由就依赖于对这款软件的控制权。你有权拥有你所使用的软件的控制权,当你用它们来做重要事情是则更是如此。

打个简单的比方,现在诸多大厂!借用什么狗屁大数据改善生活啊,更人性化推荐的幌子,偷窥用户群体,收集人民群众的隐私!

如果用户不能控制程序,则程序控制用户! 使用专有软件,总要有一个主体,程序的开发者或“所有者”,控制着程序—并通过它行使着对用户的权力。非自由程序就是一种枷锁,是不公正力量的刑具

如果你只是一个Windows用户,你一定遇到过这种情况:“未经过你的许可,电脑被静默装上了成堆的流氓软件 数不清的弹窗广告被修改的注册表和策略组。” 该死的专有软件不仅在各个维度强奸着用户,更包含着难以想象的恶意功能。这无非是一种饭里掺💩的行为!用户的数据,隐私等重要信息会轻而易举被大公司们收集走,并加以滥用,这成为业内公开的秘密已是不争的事实。或者盗窃用户的硬件资源进行牟利,这种行为归类为盗窃强取豪夺也不为过。可能有人说,注意你的行为就不会,这种想法是愚蠢且邪恶的,就好像在地雷区生活,他和你讲不去踩雷就不会被炸死一样!

选择是我们的!

在专用软件有同类的自由软件替代时,强烈建议你过渡至自由软件。但是,如果完全摒弃专有软件,一定会直接将很多爱好者阻挡在 linux 之外,这不是大家所希望的。

我们希望先将更多人接纳到 GNU/Linux 中,至少这是踏出的伟大的第一步。但这并不代表支持使用专有软件,我们希望你至少可以先踏入 linux,逐渐使用自由软件替代专有软件。专有软件在本书中仅作简要记录,不会详细描述,因为我们不希望你长期依赖于它。如果你是有能力的开发者,更希望你可以开发出替代某些专有软件的自由软件。

最后,如果你想尝试完全免费的系统,或是喜欢探索充满新鲜与挑战的事物,Linux 也是你不可错过的体验。

对比国内的破烂教育风气来讲

学校(这包括所有的教育活动)通过他们教授的东西,影响着社会的未来。他们应该只教授自由软件,以便带来好处。教授专有软件就是培育依赖性,而这与教育的使命背道而驰。通过训练使用自由软件,学校能使社会的未来走向自由,并帮助有天赋的程序员掌握这门手艺。

它们还能教会学生合作和帮助他人的习惯。每节课都应该有这样一个规定:“同学们,这个课堂是我们分享知识的地方。如果带软件到课堂来,你不能只是自己用。而是应该上传源码!以便有人想要学习这个软件。所以,带专有软件到课堂是禁止的,除非是要对它进行逆向工程。”

相反!专有软件的开发者惩罚愿意分享软件的好学生,阻挠好学的学生去修改它。这是犯罪!

那为什么使用ArchLinux ?

首先,ArchLinux相对来说更加自由,更加依赖客制化!ArchLinux依旧保留并推行最原始的安装方法, 通过安装和使用 archlinux 可以更好的了解 Linux 底层运作的原理,而且Arch Linux 的软件包是最新的,这在日常使用中非常必要,你可以第一时间享受到新软件的特性,而不用烦心于升级软件时的过旧依赖的问题。其提供的软件包可以让你轻松安装使用,而不用自行编译。除此之外,用户仓库 AUR 由世界各地的 Arch Linux 用户驱动,提供了海量的非官方软件以供选择。Arch Linux 在灵活与易用两方面达到了几乎完美的平衡。

archlinux 是简洁的操作系统。arch 将简洁定义为:避免任何不必要的添加、修改和复杂增加。这样做的好处显而易见:你可以自己决定使用哪种桌面环境、安装哪些组件和服务。这种精细化的控制能够赋予你一个精简的操作系统,可以让你自由选择所需的组件来构建属于你自己的系统。

Arch Linux 可以以超高的自由度来定制自己的系统,并且其拥有最完善的ArchWiki,使得绝大多数问题都可以通过查看官方文档的方式解决。由于其软件更新的策略的激进,archlinux 的软件确实很多,由于 arch 保守实用性大于意识形态的原则,包含有不开源甚至非自由软件;但是对于其它发行版来说,日常使用的大部分软件也都在软件仓库中存在。这都是无所谓的,其中Pacman包管理器可以完美处理一切安装需求,如果条件允许,建议使用者经常对 Arch Linux 进行滚动,如果较长时间段内没有升级可能会造成各种问题(俗称 滚挂),虽然大多数问题可以通过救援手段事后补救,但还是常常更新保证其健壮的运行比较好,同时,关注 Arch Linux 的新闻列表可以帮助你得知最新的升级注意事项(甚至可以提高自己的英文水平)。

archlinux 作为现代的滚动发行版,遇到问题是非常正常的。其中大部分问题经过简单排查便可解决,但也不排除遇到重大问题导致系统崩溃,无法进入桌面环境甚至系统。部分萌新的解决方法简单粗暴 —— 直接重装。这个方法可能确实有效,我在初期也经常这样干!

但是有多少人会经得起重新安装的折腾呢?多重装几次可能“心态就炸了”。我们不应该浪费几个小时重头再来,而是应该找到问题的根本,解决问题,分享经验!总而言之,在遇到难以解决的复杂问题时,不要慌张;静下心来好好想一想问题到底出在哪里,对症下药、冷静应对才是正确的姿势

 

值得说明的是,archlinux 从早期开始就树立起了开放、友好和社区互助的形象。早期 archlinux 用户 Ben Mazer 在 2003 年发表的 这篇文章 可以看出这一点。

I think the best thing about ArchLinux is its “support”. Even though ArchLinux is not profit, it has got lots of people willing to help you.
There are active forums at both Archlinux.org and linuxquestions.org.
There is a very active IRC room where the developers (and other users) are always willing to lend a hand. I always learn something new when talking to them.
— Ben Mazer (2003-10-15)

archlinux 的特点

1.简洁

archlinux 将简洁定义为:避免任何不必要的添加、修改和复杂增加。简单来说,archlinux 是一个可以让用户自己动手打造的操作系统。从安装到管理,archlinux 放手让用户处理一切,这可不是不负责任的行为,就像老鹰把孩子扔下悬崖!

用户可以自己决定使用哪种桌面环境、安装哪些组件和服务。这种精细化的控制能够赋予你一个精简的操作系统,可以让用户自由选择所需的组件来构建属于用户自己的系统。

但也正因为此配置 archlinux 相对于其它 Linux 发行版来说是繁琐。但繁琐是自由的代价。如果你是一个 DIY 爱好者,那么相信你会爱上 archlinux 的 ❤️。

2. 滚动更新(现代)

滚动更新(rolling update)是指软件开发中经常性将更新发送到软件的概念。相较于滚动发行,有标准版本和小数点版本的版本号开发模式,必需通过重新安装以取代先前的发行版。archlinux 是没有版本概念的,它始终保持最新的状态,通俗的理解就相当于把发行版比喻为一部车,ubuntu 更新就是换一部新的,而 archlinux 就是把车里面旧的配件换成新的。

archlinux 是一个滚动发行版,这意味着:

  1. 新的内核和应用程序版本一经发布,就会立即向用户推送
  2. 当大多数其它 Linux 发行版还在提供旧的 Linux 内核版本时,archlinux 会迅速向用户提供最新的内核
  3. 而软件也是如此。如果 archlinux 仓库中的软件发布了新版本,archlinux 用户通常会比其他用户先获得新版本
  4. 在滚动发行模式下,一切都是新鲜和前沿的。用户不必把操作系统从一个版本升级到另一个版本,只要使用 pacman 的升级命令,便会始终保持最新的版本

3. 实用

archlinux 注重实用性,避免意识形态之争。最终的设计决策都是由开发者的共识决定。开发者依赖基于事实的技术分析和讨论,避免政治因素,不会被流行观点左右。

archlinux 的仓库中包含大量的软件包和编译脚本。用户可以按照需要自由选择。仓库中既提供了开源、自由的软件,也提供了闭源软件(大部分闭源软件在 AUR 仓库中)。实用性大于意识形态

4. 以用户为中心

许多 Linux 发行版都试图变得更“用户友好”,archlinux 则一直是且永远会是“以用户为中心”。archlinux 是为了满足贡献者的需求,而不是为了吸引尽可能多的用户。archlinux 适用于乐于自己动手的用户,他们愿意花时间阅读文档,解决自己的问题。

—— archlinux 开发者都是志愿者,通过持续的贡献成为团队的一员。

💕 相关链接:archlinux 中文社区

Arch Linux 中文社区

Arch Linux 中文论坛

archlinux 百度贴吧

Telegram 交流群

5. Arch 用户仓库(AUR)

AUR 即 Arch 用户仓库(Arch User Repository)。它包含名为 PKGBUILD 的包描述,它可让用户使用 makepkg 从源代码编译软件包,然后通过 pacman 安装。

创建 AUR 的目的是组织和共享社区中的新软件包,并帮助加速将流行的软件包纳入社区仓库。进入官方仓库的大量新软件包都从 AUR 开始。在 AUR 中,用户可以贡献自己的软件包构建(PKGBUILD 和相关文件)。AUR 社区可以对 AUR 中的软件包进行投票。如果一个软件包变得足够流行(且具有兼容的许可证和良好的打包技术),那么可以将其加入 pacman 直接访问的社区仓库中,任何人都有公平的机会,一个靠能力出名的地方!

6. 激进的内核更新机制

archlinux 在更新内核的时候会立即删除旧内核(因为内核也是一个软件包 linux / linux-zen…,由 pacman 更新)

立即删除旧的内核要求 archlinux 必须重启来加载新的内核,否则容易发生诡异的问题。这是因为 Linux 所谓的“内核”包含有大量的动态加载模块,如果在某次启动后,某个模块没有被加载过,然后系统内核更新了并且删除了旧的内核,那么这些模块将永远不能被加载了——因为它们随着旧内核被删掉了。除非用户重启系统以完整切换到新的内核以使用新版的动态加载模块。

📑 相关资料:什么是内核?

内核是计算机操作系统的核心组件,对系统有完全的控制。开机时最先启动,然后负责后续的启动工作。它负责处理其它软件的请求,将这些请求转化为中央处理器的数据处理请求。内核还负责管理内存,管理系统和其它打印机、扬声器等外围设备的通讯,是操作系统最基础的部分
— Wikipedia

7. 软件包管理体系

不同于 Debian 系列的 apt / dpkg 和 Red Hat 系列的 dnf(yum)/ rpm 包管理体系,archlinux 只用了一个工具 pacman 就解决了获取和安装两个功能。这降低了为 archlinux 制作软件包的门槛,这也是 AUR 几乎能涵盖整个 Linux 软件生态的主要原因。但是这也导致 pacman 不支持虚包(virtual package)。

📑 相关资料:什么是虚包?

虚包是一个通用名称,适用于一组提供类似的基本功能的包中的任何一个包。

8. 由社区创建、支持和拥有

Ubuntu 由 Canonical 支持,Fedora 来自 Red Hat(现在是 IBM 的一部分),openSUSE 来自 SUSE.

这些主流发行版都是企业支持的。

这本身并不是坏事或过错,但是有一些人不喜欢企业参与开源项目。

正如 Debian 一样,archlinux 是为数不多的仅由社区创建、支持和拥有的的 Linux 发行项目之一。

与众不同的 archlinux

了解 archlinux 与其它的发行版之间的区别,有助于判断 archlinux 是否能满足个人的需求

Ubuntu Ubuntu / Kubuntu

  • Ubuntu 基于 Debian,由 Canonical 公司提供商业支持;而 archlinux 是由社区创建、支持和拥有的
  • Ubuntu 提供自动配置好的系统(包括桌面环境),对用户来说更“友好”;而 archlinux 设计了一个最小化的基础系统,然后严重依赖用户按自己的特定需求进行定制
  • Ubuntu 每 6 个月发布一次新版本;而 archlinux 采用滚动升级
  • archlinux 提供类 ports 的软件包构建系统和 Arch User Repository(AUR),用户可以分享源代码编译脚本,然后用 pacman 安装管理;而 Ubuntu 使用更复杂的 apt,可以通过 PPA 分发软件

 

Linux Mint Linux Mint

  • 基于 Ubuntu 的 Linux Mint
    • Linux Mint 主要运行 Cinnamon 和 MATE 作为它的图形界面,也可以选择 KDE 或者 Xfce4,同时这些桌面环境是开箱即用的;而 archlinux 需要手动选择并安装桌面环境
    • 基于 Ubuntu 的 Linux Mint 每 6 个月发布一次新版本,时间大约是在新的 Ubuntu 版本发布一个月以后;而 archlinux 采用滚动升级
    • Linux Mint 几乎与 Ubuntu 软件仓库完全兼容,采用 apt 管理和 .deb 软件包
  • 基于 Debian 的 Linux Mint(LMDE)
    • LMDE 基于 Debian 稳定版,并且采取不间断的对于 bug 和安全性问题进行修复的方式,同时间也会保持 Mint 其它组件的更新;而 archlinux 采用滚动升级
  • Linux Mint 提供一种更为开箱即用的用户体验,免去用户在安装系统后还要自己安装一系列满足基本使用需求的软件

 

Manjaro Linux Manjaro Linux

Manjaro Linux 基于 archlinuxManjaro Linux 提供自动配置好的系统(包括桌面环境),对用户来说更“友好”;而 archlinux 设计了一个最小化的基础系统,然后严重依赖用户按自己的特定需求进行定制Manjaro Linux 和 archlinux 一样采用滚动更新;但是 Manjaro 的更新策略不如 archlinux 激进,它的软件版本一般都落后于 archlinux 若干周,而对于这类滚动更新的发行版来说,若干周的版本差距足以造成严重的兼容性问题Manjaro Linux 虽然基于 archlinux,但拥有自己独立的软件仓库,并且值得注意的是,Manjaro Linux 的软件源,早已不和 archlinux 的相兼容Manjaro Linux 本身使用三个软件仓库:

  1. 不稳定库,即含有那些不成熟的 archlinux 包,这些包与 archlinux 源有 1-2 天的延后
  2. 测试库,每周同步一次,包含那些 archlinux 不稳定源的包
  3. 稳定库,包含那些由开发团队确认稳定的软件

Manjaro Linux 确实可以使用 AUR但是可能会经常遭遇问题,因为:

  1. AUR 实际上不提供现成的软件包,而是提供一个 PKGBUILD 和少量的相关文件,让用户自己获取、编译(有时候不需要)、打包一个软件包,而该过程对其构建依赖和依赖项的要求是很严格的
  2. 一旦 Manjaro Linux 提供的仓库里的包名称不同,或版本不符合要求,包构建就会失败
  3. 某些包即使能如愿构建(或修改 PKGBUILD 来构建),也无法正常工作,而这通常也是基础软件包的区别造成的

Manjaro Linux 的一些做法已经不符合 arch 之道.

ℹ️ 提示


Manjaro Linux 和 Arch 是两个完全不同的发行版(为什么有人觉得 Manjaro Linux 是 archlinux 而不觉得 Ubuntu 是 Debian 呢?)
很多 Manjaro Linux 的问题,不能用 archlinux 的解决方案解决
和平共处两项原则:
archlinux 用户不觉得自己高人一等,劝导 Manjaro Linux 用户前往对应的社区是善意的行为
不要攻击 archlinux 配置繁琐。繁琐是自由的代价。这是 archlinux 的选择,也是 arch 之道的一部分

 

欢迎对文内容做出贡献,也欢迎对本文的上下游文档做出贡献。欢迎加工或转载!

 

本作品采用 知识共享署名-相同方式共享 4.0 国际许可协议 进行许可。