文章详情

短信预约-IT技能 免费直播动态提醒

请输入下面的图形验证码

提交验证

短信预约提醒成功

不容错过!私藏的几个学操作系统好东西

2024-12-11 17:31

关注

本文转载自微信公众号「编程技术宇宙」,作者轩辕之风 。转载本文请联系编程技术宇宙公众号。

大家可能读过不少的操作系统的文章,不过这其中很多都是大谈操作系统的理论技术,鲜有探讨现代操作系统实际的实现。

 

学一项技术,不能只是纸上谈兵,知其然还能知其所以然,还能知如何以然,方达至高境界。

阅读操作系统源代码,是学习操作系统的不二法门。下面就最常见的Linux和Windows系统分别介绍一下。

Linux

Linux属于开源系统,想获取源码轻而易举,不过这里轩辕推荐一个我私藏的网站,不需要你科学上网,不需要你下载源码,在线阅读,哪里有电脑哪里就能看。

网址:https://elixir.bootlin.com/

 

这个网站有几个好处:

 

除了Linux,这个网站还能支持包括glibc、qemu、dpdk等很多其他项目代码的阅读:

 

用这个网站阅读源码,比在GitHub上的体验有过之而无不及。

Windows

什么?Windows也能看源码?没错是的。

在程序员中有一条鄙视链,用Linux的时常鄙视用Windows的,鄙视Windows系统不如Linux。我不太清楚这种鄙视是何时何因而起,但你若看过Windows操作系统源代码后,也一定会折服于微软工程师的编码能力和设计智慧。阅读这些优秀工程师的C代码宛如欣赏一件艺术作品般让人享受。这其中有太多的宝藏值得我们学习。

虽然,Windows操作系统属于微软商业产品,但这么多年以来,还是有非常多的人想一窥其内核的秘密,这其中就出现了源码泄露、逆向工程、官方发布等多个不同的版本。虽然有些版本已经发布多年,但底层很多实现却是一直沿用至今。

Windows NT 4.0 & Windows 2000

2004年2月,发生了一起Windows内核源码泄露事件,泄露的是Windows NT 4.0/Windows 2000源码。随后便迅速扩散,在GitHub上也多年提供下载,不过后来受到微软施压,GitHub去掉了相关的链接。

 

WRK

微软也还是挺大方,在2006年左右,为了让高校学生学习操作系统,基于Windows Server 2003的内核,官方发布了一个叫Windows Research Kernel的项目,简称WRK。

WRK是一个“阉割版”的Windows内核代码,去掉了Windows中的窗口实现、TCP/IP协议栈等多个功能模块。但保留了诸如进程/线程管理、内存管理、I/O管理、对象管理等重要功能,虽是“阉割版”,但仍然是非常值得一看的版本,毕竟官方发布嘛。

ReactOS

网址:https://reactos.org/

 

这里的React可不是前端框架中的那个React,这是一个逆向工程中的集大成之作。

这里简单科普一下逆向工程

我们平时开发软件的过程是“正向”,即编写源代码,然后由编译器编译链接生成CPU指令,最后整合形成一个可执行文件。

逆向工程就是将上面的过程反过来,从一个可执行文件,通过分析文件中的代码指令,最后推导出原来的源代码的过程。

你可能听过逆向分析某一个程序,但你知道有人直接逆向了整个Windows操作系统吗?

注意,这里说的是整个操作系统,不仅仅是底层的Kernel内核,还包括一系列的驱动程序,以及上层的Windows服务程序、动态链接库,甚至还囊括了Windows内置的桌面explorer程序和IE浏览器等等。

ReactOS集成了一大波牛人的劳动,相当于翻版了一个Windows出来,在各种数据结构的设计上,都力求和Windows一致。以实现让Windows上的程序能在它上面也能运行无误。

这个工作量想想都大的吓人。

有趣的是,微软工程师指责ReactOS项目组人剽窃了WRK中的源代码,两者之间的论战也从未间断。

不过需要注意的是,毕竟是一个逆向出来的项目,有不少细节和Windows真实实现还是有差异的,一般在上面几个项目中找不到时,才会来参考ReactOS,有时候还需要结合比对上面几个不同版本的实现,才能熟悉彼此的差异。

 

源码是有了,不过这么多怎么看呢?欢迎继续关注,后续提供一些阅读方法和经验,探讨一下如何穿行在浩如烟海的源码中,不迷失方向。

 

来源:编程技术宇宙内容投诉

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

软考中级精品资料免费领

  • 历年真题答案解析
  • 备考技巧名师总结
  • 高频考点精准押题
  • 2024年上半年信息系统项目管理师第二批次真题及答案解析(完整版)

    难度     813人已做
    查看
  • 【考后总结】2024年5月26日信息系统项目管理师第2批次考情分析

    难度     354人已做
    查看
  • 【考后总结】2024年5月25日信息系统项目管理师第1批次考情分析

    难度     318人已做
    查看
  • 2024年上半年软考高项第一、二批次真题考点汇总(完整版)

    难度     435人已做
    查看
  • 2024年上半年系统架构设计师考试综合知识真题

    难度     224人已做
    查看

相关文章

发现更多好内容

猜你喜欢

AI推送时光机
位置:首页-资讯-后端开发
咦!没有更多了?去看看其它编程学习网 内容吧
首页课程
资料下载
问答资讯