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

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

相关文章

在java中如何将inputStream对象转换为File对象(不生成本地文件)

《在java中如何将inputStream对象转换为File对象(不生成本地文件)》:本文主要介绍在java中如何将inputStream对象转换为File对象(不生成本地文件),具有很好的参考价... 目录需求说明问题解决总结需求说明在后端中通过POI生成Excel文件流,将输出流(outputStre

Linux系统之dns域名解析全过程

《Linux系统之dns域名解析全过程》:本文主要介绍Linux系统之dns域名解析全过程,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录一、dns域名解析介绍1、DNS核心概念1.1 区域 zone1.2 记录 record二、DNS服务的配置1、正向解析的配置

C#原型模式之如何通过克隆对象来优化创建过程

《C#原型模式之如何通过克隆对象来优化创建过程》原型模式是一种创建型设计模式,通过克隆现有对象来创建新对象,避免重复的创建成本和复杂的初始化过程,它适用于对象创建过程复杂、需要大量相似对象或避免重复初... 目录什么是原型模式?原型模式的工作原理C#中如何实现原型模式?1. 定义原型接口2. 实现原型接口3

Java实现将byte[]转换为File对象

《Java实现将byte[]转换为File对象》这篇文章将通过一个简单的例子为大家演示Java如何实现byte[]转换为File对象,并将其上传到外部服务器,感兴趣的小伙伴可以跟随小编一起学习一下... 目录前言1. 问题背景2. 环境准备3. 实现步骤3.1 从 URL 获取图片字节数据3.2 将字节数组

Javascript访问Promise对象返回值的操作方法

《Javascript访问Promise对象返回值的操作方法》这篇文章介绍了如何在JavaScript中使用Promise对象来处理异步操作,通过使用fetch()方法和Promise对象,我们可以从... 目录在Javascript中,什么是Promise1- then() 链式操作2- 在之后的代码中使

MyBatis的配置对象Configuration作用及说明

《MyBatis的配置对象Configuration作用及说明》MyBatis的Configuration对象是MyBatis的核心配置对象,它包含了MyBatis运行时所需的几乎所有配置信息,这个对... 目录MyBATis配置对象Configuration作用Configuration 对象的主要作用C

SpringBoot实现导出复杂对象到Excel文件

《SpringBoot实现导出复杂对象到Excel文件》这篇文章主要为大家详细介绍了如何使用Hutool和EasyExcel两种方式来实现在SpringBoot项目中导出复杂对象到Excel文件,需要... 在Spring Boot项目中导出复杂对象到Excel文件,可以利用Hutool或EasyExcel

Springboot控制反转与Bean对象的方法

《Springboot控制反转与Bean对象的方法》文章介绍了SpringBoot中的控制反转(IoC)概念,描述了IoC容器如何管理Bean的生命周期和依赖关系,它详细讲解了Bean的注册过程,包括... 目录1 控制反转1.1 什么是控制反转1.2 SpringBoot中的控制反转2 Ioc容器对Bea

Java对象和JSON字符串之间的转换方法(全网最清晰)

《Java对象和JSON字符串之间的转换方法(全网最清晰)》:本文主要介绍如何在Java中使用Jackson库将对象转换为JSON字符串,并提供了一个简单的工具类示例,该工具类支持基本的转换功能,... 目录前言1. 引入 Jackson 依赖2. 创建 jsON 工具类3. 使用示例转换 Java 对象为

Java中对象的创建和销毁过程详析

《Java中对象的创建和销毁过程详析》:本文主要介绍Java中对象的创建和销毁过程,对象的创建过程包括类加载检查、内存分配、初始化零值内存、设置对象头和执行init方法,对象的销毁过程由垃圾回收机... 目录前言对象的创建过程1. 类加载检查2China编程. 分配内存3. 初始化零值4. 设置对象头5. 执行