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

不容錯過!私藏的幾個學操作系統好東西

系統
大家可能讀過不少的操作系統的文章,不過這其中很多都是大談操作系統的理論技術,鮮有探討現代操作系統實際的實現。

[[335724]]

本文轉載自微信公眾號「編程技術宇宙」,作者軒轅之風 。轉載本文請聯系編程技術宇宙公眾號。

大家可能讀過不少的操作系統的文章,不過這其中很多都是大談操作系統的理論技術,鮮有探討現代操作系統實際的實現。

 

  • 你可能知道線程的幾個狀態和狀態的變化,但你知道Linux中是如何進行線程調度的嗎?
  • 你可能知道線程的棧是怎么進進出出,但你知道Linux的線程棧如何分配管理,棧的最下面藏了什么秘密嗎?
  • 你可能對TCP/IP協議了然于胸,但你知道Linux中是如何實現TCP協議嗎,跟RFC規范又有哪些不同?
  • 你可能知道Signal機制,但你知道內核是如何派發信號和執行信號處理函數的嗎?
  • 你可能知道操作系統內存管理技術,但你知道Linux和Windows同樣在x86架構下的實現有哪些區別嗎?
  • ······

學一項技術,不能只是紙上談兵,知其然還能知其所以然,還能知如何以然,方達至高境界。

閱讀操作系統源代碼,是學習操作系統的不二法門。下面就最常見的Linux和Windows系統分別介紹一下。

Linux

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

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

 

這個網站有幾個好處:

  • 在線閱讀,免下載,隨處可看
  • 左邊列表集成了Linux自發布以來所有版本的代碼,可隨意切換至你想要查看的版本。這對于想了解某個技術細節在不同版本中的實現變化非常好用。
  • 支持函數、結構體、變量搜索。源代碼中出現的這些這些信息,都可直接點擊鏈接,后臺將自動在當前版本的Linux代碼中搜索到相關定義、引用。速度也非常快。

 

除了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,有時候還需要結合比對上面幾個不同版本的實現,才能熟悉彼此的差異。

 

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

 

責任編輯:武曉燕 來源: 編程技術宇宙
相關推薦

2023-12-11 16:03:47

openEuler

2023-03-01 16:38:00

前端Web技術

2016-07-21 10:24:42

GitHub編程Java

2016-02-29 15:00:48

RSA/信息安全

2015-09-17 17:37:57

工具程序開源

2023-06-29 17:53:00

VSCode插件程序

2022-09-22 16:17:12

css編程語言開發

2019-10-29 09:00:00

AIOps人工智能

2014-07-10 10:56:21

jQuery

2013-08-19 10:45:42

華為HCC大會HCC2013華為

2024-01-31 11:55:16

數據分析數據計算收支

2020-05-08 09:13:48

前端開發

2019-07-04 08:00:00

MySQL存儲開發

2014-08-26 10:38:23

AppAndroid Wea應用

2020-01-14 10:17:13

深度學習人生第一份工作人工智能

2011-03-01 09:17:34

Linux命令行

2024-01-18 00:00:00

開發框架Port

2024-01-25 18:08:57

CSSHTML文件

2020-08-05 10:13:14

JavaScript開發

2012-02-02 10:40:47

開發者盛會Linux
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 91视频网址 | 亚洲欧美在线观看 | 国产欧美一区二区三区在线看 | 91久久精品国产免费一区 | 一区二区三区四区不卡视频 | 午夜手机在线视频 | 久草视频在线播放 | 一区二区在线观看av | 91精品久久久 | 亚洲欧美视频 | 午夜精品一区二区三区在线 | 久久精品一级 | 精品一区二区三区免费视频 | 欧美 日本 国产 | 亚洲午夜网 | 精品无码久久久久久国产 | 一区二区久久精品 | 亚洲视频区 | 国产9 9在线 | 中文 | 美女福利网站 | 国产精品一区二区三区久久久 | 国产精品久久久久久久久久免费看 | 在线日韩av电影 | 91免费观看| 亚洲免费久久久 | 久久精品亚洲成在人线av网址 | 99福利视频导航 | 国产区视频在线观看 | 全部免费毛片在线播放网站 | 欧美成人影院 | 99精品国自产在线 | 99热热 | 久久精品亚洲精品国产欧美 | 久久在线精品 | 伊人一二三 | 性一交一乱一透一a级 | 亚洲国产精品一区二区三区 | 中文字幕精品一区二区三区精品 | 午夜影院中文字幕 | 欧美激情在线观看一区二区三区 | 黄视频国产|