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

聊一聊第三個系統

系統
最近,我剛好在和我的同事一起重寫 VSCode 的一部分小功能,重寫過程中有一些特定的感受。正好就著最近流行的操作系統話題,寫寫我的想法。因為某種協議的存在,不想為自己尋找麻煩,我這里就稱為第三個系統。

[[342160]]

 最近,我剛好在和我的同事一起重寫 VSCode 的一部分小功能,重寫過程中有一些特定的感受。正好就著最近流行的操作系統話題,寫寫我的想法。因為某種協議的存在,不想為自己尋找麻煩,我這里就稱為第三個系統。

系統是由一些相互聯系、相互制約的若干組成部分結合而成的、具有特定功能的一個有機整體(集合)。這些要素可能是一些個體、元件、零件,也可能其本身就是一個系統(或稱之為子系統)。

所以,如果是一類操作系統的話,那么以系統來定義為更加合適。

三個系統

提及到第三個系統的時候,我想到的是一本很不錯的小冊子(書),其名為《Linux/Unix 設計思想》。這本書主要是在講 Linux/Unix 相關的哲學(實際上,我一直覺得這樣的書很容易寫,學好 Linux 和哲學,然后將哲學套到 Linux/Unix 上即可。唯一的難點是:跨領域知識)。

先簡要地說說三個系統的定義:

  1. 在背水一戰的情況下,人類創建了『第一個系統』。PS:沒有足夠的時間將事情做好。
  2. 『專家』使用『第一個系統』驗證過的想法來創建『第三個系統』。PS:『第二個系統』由委員會設計,『第二個系統』臃腫而緩慢。
  3. 『第三個系統』由那些為『第二個系統』所累的人們創建。PS:『第三個系統』結合了『第一個系統』和『第二個系統』的最佳特征。『第三個系統』的設計者有充裕的時間將任務做好。

結合之下來看,我們就會發現一些非常有意思的事情:

  1. 充裕的時間,才能讓我們完成一個更好的系統。
  2. 『第二個系統』是擁有足夠的專家和時間來完成的。
  3. 『第三個系統』結合了『第一個系統』和『第二個系統』的最佳特征。

由上會產出一些有意思的推論:在有充足時間和資源的情況下,我們可能設計出的是 Windows Phone,巨硬(微軟)的專家太多了。

新的專家

專家不論在哪里都是一種稀缺的資源,要不這個世界怎么會有咨詢公司的存在呢。

開發一個操作系統并不困難。市面上已經有了各種琳瑯滿目的書籍,從《操作系統導論》到《自己動手寫操作系統》、《30 天自制操作系統》,馬上培訓班就會出出《7 天自制操作系統》。

今天,我們基本已經達成了共識,開發一個系統的難點主要在于『生態』。為了生態,它可能要兼容一個系統的 API,這會導致系統臃腫。為了生態,它需要連帶上下游一起豐富起來。為了生態,還需要開發各種各樣的工具……

舉個我們熟悉的 Android 系統為例,它的操作系統的源碼(包含上下游工具)大概 120 G,它的開發工具 IDE 大概 60 G……。這個過程中涉及到大量的計算機相關的核心技術:編譯器、虛擬機、操作系統、編譯器優化、構建系統、圖形編程……。就這么來說吧,它幾乎快包含這一個領域需要的所有知識。而,你并沒有時間預先的進行研究。

就構建來說,Android 系統因為大量的上下游,所以就需要:LLVM、Gradle、CMake、Bazel、GCC、Clang、Soong、Ninja……。而從編程語言上來看,所需要的語言知識有:Java、C++、C、Groovy、Kotlin。而除了這些,還有大量與硬件、芯片相關的知識。

因此,經此一役,這一世界又多了一個能造操作系統的國家。

復刻更難

最近,我和我的同事一起在使用 Rust 重寫 VSCode 的詞法分析工具。起先,我以為這是一件容易的事情,都是 TypeScript 嘛。寫寫測試,直接翻譯就完了。然而,事實并非如此。

  • 需要深入理解原有邏輯。不斷地調試舊系統的邏輯,并重新梳理思路。
  • 業務未剝離,導致大量耦合。語言之間存在用法上的差異,需要追溯用法上的差異和類型上的差異。哪怕是原文上寫一個無用的 if-else,你都要糾結半天。更不用說,它可能有大量無用的代碼。因此,我們需要尋找一種有效的方式來搞定,比如 TDD。
  • 語言交互接口(FFI)。Oniguruma 是我們所使用的正則庫,而且還有指針的指針。

……

相似的,對于一個復雜的系統來說,各種子系統之間的耦合度更是難于剖析 —— 需要大量不同領域的知識。每個問題不單純只是某一語言、技術棧的問題,它往往是跨越了多個系統的問題。

結論

沒有銀彈。

本文轉載自微信公眾號「phoda」,可以通過以下二維碼關注。轉載本文請聯系phoda公眾號。

 

責任編輯:武曉燕 來源: phodal
相關推薦

2022-09-19 16:24:33

數據可視化Matplotlib工具

2022-01-19 17:11:05

JavaScript數據工具

2009-10-21 21:10:08

IT運維管理BSM北塔軟件

2021-02-22 14:04:47

Vue框架項目

2020-01-17 09:07:14

分布式系統網絡

2009-09-16 11:44:26

IT運維

2020-05-22 08:16:07

PONGPONXG-PON

2021-01-28 22:31:33

分組密碼算法

2023-09-22 17:36:37

2018-06-07 13:17:12

契約測試單元測試API測試

2022-01-11 15:44:15

JavaScript圖表庫數據

2021-05-12 18:02:23

方法創建線程

2020-05-12 22:24:44

JVM系統加載器

2024-10-16 15:11:58

消息隊列系統設計

2022-09-26 08:03:25

VMware虛擬機

2022-01-28 08:47:25

軟件系統重構

2019-02-13 14:15:59

Linux版本Fedora

2020-10-15 06:56:51

MySQL排序

2018-11-29 09:13:47

CPU中斷控制器

2022-11-01 08:46:20

責任鏈模式對象
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 欧美成人猛片aaaaaaa | 日本高清aⅴ毛片免费 | 欧美日韩综合视频 | 久草网址 | 一区二区高清 | 久久99国产精品久久99果冻传媒 | 成人午夜黄色 | 中文字幕乱码视频32 | 99久久国产| 久久日本 | 亚洲三区在线观看 | 午夜免费福利片 | 久久se精品一区精品二区 | 成人国产a| 午夜黄色 | 日本不卡视频在线播放 | 91精品国产色综合久久 | 一区二区三区视频在线观看 | 9191在线观看| 亚洲免费视频网址 | 日产精品久久久一区二区福利 | 欧美日本韩国一区二区 | 日本精品视频在线 | 国产在线看片 | 91九色视频在线 | 午夜日韩 | 一区二区三区中文字幕 | 日韩在线一区二区 | 国产精品久久亚洲7777 | 91一区二区 | 久久精品国产一区二区电影 | 久久国产精品免费一区二区三区 | 国产精品久久久 | 久久尤物免费一区二区三区 | 亚洲精精品 | h在线| 99热这里只有精品8 激情毛片 | 日韩av高清 | 精品三级在线观看 | 欧美极品少妇xxxxⅹ免费视频 | 欧美一区二区在线观看 |