有時候覺得自己有些強迫癥:對于感興趣的細節(jié),會花費極多的時間去爬取資料、去扣東扣西,弄得自己真實很累!
比如,自己講授OS課,按照課程的要求只要講清楚概念和涉及到的算法即可,自己總是想弄明白 OS 到底是怎樣制作出來的!為此,也在網(wǎng)上找了別人所謂深入到OS實現(xiàn)的課程和實驗項目,但是,基本上沒有覆蓋"從無到有"的內(nèi)容,而是成了類似"源碼剖析"的形式。
-
又比如自己想講授 "高性能數(shù)據(jù)計算"(自己琢磨的名字,用以涵蓋大致 "高性能計算+大數(shù)據(jù)+并行算法"的內(nèi)容),其中,涉及到如何將很多的技術(shù)梳理出層次的問題,即,DOS會涉及 Logical Clock, Heartbeat, RPC/RMI,SOA,Hot Recovery, HA (High Availability), Consensus (PAXOS, RAFT, ZAB),F(xiàn)ault Tolerance (WAL)等,但是,缺乏生動的應(yīng)用場景將這些東西層次化起來
- 一個問題:(計)算的Crash 和 數(shù)據(jù)存取的Crash - 應(yīng)該是不同的。見到的討論的資料大多是針對后者;前者是如何解決呢?
近期集中看了收集到的一些視頻,有些有助益,記錄一下。
OS的那些視頻
Write your own Operating System(自制操作系統(tǒng))
雖然實現(xiàn)的OS很粗糙,甚至有個視頻沒有聲音,但是,能讓我一窺操作系統(tǒng)"從無到有"到底是怎樣的!

https://www.youtube.com/watch?v=1rnA6wpF0o4&list=PLai-xIlqf4Jn9VWc5icj3IcQj0a_ek7w0
基本上展示了如何從頭制作一個 OS!
只是可惜沒有給出一個支持新程序運行的例子:用戶有個程序,制作的 OS 如何支持的。不過,還是能想象出來的:構(gòu)建 PCB, 分配內(nèi)存,將CPU交給程序。跟操作系統(tǒng)一樣:操作系統(tǒng)使用整個MM;而程序在OS分配給它的空間中而已 – 有自己的變量、函數(shù),甚至自己還要申請新的空間,然后,Machine Cycle 運行而已。
這樣的視頻,就是好視頻 – 即便只是給出最簡陋的一些管理算法,但,珍貴就珍貴在給出了較為完整的OS開發(fā)!要知道,最難的是從無到有!只有有了這個簡陋的“平臺”,才能在其上盡心完善、添加那些更為有效率的算法。
該作者還制作Build a Linux From Scratch

找到了一個 UNIX 的歷史影像,值得看看

一本UNIX的書,也推薦看看

Concurrent (Distributed or Parallel) Programs
里面涉及的東西很多(Logic Clock, WAL, HA, Fault Tolerance等),層次呢?-有了層次,就好記憶嘛

E:\Local\HPC.PPTs.2021.Wide\04 Distributed OS02.pptx
有些"Distributed Systems"視頻,講了很多專題,但是,沒有講講層次結(jié)構(gòu)(供我參考、驗證),有些遺憾
F:\My7\MyClasses\12.1 HPC\Videos\分布式系統(tǒng) Distributed Systems (中英雙語字幕)MIT 6.824(2020)

F:\My7\MyClasses\12.1 HPC\Videos\華盛頓大學(xué)公開課:構(gòu)建分布式系統(tǒng)CSEP 552 Distributed System

開發(fā)框架
自己的課程中也要并發(fā)編程的內(nèi)容,涉及到的 有 Multi-processed, Multi-Threaded, OpenMP, OpenACC, CUDA, MPI, Big Data (個人認為 Big Data 也可以作為一種編程風(fēng)格/框架的)。覺得,OpenMP (覺得沒有必要專門講), MPI, CUDA, Big Data, 以及 Hybrid混合


對應(yīng)不同的計算資源結(jié)構(gòu), Hybrid有:
- Multi Core (CPU): OpenMP, 或 Multi-processed, Multi-Threaded
- CPU + GPU 或 Multi-core + GPUs: MPI + CUDA
- Distributed CPUs: MPI + OpenMP
- Distributed + GPUs: MPI + CUDA
數(shù)據(jù)庫的實現(xiàn): 從 RDBMS 到 Distributed
覺得,重要的還是先去看看前面的"Write your own Operating System(自制操作系統(tǒng))"
在對System Programming有了感覺后(即便是粗糙的),再看 DBMS的設(shè)計與實現(xiàn)才能真的有落地了的體會。
有些冠之以"Distributed Data",其實,講的內(nèi)容跟前面"Distributed Systems"重合
F:\My7\MyClasses\01.數(shù)據(jù)庫實踐課\Videos\Distributed Data Management 2015
F:\My7\MyClasses\01.數(shù)據(jù)庫實踐課\Videos\Distributed Data Management 2018

阿里巴巴PolarDB-X 的誕生和發(fā)展
2003 年淘寶網(wǎng)成立之初采用的是經(jīng)典的 LAMP 架構(gòu),隨著用戶量迅速增長,單機 MySQL 數(shù)據(jù)庫很快便無法滿足數(shù)據(jù)存儲需求,之后淘寶網(wǎng)進行了架構(gòu)升級,數(shù)據(jù)庫改用 Oracle。隨著用戶量的繼續(xù)快速增長,Oracle 數(shù)據(jù)庫也開始成批成批的增加,即使這樣,仍然沒有滿足業(yè)務(wù)對數(shù)據(jù)庫擴展性的訴求,所以**阿里巴巴內(nèi)部在 2009 年時發(fā)起了著名的去 IOE運動 **(IBM是服務(wù)器提供商,Oracle是數(shù)據(jù)庫軟件提供商,EMC則是存儲設(shè)備提供商,三者構(gòu)成了一個從軟件到硬件的企業(yè)數(shù)據(jù)庫系統(tǒng)),PolarDB-X 也開啟了自己的演進之路。

也是發(fā)現(xiàn)有了瓶頸,只能自己解決 - 要感謝開源
阿里巴巴的"云棲大會"
在網(wǎng)上找到的比較全的是2017年的,瀏覽其后幾年的,應(yīng)該2017年的算是比較值得看看的。


F:\My7\MyClasses\12.1 HPC\Videos\阿里云棲2017\阿里數(shù)據(jù)-數(shù)據(jù)庫內(nèi)核專場[1080P].flv
“異步提交” 提升效率 – 這顯然是 System Programming 了
E:\Local\HPC.PPTs.2021.Wide\04 Distributed OS02.pptx

F:\My7\MyClasses\12.1 HPC\Videos\阿里云棲2017\阿里云自研數(shù)據(jù)庫POLARDB專場[1080P].flv
F:\My7\MyClasses\01.數(shù)據(jù)庫實踐課\PPTs-Training.2021\PPTs.2021.Wide\01 Introduction.pptx [PP 28]