Kiến trúc của Windows

Một phần của tài liệu Chương I Tổng quan về hệ điều hành (Trang 34 - 40)

Kernel Mode & User Mode

Để bảo vệ hệ điều hănh trânh sự truy cập vă/hoặc thay đổi bất hợp lệ của câc chương trình ứng dụng của người sử dụng, Windows 2000 sử dụng hai chế độ xử lý truy cập: Kernel modeUser mode. Câc chương trình ứng dụng của người sử dụng chạy trong user mode, trong khi đó câc dịch vụ hệ thống vă câc chương trình điều khiển thiết bị của hệ điều hănh chạy trong kernel mode. Kernel mode chỉ đến một chế độ của việc thực hiện trong processor mă ở đó nó có toăn quyền truy cập đến tất cả hệ thống bộ nhớ vă tất cả câc chỉ thị của CPU. Trong cấu trúc năy phần mềm hệ điều hănh được cung cấp một mức đặc quyền cao hơn so với mức đặc quyền của câc chương trình ứng dụng của người sử dụng. Processor cung cấp câc cơ sở cần thiết để người thiết kế hệ điều hănh đảm bảo rằng câc ứng dụng không thể phâ vỡ trạng thâi ổn định của hệ thống vă lăm hỏng nó.

Câc tiểu trình trong user mode thực hiện trong không gian địa chỉ bộ nhớ được bảo vệ, mỗi thănh phần trong user mode sở hữu một không gian địa chỉ tiến trình riíng. Trong khi đó Windows 2000 không cung cấp bất kỳ một sự bảo vệ năo trín câc không gian bộ nhớ riíng được sử dụng bởi câc thănh phần chạy trong kernel mode. Trong một tuyín bố khâc, trong kernel mode, mê hệ điều hănh vă câc chương trình điều khiển thiết bị hoăn toăn có thể truy cập đến không gian bộ nhớ hệ thống vă có thể vượt qua sự giâm sât an toăn của Windows 2000 để truy cập đến

System Support ProcessesServiceProcessesUserApplicatioesEnvironmentSubsystemÐ

Subsystem DLLs

ExecutiveKernel Device DriversHard Abstraction LayerWindowsAnd Graphics

Hình 1.12: Kiến trúc được đơn giản của Windows 2000

Kernel mode User mode

câc đối tượng. Bởi vì phần lớn mê của hệ điều hănh Windows 2000 chạy trong kernel mode, câc thănh phần quan trọng nhất của hệ điều hănh chạy trong kernel mode được thiết kế vă được kiểm tra rất cẩn thận để đảm bảo rằng nó không vi phạm đến sự an toăn của hệ thống.

Chú ý: Kiến trúc của processor Intel x86 định nghĩa 4 cấp/ vòng đặc quyền truy cập (Privilege levels/ Rings), để bảo vệ code vă data của hệ thống, trânh sự ghi đỉ (overwrite) có chủ ý (maliciously) hoặc không chủ ý (inadvertently) bởi câc code có cấp đặc quyền truy cập thấp hơn. Windows 2000 sử dụng cấp 0/ vòng 0 cho

Kernl mode vă cấp 3/ vòng 3 cho Uer mode. Nguyín nhđn mă Windows 2000 chỉ sử dụng có 2 cấp lă do một văi kiến trúc phần cứng trước đó, chẳng hạn như Compaq Alpha vă Silicon Graphics, chỉ được căi đặc 2 cấp đặc quyền truy cập.  Kiến trúc của Windows 2000

Hình vẽ 1.12 sau đđy cho ta thấy kiến trúc đê được đơn giản hoâ của Windows 2000.

Hình vẽ cho ta thấy kiến trúc của hệ điều hănh Windows 2000 được chia thănh hai phần: User mode vă Kernel mode. User mode bao gồm câc thănh phần: System support processes, Service Processes, User applications, vă Environment subsystems, mỗi thănh phần năy sở hữu một không gian địa chỉ tiến trình riíng.

Câc thănh phần trong User mode:

System support processes (câc tiến trình hỗ trợ hệ thống): Như lă tiến trình logon, quản lý câc Session, câc thănh phần năy không phải lă câc dịch vụ của Windows 2000, do đó nó không được khởi động bởi thănh phần

Service processes (câc tiến trình dịch vụ): Đó lă câc dịch vụ chủ Win32, như lă dịch Task Scheduler vă Spooler, vă cungc có thể lă câc ứng dụng server Windows 2000 như lă Microsoft SQL Server, Exchange Server vă câc thănh phần chạy như lă câc dịch vụ.

User applications (câc ứng dụng người sử dụng): Nó có thể lă một trong năm loại sau: Win32, Windows 3.1, MS_DOS, POSIX, hoặc OS/2 1.2.

Environment subsystems (câc hệ thống con môi trường): nó đưa ra câc dịch vụ nguyín thuỷ của hệ điều hănh, câc ứng dụng của người sử dụng thông qua một tập câc hăm có thể gọi được, do đó nó cung cấp một môi trường hệ điều hănh cho câc ứng dụng. Windows 2000 đưa ra ba hệ thống con môi trường: Win32, POSIX vă OS/2, trong đó Win32 lă hệ thống con đặc biệt nhất, Windows 2000 không thể chạy nếu không có nó, do đó nó phải luôn ở trạng thâi chạy ngay sau khi hệ thống được khởi động. POSIX vă OS/2 được cấu hình lă chỉ khởi tạo khi cần. Câc ứng dụng được viết trín câc hệ điều hănh khâc nhau có thể chạy trín Windows 2000 nhờ sử dụng câc environment subsystem.

Subsystem DLLs (hệ thống con câc thư viện liín kết động): Hình trín cho thấy trong Windows 2000 câc ứng dụng của người sử dụng không thể gọi trực tiếp câc dịch vụ nguyín thủy của hệ điều hănh, mă chúng phải thông qua một hoặc nhiều câc DLL. Vai trò của câc Subsystem DLL lă chuyển câc yíu cầu gọi hăm văo bín trong câc dịch vụ hệ thống của Windows 2000.

Câc thănh phần trong Kernel mode:

Windows 2000 Executive: Chứa câc dịch vụ cơ sở của hệ điều hănh, như lă: quản lý bộ nhớ, quản lý câc tiến trình vă tiểu trình, quản lý sự an toăn hệ thống, quản lý I/O, vă thực hiện việc truyền thông liín tiến trình.

Windows 2000 Kernel: Bao gồm câc chức năng cấp thấp của hệ điều hănh như lă: lập lịch tiểu trình, đồng bộ cho câc hệ thống multiprocessor. Nó cũng cung cấp một tập câc thường trình vă câc đối tượng cơ sở mă Executive sử dụng để căi đặt câc chức năng cấp cao.

Device drivers (câc trình điều khiển thiết bị): Bao gồm cả hai: điều khiển thiết bị phần cứng vă điều khiển hệ thống file vă mạng. Điều khiển thiết bị phần cứng có nhiệm vụ chuyển câc lời gọi hăm I/O từ phía người sử dụng thănh câc yíu cầu I/O thiết bị phần cứng cụ thể.

HAL: Hardware Abstraction Layer (lớp phần cứng trừu tượng): Lớp năy lăm trừu tượng hoâ câc chi tiết phần cứng bín trong của PC, lăm cho Windows 2000 Server tương thích với nhiều kiến trúc phần cứng khâc nhau. Nó cho phĩp Windows 2000 chạy trín câc nền vi xử lý khâc nhau như Intel vă Alpha, mă không cần duy trì 2 version khâc của Windows 2000 Execute. HAL bảo vệ tất cả phần cứng vă hỗ trợ câc nền cụ thể cần cho mỗi thănh phần trong hệ thống đối với tất cả phần cứng vă hỗ trợ nềm cụ thể. HAL

được căi đặt như lă một DLL vă đóng vai trò như lă giao diện giữa câc thănh phần phần cứng vă phần mềm.

Window Manager and Graphical Device Interface (GDI): Window Manager vă GDI được sử dụng để quản lý hệ thống hiển thị. Window Manager bảo vệ măn hình vă nhận câc lệnh từ câc thiết bị nhập như lă Mouse hoặc băn phím. GDI điều khiển việc vẽ vă thực hiện câc thao tâc đồ hoạ với sự giúp đỡ của câc chức năng khâc nhau được định nghĩa trước.

Sau đđy chúng ta sẽ tìm hiểu rõ hơn về một số thănh phần trong kiến trúc của hệ điều hănh Windows 2000:

Environment Subsystem vă Subsystem DLL:

Vai trò của hệ thống con môi trường lă đưa ra một văi tập con cơ sở câc dịch vụ hệ thống trong Windows 2000 executive cho câc ứng dụng. Mỗi hệ thống con có thể cung cấp truy cập đến câc tập con khâc nhau của câc dịch vụ nguyín thủy của Windows 2000. Từ một ứng dụng được xđy dựng trín một hệ thống con năy không thể gọi đến một ứng dụng được xđy dựng trín một hệ thống con khâc.

Câc lời gọi hăm không thể lẫn lộn giữa câc hệ thống con. Tức lă một ứng dụng trín POSIX chỉ có thể gọi câc dịch vụ được đưa ra bởi hệ thống con POSIX, vă một ứng dụng Win32 chỉ có thể gọi câc dịch vụ được đưa ra bởi hệ thống con Win32.

Như đê biết câc ứng dụng người sử dụng không thể gọi trực tiếp câc dịch vụ hệ thống của Windows 2000 mă phải thông qua một hoặc nhiều câc hệ thống con DLL. Câc hệ thống con DLL Win32 như kernel32.dll, Advapi32.dll, User32.dll vă Gdi32.dll, căi đặt câc hăm Win32 API, để câc ứng dụng của người sử dụng gọi nó thông qua tập hăm năy. Khi một ứng dụng gọi một hăm trong hệ thống con DLL, thì một trong ba trường hợp sau sẽ xảy ra: (adsbygoogle = window.adsbygoogle || []).push({});

• Hăm được căi đặt hoăn toăn trong hệ thống con DLL. Nói câch khâc lă không có thông điệp gởi tới tiến trình Vai trò của hệ thống con môi trường, vă không có một dịch vụ hệ thống năo trong Windows 2000 executive năo được gọi. Hăm được thực hiện trong user mode vă kết quả được trả về cho chương trình gọi.

• Hăm yíu cầu một hoặc nhiều lời gọi đến Windows 2000 executive. Ví dụ khi câc hăm Win32 ReadFile vă WriteFile được gọi thì nó phải gọi đến câc dịch vụ hệ thống I/O NtReadFile vă NtWriteFile trong Windows 2000.

• Hăm yíu cầu một văi công việc để thực hiện trong tiến trình,.của hệ thống con môi trường. Câc tiến trình của hệ thống con môi trường chạy trong user mode, chịu trâch nhiệm duy trì trạng thâi của câc ứng dụng client chạy dưới sự điều khiển của nó. Trong trường hợp năy một client/server yíu cầu tạo một hệ thống con môi trường qua một thông điệp gởi tới một hệ thống con để thực hiện một văi thao tâc. Hệ thống con DLL thì đợi trả lời trước khi

trả về cho ứng dụng gọi.

Một văi hăm có thể kết hợp 2 trong 3 trường trín, như câc hăm Win32: CreateProcess vă CreateThread.

Tập tin Ntdll.Dll lă một hệ thống đặc biệt, nó hỗ trợ thư viện chính cho việc sử dụng câc hệ thống con DLL. Nó chứa hai loại hăm sau:

• Dịch vụ hệ thống gởi đến câc dịch vụ hệ thống Windows 2000 executive.

• Câc hăm hỗ trợ bín trong được sử dụng bởi câc hệ thống con, câc hệ

thống con DLL vă câc hăm nguyín thủy điển hình khâc.

Câc hăm ở nhóm đầu tiín cung cấp một giao diện để Windows 2000 executive có thể được gọi từ user mode. Có hơn 200 hăm như thế vă câc hăm năy có thể truy cập thông qua Win32 API.

Ntdll cũng chứa câc hăm hỗ trợ như lă image loader, heap manager vă câc hăm truyền thông tiến trình Win32.

Executive:

Windows 2000 executive lă lớp trín của Ntoskrnl.exe (kernel lă lớp thấp). Executive bao gồm câc hăm sau:

• Câc hăm được đưa ra vă có thể gọi từ user mode. Đđy lă câc hăm được gọi vă được đưa ra qua Ntdll. Hầu hết câc dịch vụ lă được truy cập thông qua câc hăm Win32 API hoặc câc API của câc Vai trò của hệ thống con môi trường khâc.

• Câc hăm chỉ có thể được gọi từ kernel mode, nó được đưa ra vă được cung cấp in Windows 2000 DDK Windows 2000 Installable File System (IFS) Kit.

• Câc hăm được đưa ra vă có thể gọi từ kernel mode nhưng không được giới thiệu trong Windows 2000 DDK vă IFS Kit.

• Câc hăm được định nghĩa nhưng không được đưa ra. Đđy lă câc hăm hỗ trợ bín trong, nó được gọi trong phạm vi Ntoskrnl.

Windows 2000 Executive chứa câc thănh phần quan trọng sau đđy:

• Configuration Manager (quản lý cấu hình): chịu trâch nhiệm căi đặt vă quản lý Registry hệ thống.

• I/O Manager (quản lý I/O): Thănh phần năy chuyển câc lệnh đọc/ ghi trong user mode đến việc đọc/ghi của IRP (I/O Request Packets). Nó gồm có: câc hệ thống file, câc điều khiển thiết bị, quản lý bộ nhớ cache, quản lý bộ nhớ ảo.

• InterProcess Communication - IPC Manager (quản lý truyền thông liín tiến trình): Quản lý IPC lă tạo liín kết giữa client vă server. Environment subsystem đóng vai trò như lă một client vă Executive đóng vai trò như lă một server. Nó được tạo ra từ 2 thănh phần: Remote Procedure

Call - RPC: giữ thông tin về kết nối giữa câc client vă câc server trín câc mây tính khâc nhau. Local Procedure Call - RPC: giữ thông tin về kết nối giữa câc client vă câc server trín cùng một mây tính.

• Security Manager (quản lý sự an toăn): Đđy lă thănh phần tạo nín sự an toăn hệ thống bằng câch bắt buộc câc chính sâch an toăn trín câc mây tính cục bộ.

• Plug and Play Manager (quản lý plug and play): Plug and play theo dõi câc hoạt động tại thời điểm Boot của câc thiết bị plug and play vă nó tương tâc với HAL, câc điều khiển thiết bị vă Executive. Nó xâc định câc điều khiển bus thực hiện việc cấu hình vă đếm như thế năo. Nó cũng xâc định khi năo thì câc điều khiển thiết bị được thím văo hoặc khi năo thì khởi tạo một thiết bị.

• Process and Thread Manager (quản lý tiến trình vă tiểu trình): Tạo vă kết thúc câc tiến trình vă tiểu trình. Hỗ trợ câc tiến trình vă tiểu trình được căi đặt bín trong Windows 2000 kernel.

• Vă một số thănh phần khâc như: Power manager (quản lý nguồn); Cache manager (quản lý cache); Virtual memory manager (quản lý bộ nhớ ảo), …

• Ngoăi ra executive còn chứa bốn nhóm chính câc hăm hỗ trợ mă nó được sử dụng bởi chỉ câc thănh phần executive được liệt kí. Sau đđy lă bốn loại hăm hỗ trợ:

• Object Manager (quản lý đối tượng): Tạo, quản lý, xoâ câc đối tượng Windows 2000 executive vă câc loại dữ liệu trừu tượng mă nó được sử dụng để chỉ đến câc tăi nguyín của Windows 2000 như: câc tiến trình, câc tiểu trình, vă câc đối tượng đồng bộ khâc.

• LPC facility: Chuyển thông điệp giữa câc tiến trình client vă câc tiến trình server trín cùng mây tính. LPC có tính mềm dẻo, vă lă version được tối ưu của Remote Function Call (RPC).

• Một tập câc hăm thư viện run-time như lă: xử lý string, thực hiện câc phĩp tính, chuyển đổi câc kiểu dữ liệu vă xử lý câc cấu trúc an toăn. (adsbygoogle = window.adsbygoogle || []).push({});

• Executive support routine: như lă cấp phất bộ nhớ hệ thống, khoâ truy cập bộ nhớ vă câc đối tượng đồng bộ.

Kernel:

Kernel bao gồm một tập câc hăm trong Ntoskrnl.exe mă nó cung cấp câc kỹ thuật cơ bản, như điều phối tiểu trình vă đồng bộ câc dịch vụ, được sử dụng bởi câc thănh phần executive, cũng như hỗ trợ cho câc kiến trúc phần cứng cấp thấp trín câc kiến trúc processor khâc nhau. Đa số câc mê của kernel được viết bằng C, một số ít thănh phần quan trong can thiệp sđu văo phần cứng được viết bằng assembly. Một số câc hăm của kernel được đưa ra trong DDK, đđy lă câc thănh phần cần thiết cho việc căi đặt câc trình điều khiển thiết bị.

Hardware Abstraction Layer (HAL):

Như đê biết một trong những mục tiíu thiết kế của Windows 2000 lă lăm cho nó dễ dăng tương thích trín câc nền phần cứng khâc nhau. HAL lă thănh phần chủ chốt có thể tạo nín sự tương thích năy. HAL lă một modun kernel mode có thể được nạp (Hal.dll) mă nó có thể cung cấp một giao diện cấp thấp để Windows 2000 có thể chạy trín câc nền phần cứng khâc nhau. HAL lăm ẩn câc chi tiết phần cứng, như: câc giao diện I/O, câc điều khiển ngắt vă câc cơ chế truyền thông giữa câc processor trong hệ thống multiprocessor, với bất kỳ một hăm năo trong cả câc kiến trúc cụ thể vă câc mây phụ thuộc.

Trong Windows 2000 có nhiều tập tin Hal*.dll, mỗi tập tin hỗ trợ cho một hệ thống mây tính năo đó. Hal.dll hỗ trợ cho câc PC chuẩn, Halmps.dll hỗ trợ cho câc PC Multiprocessor, …

Device Drivers:

Câc Device Driver (*.sys) lă câc modun kernel, nó lă giao diện giữa thănh phần quản lý I/O vă câc phần cứng có liín quan. Câc device driver không thao tâc trực tiếp trín phần cứng, nó chỉ gọi câc hăm trong HAL để giao tiếp với phần cứng. Windows 2000 có câc loại Divice Driver sau đđy:

• Câc hardware device driver thao tâc phần cứng, sử dụng HAL, để ghi/đọc trín câc thiết bị vật lý hoặc mạng. Loại năy bao gồm: câc điều khiển bus, câc điều khiển thiết bị giao tiếp với người sử dụng, câc điều khiển thiết bị lưu trữ khối, …

• Câc file system driver lă câc điều khiển mă Windows 2000 dùng nó để truy cập câc file trong hệ thống.

• …

Kernel Mode Drivers:

Kernel Mode Drivers cũng được căi đặt như lă một thănh phần, nó chứa tất cả câc chức năng cần thiết. Nó gồm có: WMD (Windows Drive Model) driver, cùng với nhiều driver để hỗ trợ cho câc yíu cầu của câc thiết bị cụ thể.

Một phần của tài liệu Chương I Tổng quan về hệ điều hành (Trang 34 - 40)