七年,對于一個(gè)技術(shù)博客寫作的愛好者來說,既是一個(gè)長久的積累過程,也是不斷挑戰(zhàn)自我、擴(kuò)展視野的旅程?;仡欉@七年,我從最初的懵懂到逐漸能熟練地寫出關(guān)于計(jì)算機(jī)技術(shù)的深度文章,這段經(jīng)...
七年,對于一個(gè)技術(shù)博客寫作的愛好者來說,既是一個(gè)長久的積累過程,也是不斷挑戰(zhàn)自我、擴(kuò)展視野的旅程?;仡欉@七年,我從最初的懵懂到逐漸能熟練地寫出關(guān)于計(jì)算機(jī)技術(shù)的深度文章,這段經(jīng)...
1. LAB 基本 LAB的做法網(wǎng)路上很多,有困難的小伙伴可以參考這篇:https://blog.csdn.net/LostUnravel/article/details/1...
file system 的 Optional challenge 比較簡單前面的題解可以參考這篇博客: https://blog.csdn.net/LostUnravel/a...
當(dāng)我們向 文件 append 一個(gè)單詞時(shí),背后發(fā)生了啥? 一, 找到父親文件夾的inode 首先我們可能會打開(沒有的時(shí)候創(chuàng)建一個(gè)文件),這個(gè)是通過在用戶空間調(diào)用fd = o...
非optional,網(wǎng)上博客講解的很多,代碼我也有,只是不講解了,可以直接去看我的github
前言 - Lec 1 - Lab 1 Xv6 and Unix utilities這里會記錄學(xué)習(xí)MIT6.1810的筆記:我主要會記錄一些自己對每一節(jié)課的理解,方便日后復(fù)習(xí)。同時(shí)也會要求自己把每個(gè)課程作業(yè)按照最高要求去完成,會記錄一些LAB里有難度的地方。...
1. LAB 基本 LAB的做法網(wǎng)路上很多,有困難的小伙伴可以參考這篇:https://blog.csdn.net/LostUnravel/article/details/1...
e1000 bottom part PLIC注冊了網(wǎng)卡中斷,分為2個(gè)步驟。步驟1. 設(shè)置PLIC 可以響應(yīng)PCIE 的 IRQ 步驟2. 讓每個(gè)CPU 都對后32個(gè)IRQ感興...
LEC 9 Device Drivers 主題:設(shè)備驅(qū)動(dòng)程序 CPU需要外部設(shè)備:存儲、通信等 操作系統(tǒng)負(fù)責(zé)設(shè)備的編程 新問題/復(fù)雜性:設(shè)備通常有剛性且復(fù)雜的接口設(shè)備和CPU...
Optional Challenge The user-level thread package interacts badly with the operating sys...
Interrupt硬件部分 中斷對應(yīng)的場景很簡單,就是硬件想要得到操作系統(tǒng)的關(guān)注。例如網(wǎng)卡收到了一個(gè)packet,網(wǎng)卡會生成一個(gè)中斷;用戶通過鍵盤按下了一個(gè)按鍵,鍵盤會產(chǎn)生一...
trap執(zhí)行流程 write通過執(zhí)行ECALL指令來執(zhí)行系統(tǒng)調(diào)用。ECALL指令會切換到具有supervisor mode的內(nèi)核中。 內(nèi)核中執(zhí)行的第一個(gè)指令是一個(gè)由匯編語言寫...
為什么需要虛擬內(nèi)存 shell進(jìn)程由于bug,引發(fā)了隨機(jī)寫入某些內(nèi)存地址,這些內(nèi)存地址可能是其他進(jìn)程使用的,而可能影響內(nèi)核或其他進(jìn)程的執(zhí)行。 所以我們需要引入虛擬內(nèi)存來實(shí)現(xiàn)隔...
操作系統(tǒng)的隔離性 如果沒有操作系統(tǒng),應(yīng)用程序會直接與硬件交互。比如,應(yīng)用程序可以直接看到CPU的多個(gè)核,看到磁盤,內(nèi)存。這種設(shè)計(jì)有2個(gè)問題,第一個(gè)是惡意程序可以直接強(qiáng)行霸占C...
這里會記錄學(xué)習(xí)MIT6.1810的筆記:我主要會記錄一些自己對每一節(jié)課的理解,方便日后復(fù)習(xí)。同時(shí)也會要求自己把每個(gè)課程作業(yè)按照最高要求去完成,會記錄一些LAB里有難度的地方。...
查表 我們的AI算法在開局會有搜索空間過大的情況,所以不能及時(shí)去發(fā)現(xiàn)比較好的解。這個(gè)時(shí)候我們可以用人類的經(jīng)驗(yàn)去輔助它。因?yàn)殚_局的格式比較小,我們可以很容易枚舉完開局的前3步的...
終局搜索(算殺) 我們在下五子棋的時(shí)候,常常會有這樣一種思考策略。就是針對現(xiàn)在的局面,我是否可以通過連續(xù)的沖四達(dá)到殺棋的效果。如果你發(fā)現(xiàn)了,你其實(shí)就意識到自己已經(jīng)贏了。 那么...
序 上一章,我們介紹了基本極小化極大算法的ALPHA BETA剪枝。以及如何以在線更新和緩存的方式維護(hù)每個(gè)格子落子的得分。但是即使這樣AI也沒辦法完成全部搜索直到終局。因?yàn)檫@...
極小化極大搜索 這一章,我們開始介紹博弈論里一個(gè)非常經(jīng)典的算法,叫極小化極大搜索。首先同樣,無論是用何種AI算法,他的目標(biāo)就是找到下一步最佳的落子位置。我們可以寫一個(gè)接口。然...
前言 這套文集會通過一個(gè)五子棋的AI, 來帶大家走進(jìn)對抗搜索和博弈的算法。選擇五子棋的原因是,他是一個(gè)完美信息的零和博弈。完美信息就是完全可觀測的意思。大家都能感知到對局全部...