0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

Linux内核的尘封往事

Linux阅码场 来源:Linuxer 作者:Linuxer 2020-10-26 10:00 次阅读

公元2022年,10月24日,破晓时分,虽刚过中秋,离立冬尚远,清晨竟生出一阵阵寒意。树叶随风沙沙作响,他静静地坐在阅码场车站的一把长椅上。自打10岁起,每天黎明时分他都在会在这个车站守候,不经意间已经过去了整整20年。他不知道自己为什么每天出现在这里,这似乎是他冥冥中的天命。他只是记得,有一个人曾经对他说过,“千年以后,黎明时分你二人会在‘Linux阅码场’驿站相遇”,而他这一生的目的,似乎就是为了遇着那个人。

让我们把时钟调回到一千年以前。公元1010年,彼时的大宋正值繁华鼎盛,而一场席卷中原大地的瘟疫,俄顷夺去了无数大宋百姓的生命,数月间竟然赤地千里,十室九空。那一年,白贞贞年方二八,徐仙则同样是一个翩翩少年,两家的爹娘早已给他们指腹为婚。两小无猜地长大,而他们也好地似一个人。

徐仙和白贞贞都出生于行医世家,两位少年的亲爹,都是远近闻名的大夫,联合开了一家名叫保和堂的医馆。两位老大夫,在瘟疫最严重的时候,也一直游走于各个村落,治病救人。而就在三个月前,两位老父亲不幸感染,撒手人寰。紧接着,二位少年的娘亲也离开了人世。

虽是无比悲痛,但是保和堂悬壶济世的重担,也落在了两位少年的身上。他们唯有化悲愤为前行的力量,没日没夜地奋战,医师加百毒,熏灌无停机。哪有什么白衣天使,不过是两个孩子换了一身衣服,学着爹娘的样子,治病救人、和阎王爷抢人罢了……

他们拼尽全力,竟然也于事无补,感染的人群越来越多,乡邻们一个个悲惨地离去。正所谓,堂上老亲嗔恶梦,闺中少妇焚纸钱;江藩昔重创,万井哀如焚。

他穷尽古书,试图寻找解药,救治更多的人。原来古书里没有药方,这是一种从未出现的疾病。终于有一天,在一本叫做《深入理解Linux内核》的古书里,他找到了治疗的方向。这本书里说道:“renice后,时空之门大开,穿越千年,获得药方”。

徐仙和白贞贞循着古书的路径,跋涉了数月,终于在蜀中的一片深山里,找到了书中说的神算子李纳斯。

只听神算子李纳斯道,整个人类社会,运行于一个叫做Linux的操作系统内核里,里面的每个人,都是这个系统里的一个普通进程。大家遵循着同样的时间轴,而nice值,会影响每个进程自身虚拟时间的速度。一般人的nice值都是0,对应着权重1024。而这个权重,又决定着虚拟时间的快慢:

vruntime += delta* NICE_0_LOAD/ se.weight

在这个公式里,delta是这个时空的时间差值,NICE_0_LOAD的值是1024,se.weight则由nice值决定:

nice值是0的人,权重正好是1024,虚拟时间的增长速度与物理时间一样。而,nice值越大,se.weight就会越小,在这个时空行走同样的delta时间里,vruntime虚拟时间就可以成倍地放大,从而实现时空穿越。

听完李纳斯近乎神一般的述说,他两异口同声的说道:“还请前辈速速将我二人的nice值设置为最高的19吧”,果然,善良的人儿总是想到了一块。

只听李纳斯说道:“万万不可,若你二人同去,则二人皆不可得回。天下苍生也不会得救。必留一人在此时空。”

决定离开的是他,决定留下的是她。两颗心紧贴在一起的两个人儿啊,就此需要分隔天涯。但,分别,也许是为了更好的重逢。

李纳斯又道:“切记,千年以后,黎明时分你二人会在‘Linux阅码场’驿站相遇,到那时,时空交汇,你会带着药方。唯有穿越千年仍然彼此深爱的两个人,才能让两个时空再次交汇。”

话音刚落,只见李纳斯通过“renice -n 19”指令,将徐仙的nice值设置为了19。刹那间,电光火石,时空之门洞开,徐仙穿越了其中。白贞贞的脸上噙满泪花,正所谓,轮台东门送君去,去时雪满天山路;山回路转不见君,雪上空留马行处。

而徐仙那边厢,云烟飘过,转眼千年。经过二十世的轮回,做了二十世的大夫,这二十世,他居然都没有娶妻生子,因为,一生似乎都是为了等一人。

这一世,他仍然是一名医生,毕业于天朝著名的华中科技大学同济医学院。

公元2019年底开始,一种名叫COVID-19的病毒,席卷整个星球。人类的命运,再次紧紧地联系在一起,成为悲喜与共的共同体。他所在的这个城市,武汉,正是最初承受打击的城市。这个城市的人民善良又美丽,为抗疫做出了世所罕见的牺牲。而他,则没日没夜的奋战在一线,救治一个个病患。

彼时的天朝中央和地方政府,由于采取了良好的隔离和管控措施,早于全球控制住了疫情。但是,地球的其他村落,COVID-19仍肆无忌惮地感染一群群的人。人类社会正常的交通与往来,遭遇了前所未有的停摆,无数家庭失去亲人。一个叫做美利坚的村落,人们仍在受苦受难,仅在疫情爆发的前数月里,就有多达20万人失去了生命。正所谓,草木为之含悲,风云因而变色。而美利坚的村长,似乎也因此得了癔症,成日里在一个叫做twitter的平台上,疯言疯语。

人类针对COVID-19病毒的科研攻坚战,正在与死神展开赛跑,而他,就在这个赛道的核心。每天黎明,他在Linux阅码场车站守候那个人,之后就早早地去到了实验室。穷尽脑力,寻找解毒良方。

COVID-19病毒是如此地难解,以至于全球医生奋战了几乎整整2个年头还没有找到答案。那一日,从Linux阅码场车站回到实验室后,他恍惚中看见了千年前的她,大脑里的一个灵感旋即诞生,他找到了这个病毒的破解之法。他把破解之法的文稿,撒向整个实验大楼。那一刻,整个实验室沸腾了,整个人类社会沸腾了。人类为科研成果如此疯狂,直到一个世纪后,女科学家墨菲在《星际穿越》里,寻找到引力方程式拯救人类的时候,才再次出现。

此后,他仍然每天清晨,在日出之前,在“Linux阅码场”守候,静静地等一个人。无论风吹雨露,寒暑又一年。

公元2022年,10月24日,破晓时分,虽刚过中秋,离立冬尚远,清晨竟生出一阵阵寒意。树叶随风沙沙作响,他静静地坐在“Linux阅码场”车站的一把长椅上,低头似乎在沉思着什么,身旁一颗羽毛缓缓地飘向了天空。他抬头的刹那,只见风吹动着她的白色裙摆,太阳此刻终于出现,从树梢里透出一束光,照射到她洁白无瑕的脸庞,闪着金色的光芒,白贞贞宛如一个仙子。这一刻,天地剧变,眼前的大楼、汽车、水泥路、立交桥都渐渐地消失了,“Linux阅码场”车站,竟转变为一个驿站,一切如大宋时那般模样。她对着他先是微笑,继而眼里含满热泪。

公元1024年,大宋天圣二年,离别了14年之后,徐仙和白贞贞在大宋鄂州之地的“Linux阅码场”驿站再次相遇,并带来了药方,黎民百姓得救了。仁宗皇帝嘉奖了他们,御赐大婚,天下的人民都祝福这一对“活菩萨”,争相传颂他们悬壶济世的故事,百姓亲切地称呼她为“白娘娘”。

天子感念民生之多艰,此一朝,皇帝仁爱,不折腾,开创了前所未有的“仁宗盛治”。天下太平,战事平息,百姓安康。仁宗一朝的文治,更是达到了历史的顶峰。陈寅恪有云:“华夏民族之文化,历数千载之演进,造极于赵宋之世”。唐宋八大家中的六位,都出自仁宗一朝,他们就是我们今天耳熟能详的:苏轼、苏洵、苏辙、欧阳修、曾巩、王安石。

谨以此文,致敬《白蛇传》、《星际穿越》、《阿甘正传》、《三生三世十里桃花》、《清平乐》,致敬母校,致敬武汉人民,致敬守护生命的医护人员,致敬祖国。

1024程序员节,“Linux阅码场”祈福天下太平,百姓安康,有情人终成眷属。祝全天下的Linux程序员身体健康,生活幸福。

原文标题:宋宝华:公元1024年Linux内核的尘封往事

文章出处:【微信公众号:Linuxer】欢迎添加关注!文章转载请注明出处。

责任编辑:haq

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 内核
    +关注

    关注

    3

    文章

    1309

    浏览量

    39833
  • Linux
    +关注

    关注

    87

    文章

    10981

    浏览量

    206687
  • 操作系统
    +关注

    关注

    37

    文章

    6266

    浏览量

    121842

原文标题:宋宝华:公元1024年Linux内核的尘封往事

文章出处:【微信号:LinuxDev,微信公众号:Linux阅码场】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    C++在Linux内核开发中从争议到成熟

    Linux 内核邮件列表中一篇已有六年历史的老帖近日再次引发激烈讨论 —— 主题是建议将 Linux 内核的开发语言从 C 转换为更现代的 C++。
    的头像 发表于 01-31 14:11 227次阅读
    C++在<b class='flag-5'>Linux</b><b class='flag-5'>内核</b>开发中从争议到成熟

    获取Linux内核源码的方法

    (ELF1/ELF1S开发板及显示屏)Linux内核是操作系统中最核心的部分,它负责管理计算机硬件资源,并提供对应用程序和其他系统组件的访问接口,控制着计算机的内存、处理器、设备驱动程序和文
    的头像 发表于 12-13 09:49 285次阅读
    获取<b class='flag-5'>Linux</b><b class='flag-5'>内核</b>源码的方法

    Linux内核UDP收包为什么效率低

    现在很多人都在诟病Linux内核协议栈收包效率低,不管他们是真的懂还是一点都不懂只是听别人说的,反正就是在一味地怼Linux内核协议栈,他们的武器貌似只有DPDK。 但是,即便
    的头像 发表于 11-13 10:38 237次阅读
    <b class='flag-5'>Linux</b><b class='flag-5'>内核</b>UDP收包为什么效率低

    如何优化Linux内核UDP收包效率低

    很多人都在诟病Linux内核协议栈收包效率低,不管他们是真的懂还是一点都不懂只是听别人说的,反正就是在一味地怼Linux内核协议栈,他们的武器貌似只有DPDK。 但是,
    的头像 发表于 11-10 10:51 272次阅读
    如何优化<b class='flag-5'>Linux</b><b class='flag-5'>内核</b>UDP收包效率低

    linux内核源代码详解

     在安装好的Linux系统中,内核的源代码位于/ust/src/linux.如果是从GNU网站下载的Linux内核的tar文件,则展开以后在
    发表于 09-06 17:01 2次下载

    Linux内核如何使用结构体和函数指针?

    我将结合具体的Linux内核驱动框架代码来展示Linux内核如何使用结构体和函数指针。
    的头像 发表于 09-06 14:17 554次阅读
    <b class='flag-5'>Linux</b><b class='flag-5'>内核</b>如何使用结构体和函数指针?

    Linux内核的编译主要过程

    Linux内核的编译主要过程: 配置、编译、安装 。
    发表于 08-08 16:02 494次阅读
    <b class='flag-5'>Linux</b><b class='flag-5'>内核</b>的编译主要过程

    Linux内核中C语言宏的使用技巧

    Linux内核可谓是集C语言大成者,从中我们可以学到非常多的技巧,本文来学习一下宏技巧,文章有点长,但耐心看完后C语言level直接飙升。
    发表于 07-21 14:56 213次阅读
    <b class='flag-5'>Linux</b><b class='flag-5'>内核</b>中C语言宏的使用技巧

    Linux内核中container_of原理详解

    Linux内核中经常可见container_of的身影,它在实际驱动的编写中也是广泛应用。
    发表于 07-14 15:19 145次阅读
    <b class='flag-5'>Linux</b><b class='flag-5'>内核</b>中container_of原理详解

    万千设备,linux内核如何知道?

    linux内核设备的注册由device_register()函数完成,这个函数是linux设备驱动模型的核心函数
    的头像 发表于 07-12 08:52 495次阅读
    万千设备,<b class='flag-5'>linux</b><b class='flag-5'>内核</b>如何知道?

    Linux内核的作用

    Linux操作系统是当今世界上最为广泛使用的开源操作系统之一,内核则是一个操作系统的核心和灵魂所在。对于一名Linux驱动开发者来说,了解Linux
    发表于 07-06 11:46 1197次阅读
    <b class='flag-5'>Linux</b><b class='flag-5'>内核</b>的作用

    Linux内核内存泄漏怎么办

    Linux内核开发中,Kmemleak是一种用于检测内核中内存泄漏的工具。
    发表于 07-04 11:04 580次阅读

    Linux内核的编译和运行

    想让Linux内核代码跑起来,得先搭建编译和运行代码的环境。
    发表于 06-23 11:56 347次阅读
    <b class='flag-5'>Linux</b><b class='flag-5'>内核</b>的编译和运行

    如何编译Linux内核rpm包

    进入github官网,搜索linux,使用git下载最新版本,或者其它版本的内核代码。
    发表于 06-07 16:24 781次阅读
    如何编译<b class='flag-5'>Linux</b><b class='flag-5'>内核</b>rpm包

    Linux内核中常用的C语言技巧有哪些

    Linux内核采用的是GCC编译器,GCC编译器除了支持ANSI C,还支持GNU C。在Linux内核中,许多地方都使用了GNU C语言的扩展特性,如typeof、__attribu
    的头像 发表于 05-12 14:45 398次阅读