征文:《Linux will never betray you》

和Linux的初次邂逅

因为初高中一直在传统学校没有很多的课余活动与课外拓展,所以刚入大学和我最贴近的设备其实是手机。我刚入学时的手机是小米5sp,也就是性能很强但功耗发热也很强的高通821处理器。我当时闲着没事干,也不想去学生会当劳工,就天天在宿舍折腾手机优化。

我接触优化的时候,root方案还是SuperSU到Magisk的过渡期,XP载体还是以Xposed Installer为主。优化也不像现在刷模块那么简单,都是需要去手动进行系统配置文件修改,framework.apk打包等操作的,所以黑砖恢复备份也是常事。在这个手机优化过程中也算是慢慢了解一点linux命令,算是为后面正式接触linux打了个小基础。

正式接触linux其实也是因为手机优化。相信很多朋友都感觉的到,如果想进行手机优化,就不得不面对两座大山——QQ和微信。这两个国民级应用在内存占用和功耗占用上能够达到一个令人发指的地步。虽然当时针对这两软件的优化方案很多,但仍架不住腾讯的”魔高一丈”和账号冻结大法。

我想去寻找有没有第三方客户端去替代QQ和微信,直接从根源解决问题。于是就接触到了一个有点像gotify的Github项目GcmForMojo。它的信息中转服务把网页版QQ微信作为消息接口,把本地安卓端作为用户的信息收发工具。这种在当时堪称”完美”的方案不出意外地把我钓成了翘嘴。于是我当时购买了自己的第一台VPS—–阿里云学生机,打算整个”大活”。

服务器拿到手之后就参照README一步一步改配置文件跑脚本,阿里云的小水管太感人了拉资源一拉就得拉仨小时,拉完部署完还遇到一堆error,有的error解决不到就只能重装系统重新跑。最后折腾了大概小一周才算是都折腾好了。这个项目当时大大缓解了我手机的资源压力,虽然它不支持音视频聊天和特殊格式渲染,但在18年网络环境比较淳朴的时候,这问题我也还能接受。


(翻自己朋友圈的时候极度极度极度尴尬症犯了,我是沙沟我是沙沟我是沙沟)

就这样爽了几个月之后,腾讯的”魔高一丈”来了,腾讯收紧”网页版微信”限制,根据网络新闻和社区交流来看,大部分用户的网页版微信权限都被禁止了,不出意外我也是被禁止的用户。当时我使用最多的其实是微信,QQ一般都是冰箱冻结的。所以腾讯这一刀对于我来说是直接把这个项目砍废了。而当时我妈的手机酷派大神F2疯狂出问题,整个家里的经济压力也非常大,买手机甚至都是一笔非常大的支出。所以我当时就和我妈互换手机,尝试修一下大神F2,修不了就找表哥借他们闲置不用的旧手机。最后手机也没修好(主板G了),借到的手机也是优化困难的华为P9。所以优化这块就只能暂时告一段落了。

打开Linux新世界的大门

手机优化是搞不了太多了,但回头一看VPS还没过期。我看着逐渐缩小的有效期区间,就感觉像我的金钱在不断流逝。为了让我心里不那么”肉疼”,我决定在VPS上面找点事情做。

刚开始一找VPS相关的教程介绍,发现结果都是清一色的“博客搭建”,那么就搭建博客呗。当时军哥LNMP看着确实有点头疼,什么是nginx?什么是反代?phpmyadmin是什么东西?所以当时就用宝塔作为最初的LNMP基础环境并搭建了wordpress博客。

当我第一次看到自己搭建的博客主页时,我突然感觉到一种极度的喜悦。我用自己的操作搭建了一个”网站”,这个网站和我平时看到的网站几乎没有任何区别。之前的我认为网站是高大上的,遥不可及的,甚至是我很难去实现的。但我花了三天时间靠自己就做到了。这次不仅让我有更多勇气去接触新鲜事物,也能让我有信心尝试去对高大上事物进行祛魅。

之后就慢慢沉迷进去了,备案域名也都买了,也用VPS搭建了网盘、Web-IDE、图床等应用。大学期间也成为了mjj,服务器选择从学生机传家变成了吃码买小鸡,也学到了一些虚拟化技术和黑话,搭建了更多奇怪的东西。之后又为学校搭建了HUSTOJQDUOJ,并为群内的蓝桥杯试题做兼容性优化。在大三的时候我还为电子商务专业代课,负责讲授VPS设置和网站搭建内容。

image
(当时发的OJ公告)

虽然做的工作都是九牛一毛,但当时部署应用实现应用给我的成就感巨爽。在这个过程中我慢慢学到了很多的linux相关的知识,对接触新鲜事物的信心也逐渐增强。如果不是这段经历,我可能还是按部就班的上课,能过就是赢,不会多学一点。

尝试和Linux”过日子”

大三上学期的时候就准备考研了,所以VPS的花费和耗费精力也慢慢小了很多,也就是看看论坛水水帖子。不过我和Linux的距离并没有变远,我在准备考研的期间买了一台hp chromebook x360 14g1,Chromebook相较于其它笔记本在硬件性价比上是非常非常高的,性能合格、支持触摸、机身轻便,最重要的是他很便宜,8130u 8+64当时1000左右就拿下了。

但它搭载的ChromeOS在微信上支持很拉跨,网页版不能用,安卓版容器性能拉跨。为了让自己的微信使用体验舒服一点,我当时使用Crouton(ubuntu xenial)+wine+wechat+xiwi插件实现了vnc“网页版微信”,非常流畅体验很爽。但ChromeOS从106版本之后就需要强制科学上网,裸连的时候甚至连百度都无法访问,我当时怀疑是MTP服务器配置问题但折腾了半天也没有办法。所以就只能放弃了ChromeOS,刷了兔子UEFI转向了Windows。

相信使用Windows的朋友都知道,Win10是吃系统资源的一把好手。开机固定3G内存消失,系统即使用Compact安装,空间也会占用32G。除此之外chromebook在win10下的续航也是非常灾难的,ChromeOS系统我一般都是3天1充,而Win10的话我需要1天3充,在图书馆备充电宝后的续航压力都很大。

那么有没有低资源占用低磁盘空间占用的方案呢?这不选Linux选谁!这也是我第一次尝试将Linux作为我的主力系统。

说实话,之前我也尝试过将Linux作为主力系统。但当时Ubuntu16.04对我来说确实是噩梦般的体验。配置小改,UI不在,直接黑屏,马上拜拜。而且Ubuntu当时美化配置完成后你不知道你下次开机是看到美丽的界面,还是”融化”后的黑屏白字。

所以我一直是抵触去将Linux作为第一选择的,这次我也没敢装Ubuntu18.04,但我之前的操作环境都是Debian系的系统,所以打算还是选择基于Ubuntu修改的发行版。之后又不想在美观里面费太多的精力,所以就选择了ZorinOS。
Linux作为主力系统的体验真的很爽,日常状态下CPU占用个位数,内存占用不超过1G。ZorinOS的系统界面对我来说也很讨喜。续航虽然不像ChromeOS那么离谱,但一天一充也能做到了。
我以为我能在ZorinOS稳定毕业,但没想到有一天系统突然就G了,问题也定位不到。当时课程压力还有点大,所以也不想花费太多时间去修复,打算重装系统了。

ZorinOS进一步加强了我对Ubuntu GUI版本的抵触心理,所以Debian系我基本就都放弃了,RedHat系因为CentOS Stream事件也不想去用,所以最后就选择了Arch系的Manjaro。
Arch系的AUR让我感受到社区的强大驱动以及其对生态的显著改善。我之前想装软件需要自己去找教程找文档,手动写配置,配置写错了还得补救还原到初始状态。AUR能够为我提供一个可信度很高且长期维护的应用安装参考PKGBUILD,不会因为这个出现问题。除此之外应用的安装也非常简单,yay -S xx就可以了。在某种程度上确实要比其他系Linux省心很多。
选择Manjaro来简化Arch初期部署工作,之后就是享受Arch带来的优势了,Manjaro基本支持我毕业之前的大部分工作。虽然现在我使用了EndeavourOS,但我对Manjaro的印象还是很不错的。(也算是Arch鄙视链底层的自洽哈哈)

研究生期间的Linux经历

我的硕士研究生方向是人工智能计算机视觉,但这个方向也和Linux密切相关。刚入学的时候机房新购GPUT服务器,我这边就跟着装系统配环境。

之后又和导师一块进行GPU虚拟化和GPU管理探索。刚开始使用DeterminedAI方案,但该方案我们感觉比较臃肿。很多节点API并不适用我们的深度学习任务,而且它的运行日志也不是很直观,问题定位困难。不过这种master-agent的设计我们学到了,印象也很深。
之后我们就探索了纯LXC LXD方案,运行效果很好但管理非常困难,每一个操作都需要输入大量的配置,目前也没有一个支持好的纯LXC LXD的管理面板。之后又将重心放到了支持管理面板的方案(能让其他人也能参与进GPU节点管理)

目前我认为比较可行的方案有两个:

  1. 是倾向于固定环境的方案—PVE+LXC+显卡直通(当时的笔记【PVE】从零开始配置PVE7+LXC+CUDA环境),PVE的强大管理面板和稳定的LXC能够让用户有一个固定的深度学习环境,实现一个独立的无感系统环境,但这种方式的局限是显卡资源管理不灵活,切换数量时需要关机重新配置显卡直通
  2. 目前大部分GPU云服务商用的方案—Docker GPU + Docker管理面板。这种方案相比第一种方案更倾向应用,根据应用去进行显卡的灵活分配,围绕Docker的方案也能很好的进入Docker AI的生态,你只需要一个docker-compose.yaml就可以快速搭建一个GPU服务。因为这种方案注重应用,所以这种方案需要去做好持久化存储管理。

我们初期使用的是Portainer面板+Portainer API,后面的话就使用GPU服务商提供的面板了。因为忙其他项目和毕业方向任务,所以这部分目前也变成了待处理的坑。

因为虚拟化这部分的底,我这边也开始慢慢去接触PVE,帮机房搭建了一个用于web应用管理的PVE,也负责管理NAS,搭建了一些实验室内部应用。之后又搭建了一个内部的小服务器,专门进行虚拟化实验和其他web应用实验。

我觉得VMware ESXI和Citrix对国内市场呈逐渐撤退的趋势,国内自研方案可能会向PVE进行靠拢,所以也尝试了类似的探索,不过因为毕业模型一直不涨点,再加上毕业发展压力与单身狗压力。所以这方面也成了坑。。。


疫情击溃了大家的生活,大家都因为疫情出现了非常严重变化。疫情当时对我的影响主要是隔离和核酸,每天基本就是呆在宿舍或隔离酒店。当时我也干不了其他的事情,所以就打算自己配置一套基于Linux的全键盘流环境。当时我的初步方案是:

当时的截图如下,使用体验还是非常爽的。

不过这个方案的缺点也有,这个方案对显示器的数量和位置切换兼容性不是太好,当显示器出现改动时需要手动写配置文件。而且多显示器下,副显示器很容易出现异常(画面不全,闪烁,黑屏)
之后我又选择了hyprland方案,这个方案的动画非常合乎我心意,太流畅了。但是第三方应用兼容性不好,甚至会出现装一个调一个的情况。

然后就。。。然后就来活了,有一个智慧校园3D项目,我需要用Blender去调整美术给的模型以契合threejs,还需要自己做一个简单的模型。但Blender在Manjaro或者EndeavourOS上表现很差(热键不生效,帧数低),所以又不得不回到了Windows。
完成这个项目后又参与了一个活动的策划,活动依赖的客户端不支持Linux,所以也没换。时间一长再加上毕业相关的压力,所以就又变成Win的模样了。个人桌面端的完整方案也变成了坑。。。

最近主要就是毕业论文的修改与考博方向,无论结局如何我打算等情况都稳定下来然后慢慢去填坑,将这些坑变成有意义的成品。

Linux will never betray you.

现在想想,为什么我会那么喜欢Linux呢?

  • Linux是网站服务器的重要载体之一,他让互联网的形式变得更加的丰富多样,让用户能够体验到”云”服务带来的便利,这为什么不喜欢?
  • Linux的桌面端相较于Win的资源占用更低,用户的硬件门槛更小,能够让用户体验到更加流畅的GUI,这为什么不喜欢?
  • Linux的扩展性强,能够让用户”随心所欲”,根据喜好实现更高度的应用定制化和环境定制化,这为什么不喜欢?

但写到这,我的心态并没有多大变化,我觉得让Linux更具有魅力的不只是其系统架构的优秀,还有围绕Linux的人。

我发现Linux社区的人都有点不一样,他们能够认真每一个发言的人和每一个问题,能够认真对待每一个”孤独前行”的人,他们充满热情与希望,愿意花费大量精力去为社区,为开源项目,为每一个能帮助他人的项目去做贡献。
可能这些工作常常被认为是”无意义”的,然而“有意义”工作的价值不正是这些”无意义”的工作慢慢赋予的吗?目前大家赞誉不绝的framework不正是一个一个的模块支撑起来的吗?我认为这种”无意义”的工作,能够”无意义”工作的人更应该值得尊重。

而Linux社区作为一种开放自由非宗教性质的符号,让更多优秀的人在一起互帮互助,共同促进,提供更加积极正向的反馈。即使他们的工作和我可能没有太多的利益相关,但他们的”光”确实是照耀着我,让我能够对生活有更好的信心。
说实话,我在大学和研究生期间有过多次的人生怀疑与人生低迷。因为我之前有很多很好的工作甚至是一些想法被同事或实习单位领导无情否定,我印象最深的是我在活动厅尝试解决一个资源池预留分配问题,有个初中生看到我和我说敲代码真厉害,但是他觉得好难。我鼓励他敲代码简单好上手,他未来可以用代码去搭建属于自己的城堡。我鼓励完孩子之后,实习公司领导过来痛批了我一顿,说我做的事情毫无意义,不用管就行,我这属于画蛇添足(虽然领导提了)。
当时那段经历对我来说确实是有点灾难,觉得我的一切是不是都是无意义的。当时我那一段时间非常低迷,真的是这些充满朝气与希望的人影响着我渡过这段时间,让我能够重拾信心继续改进继续前行。还是感谢这个世界上专注于自己想做的人,感谢尊重他人的人,感谢对生活仍充满希望的人。

相比于很多”卷形式范式”的IT圈,Linux好像并没有太大的改变,即使是之前的《鸟哥的Linux私房菜》在目前的Linux的适用性也是很足的,但它自己却不断进步不断改善,不断产出新兴内容。而你学习Linux好像也不用去想学有所成的你明天是否被淘汰,因为Linux永远是它自己,永远是它最纯正的自己,它希望能帮助你,也希望你能让它变得更好,希望你能让它去做更好的事情。你可以永远相信一句话:

Linux永不会背叛你。
Linux will never betray you.

所以,你为什么不喜欢Linux呢?我可能在Linux整体发展的旅程中”难登大雅之堂”,但我也会对Linux以及Linux身边的人给予应有的尊重,我也会尽我所能为人们带来希望之光。

Linux is good. So … Linux.do?

来都来了,不舔始皇不合适吧(开玩笑)

在网络舆论环境限制下,有一个好的社区是非常难能可贵的。很多社区基本都是歪楼怪,或者是拿狗头表情包盾牌的冒犯怪。目前就连正经回答问题的社区都很少,不打架都算好。

Linux.do社区确实让我找到了之前那种淳朴的感觉。大家对问题回答都很尊重,没戾气攻击性也少,也愿意真诚分享自己的经验教程。这也少不了始皇的“制策有方”和“勤理坛事”,也希望社区能够越来越好,成为Linux圈子里人杰地灵的风水宝地。

具体的夸奖的话我就不说了,感觉夸太多就不好意思了,只能说始皇伟大,无需多言

就写到这吧,今日的文学能量不足,如果后续有补充的我再修改。

22 Likes

学习了

1 Like

佬友这Linux学习路线非常典型且硬核。有些东西看完我去了解了一下,让我受益匪浅。
像我常说的那样,这个社区完全是我搭了个台子,大佬们赏脸一起唱一台大戏。对于社区而言,一个人的努力远远不够,但一群人的努力就光芒万丈了。

5 Likes

哈哈,看完佬友的学习经历,逐渐把我类似的经历唤醒起来。看到后面佬友在梦想的道路上踯躅前行、不断奋进,又由衷地为之赞叹。加油!

1 Like

始皇太会捧了 :smile:

1 Like

感谢始皇回复!我从小就用你脚本长大的
我这只能算小打小闹,难等大雅之堂的。
也非常感谢始皇为大家提供这个平台!等我这边有精力写作的话一定会为坛友分享些好玩有用的内容。

哈哈,感谢老哥的鼓励,也希望老哥也能够在自己想做的方向上顺顺利利,稳步前行!

受益匪浅

1 Like

情人会离开你,朋友会背叛你,但Linux不会

Linux不会就是不会

1 Like

大佬的经历确实丰富,感觉我仍是井底之蛙

1 Like

看过大佬的文后我发觉我其实不会用Linux :joy:

1 Like

某种程度上来说,确实是这样 :rofl:

我不是我没有。
咋说呢,我这个经历只能说小打小闹,细看的话我这只能说会搭建点应用,和大家差的太远。
可能我和老哥的区别就是我部署了这个应用,老哥部署了其他应用。我在这个地方用到了Linux,老哥在别的地方用到了Linux,其实是没有太大差别的,也很难去分个高低。
老哥将我的工作摘出来百度一下谷歌一下,按照README一个一个跑,就比我强了,那我就是井底之蛙了。 :stuck_out_tongue_winking_eye:

我也不会啊,我也是遇到困难找Chat哥,遇到困难就谷歌。
只能说自己的一些事情和Linux沾边,能胡扯一下罢了。 :rofl:

常规话题活动

激活帖子!!最后3天

感谢佬友! T T