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

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

相关文章

JavaScript对象转数组的三种方法实现

《JavaScript对象转数组的三种方法实现》本文介绍了在JavaScript中将对象转换为数组的三种实用方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友... 目录方法1:使用Object.keys()和Array.map()方法2:使用Object.entr

idea+spring boot创建项目的搭建全过程

《idea+springboot创建项目的搭建全过程》SpringBoot是Spring社区发布的一个开源项目,旨在帮助开发者快速并且更简单的构建项目,:本文主要介绍idea+springb... 目录一.idea四种搭建方式1.Javaidea命名规范2JavaWebTomcat的安装一.明确tomcat

java程序远程debug原理与配置全过程

《java程序远程debug原理与配置全过程》文章介绍了Java远程调试的JPDA体系,包含JVMTI监控JVM、JDWP传输调试命令、JDI提供调试接口,通过-Xdebug、-Xrunjdwp参数配... 目录背景组成模块间联系IBM对三个模块的详细介绍编程使用总结背景日常工作中,每个程序员都会遇到bu

Python内存管理机制之垃圾回收与引用计数操作全过程

《Python内存管理机制之垃圾回收与引用计数操作全过程》SQLAlchemy是Python中最流行的ORM(对象关系映射)框架之一,它提供了高效且灵活的数据库操作方式,本文将介绍如何使用SQLAlc... 目录安装核心概念连接数据库定义数据模型创建数据库表基本CRUD操作创建数据读取数据更新数据删除数据查

在Node.js中使用.env文件管理环境变量的全过程

《在Node.js中使用.env文件管理环境变量的全过程》Node.js应用程序通常依赖于环境变量来管理敏感信息或配置设置,.env文件已经成为一种流行的本地管理这些变量的方法,本文将探讨.env文件... 目录引言为什么使php用 .env 文件 ?如何在 Node.js 中使用 .env 文件最佳实践引

Python绘制TSP、VRP问题求解结果图全过程

《Python绘制TSP、VRP问题求解结果图全过程》本文介绍用Python绘制TSP和VRP问题的静态与动态结果图,静态图展示路径,动态图通过matplotlib.animation模块实现动画效果... 目录一、静态图二、动态图总结【代码】python绘制TSP、VRP问题求解结果图(包含静态图与动态图

使用MapStruct实现Java对象映射的示例代码

《使用MapStruct实现Java对象映射的示例代码》本文主要介绍了使用MapStruct实现Java对象映射的示例代码,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,... 目录一、什么是 MapStruct?二、实战演练:三步集成 MapStruct第一步:添加 Mave

JDK8(Java Development kit)的安装与配置全过程

《JDK8(JavaDevelopmentkit)的安装与配置全过程》文章简要介绍了Java的核心特点(如跨平台、JVM机制)及JDK/JRE的区别,重点讲解了如何通过配置环境变量(PATH和JA... 目录Java特点JDKJREJDK的下载,安装配置环境变量总结Java特点说起 Java,大家肯定都

Java中实现对象的拷贝案例讲解

《Java中实现对象的拷贝案例讲解》Java对象拷贝分为浅拷贝(复制值及引用地址)和深拷贝(递归复制所有引用对象),常用方法包括Object.clone()、序列化及JSON转换,需处理循环引用问题,... 目录对象的拷贝简介浅拷贝和深拷贝浅拷贝深拷贝深拷贝和循环引用总结对象的拷贝简介对象的拷贝,把一个

linux系统上安装JDK8全过程

《linux系统上安装JDK8全过程》文章介绍安装JDK的必要性及Linux下JDK8的安装步骤,包括卸载旧版本、下载解压、配置环境变量等,强调开发需JDK,运行可选JRE,现JDK已集成JRE... 目录为什么要安装jdk?1.查看linux系统是否有自带的jdk:2.下载jdk压缩包2.解压3.配置环境