成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

不容錯(cuò)過!私藏的幾個(gè)學(xué)操作系統(tǒng)好東西

系統(tǒng)
大家可能讀過不少的操作系統(tǒng)的文章,不過這其中很多都是大談操作系統(tǒng)的理論技術(shù),鮮有探討現(xiàn)代操作系統(tǒng)實(shí)際的實(shí)現(xiàn)。

[[335724]]

本文轉(zhuǎn)載自微信公眾號(hào)「編程技術(shù)宇宙」,作者軒轅之風(fēng) 。轉(zhuǎn)載本文請(qǐng)聯(lián)系編程技術(shù)宇宙公眾號(hào)。

大家可能讀過不少的操作系統(tǒng)的文章,不過這其中很多都是大談操作系統(tǒng)的理論技術(shù),鮮有探討現(xiàn)代操作系統(tǒng)實(shí)際的實(shí)現(xiàn)。

 

  • 你可能知道線程的幾個(gè)狀態(tài)和狀態(tài)的變化,但你知道Linux中是如何進(jìn)行線程調(diào)度的嗎?
  • 你可能知道線程的棧是怎么進(jìn)進(jìn)出出,但你知道Linux的線程棧如何分配管理,棧的最下面藏了什么秘密嗎?
  • 你可能對(duì)TCP/IP協(xié)議了然于胸,但你知道Linux中是如何實(shí)現(xiàn)TCP協(xié)議嗎,跟RFC規(guī)范又有哪些不同?
  • 你可能知道Signal機(jī)制,但你知道內(nèi)核是如何派發(fā)信號(hào)和執(zhí)行信號(hào)處理函數(shù)的嗎?
  • 你可能知道操作系統(tǒng)內(nèi)存管理技術(shù),但你知道Linux和Windows同樣在x86架構(gòu)下的實(shí)現(xiàn)有哪些區(qū)別嗎?
  • ······

學(xué)一項(xiàng)技術(shù),不能只是紙上談兵,知其然還能知其所以然,還能知如何以然,方達(dá)至高境界。

閱讀操作系統(tǒng)源代碼,是學(xué)習(xí)操作系統(tǒng)的不二法門。下面就最常見的Linux和Windows系統(tǒng)分別介紹一下。

Linux

Linux屬于開源系統(tǒng),想獲取源碼輕而易舉,不過這里軒轅推薦一個(gè)我私藏的網(wǎng)站,不需要你科學(xué)上網(wǎng),不需要你下載源碼,在線閱讀,哪里有電腦哪里就能看。

網(wǎng)址:https://elixir.bootlin.com/

 

這個(gè)網(wǎng)站有幾個(gè)好處:

  • 在線閱讀,免下載,隨處可看
  • 左邊列表集成了Linux自發(fā)布以來所有版本的代碼,可隨意切換至你想要查看的版本。這對(duì)于想了解某個(gè)技術(shù)細(xì)節(jié)在不同版本中的實(shí)現(xiàn)變化非常好用。
  • 支持函數(shù)、結(jié)構(gòu)體、變量搜索。源代碼中出現(xiàn)的這些這些信息,都可直接點(diǎn)擊鏈接,后臺(tái)將自動(dòng)在當(dāng)前版本的Linux代碼中搜索到相關(guān)定義、引用。速度也非常快。

 

除了Linux,這個(gè)網(wǎng)站還能支持包括glibc、qemu、dpdk等很多其他項(xiàng)目代碼的閱讀:

 

用這個(gè)網(wǎng)站閱讀源碼,比在GitHub上的體驗(yàn)有過之而無不及。

Windows

什么?Windows也能看源碼?沒錯(cuò)是的。

在程序員中有一條鄙視鏈,用Linux的時(shí)常鄙視用Windows的,鄙視Windows系統(tǒng)不如Linux。我不太清楚這種鄙視是何時(shí)何因而起,但你若看過Windows操作系統(tǒng)源代碼后,也一定會(huì)折服于微軟工程師的編碼能力和設(shè)計(jì)智慧。閱讀這些優(yōu)秀工程師的C代碼宛如欣賞一件藝術(shù)作品般讓人享受。這其中有太多的寶藏值得我們學(xué)習(xí)。

雖然,Windows操作系統(tǒng)屬于微軟商業(yè)產(chǎn)品,但這么多年以來,還是有非常多的人想一窺其內(nèi)核的秘密,這其中就出現(xiàn)了源碼泄露、逆向工程、官方發(fā)布等多個(gè)不同的版本。雖然有些版本已經(jīng)發(fā)布多年,但底層很多實(shí)現(xiàn)卻是一直沿用至今。

Windows NT 4.0 & Windows 2000

2004年2月,發(fā)生了一起Windows內(nèi)核源碼泄露事件,泄露的是Windows NT 4.0/Windows 2000源碼。隨后便迅速擴(kuò)散,在GitHub上也多年提供下載,不過后來受到微軟施壓,GitHub去掉了相關(guān)的鏈接。

 

WRK

微軟也還是挺大方,在2006年左右,為了讓高校學(xué)生學(xué)習(xí)操作系統(tǒng),基于Windows Server 2003的內(nèi)核,官方發(fā)布了一個(gè)叫Windows Research Kernel的項(xiàng)目,簡(jiǎn)稱WRK。

WRK是一個(gè)“閹割版”的Windows內(nèi)核代碼,去掉了Windows中的窗口實(shí)現(xiàn)、TCP/IP協(xié)議棧等多個(gè)功能模塊。但保留了諸如進(jìn)程/線程管理、內(nèi)存管理、I/O管理、對(duì)象管理等重要功能,雖是“閹割版”,但仍然是非常值得一看的版本,畢竟官方發(fā)布嘛。

ReactOS

網(wǎng)址:https://reactos.org/

 

這里的React可不是前端框架中的那個(gè)React,這是一個(gè)逆向工程中的集大成之作。

這里簡(jiǎn)單科普一下逆向工程

我們平時(shí)開發(fā)軟件的過程是“正向”,即編寫源代碼,然后由編譯器編譯鏈接生成CPU指令,最后整合形成一個(gè)可執(zhí)行文件。

逆向工程就是將上面的過程反過來,從一個(gè)可執(zhí)行文件,通過分析文件中的代碼指令,最后推導(dǎo)出原來的源代碼的過程。

你可能聽過逆向分析某一個(gè)程序,但你知道有人直接逆向了整個(gè)Windows操作系統(tǒng)嗎?

注意,這里說的是整個(gè)操作系統(tǒng),不僅僅是底層的Kernel內(nèi)核,還包括一系列的驅(qū)動(dòng)程序,以及上層的Windows服務(wù)程序、動(dòng)態(tài)鏈接庫(kù),甚至還囊括了Windows內(nèi)置的桌面explorer程序和IE瀏覽器等等。

ReactOS集成了一大波牛人的勞動(dòng),相當(dāng)于翻版了一個(gè)Windows出來,在各種數(shù)據(jù)結(jié)構(gòu)的設(shè)計(jì)上,都力求和Windows一致。以實(shí)現(xiàn)讓W(xué)indows上的程序能在它上面也能運(yùn)行無誤。

這個(gè)工作量想想都大的嚇人。

有趣的是,微軟工程師指責(zé)ReactOS項(xiàng)目組人剽竊了WRK中的源代碼,兩者之間的論戰(zhàn)也從未間斷。

不過需要注意的是,畢竟是一個(gè)逆向出來的項(xiàng)目,有不少細(xì)節(jié)和Windows真實(shí)實(shí)現(xiàn)還是有差異的,一般在上面幾個(gè)項(xiàng)目中找不到時(shí),才會(huì)來參考ReactOS,有時(shí)候還需要結(jié)合比對(duì)上面幾個(gè)不同版本的實(shí)現(xiàn),才能熟悉彼此的差異。

 

源碼是有了,不過這么多怎么看呢?歡迎繼續(xù)關(guān)注,后續(xù)提供一些閱讀方法和經(jīng)驗(yàn),探討一下如何穿行在浩如煙海的源碼中,不迷失方向。

 

責(zé)任編輯:武曉燕 來源: 編程技術(shù)宇宙
相關(guān)推薦

2023-12-11 16:03:47

openEuler

2023-03-01 16:38:00

前端Web技術(shù)

2016-07-21 10:24:42

GitHub編程Java

2016-02-29 15:00:48

RSA/信息安全

2014-07-10 10:56:21

jQuery

2022-09-22 16:17:12

css編程語言開發(fā)

2019-10-29 09:00:00

AIOps人工智能

2015-09-17 17:37:57

工具程序開源

2023-06-29 17:53:00

VSCode插件程序

2024-01-31 11:55:16

數(shù)據(jù)分析數(shù)據(jù)計(jì)算收支

2020-05-08 09:13:48

前端開發(fā)

2019-07-04 08:00:00

MySQL存儲(chǔ)開發(fā)

2013-08-19 10:45:42

華為HCC大會(huì)HCC2013華為

2014-08-26 10:38:23

AppAndroid Wea應(yīng)用

2012-02-02 10:40:47

開發(fā)者盛會(huì)Linux

2018-04-10 10:44:37

華為云

2014-08-28 14:09:40

AppAndroid Wea應(yīng)用

2015-08-06 09:22:19

開源持續(xù)集成服務(wù)器工具

2019-07-02 10:05:11

Linux 開源操作系統(tǒng)

2020-08-05 10:13:14

JavaScript庫(kù)開發(fā)
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)

主站蜘蛛池模板: 久久久久久久久久影视 | 亚洲综合无码一区二区 | 中文字幕 视频一区 | 羞羞视频网页 | 亚洲一区二区三区在线播放 | 国产三级一区二区三区 | 久久成人国产 | 亚洲人成人一区二区在线观看 | 在线日韩视频 | 日韩在线一区二区 | 黄色在线观看网站 | 一区二区三区在线 | 国产精品一区二 | 色花av| 亚洲综合一区二区三区 | 亚洲三区在线 | 欧美一区二区在线播放 | 欧美激情精品久久久久久变态 | 欧美伊人影院 | 亚洲午夜精品一区二区三区他趣 | 操人网| 欧美日韩在线一区二区三区 | 欧美a区 | 欧美色图另类 | 国产视频中文字幕 | 国产视频1 | 午夜视频在线观看网站 | 午夜视频精品 | 五月天婷婷狠狠 | 日韩精品成人免费观看视频 | 91久久伊人 | 99热精品6| 91精品国产91综合久久蜜臀 | 日韩最新网站 | 国产视频一区二区 | 久久婷婷色 | 国产精品特级毛片一区二区三区 | 99这里只有精品 | 成人免费一区二区三区牛牛 | 天天干天天干 | 一级毛片成人免费看a |