1. 程式人生 > >作業系統虛擬化安全的預備知識

作業系統虛擬化安全的預備知識

微核心與巨集核心的區別:
微核心是將各種服務功能放到核心之外,自身僅僅是一個訊息中轉站。
巨集核心是將所有服務功能集成於一身,使用時直接呼叫。

從資源管理角度,作業系統主要功能劃分:CPU管理、儲存管理、I/O裝置管理、檔案系統、使用者介面

檔案描述符表、系統檔案表、記憶體索引節點表:

檔案描述符表:該表記錄程序開啟的檔案。它的表項裡面有一個指標,指向存放在核心空間的檔案表中的一個表項。它向用戶提供一個簡單的檔案描述符,使得使用者可以通過方便地訪問一個檔案。
當程序使用open開啟一個檔案時,核心就會在這個表中新增一個表項。如果對同一個檔案開啟多次,那麼將有多個表項。使用dup時,也會增加一個表項。
檔案表:

檔案表儲存了程序對檔案讀寫的偏移量。該表還儲存了程序對檔案的存取許可權。比如,程序以O_RDONLY方式開啟檔案,這將記錄到對應的檔案表表項中。
索引結點表:每個檔案都有一個索引節點(inode)(包含檔案所有者、存取許可權、及其存取時間等資訊),當一個程序建立一個新檔案時,核心分配給它一個尚未使用的索引節點。索引節點被儲存在檔案系統中(即磁碟索引節點表),但是當操作檔案時,核心將它們讀到記憶體索引節點表中,即:對系統中的每個活動的檔案(被某個程序打開了),記憶體中索引節點表都包含一個條目。幾個系統檔案表條目可能對應於同一個記憶體索引節點表(不同程序開啟同一個檔案)
上面所說的三個表的功能,使得三個表緊密地聯絡在一起,檔案描述符表項有一個指標指向檔案表表項,檔案表表項有一個指標指向索引結點表表項。每開啟一次同一個檔案,核心就會在檔案表中增加一個表項。這是因為每次open檔案時使用了不同的讀寫許可權,而讀寫許可權是儲存在檔案表表項裡面的。

虛擬機器的型別:
- 宿主型-需要執行在Host OS之上,由其提供驅動程式與硬體通訊
- 獨立監控型-直接運行於硬體層之上

虛擬化的分類:
- 全虛擬化:使用了一種叫做二進位制轉換(Binary Translation)的技術。其核心是讓Hypervisor執行在0環上,由它來負責管理底層的硬體。而虛擬機器的作業系統執行在許可權較低的1 環上,當這些作業系統呼叫特權指令的時候,0環的VMM使用二進位制轉換技術將這些指令呼叫攔截下來,並負責指令的後續工作。
缺點:軟體攔截機制,效能開銷大
- 泛虛擬化:使得虛擬機器的作業系統仍然可以執行在0 環上,但是需要修改作業系統的核心,把其中對特權指令的呼叫都改成對Hypervisor的呼叫,這種呼叫叫做Hypercall,半虛擬化的典型代表是Xen。這樣,當在0 環上的虛擬機器的作業系統呼叫特權指令的時候,會轉成對Hypervisor的Hypercall 呼叫,依然是由Hypervisor來統一的對系統硬體資源進行管理。
缺點:需要修改OS核心
- 硬體輔助虛擬化:需要CPU 對虛擬化技術的支援。除了0 環到3 環以外,CPU 額外的多提供了一個環為Hypervisor專用,稱為 -1 環。虛擬機器的作業系統仍執行在0 環上,在作業系統呼叫特權指令的時候,通過硬體的機制將特權指令呼叫轉到在處在 -1環上的Hypervisor 上,由Hypervisor完成對硬體的統一管理。缺點:需要有硬體支援(如Intel VT, AMD SVM)

這裡寫圖片描述

系統虛擬化的主要用途:隔離、合併、遷移、個性化

主流虛擬化軟體:
- VMWare: 不開源
- Xen:開源
- INTEL VT系列
- VT-x: 處理器輔助虛擬化技術
- VT-d: I/O輔助虛擬化,直接IO
- VT-c: 網路輔助虛擬化技術
- TXT:可信執行技術

記憶體虛擬化實現採用的MMU泛虛擬化與影子頁表技術思想和區別:

對於 MMU 泛虛擬化方法,VMM 將對映關係 f•g 直接寫入 guest OS 的頁表中,並替換原來的對映g。
對於影子頁表技術,它為 guest OS 的每個頁表維護一個影子頁表,並將合成後的對映關係 f•g 寫入到“影子” 中,guest OS 的頁表內容保持不變。最後,VMM 將影子頁表交給 MMU 進行地址轉換。

相關推薦

作業系統虛擬化安全預備知識

微核心與巨集核心的區別: 微核心是將各種服務功能放到核心之外,自身僅僅是一個訊息中轉站。 巨集核心是將所有服務功能集成於一身,使用時直接呼叫。 從資源管理角度,作業系統主要功能劃分:CPU管理、儲存管理、I/O裝置管理、檔案系統、使用者介面 檔案描述符表

openstack預備知識---虛擬化

openstack預備知識一、虛擬化1、什麽是虛擬化? 虛擬化使得在一臺物理的服務器上可以跑多臺虛擬機,虛擬機共享物理機的 CPU、內存、IO 硬件資源,但邏輯上虛擬機之間是相互隔離的。 物理機我們一般稱為宿主機(Host),宿主機上面的虛擬機稱為客戶機(Guest)。 那麽 Host 是如

作業系統虛擬化安全模型

(一)BLP經典模型 BLP模型形式化地定義了系統狀態及狀態轉換間的轉換規則,並制定了一組約束系統狀態間轉換規則的安全公理! 模型的安全策略: 自主安全策略:自主安全策略使用一個訪問矩陣表示,訪問矩陣第i行第j列的元素Mij表示主體Si對客體Oj

作業系統虛擬化安全第一次作業-關鍵習題

《作業系統與虛擬化安全》 第一次作業(預備知識)本次作業要求: 1.  這是個人作業,每位同學獨立完成和提交。 2.  提交時間10月13日24點。 3.  如果遇到問題,請聯絡助教。  一、作業系統設計技術 1.  作業系統的主要任務是什麼? 管理好計算機全部軟硬體資源,

【轉】關於LIS和一類可以用樹狀數組優化的DP 預備知識

免費 關註 最長上升子序列 2.3 bzoj1264 一個數 long 個數字 等於 原文鏈接 http://www.cnblogs.com/liu-runda/p/6193690.html 預備知識     DP(Dynamic Programming)

最大熵學習筆記(一)預備知識

color wrap targe dsm entropy plus 文件 eight 相關鏈接 生活中我們常常聽到人們說“不要把雞蛋放到一個籃子裏”。這樣能夠減少風險。深究一下,這是為什麽呢?事實上,這裏邊包括了所謂的最大熵原理(The Maxim

ORACLE數據庫安全基礎知識

oracle 安全 一、數據字典保護啟用數據字典保護,只有SYSDBA用戶才能訪問數據字典基礎表使用show parameters命令來檢查參數O7_DICTIONARY_ACCESSIBILITY是否為FALSE。 二、賬號安全管理1、根據用戶的業務需要,配置最小權限使用以下SQL查詢具有DBA權限

數據結構和算法學習——1 預備知識

mar 算法學習 cin inf 知識 get www 數據 dxf 泌願d捅儐頻9BRH3http://www.docin.com/cosld296 N5TR幢搪73美51等M嚎http://www.docin.com/app/user/userinfo?userid=1

學習Identity Server 4的預備知識

發布 開發 簡單的 密碼 是否 alt imp load 通信 我要使用asp.net core 2.0 web api 搭建一個基礎框架並立即應用於一個實際的項目中去. 這裏需要使用identity server 4 做單點登陸. 下面就簡單學習一下相關的預備知識. 基於

域滲透學習預備知識-IPC$的入侵防禦

教程 自己 經典 ## .exe 帳號 username 所有 字典 一、什麽是IPC$ 以下段落引文自:http://www.xfocus.net/articles/200303/493.html   IPC$(Internet Process Connection)是

讀書筆記: 博弈論導論 - 07 - 完美信息的動態博弈 預備知識

truct imp comm off tro markdown term 同時 orm 讀書筆記: 博弈論導論 - 07 - 完美信息的動態博弈 預備知識 完美信息的動態博弈 預備知識 本文是Game Theory An Introduction (by Steven Ta

安全基礎知識

登錄 基礎 心理 項目 pass 隱私 middle 模式 權限 加密需要 不加密流量的易受攻擊性 密碼/ 數據嗅探 數據操作 驗證操作 相當於郵寄明信片 不安全的傳統協議 te

C++自學-預備知識

實際類型 編程方式 泛型編程 上下文 派生 信息 多個 面向過程 過程 C++簡介 C++由C的基礎上添加了面向對象編程和泛型編程的支持,使得C++具有三種編程方式:面向過程、面向對象、泛型編程。在學習C++之前最好掌握一定的C與OOP編程基礎。 面向過程、面向對象、泛型編

LayIM.AspNetCore Middleware 開發日記(二)預備知識介紹

Locator route ppk 我只 netcore blank req rop read 前言   開發一個AspNetCore的中間件需要理解RequestDelegate。另外,還需要理解.NET Core中的依賴註入。還有一個就是內嵌資源的訪問。例如:Embed

word2vec 中的數學原理二 預備知識 霍夫曼樹

append 哈夫曼編碼 har html ant 世界 word2vec tree plus 主要參考: word2vec 中的數學原理詳解 自己動手寫 word2vec 編碼的話,根是不記錄在編碼中的 這一篇主要講的就是

C艹 預備知識

number 小寫 版本 dos spi 問題 bject tchar system 1將依賴於硬件部分放在函數模塊中可以最大限度的降低可移植性問題,這樣只需重新編寫這些模塊即可. 2.源代碼:你編寫的那玩意 目標代碼:經過編譯器將源代碼翻譯成object code 鏈接:

flask框架預備知識

bootstra bootstrap 瀏覽器 alc 能力 corn phy 維度 pts 1.web預備知識 2.flask介紹 3.web框架的本質及分類 4.flask安裝與基本設置 1.web預備知識 HTTP協議:https://www.cnblogs.c

線程安全基礎知識

基礎知識 出現 修飾 tro 線程安全問題 之間 ati 類型變量 使用 一: 線程理解 1. 當一個對象被多個線程訪問時, 我們就應該考慮線程安全問題, 當某個線程對該變量訪問時進行了寫入修改操作,那就必須采用同步機制確保對象不變   那麽,Ja

匯編語言從入門到精通-預備知識

append 關心 執行 進制 工作 要求 系統 專業技術 p s 匯編語言 1、預備知識 1.1 匯編語言的由來及其特點 1.1.1 機器語言   機器指令是CPU能直接識別並執行的指令,它的表現形式是二進制編碼。機器指令通常由操作碼和操作數兩部分組成,操作碼指出該指令所

Panda_02_預備知識

一、前言 前面我們搭建好了Panda的開發環境,這一節,來鞏固下一些常用知識。 二、Git使用 1.參考資料 Git 教程——廖雪峰 Git簡明教程——hap 2.知識點列表 git 的安裝 工作區、暫存區、本地倉庫