大学生自述恋爱全过程,对象竟然是。。。。

2024-03-09 18:30

本文主要是介绍大学生自述恋爱全过程,对象竟然是。。。。,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

1.命运的齿轮开始转动

2006年,作为一个清澈且愚蠢的大学生的我,某天在学校的图书馆里偶然发现了一本关于Linux操作系统的书籍。就像一个少年无意间在阁楼发现了一本魔法禁书,我不可避免的对Linux系统产生了浓厚的兴趣:它可以根据个人需求定制软件,甚至可以从源代码开始编译软件!

然而与Linux的邂逅伊始,困难重重:那本书上介绍的Linux发行版是在当时已经稍显过时的Red Hat 9.0,而在2006年,IDE接口的硬盘已经被淘汰,SATA硬盘成为主流,但是它并不支持SATA硬盘。 

于是某天下午,我开始了行动。跑到学校的打印店买了三张RH9.0的光盘,放进光驱开始安装。原谅我这一生如履薄冰——安装过程中提示无法识别电脑的SATA硬盘。经过一系列操作,我发现解决方法一是通过Grub for DOS加载新版本的initrd.img和vmlinuz来进行引导,二是使用新版本的Fedora Core。

人生苦短,何妨一试。我从第一种方法开始了尝试,经过长达一周的不懈探索,我成功学会了如何通过硬盘引导来安装操作系统,掌握了一项新技能。

2.大方承认吧,您最爱的操作系统!

随着对Linux了解的深入,了解到红帽公司已经改变了产品路线。对于我这种个体户来说,Fedora Core系列是最佳选择。而我的电脑它是一位双属性战士:同时搭载了Windows XP和Fedora。

2.1 是时候出发了!

彼时彼刻,我经常泡在国内各种Linux论坛上,了解到了许多其他的Linux发行版:SUSE、Mandriva、Debian、Ubuntu和Gentoo等,他们各具特色,其中就属SUSE最得我心。

后来微博出现了,我关注了SUSE的母公司Novell,并参加了他们举办的「我与SUSE Linux的故事」活动。我把我的故事写出来后,并且成功获得了奖品——一张OpenSUSE 10光盘。(得意)

恰逢此时,Ubuntu母公司Canonical为了推广Ubuntu Linux,在全球范围内免费赠送Ubuntu光盘。而我自然秉持着免费的东西没有不要的道理,便操持着自己三脚猫的英语填写了申请。两周后,我收到了从荷兰阿姆斯特丹寄来的光盘。

继Ubuntu全球免费送光盘活动之后,SUN公司也跟着卷起来了。我当然也没有错过白嫖一份光盘的机会。(炫耀)

虽然现在这些光盘被我放在书架上吃灰,但也证明了我的青春。而我将继续着我的Linux系统折腾之旅。

2.2 对不起,我染上Linux了

安装过Mandrive、Debian和Ubuntu这三个版本后,我始终觉得自己的Linux水平达到了一个瓶颈,明明都是自己认识的文字,为什么组合起来就看不太懂了呢?

抱着解决这个问题的目的,开始在网上冲浪。我在linuxsir论坛上遇到了Gentoo Linux。他原来是FreeBSD的大佬,玩腻了FreeBSD系统后,转战到了Linux阵营。在Linux阵营以deb和rpm包管理机制为主流的大环境下,他独树一帜地采用了portage树进行包管理,同时操作系统采用滚动升级的方式。但由于安装过程比较麻烦,在国内,Gentoo Linux一直属于小众的发行版本。

3.我宣布,Gentoo Linux是我真爱

与采用deb和rpm包管理的Linux发行版不同,一般来说,用户直接下载iso刻盘安装即可完成安装。但Gentoo并不是这样。Gentoo官网提供了LiveCD(称为mini CD)、Stage3和portage等多种安装方式。安装的方法为通过miniCD启动基本系统。虽说是miniCD,但启动后还是有图形界面,桌面管理器为XFCE,一个轻量级的Linux桌面管理工具。

Stage3其实就是官网将最新的Gentoo Linux系统的根目录去除/dev、/proc等目录的压缩包。通过miniCD进入系统后,需要设置网络、DNS和rsync地址,对硬盘进行分区格式化,再解压Stage3,将Stage3解压到硬盘的根目录,再将portage解压到/usr目录。在miniCD中,系统的根目录为虚拟目录,需要将系统的根目录切换到硬盘中,通过chroot命令来切换。

Stage3不包括编译好的内核,因此需要先到Gentoo官网下载内核源码到本地编译。相对于Redhat的在线包管理工具yum,Gentoo的包管理工具为emerge。第一次下载内核源码并手动编译完内核后,重启系统时出现了kernel panic的问题。经排查后发现是没有将SATA控制器驱动编译进内核导致无法启动。一番搜索后,我发现可以将miniCD中的/proc/.config.gz这个当前内核的配置文件提取出来编译内核。命令为emerge genkernel。编译安装完内核后,修改grub.conf文件才能进入基本系统。这个系统看起来还是有点low,因为与用户交互只有命令行,没有图形界面,需要自己安装窗口管理器。

在Linux的世界里,我曾漫无目的地漂泊,直到我遇见了Gentoo Linux。在使用Fedora的时候,虽然知道Linux可以手动编译源代码,但因为现成的rpm包总是方便快捷,所以我总是选择直接安装。然而,当我接触到Gentoo时,一条简单的命令就可以编译源码包,那种从无到有的成就感让我沉醉。

(质疑Gentoo Linux,理解Gentoo Linux,成为Gentoo Linux.jpg)

4.如今的我

距我初次接触Linux已经过去18年了。这18年里经历了很多事,这些事说来话长,但是不说也罢。总之现在我进入了麒麟软件从事国产Linux操作系统工作。

工作中使用的Linux发行版也从Debian到SUSE,再到中标麒麟、银河麒麟。这18年里,Linux世界发生了巨大的变化,Ubuntu在南非富翁马克·沙特尔沃思的顶力支持下,从默默无闻一跃成为全球知名Linux发行版本;IT巨头IBM公司以470亿美元收购了世界上最大的开源软件Redhat;SUSE公司几经易主;华为公司开发的开源Linux发行版OpenEuler成为国内众多商业Linux发行版的上游版本;国内Linux发行版犹如雨后春笋一般不断冒出;Linux与开源软件在全球经济中占据着越来越重要的地位。

虽然现在的个人桌面市场上Windows和Mac操作系统还占据着主流地位,但近5年来随着越来越多的国内软件厂商基于Linux平台开发软件,Linux桌面的软件生态正在不断地完善。我从2020年12月开始,一直只使用银河麒麟单系统作为日常办公系统,见证了腾讯、阿里、百度、亿图、搜狗等国内软件大厂针对国产Linux发行版开发原生软件;这些软件的用户体验也在不断地与Windows版本相接近。

最后希望更多的人可以使用银河麒麟桌面操作系统,星星之火可以燎原。在不远的将来,银河麒麟桌面操作系统一定会进入千家万户。

from 黄仕伟

这篇关于大学生自述恋爱全过程,对象竟然是。。。。的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/791577

相关文章

SpringMVC高效获取JavaBean对象指南

《SpringMVC高效获取JavaBean对象指南》SpringMVC通过数据绑定自动将请求参数映射到JavaBean,支持表单、URL及JSON数据,需用@ModelAttribute、@Requ... 目录Spring MVC 获取 JavaBean 对象指南核心机制:数据绑定实现步骤1. 定义 Ja

Python打印对象所有属性和值的方法小结

《Python打印对象所有属性和值的方法小结》在Python开发过程中,调试代码时经常需要查看对象的当前状态,也就是对象的所有属性和对应的值,然而,Python并没有像PHP的print_r那样直接提... 目录python中打印对象所有属性和值的方法实现步骤1. 使用vars()和pprint()2. 使

MySQL JSON 查询中的对象与数组技巧及查询示例

《MySQLJSON查询中的对象与数组技巧及查询示例》MySQL中JSON对象和JSON数组查询的详细介绍及带有WHERE条件的查询示例,本文给大家介绍的非常详细,mysqljson查询示例相关知... 目录jsON 对象查询1. JSON_CONTAINS2. JSON_EXTRACT3. JSON_TA

maven私服配置全过程

《maven私服配置全过程》:本文主要介绍maven私服配置全过程,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录使用Nexus作为 公司maven私服maven 私服setttings配置maven项目 pom配置测试效果总结使用Nexus作为 公司maven私

C#之List集合去重复对象的实现方法

《C#之List集合去重复对象的实现方法》:本文主要介绍C#之List集合去重复对象的实现方法,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录C# List集合去重复对象方法1、测试数据2、测试数据3、知识点补充总结C# List集合去重复对象方法1、测试数据

Spring中管理bean对象的方式(专业级说明)

《Spring中管理bean对象的方式(专业级说明)》在Spring框架中,Bean的管理是核心功能,主要通过IoC(控制反转)容器实现,下面给大家介绍Spring中管理bean对象的方式,感兴趣的朋... 目录1.Bean的声明与注册1.1 基于XML配置1.2 基于注解(主流方式)1.3 基于Java

C++/类与对象/默认成员函数@构造函数的用法

《C++/类与对象/默认成员函数@构造函数的用法》:本文主要介绍C++/类与对象/默认成员函数@构造函数的用法,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录名词概念默认成员函数构造函数概念函数特征显示构造函数隐式构造函数总结名词概念默认构造函数:不用传参就可以

C++类和对象之默认成员函数的使用解读

《C++类和对象之默认成员函数的使用解读》:本文主要介绍C++类和对象之默认成员函数的使用方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录一、默认成员函数有哪些二、各默认成员函数详解默认构造函数析构函数拷贝构造函数拷贝赋值运算符三、默认成员函数的注意事项总结一

Linux下安装Anaconda3全过程

《Linux下安装Anaconda3全过程》:本文主要介绍Linux下安装Anaconda3全过程,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录简介环境下载安装一、找到下载好的文件名为Anaconda3-2018.12-linux-x86_64的安装包二、或者通

golang 对象池sync.Pool的实现

《golang对象池sync.Pool的实现》:本文主要介绍golang对象池sync.Pool的实现,用于缓存和复用临时对象,以减少内存分配和垃圾回收的压力,下面就来介绍一下,感兴趣的可以了解... 目录sync.Pool的用法原理sync.Pool 的使用示例sync.Pool 的使用场景注意sync.