從零開發MulithReaded內核課程!

”“”

從零!

開發內核mulithreaded

創建一個具有交互式外殼的多任務操作系統和一個內核!

本課程旨在教您如何從頭開始創建自己的多任務處理和內核操作系統。假設您沒有內核編程的經驗,並且從一開始就被教導。

實際模式開發

實際模式是所有英特爾處理器上的舊模式,它會導致處理器以遺產狀態啟動,就像舊的英特爾8086處理器過去一樣。在課程的“實際開發”部分中,我們開始學習啟動過程以及內存的工作原理。然後,我們開始創建自己的啟動充電器,我們在真實機器上測試了!此啟動充電器將顯示一條簡單的消息“ Hello World!”在屏幕上,我們編寫此純彙編語言啟動充電器。在本節中,我們還閱讀了硬盤的扇區(512個字節),並了解有關真實模式中斷以及如何創建它們的所有內容。本節為您提供了一小部分內核開發示例,而不會使信息與信息超載。您將學習基礎知識和足夠多的舊處理器,以促進本課程後期的最現代內核的開發。

保護模式開發

在本節中,我們創建了一個具有FAT16文件系統的32位多任務內核。我們的內核將使用英特爾的構建 – 保護和安全機制,使我們能夠指導處理器保護我們的內核並防止用戶程序損壞它。本節非常詳細,您將了解有關分頁和虛擬內存的所有信息。我們利用Intel處理器上的智能指令允許所有進程共享相同的內存地址,這被稱為內存虛擬化。我們映射內存地址以指向不同的物理內存地址,以創建以下幻覺,即執行中的每個過程都在同一地址加載。這是內核開發中非常常見的技術,也是交換文件的工作原理(那些用完可用時用於補償的文件)。我們創建了自己的虛擬文件系統層,該系統使用類似於Linux內核的設計。將向您講授的這種聰明的抽像是由教師過去寫下Linux內核驅動程序的知識的啟發。您將了解FAT16文件系統設計以及FAT16文件系統如何分為群集以及如何鏈接它們。然後,我們實現了自己的FAT16文件系統驅動程序,允許創建文件!我們實現任務和流程的功能,並編寫自己的鍵盤驅動程序。在本課程中,您還將了解內存管理的工作原理,我們通過創建自己的堆旨在跟上使用內存的堆,實現“ malloc”和“ free”功能。內存管理在任何操作系統和內核中都是必不可少的。讓我們不要忘記,即使我們創建了精靈文件充電器,我們也會編譯精靈文件操作系統的所有程序,並允許加載二進製程序或精靈程序。 ELF文件包含許多描述我們程序的信息,例如,我們的程序應加載到內存和程序的不同部分中。

在本課程結束時,您將擁有一個功能齊全的32位多任務內核,可以同時運行許多過程和任務。您將有一個我們也可以使用的功能性外殼。

彙編語言獎金

這是一個獎勵部分,旨在提高您的彙編語言技能,如果您在本課程中的彙編語言有些困難。但是,建議您以彙編語言的經驗來參加此課程,因為我們使用它很重要。但是,如果您想在沒有組裝語言經驗的情況下冒險冒險,那麼本節將幫助您指向正確的方向,以便您可以將所學的內容應用於內核。

由專家在工作場所專業創建Linux內核模塊的專家教授。作為軟件工程師的15年經驗。

您將學到什麼

  • 如何從頭開始創建內核
  • 如何創建多任務內核
  • 如何處理操作系統中的惡意或有問題的程序。如果他們的行為不好,結束了他們。
  • 內存如何在計算機上工作
  • 內核土地,用戶土地和組成現代計算的保護環之間的區別
  • 內核Linux本身使用的內核設計模式
  • 您將了解有關虛擬內存以及如何將虛擬地址映射到物理地址的所有信息
  • 您將學習如何使內核了解過程和任務
  • 您將學習如何加載小精靈文件
  • 您將學習如何調試機器代碼拆卸
  • 您將學習如何用GDB在模擬器上淨化內核。”
Scroll to Top