大家好,我是山尽,今天分享一下我使用 以及为什么选择 arch linux 的经验。
起源
那天,我那用了7年的2012版macbook(这电脑还是我大二时从大佬姜军jasl那二手买回来的,哈哈),有一个内核进程老是占用几个CPU,把电脑拖得很慢。
作为程序员,我自然要研究下为啥,好不容易从GUI找到了日志,却发现是苹果的帐号相关的进程。
网上的方法都是说,删掉所有帐号,重新登陆就好了。
WTF,我照做了,还是一样,气死我了。
加上macbook一直不方便用linux的docker
,man
还有iptables
、strace
、perf
等工具,我就想用linux了, 我想要的工具:
选择 Arch Linux
我大学期间就用过几年的ubuntu作为日常系统,ubuntu还不错,就是包管理器不太好,以及自定义性不强。
我也想用最新的软件,于是我选择了arch Linux:
Arch Linux 是通用 x86-64 GNU/Linux 发行版。Arch采用滚动升级模式,尽全力提供最新的稳定版软件。初始安装的Arch只是一个基本系统,随后用户可以根据自己的喜好安装需要的软件并配置成符合自己理想的系统.
以下核心原则构成了我们通常所指的 Arch 之道,或者说 Arch 的哲学,或许最好的结词是 Keep It Simple, Stupid(对应中文为“保持简单,且一目了然”)。
简洁
Arch Linux 将简洁定义为:避免任何不必要的添加、修改和复杂增加。
现代
Arch尽全力保持软件处于最新的稳定版本,只要不出现系统软件包破损,都尽量用最新版本。Arch采用滚动升级策略,安装之后可以持续升级。
Arch向GNU/Linux用户提供了许多新特性,包括systemd初始化系统、现代的文件系统、LVM2/EVMS、软件磁盘阵列(软RAID)、udev支持、initcpio(附带mkinitcpio)以及最新的内核。
实用
Arch 注重实用性,避免意识形态之争。最终的设计决策都是由开发者的共识决定。开发者依赖基于事实的技术分析和讨论,避免政治因素,不会被流行观点左右。
Arch Linux 的仓库中包含大量的软件包和编译脚本。用户可以按照需要进行自由选择。仓库中既提供了开源、自由的软件,也提供了闭源软件。实用性大于意识形态.
以用户为中心
许多 Linux 发行版都试图变得更“用户友好”,Arch Linux 则一直是,永远会是“以用户为中心”。此发行版是为了满足贡献者的需求,而不是为了吸引尽可能多的用户。Arch 适用于乐于自己动手的用户,他们愿意花时间阅读文档,解决自己的问题。
这就是Arch Linux.
我的Arch Linux
Arch Linux的文档异常丰富,以至于在哪个型号的macbook上装Arch Linux都有详细的手把手教程。
所以,我也没费多少力气就安装完成了。
我选择了:
btrfs文件系统
:Btrfs 是一种新型的写时复制 (CoW) Linux 文件系统,已经并入内核主线。Btrfs 在设计实现高级功能的同时,着重于容错、修复以及易于管理。KDE 图形桌面
:KDE 是由 Plasma 桌面环境、库、框架 (KDE Frameworks)、和应用组成的软件项目。systemd-networkd + iwctl
:网络管理systemd-networkd 是一个管理网络配置的系统守护进程。它会在网络设备出现时检测和配置;它还可以创建虚拟网络设备。这个服务对被 systemd-nspawn 管理的容器或者虚拟机的复杂网络配置尤其有用,同样也适用于简单的网络配置。 iwd (iNet wireless daemon,iNet 无线守护程序) 是由英特尔(Intel)为 Linux 编写的一个无线网络守护程序。该项目的核心目标是不依赖任何外部库,而是最大程度地利用 Linux 内核提供的功能来优化资源利用。 tmux、alacritty、vim
:这我在之前的文章分享过我的办公环境了
以上,就是我的组件搭配。
值得一提的就是btrfs文件系统了,作为一个相对比较新的文件系统,他支持Copy On Write
,就是你在fork 进程时的copy on write,在没有修改时,都用旧的东西,一旦有修改,就复制一份新的出来。
在btrfs里,就是每次写磁盘数据时,先将更新数据写入一个新的 block,当新数据写入成功之后,再更新相关的数据结构指向新 block 。
而我会对btrfs定时做快照(Snapshots),快照是对文件系统某一时刻的完全备份,建立快照之后,对文件系统的修改不会影响快照中的内容。
这快照可比mac的time machine好多了,首先这快照可以存储在本地,不占用啥空间;其次可以定时同步到外接硬盘,甚至云存储里。
还原到某个快照,一个命令就好:
Rollback:
snapper rollback [number]
Options for 'rollback' command:
--print-number, -p Print number of second created snapshot.
--description, -d <description> Description for snapshots.
--cleanup-algorithm, -c <algo> Cleanup algorithm for snapshots.
--userdata, -u <userdata> Userdata for snapshots.
Arch Linux体验到的好处
完备的文档
可以说,一个接触到linux的人,上网查相关的问题时,总会去到过arch的文档中心。
看这个介绍systemd的文档大纲:
最新的包
时刻用上最新的内核,最新的vim,最新的tmux,最新的浏览器、最新的开源工具等等。
热心的论坛群组
用arch我当然碰到过很多问题,作为一个小白,我在arch的telegram收获到了非常多热心的帮助。
Linux的自定义性
我有一个VPN,但我想指定域名、IP地址的访问才走这个VPN,在mac上我可没啥办法。
但我用Linux,我就可以用路由表指定这些该路由到我的wifi网卡,还是vpn的虚拟网卡里的。
Arch Linux的缺点
当然,一个东西肯定有坏处的。
用户细节跟mac比差了点
虽然我配置好触摸板四指划动移动桌面,三指向上展示程序列表等还原mac的手势了,但三指点击单词翻译以及双指点击放大,这个没办法还原出来。
一些驱动问题
不确定是不是我在mac上装arch的原因,早期的蓝牙音响我遇到挺多问题没法解决,鉴于没时间,只好期待下次更新时修好。
非专业程序员很难玩
自然的,安装都需要对分区、linux操作比较熟悉才可以顺利完成,小白是很难用好的。
滚动更新到内核就需要重启
是的,因为你需要经常滚, 我起码几天一次,内核更新了,那就要重启了,一些工作中的程序就不太好恢复。
以上
以后我应该还会继续使用Arch Linux,这文章也是在此系统中写出来的,看看能不能工作电脑也换上arch.
朋友们,给辛苦码字分享的我点个赞或者好看再走吧。
这文章效果好的话,下次给大家分享linux的debug神器:strace, perf, 以及 /proc.