成人免费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運維

2018-06-07 13:17:12

契約測試單元測試API測試

2023-09-22 17:36:37

2021-01-28 22:31:33

分組密碼算法

2020-05-22 08:16:07

PONGPONXG-PON

2022-01-11 15:44:15

JavaScript圖表庫數據

2022-09-26 08:03:25

VMware虛擬機

2021-05-12 18:02:23

方法創建線程

2020-05-12 22:24:44

JVM系統加載器

2024-10-16 15:11:58

消息隊列系統設計

2022-01-28 08:47:25

軟件系統重構

2020-08-12 08:34:16

開發安全We

2021-01-01 09:01:05

前端組件化設計

2022-11-26 00:00:06

裝飾者模式Component

2020-06-28 09:30:37

Linux內存操作系統
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 国产激情在线观看 | 国产日产欧产精品精品推荐蛮挑 | 一区二区精品 | 亚洲va欧美va天堂v国产综合 | 欧美黄色片 | 中文字幕一区二区三区在线乱码 | 欧美日韩精品一区二区三区视频 | 久草日韩 | 亚洲欧美一区二区三区在线 | 色成人免费网站 | cao在线| 日韩欧美国产精品 | 亚洲一区二区中文字幕 | 日本三级电影在线免费观看 | 中文字幕不卡在线88 | www日本在线播放 | 精品亚洲永久免费精品 | 91久久精品一区二区二区 | av一区二区在线观看 | 国产羞羞视频在线观看 | 91av免费版| 一区二区在线 | 久久久成| 欧美日韩网站 | 青草青草久热精品视频在线观看 | 亚洲精品在线观看视频 | 中文字幕第一页在线 | 国产视频久 | 亚洲一区精品在线 | av久久 | 午夜电影福利 | 久久久久国产一区二区三区四区 | 亚洲首页 | 91在线网 | 国产成人久久久 | 国产亚洲精品久久yy50 | 欧美一区二 | 亚洲成av片人久久久 | 精品av久久久久电影 | 成人欧美一区二区三区在线播放 | 久久成人精品 |