視窗技術之研討與管理簡介 一窺視窗內部的技術奧秘 曹祖聖 台灣微軟資深講師 jimycao@top-light.com.tw.

Slides:



Advertisements
Similar presentations
第 6 章 操作系统安全技术.
Advertisements

LinkIt ONE開發板的簡介.
Foundations of Computer Science
Chapter 2 Windows 系統總述 Team 1 (page 17 ~ page 56)
操作系统结构.
Windows 2000/XP网络组建与系统管理 李燕 中南分校.
计算机安全防护技术 网络中心 2011年12月.
第8章 操作系统安全.
第 1 章 使用 APP INVENTOR 2 開發 ANDROID APP
Windows Vista 操作系统最新安全特性
資料檔案的安全性管理 羅英嘉 2007年4月.
Q101 在701 SDX Linux上的標準安裝與使用程序v2
第一篇 Unix/Linux 操作介面 第 1 章 Unix/Linux 系統概論 第 2 章 開始使用 Unix/Linux
JDK 安裝教學 (for Win7) Soochow University
第1章 認識Arduino.
雲端運算的基石(4) 虛擬化技術實作(Win 8篇)
手機作業系統介紹.
网络与信息安全 系统安全:Windows系统安全
作 業 系 統 第三組 楊育翰 顏瑞霖.
Windows 程式設計 (使用 C++ / C#)
Working with Databases (II) 靜宜大學資管系 楊子青
資料庫操作.
雲端運算的基石(4) 虛擬化技術實作(Win 8篇)
電腦硬體裝修乙級 第二站-伺服器端系統安裝與環境設定
HiNet 光世代非固定制 用戶端IPv6設定方式說明
Windows 2000/XP网络组建与系统管理 李燕 中南分校.
ICT RTOS Research Group 胡伟平,王剑
桌面環境簡介及IDE開發工具 Outline (一)什麼是Linux? (二)桌面環境系統簡介 (三)IDE開發工具.
R教學 安裝RStudio 羅琪老師.
ASP.NET基本設計與操作 建國科技大學 資管系 饒瑞佶 2007年.
[LAB 3]Make OS SD Card Step1 Download the image file.
CH10 Windows 2000 XP注册表 Windows 2000/XP网络组建与系统管理 李燕 中南分校.
安裝JDK 安裝Eclipse Eclipse 中文化
OpenID與WordPress使用說明
2017 Operating Systems 作業系統實習 助教:陳主恩、林欣穎 實驗室:720A.
App Inventor2呼叫PHP存取MySQL
雲端運算的基石(2) 虛擬化技術實作(XP篇─上)
檔案與磁碟的基本介紹.
Windows Vista 安裝部署工具與技術
FTP檔案上傳下載 實務與運用.
私立南山高中 信息組 電腦研習 電腦資料的備份 中華民國 99年4月20日 星期二.
指導老師:黃貞芬 老師 專題組員:B 黃育宇 B 魏志軒 B 平震宇
凌宁 系统工程师 亚洲区嵌入式系统事业群 微软(中国)有限公司
PowerCam快速數位教材製作 黃雲龍 NCCU/ NTSU.
網路安全技術 OSI七層 學生:A 郭瀝婷 指導教授:梁明章.
虛擬機器 下載QEMU Windows版 (0.9.1) 下載Kqemu Windows版 安裝QEMU 安裝Kqumu
Topic Introduction—RMI
Linux作業系統 電腦教室Linux使用說明.
人文與科技的結合 人文與科技的結合 Right Fax使用說明.
WinPXE 無硬碟系統 6.0 安裝說明 憶傑科技股份有限公司
Windows 2000/XP网络组建与系统管理 李燕 中南分校.
SAP 架構及前端軟體安裝 Logical View of the SAP System SAP Frontend 7.1安裝與登入
Windows Vista 桌面環境管理工具與技術
FTP使用教學 簡介: 軟體名稱:FileZilla 軟體性質:Freeware 版本: 繁體中文版
动态链接库 主讲人:孙鑫
利用 EditorConfig 自訂文字編輯器設定
Video 影像 (VideoPlayer 影像播放器、Camcorder 錄影機) 靜宜大學資管系 楊子青
取得與安裝TIDE 從TIBBO網站取得TIDE
Cloud Operating System - Unit 03: 雲端平台建構實驗
2018 Operating Systems 作業系統實習 助教:林欣穎 實驗室:720A.
晶片讀卡機驅動程式安裝說明.
班級:博碩子一甲 授課老師:鐘國家 助教:陳國政
MultiThread Introduction
資料擷取與監控應用實務.
Chapter 4 Multi-Threads (多執行緒).
Develop and Build Drives by Visual C++ IDE
雲端電腦教室 Matlab 使用介紹 1. 工作目錄切換 2. 把 matlab 的檔案存出來 3. Matlab 軟體介面.
Department of Computer Information Science, NCTU
Introduction to Mobile Computing
Presentation transcript:

視窗技術之研討與管理簡介 一窺視窗內部的技術奧秘 曹祖聖 台灣微軟資深講師 jimycao@top-light.com.tw

講師簡介 How am I ? 姓名:曹祖聖 Jimy Cao 郵件:jimycao@top-light.com.tw 證照:MCP, MCP+I, MCSA, MCSE, MCDBA, MCAD, MCSD, MCT 現任: 台灣微軟資深講師 巨匠電腦講師 聖擎科技股份有限公司軟體總技術長 光明頂軟體股份有限公司研發顧問 行動智慧股份有限公司技術顧問 凌天科技有限公司技術顧問 專業電腦圖書作家 電腦雜誌專欄作家

講師簡介 How am I ? 經歷: 一級棒資訊股份有限公司系統分析師、專案經理 華彩教育訓練中心、資策會教育訓練中心講師 巨匠電腦認證中心兼任講師、專任講師、顧問講師 微軟 TechEd 2000、2001、2002、2003 研討會講師 (6 場) 微軟 PDC 2002 研討會講師 (2 場) 微軟 Windows 2000 實力札根研討會講師 (2 場) 微軟 DevCon 專業 .NET 開發技術研討會講師 (8 場) 微軟 Visual Studio .NET 中文版上市發表會 (全省巡迴 4 場) 微軟 Windows Server 2003 中文版上市發表會 (全省巡迴 4 場) 微軟 Office 2003 中文版上市發表會 (全省巡迴 4 場) 微軟 2003 ISV Training、Smart Client ISV Training 講師 第一屆認證博覽會講師、巨匠精英展望會講師 (全省巡迴 3 場) 東海、成功、淡江 … 等大專院校資訊技能生涯規劃講座講師 大台中人力銀行特約講師、環台聯合企業有限公司網路行銷顧問

大綱 視窗平台介紹 視窗作業系統的運作機制 其它關鍵程式技術介紹 Windows XP Windows Server Windows CE 記憶體管理 行程管理 檔案系統介紹 裝置驅動程式管理 視窗安全機制 其它關鍵程式技術介紹 GDI+ 視窗繪圖技術 Smart Device DirectX 影像與多媒體技術

Windows XP

Windows Server

Windows CE

視窗系統架構

Environment Subsystems Hardware Abstraction Layer (HAL) Windows 2003 架構 (簡化版) Environment Subsystems System & Service Processes User Apps OS/2 POSIX Win32 Subsystem DLL User Kernel Executive Win32 User/GDI Device Drivers Kernel Hardware Abstraction Layer (HAL)

Executive Services API Hardware Abstraction Layer (HAL) Windows 2003 架構 (完整版) Replicator Alerter Event Log Win32 POSIX OS/2 Session Mgr WinLogon System Processes Services User Apps Environment Subsystems Interface DLL Subsystem DLL User Kernel Executive Services API Registry I/O System Security Monitor Win32 GDI Object Services Memory Mgmt Processes/ Threads File Systems Object Management Device Drivers Kernel Exec. RTL Hardware Abstraction Layer (HAL) I/O Devices DMA/Bus Control Cache Control Clocks/ Timers Privileged Architecture Interrupt Dispatch

Executive Services API Hardware Abstraction Layer (HAL) Windows 2003 架構 (完整版) Replicator Alerter Event Log Win32 POSIX OS/2 Session Mgr WinLogon System Processes Services User Apps Environment Subsystems Interface DLL Subsystem DLL User Kernel Executive Services API I/O System Security Monitor Processes/ Threads Object Services Memory Mgmt Win32 GDI NTOSKRNL.EXE File Systems Object Management Device Drivers Kernel Exec. RTL Hardware Abstraction Layer (HAL) I/O Devices DMA/Bus Control Cache Control Clocks/ Timers Privileged Architecture Interrupt Dispatch

Windows 2003 架構各部元件 #1 Windows 2003 Executive 作業系統核心部份的最上層 提供應用程式一般化的介面 行程與執行緒的建立與刪除 記憶體管理 I/O 行程間呼叫 安全性 在核心模式下執行

Windows 2003 架構各部元件 #2 Windows 2003 Kernel 提供低階的作業系統功能 執行緒排程 中斷與例外分配 多處理器同步 HAL (Hardware Abstraction Layer) 讓作業系統獨立於硬體平台 不同的主機版 (晶片組) 有不同的 HAL 提供 I/O 的標準的介面

Windows 2003 架構各部元件 #3 Device Drivers I/O 管理員與相對應的週邊硬體之間的介面 檔案系統驅動程式、網路通訊協定驅動程式、硬體驅動程式 驅動程式呼叫 HAL 的功能介面來控制硬體 可以使用「電腦管理」來檢視所有安裝的驅動程式 Win32 User/GDI (Graphics Device Interface) 負責實作圖形使用者介面 graphical user interface (GUI) 視窗的繪製與管理、使用者的介面控制 繪圖

Windows 2003 的記憶體定址 System Application 4Gb 2Gb (Kernel, Executive, HAL) Privileged Memory Addresses 2Gb Application (User Process Space) Unprivileged Memory Addresses

Environment Subsystems Hardware Abstraction Layer (HAL) 子系統元件 API DLLs For Win32: Kernel32.DLL, Gdi32.DLL, User32.DLL Subsystem process For Win32: CSRSS.EXE Kernel-Mode GDI Code (Win32 only) 1 2 3 Environment Subsystems System & Service Processes 2 User Apps OS/2 POSIX Win32 Subsystem DLL 1 User Kernel Executive Win32 User/GDI 3 Device Drivers Kernel Hardware Abstraction Layer (HAL)

子系統元件所扮演的角色 API DLLs Subsystem process Win32K.SYS 提供該子系統的所有可供呼叫 API Maintains global state of subsystem Win32K.SYS 實作 Win32 User/GDI 功能 POSIX 與 OS/2 子系統也會使用這個子系統來做顯示處理

Win32 子系統 CSRSS.EXE WIN32K.SYS 包含 子系統中的 DLLs 將 Win32 API 對應到核心模式下的服務呼叫 支援主控制模式與視窗模式 負責建立與刪除 Win32 行程與執行緒 WIN32K.SYS 包含 Window Manager 鍵盤、滑鼠輸入,螢幕輸出 Graphics Device Interface (GDI) 子系統中的 DLLs 將 Win32 API 對應到核心模式下的服務呼叫 USER32.DLL, KERNEL32.GDI -> NTOSKRNL

記憶體管理

分頁處理/虛擬記憶體管理

行程管理

Win16/ Win32 行程管理

檔案系統

影片: Windows 檔案系統介紹 讓您了解各種檔案系統的差異 選擇 最大的分割大小 每一單位儲存空間大小 安全性支援 資料壓縮支援 依據磁碟大小來選擇最有效率的檔案系統

FAT / FAT32 適用於小型的磁碟上 所有作業系統都支援 適合用在多重作業系統開機的環境下 FAT/FAT32 Windows XP Professional Windows 98 FAT/FAT32

NTFS 提供比 FAT 更好的可靠性 使用檔案權限與 EFS 檔案加密提昇安全性 適合各種容量的磁碟

conversion during upgrade 檔案系統轉換 From: To: Windows XP Conversion not necessary NTFS on Windows 2000 NTFS volume Automatic conversion during upgrade NTFS on Windows NT NTFS volume FAT Use convert command NTFS volume FAT NTFS volume No conversion

NTFS 檔案壓縮 NTFS 檔案與資料夾都有壓縮狀態 當檔案被存取時,會自動在背景進行解壓縮 磁碟空間計算是以未壓縮的大小來算 可以使用不同的顏色來辨別壓縮與否 NTFS partition FileA FileB

壓縮功能的使用建議 決定那一種類型的檔案要壓縮 避免去壓縮系統或執行檔 壓縮固定的檔案,而不要壓縮經常修改的檔案 使用不同的顏色來指示壓縮的與否

NTFS 檔案壓縮

EFS 介紹 加密/解密過程背景處理 已加密檔案只能由加密者存取 允許指定回復代理人 可以在本機與網路上進行 ~~~~ ~~~~~ 加密/解密過程背景處理 已加密檔案只能由加密者存取 允許指定回復代理人 可以在本機與網路上進行 可以使用不同顏色來區分檔案加密與否

檔案加密 ~~~ ~~~~ ~~~ ~~~~ ~~~ ~~~~ 首先要設定檔案的加密狀態 當檔案被儲存時,檔案會用一系列的加密金鑰進行加密 使用者的解密金鑰儲存在 Data Decryption Field (DDF) DDF 回復代理人的解密金鑰儲存在 Data Recovery Field (DRF) ~~~ ~~~~ DRF

增加援權解密使用者 2 1

檔案解密 ~~~~ ~~~~~ EFS 自動偵測檔案的加密狀態,並且找到使用的私密金鑰 DDF 使用解密檔案的金鑰解密檔案 使用使用者的私密金鑰來解開 DDF,以便取得解密檔案的金鑰 EFS 自動偵測檔案的加密狀態,並且找到使用的私密金鑰 ~~~~ ~~~~~ DDF

回復代理人 ~~~~ ~~~~~ ~~~~ ~~~~~ 檔原始的加密者私密金鑰不存在時 回復代理人可以使用他的私密金鑰解開 DRF,以便取得解密檔案的金鑰 ~~~~ ~~~~~

EFS 的使用建議 加密我的文件夾 針對資料夾加密 妥善保存憑證資料 指定回復代理人

EFS 檔案加密

裝置驅動程式管理

什麼是裝置 ? 裝置指的是連接到電腦上的設備 例如: 顯示卡、印表機、網路卡、數據機 裝置可以分成以下兩大類: Plug and Play 隨插即用型裝置 BIOS 與作業系統可以辨識出裝置並且自動調整裝置使用的資源與安裝適當的驅動程式 Non-Plug and Play 非隨插即用型裝置 BIOS 與作業系統無法辨識出裝置

什麼是裝置驅動程式 ? 裝置驅動程式 : 在 Windows 作業系統可以正常使用裝置之前,必須要安裝正確的驅動程式 可以使用「裝置管理員」 一個用來讓裝置和作業系統相互溝通的程式 當作業系統啟動之後便會自動載入執行 在 Windows 作業系統可以正常使用裝置之前,必須要安裝正確的驅動程式 可以使用「裝置管理員」 識別、安裝、更新裝置驅動程式 還原到前一版本的驅動程式 啟用、停用、移除裝置驅動程式

什麼是裝置驅動程式的簽署 ? 數位簽章用來證明裝置驅動程式符合微軟一系列的測試,適合安裝在 Windows 上 使用已簽署的裝置驅動程式可以確保效能 與穩定性 Windows 提供以下機制與程式 Windows File Protection System File Checker File Signature Verification

如何設定裝置驅動程式簽署 ? 2 3 1 4 Click Driver Signing Select the appropriate driver signing option 3 Open System 1 Select the check box in Administrator option 4

什麼是裝置驅動程式回復 ? 當您安裝了有問題的裝置驅動程式 ,而造成系統異常時,可以將裝置驅動程式回復到上一個版本 但是不可以: 回復兩個以上的版本 回復印表機驅動程式 同時回復一個多功能裝置的驅動程式

裝置驅動程式管理

系統行程與開機流程

系統行程 (Idle) Process id 0 Part of the loaded system image Home for idle threads Also called “System Process” in many displays (System) Process id 8 Home for kernel-defined threads Thread 0 launches the first “real” process, by running smss.exe (Session Manager)

系統啟動流程 1 2 3 4 5 6 7 8 BIOS 載入 MBR 並執行,MBR 會尋找開機磁區 開機磁區載入並執行作業系統的第一個檔案 NTLDR 2 NTLDR 將系統切換到 32 位元保護模式 3 NTLDR 讀取 boot.ini 顯示開機選單 4 NTLDR 將系統切換回 16 位元真實模式,然後執行 ntdetect.com 偵測硬體 5 NTLDR 讀取 NTDETECT 偵測到的硬體資訊 6 7 NTLDR 啟動 NTOSKRNL.EXE 8

系統啟動流程 smss.exe Session Manager 系統第一個建立的行程 負責啟動 csrss.exe 與 winlogon.exe csrss.exe Win32 子系統 winlogon.exe 登入行程: 啟動 services.exe & lsass.exe; 顯示登入畫面,當使用者登入時,執行 userinit.exe services.exe 服務控制器,負責啟動/停止系統服務 lsass.exe Local Security Authentication (LSA) Server userinit.exe 負責啟動 explorer.exe explorer.exe 桌面環境

開機選單設定

視窗系統安全性

安全性元件 安全性角色 (Security Principals) 安全性識別碼 SID (Security IDentifier) 包含:使用者、群組、服務、電腦 這些物件都具有 SID 安全性識別碼 SID (Security IDentifier) 用來唯一辨識物件 絕對不會重複被使用 安全性描述元 (Security Descriptors) 用來記錄物件的安全性資訊,包含: DACL SACL

DACL 與 DACL Discretionary / System Access Control List 用來記錄某一個物件,可以被那些安全性角色所存取,以及存取的權限等級 SACL 用來記錄某一個物件,所稽核 (Audit) 的對象 (安全性角色) ,以及所要稽核的動作 安全性描述元 標頭 擁有者 SID 群組 SID DACL ACEs SACL ACEs

ACE Access Control Entries DACL 資料結構 ACE 標頭 存取遮罩 使用者SID 群組SID 對此物件禁止存取 對此物件允許存取 對某一屬性或子物件禁止存取 對某一屬性或子物件允許存取 安全性描述元 標頭 擁有者 SID 群組 SID SACL ACEs DACL ACEs

DACL、SACL、ACEs

ACL 的繼承關係 Inheritance of ACL 父物件上的權限設定,預設會繼承給子物件,因此可以減少設定權限的次數 如果子物件上另外設定的權限 (ACE),與繼承自父物件的權限衝突,以子物件上的權限設定為主 DACL User1 Read / Write Group1 Read User1 Read / Write 權限繼承 使用者 存取物件 父物件 Group1 Read 子物件 DACL User1 Write User1 Deny Read Group1 Read / Write Group1 Write

ACL的繼承關係

使用者登入處理程序 Domain Controller 建立 Access Token Kerberos Service Local Security Subsystem 2 1 Ticket Access Token 6 Ticket 3 Ticket 4 建立 Access Token 5 GC Server 使用者登入 帳號 / 密碼 / 網域 1 DC 上的 Kerberos Service 將 Workstation Ticket 傳回給用戶端 4 Local Security Subsystem 向 DC 申請使用者的 Session Ticket 2 Local Security Subsystem 產生出 Access Token 5 Local Security Subsystem 再向 DC 申請 Workstation Ticket 3 使用者使用 Access Token 來產生後續的 Process 6

Access Tokens Access Token 上包含 使用者帳號的 SID 使用者所屬群組的 SID Security ID: S-1-5-21-146... Group IDs: Employees EVERYONE Sales User Rights: SetChangeNotifyPrivilege - (attributes) 3 SetSecurityPrivilege - (attributes) 0 Access Token Access Token 上包含 使用者帳號的 SID 使用者所屬群組的 SID 使用者所擁有的權力 (Right) Please touch up this graphic.

物件權限的檢查程序 1 5 2 4 3 Security Subsystem 允許存取 存取物件 應用程式 傳送 存取要求 Domain OU1 OU2 存取物件 1 允許存取 5 應用程式 傳送 存取要求 2 找到符合的 ACE,繼續找一下個 4 Security Subsystem 檢查物件 ACL 中的 每一個 ACEs 看看是否有符合的 SID DACL 3 User1 Read / Write Group1 Read

Secondary Logon Process

其它關鍵程式技術介紹

GDI+ GDI+ 包含三個部份 新特色 2D 向量繪圖 (2D vector graphics) 圖片 (imaging) 印刷格式 (Typography) 新特色 Gradient Brushes (漸層) Cardinal Splines (曲線) Path (路徑) Transformations and Matrix (矩陣變換) Scalable Regions (繪圖區) Alpha Blending (Alpha 混色) Antialiasing (線條柔和化)

GDI+ 繪圖

半透明視窗與非矩形視窗

Smart Device 表單

DirectX

謝謝各位