《操作系統》OS學習(一):OS相關

清華大學操作系統OS(向勇、陳渝)視頻地址:http://www.xuetangx.com/courses/course-v1:TsinghuaX+30240243X+sp/about

在ucore實驗中,一些基本的常用工具如下:

命令行shell: bash shell -- 有對文件和目錄操作的各種命令,如ls、cd、rm、pwd...

系統維護工具:apt、git

  • apt:安裝管理各種軟件,主要在debian, ubuntu linux系統中
  • git:開發軟件的版本維護工具

源碼閱讀與編輯工具:eclipse-CDT、understand、gedit、vim

  • Eclipse-CDT:基于Eclipse的C/C++集成開發環境、跨平臺、豐富的分析理解代碼的功能,可與qemu結合,聯機源碼級Debug uCore OS。
  • Understand:商業軟件、跨平臺、豐富的分析理解代碼的功能,Windows上有類似的sourceinsight軟件
  • gedit:Linux中的常用文本編輯,Windows上有類似的notepad
  • vim: Linux/unix中的傳統編輯器,類似有emacs等,可通過exuberant-ctags、cscope等實現代碼定位

源碼比較和打補丁工具:diff、meld,用于比較不同目錄或不同文件的區別, patch是打補丁工具

  • diff, patch是命令行工具,使用簡單
  • meld是圖形界面的工具,功能相對直觀和方便,類似的工具還有 kdiff3、diffmerge、P4merge

開發編譯調試工具:gcc 、gdb 、make

  • gcc:C語言編譯器
  • gdb:執行程序調試器
  • ld:鏈接器
  • objdump:對ELF格式執行程序文件進行反編譯、轉換執行格式等操作的工具
  • nm:查看執行文件中的變量、函數的地址
  • readelf:分析ELF格式的執行程序文件
  • make:軟件工程管理工具, make命令執行時,需要一個 makefile 文件,以告訴make命令如何去編譯和鏈接程序
  • dd:讀寫數據到文件和設備中的工具

硬件模擬器:qemu -- qemu可模擬多種CPU硬件環境,本實驗中,用于模擬一臺 intel x86-32的計算機系統。類似的工具還有BOCHS, SkyEye等

markdown文本格式的編寫和閱讀工具(比如閱讀ucore_docs)

編寫工具 haroopad

閱讀工具 gitbook

80386有四種運行模式

模式、保護模式、SMM模式和虛擬8086模式。

模式:80386加電啟動后處于實模式運行狀態,在這種狀態下軟件可訪問的物理內存空間不能超過1MB,且無法發揮Intel 80386以上級別的32CPU4GB內存管理能力。

保護模式:支持內存分頁機制,提供了對虛擬內存的良好支持。保護模式下80386支持多任務,還支持優先級機制,不同的程序可以運行在不同的優先級上。優先級一共分0~3 4個級別,操作系統運行在最高的優先級0上,應用程序則運行在比較低的級別上;配合良好的檢查機制后,既可以在任務間實現數據的安全共享也可以很好地隔離各個任務。

物理內存地址空間是處理器提交到總線上用于訪問計算機系統中的內存和外設的最終地址。一個計算機系統中只有一個物理地址空間。

線性地址空間是在操作系統的虛存管理之下每個運行的應用程序能訪問的地址空間。每個運行的應用程序都認為自己獨享整個計算機系統的地址空間,這樣可讓多個運行的應用程序之間相互隔離。

邏輯地址空間是應用程序直接使用的地址空間。

段機制啟動、頁機制未啟動:邏輯地址->段機制處理->線性地址=物理地址

段機制和頁機制都啟動:邏輯地址->段機制處理->線性地址->頁機制處理->物理地址

操作系統是控制軟件,管理應用程序,為應用程序提供服務,殺死應用程序,分配資源,管理外設

抽象:CPU - 進程,內存 - 地址空間,磁盤 - 文件

OS位于硬件層之上,軟件應用層之下,是個中間層的系統軟件。

OS分為Shell(界面)和Kernel(內核)

并發(concurrent,交替運行) vs 并行(parallel,同時運行)

注意:區分并發和并行。 //并發指的是在一段時間內有多個程序可以運行。

//并行指的是在一個時間點上有多個程序可以同時執行。

操作系統管理的主要的三個資源:CPU(CPU調度,進程,線程)、內存(物理內存,虛擬內存)、磁盤(文件系統)、與硬件相關的底層(中斷、IO、設備驅動)

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/454183.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/454183.shtml
英文地址,請注明出處:http://en.pswp.cn/news/454183.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

Android4.0藍牙使能的詳細解析

毫無疑問,bluetooth的打開是在Settings中進行的操作。因此,冤有頭,債有主,我們來到了Settings.java中,果然發現了相關的代碼如下: mBluetoothEnabler new BluetoothEnabler(context, new Switch(context));…

第一次沖刺

本人小組分工角色:產品負責人 本組沖刺訂單介紹:經過小組的成員討論,我們大概確立了一個沖刺的訂單是完成一個簡易的長沙學院網站項目。 最后完成情況概述:經過大約兩周的努力,我們組的編程人員運用python構建了一個簡…

移動端導出excel_連載系列【4】Excel開發移動端quot;APPquot;

前三篇文章介紹了百度地圖生成器、源代碼編輯器、GPS經緯度批量轉換工具、源代碼編輯器中添加自定義功能按鈕和地圖控件。這些寫好的Java Script代碼雖然可以實現所有期望的結果,但畢竟不是一個HTML文件,不便于傳播和使用,更無法變成一個類似…

《操作系統》OS學習(二):啟動、中斷、異常

Bootloader:加載OS。操作系統一開始是放在DISK(硬盤)中,并不是放在內存中。 BIOS:基本I/O處理系統。存放在ROMRead-Only Memory)只讀存儲中 BIOS(Basic Input/Output System)基本輸入輸出系統。…

[GCC for C]編譯選項---IDE掩蓋下的天空

編譯選項 ---------IDE掩蓋下的天空 /*************************************** * gcc for c language ***************************************/ Single Source to Executable $ gcc helloworld.c [-o howdy] 默認生成的名字a.exe ______________________________________ …

2016級算法第二次上機-F.ModricWang's Number Theory II

891 ModricWangs Number Theory II 思路 使得序列的最大公約數不為1,就是大于等于2,就是找到一個大于等于2的數,它能夠整除序列中的所有數。 考慮使得一個數d整除數組中所有數的代價: 如果一個數不能被b整除,那么可以花…

常用css屬性集(持續更新…)

禁止換行,超出部分顯示…:a. 代碼:.hide_word{ max-width: 100px; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; } b. 效果: 本文轉自 bilinyee博客,原文鏈接: http://blog.51cto.co…

parallels網絡初始化失敗_33 個神經網絡「煉丹」技巧

自然語言處理Andrej Karpathy 是深度學習計算機視覺領域、與領域的研究員。博士期間師從李飛飛。在讀博期間,兩次在谷歌實習,研究在 Youtube 視頻上的大規模特征學習,2015 年在 DeepMind 實習,研究深度強化學習。畢業后&#xff0…

《操作系統》OS學習(三):系統調用

例子 首先看一個標準C庫的例子:當我們程序中使用了C庫中的printf()函數,實際在底層是在內核態中調用了write()函數。圖中右側則是將程序代碼與C庫都算到應用程序中,內核提供了一個系統調用接口。 從這個例子我們可以得到以下幾點&#xff1a…

cygwin/gcc與MinGW

cygwin/gcc和MinGW都是gcc在windows下的編譯環境,但是它們有什么區別?在實際工作中如何選擇這兩種編譯器呢?cygwin/gcc完全可以和在linux下的gcc劃等號,這個從boost庫的劃分中就可以看出來端倪,cygwin下的gcc和linux下的gcc使用的是相同的T…

JavaScript服務器端開發技術(對象屬性的枚舉與查詢)

既然對象是屬性的集合,那么檢測與枚舉集合中的屬性就是一項重要任務。對此,我們來分別看一下ES3和ES5提供的解決方案。 1) ES3枚舉方案 示例代碼: var contacts{ ID:[0,1,2,3,4,5], names:["Zero","One","Two&q…

treelistview 所有節點失去焦點_垃圾詢盤過濾,焦點科技的 Milvus 實踐

文章作者:黎陽,焦點科技軟件開發工程師李成龍,Zilliz 數據工程師Milvus (https://milvus.io/) 向量搜索引擎開源半年以來,全球已經有數百家企業或組織用戶。焦點科技是一家以 B2B 外貿交易為主營業務的科技公司,也是 M…

《操作系統》OS學習(四):計算機體系結構、內存層次和地址生成

計算機除了計算能力之外還有存儲能力,存儲能力即計算機擁有一系列的存儲介質,我們可以在存儲介質上存儲我們的代碼和數據。計算機體系結構中約定了哪些地方可以用來存儲數據:CPU內的寄存器、內存和外存。不同的存儲介質,容量、速度…

GCC中SIMD指令的應用方法

X86架構上的多媒體應用開發,如果能夠使用SIMD指令進行優化, 性能將大大提高。目前,IA-32的SIMD指令包括MMX,SSE,SSE2等幾級。 在GCC的開發環境中,有幾種使用SIMD指令的方式,本文逐一介紹。X86的…

使用angular4和asp.net core 2 web api做個練習項目(二), 這部分都是angular

上一篇: http://www.cnblogs.com/cgzl/p/7755801.html 完成client.service.ts: import { Injectable } from angular/core; import { Http, Headers } from angular/http; import { Observable } from rxjs/Observable; import { ErrorHandler } from angular/core; import rxj…

leelen可視對講怎么接線_樓宇對講系統怎么布線 樓宇對講系統布線方式【介紹】...

隨著智能小區規模不斷增加,樓宇可視對講系統應用越來越廣泛,因而視頻信號的傳輸方式與布線設計顯得越來越重要。視頻信號與數據和音頻信號不同,可行的一種傳輸方式為視頻信號基帶傳輸,下面小編就簡要介紹一下這種傳輸方式和布線方…

路由匯總實例

5.2.2.2 路由匯總策略 之前提到過,在網絡管理員計劃好子網選擇并進行預期地路由匯總時,手動路由匯總工作能取得最佳效果。例如,之前的例子設定好了一個考慮周全的計劃,管理員只使用遠離Yosemite路由器并以10.2開頭的子網。這個規定…

《操作系統》OS學習(五):連續內存分配 內存碎片、動態分配、碎片整理、伙伴系統

內存碎片 在沒有其他方式輔助的情況下,我們分配給一個進程的內存是連續的。在分配時候我們需要有動態分配與碎片處理。如何理解呢?就是每個進程需要一塊內存,我們要選取合適的位置的內存分配給它。當有的進程先結束了內存還給操作系統&#…

GCC 中文手冊 - 摘自純C論壇

GCC Section: GNU Tools (1) Updated: 2003/12/05 Index Return to Main Contents NAME gcc,g-GNU工程的C和C編譯器(egcs-1.1.2) 總覽(SYNOPSIS) gcc[option|filename ]... g[option|filename ]... 警告(WARNING) 本手冊頁內容摘自GNU C編譯器的完整文檔,僅限于解釋選項的含義…

python如何實現支持中文

#codingutf-8print("我要python支持中文") 默認情況下,python是不支持中文的。 如果要實現python支持中文(我是從python3.6開始學習的),只要在python文檔的開頭加入:“#codingutf-8"就可以了。轉載于:h…