TRƯỜNG ĐẠI HỌC SƯ PHẠM HUẾ
KHOA TIN HỌC
BÀI TẬP LỚN
NGUYÊN LÝ HỆ ĐIỀU HÀNH
ĐỀ TÀI
PHÂN TÍCH TẤT CẢ CÁC ĐẶC ĐIỂM VỀ CẤU TRÚC VÀ CHỨC NĂNG
PHÂN TÍCH TẤT CẢ CÁC ĐẶC ĐIỂM VỀ CẤU TRÚC VÀ CHỨC NĂNG
CỦA KERNEL MODE TRONG WINDOWS 2000
CỦA KERNEL MODE TRONG WINDOWS 2000
Giáo viên hướng dẫn:
Th.s.GV: Phù Đôn Hậu
Sinh viên thực hiện
Trần Văn Chương
Huế, ngày 22 tháng 11 năm
2010
MỤC LỤC:
I. Lịch sử của Windows…………………………………………… 3
II. Kiến trúc tầng của Windows 2000………………………………. 6
1. Hạt nhân của hệ điều hành……………………………………… 7
2. Cấu trúc của nhân (Kernel mode) hệ điều hành Windows 2000….7
II.1 Các dịch vụ quản lý ( system sevrices):………………… 7
II.1.1 I/O manager (quản lý vào/ra)…………… 8
II.1.2 File system ( file hệ thống)……………… 11
SVTH: TRẦN VĂN CHƯƠNG – TIN3A GVHD: PHÙ ĐÔN HẬU
II.1.3 Object manager ( quản lý đối tượng)…… 11
II.1.4 Process manager ( quản lý tiến trình)…… 12
II.1.5 Memory manager (quản lý bộ nhớ )……… 15
II.1.6 Security manager ( theo dõi bảo mật)………16
II.1.7 Cache manager ( quản lý bộ nhớ cache)……17
II.1.8 PnP manager (quản lý plug and play)………18
KERNEL MODE TRONG WINDOWS 2000”
Windows 2000 ra đời năm 1999 là một hệ điều hành được nhiều người ưa
chuộng. Nó được sử dụng rộng rãi trên các máy desktop lẫn trong việc điều hành
và quản trị mạng máy tính, mở ra cánh cửa hoàn toàn mới dẫn vào môi trường
máy phục vụ và trạm làm việc, đồng thời giới thiệu những khái niệm quản trị và
quản lý hệ thống mang tính cách mạng.
I. Lịch sử của Windows:
Sự ra đời của công ty Microsoft năm 1975 gắn liền với tên tuổi của Bill
Gates, người đứng đầu và sáng lập chính công ty này.
Phiên bản DOS đầu tiên ra đời vào tháng 8 năm 1981, với tên chính thức là PC
DOS 1.0. Tên gọi MS-DOS chỉ được biết đến kể từ tháng 5 năm 1982 (MS-DOS
1.25). Sau đó, Microsoft lần lượt cho ra đời các phiên bản tiếp theo của MS-DOS
song song cùng với PC-DOS.
3
SVTH: TRẦN VĂN CHƯƠNG – TIN3A GVHD: PHÙ ĐÔN HẬU
MS-DOS 5.0 ra đời vào tháng 6 năm 1991 bao gồm nhiều tính năng mới như quản
lý bộ nhớ (MEMMAKER.EXE), trình soạn thảo văn bản (MS-DOS Editor), ngôn
ngữ lập trình QBASIC đã trở nên phổ biển một thời trước khi MS-DOS 6.22 ra
đời vào tháng 6 năm 1994. MS-DOS 6.22 cũng là phiên bản DOS cuối cùng được
chạy như một hệ điều hành độc lập (standalone version). Sau khi Windows 95 ra
đời vào năm 1995, các phiên bản MS-DOS tiếp theo đều được phát hành đi kèm
với Windows, chẳng hạn như MS-DOS 7.0 (8/1995) là nền để cho Windows 95
khởi động, và MS-DOS 8.0 đi kèm với Windows ME. Đây cũng là phiên bản cuối
cùng của hệ điều hành này.
MS-DOS thật sự là một hệ điều hành phổ biến trong suốt thập niên 80, và
đầu thập niên 90, cho đến khi Windows 95 ra đời. Cho đến nay, trên các máy chạy
Windows, MS-DOS vẫn được tích hợp vào hệ thống bởi một số tính năng ưu việt
của nó.
Tháng 11/1985, Windows 1.0 ra đời với các chương trình tích hợp như:
MS-DOS, Executive, Calender, Cardfile, Notepad, Terminal, Calculator, Clock,
Windows có thể bỏ qua DOS và có khả năng thâm nhập tốt hơn vào bộ nhớ hệ
thống so với Windows 3.1.
Microsoft dựa vào Windows 8x và Windows NT làm nền tảng cho các
phiên bản Windows sau này như: Windows CE, Windows Me, Windows 2000,
Windows 2002, Windows XP Windows Server 2003, Kể từ Windows 95, các
phiên bản của Windows 32 bit liên tục được thay thế và Windows trở thành hệ
điều hành thống trị với giao diện người dùng thân thiện, dễ sử dụng.
Windows 2000 và các cải tiến kỹ thuật- công nghệ mới:
Được xây dựng trên nền tảng bảo mật, tính ổn định của Windows NT, có thêm
các đặc điểm dễ sử dụng và tính tương thích cao của Windows 98, Windows 2000
ra đời năm 1999 là hệ điều hành được nhiều người ưa chuộng. Nó được sử dụng
rộng rãi trên các máy đơn desktop lẫn trong việc điều hành và quản trị mạng máy
tính.
Cải tiến kỹ thuật và công nghệ mới so với phiên bản Windows NT:
5
SVTH: TRẦN VĂN CHƯƠNG – TIN3A GVHD: PHÙ ĐÔN HẬU
Việc kết hợp Windows 98 và Windows NT5 để tạo nên Windows 2000 làm
cho Windows 2000 mạnh mẽ hơn rất nhiều trong toàn bộ lĩnh vực như :
Các phương thức xác thực tài khoản và bảo mật dữ liệu .
Khả năng tích hợp phần cứng và phần mềm rộng rãi.
Khả năng liên kết mạng máy tính mạnh mẽ.
Windows 2000 là hệ điều hành phục vụ nhiều mục đích khác nhau với sự hỗ trợ
tích hợp hệ thống khách/ chủ (client/server) và mạng ngang hàng (pear-to-pear ).
Nó kết hợp chặt chẽ các công nghệ giúp hạ thấp chi phí cho người sử dụng và
cung cấp khả năng nâng cấp từ một mạng nhỏ lên thành một mạng lớn.
Windows 2000 hỗ trợ nhiều loại ứng dụng chạy trên các môi trường khác như MS-
DOS, POSIX 1.x, OS/2 1.x, Windows 95,98 thông qua kiến trúc phân tầng của
mình.
II. Kiến trúc tầng của Windows 2000:
Kiến trúc tầng của Windows 2000 bao gồm tầng người sử dụng (User
hiện vào ra vật lý. Nó cũng chứa tất cả các trình điều khiển vào ra. File hệ thống
(file systems) chính xác là các trình điểu khiển thiết bị dưới sự điều khiển của
chương trình quản lý vào ra.
Mục đích của hệ thống vào/ra Windows 2000 là để cung cấp một cơ cấu có
tổ chức các kênh truy nhập một cách có hiệu quả các thiết bị vào/ra. Windows
2000 đã được thiết kế với một khung tổng quát giúp các thiết bị mới có thể tích
hợp vào máy một cách dễ dàng.
2.1.1.1 Lời gọi hệ giao tiếp lập trình ứng dụng vào/ra .(input/output API Calls)
Windows 2000 có hơn 100 lời gọi tách rời, phục vụ cho sự đa dạng của các
thiết bị vào/ra, bao gồm cả chuột, phím, card âm thanh, điện thoại, bộ phận điều
khiển ổ đĩa v.v…. Có lẽ quan trọng nhất là hệ thống đồ họa, vì ở đó có hàng nghìn
lời gọi Win32. Ở đây chúng ta sẽ tiếp tục, đề cập đến phạm trù của một vài lời gọi
Win32, mỗi cái có nhiều lời gọi. Một tóm lược ngắn gọn những phạm trù được
cho Trong hình 11-29.
Tồn tại lời gọi Win32 để tạo ra, làm mất hiệu lực, và quản lý trong
Windows. Windows có một số rộng lớn những kiểu và những tùy chọn mà có thể
được chỉ rõ.
Có hàng trăm chức năng sẵn có để vẽ và tô, hạn chế từ việc cài đặt một
điểm đơn đến việc làm cho sự hoạt động của các vùng phức tạp bị chia nhỏ ra.
Nhiều lời gọi được cung cấp để vẽ các dòng và những hình hình học cơ bản khác
nhau.
8
SVTH: TRẦN VĂN CHƯƠNG – TIN3A GVHD: PHÙ ĐÔN HẬU
API GROUP DESCRIPTION
Window management Create, destroy, and manage windows
Menus Create, destroy, and append to menus and menus bars
Dialog boxes Pop up a dialog box and collect infomation
Painting and drawing Display points, lines, and geometric tigures
Text Display text in some font, size, and color
Bitmaps and icons Placoment of bitmaps and icons on the screen
Một trình điều khiển trong Windows 2000 có thể làm mọi công việc liên
quan đến những gì nó quản lý, như trình điều khiển máy in trong hình 11-30. Mặt
khác, trình điều khiển có thể cũng được xếp chồng lên, nghĩa là một yêu cầu có thể
xuyên qua một cách có trình tự của trình điều khiển, mỗi phần của công việc. Hai
stack cũng đuợc minh hoạ hình 11-30.
Một sử dụng phổ biến của trình điều khiển ngăn xếp là ngăn cách ngoài
quản lý bus từ chức năng làm việc của các thiết bị điều khiển thực tế. Quản lý bus
trên các bus PCI khá phức tạp vì có nhiều loại của nhiều chế độ và các cách thực
hiện của các bus và bằng việc phân chia công việc này từ phần chuyên biệt về thiết
bị, những người viết trình điều khiển được giải phóng từ việc kiểm soát bus như
thế nào. Họ có thể chỉ sử dụng các bộ điều khiển chuẩn trong ngăn xếp của chúng.
10
SVTH: TRẦN VĂN CHƯƠNG – TIN3A GVHD: PHÙ ĐÔN HẬU
Trình điều khiển ngăn xếp có khả năng chèn những trình điều khiển lọc vào trong
ngăn xếp. Một trình điều khiển lọc thực hiện sự biến đổi nào đó trên dữ liệu đang
trên kênh truyền. Chẳng hạn, Một trình điều khiển lọc có thể nén dữ liệu đang trên
đường tới đĩa hay mã hóa dữ liệu đang trên đường tới mạng.
2.1.2 File hệ thống:
Ngoài hệ thống tập tin chủ yếu NTFS (New Technology File System) của
mình cùng với các hệ thống tập tin khác được Windows NT hỗ trợ, Windows 2000
còn hỗ trợ thêm hai hệ thống tập tin FAT32 của windows 9x và hệ thống tập tin
mã hoá EFS (Encrypting File System).
FAT ( File Allocation Table) là một bảng mà hệ thống lưu giữ các thông tin
cơ bản nhất của mỗi tập tin. Con số 16 và 32 trong FAT16, FAT32 chỉ số lượng
các bit sử dụng để tạo địa chỉ lưu trữ dữ liệu, trong khi NTFS sử dụng đến 64 bits.
FAT16 chỉ sử dụng trong DOS, Win 3.1, Win 95 (phiên bản đầu tiên)Win 9x/ME.
Các hệ điều hành này không thể đọc hay ghi các tập tin FAT32 hay NTFS. FAT16
chỉ có thể tạo ra 65535 địa chỉ.Kích thước lớn nhất của phân vùng partition có thể
được là 2GB đối với hệ thống FAT16.
FAT32 được dùng trong Win95 SE, Win 98, Win Me, Win 2000 và Win XP. Các
nhiều đối tượng thông qua các sự kiện nhất định). Loại đối tượng cũng có một số
thuộc tính thông thường, bao gồm tên kiểu, quyền truy cập, và thông tin đồng bộ
hóa.
Object name được sử dụng để đưa ra một định danh để mô tả một đối
tượng, để hỗ trợ tra cứu đối tượng. Đối tượng quản lý duy trì danh sách các tên đã
giao cho các đối tượng đang được quản lý. Object directories được sử dụng để
phân loại đối tượng theo từng loại.
2.1.4 Quản lý tiến trình:
Windows 2000 hỗ trợ những tiến trình truyền thống, có thể liên lạc và đồng
bộ với một cái khác, mỗi tiến trình chứa ít nhất một luồng, mỗi luồng chứa ít nhất
12
SVTH: TRẦN VĂN CHƯƠNG – TIN3A GVHD: PHÙ ĐÔN HẬU
một cấu trúc, hơn nữa những tiến trình có thể làm chủ những công việc cho mục
đích quản lý những tài nguyên chính xác. Đồng thời những tiến trình, luồng và cấu
trúc cung cấp một công cụ thiết lập tổng quát cho quản lý song song và chia sẻ tài
nguyên, cùng trên đơn vị tiến trình( thiết bị CPU đơn) và trên những tiến trình đa
nhiệm (thiết bị CPU đa nhiệm).
Một công việc trong Windows 2000 tập hợp của một hoặc nhiều hơn một
tiến trình mà được quản lý như một đơn vị, với mỗi tiến trình sẽ có chỉ tiêu và giới
hạn tài nguyên nhất định, chỉ tiêu bao gồm những mục như số lớn nhất của những
tiến trình, và cách sử dụng bộ nhớ lớn nhất, ngoài ra trước khi xử lý toàn bộ những
công việc có thể cũng chịu sự hạn chế bảo mật trên những tiến trình. Vì thế hệ
điều hành hiện hữu trong mỗi địa chỉ tiến trình, nhưng bảo vệ từ sự can thiệp vào
của bộ nhớ quản lý đơn vị phần cứng. Một tiến trình có một ID, một hoặc nhiều
hơn một luồng, một danh sách điều khiển (quản lý trong kernel mode), và một truy
cập phần mã thông báo nó được bảo mật thông tin. Đây là những nội dung định
nghĩa ban đầu của không gian địa chỉ và những tạo lập đầu tiên cho luồng.
Một luồng tạo thành cơ sở cho việc lập lịch của CPU nhưng hệ điều hành
luôn chọn một luồng để thực thi, không phải là một tiến trình. Do đó, mọi luồng
đều có một trong những trạng thái(sẵn sàng, thực thi, bị khóa,…). Một tiến trình
của hệ thống.
- Xác định mức độ ưu tiên ban đầu của tiến trình.
- Tạo lập khối điều khiển tiến trình.
- Phân phát các tài nguyên ban đầu cho tiến trình.
Mỗi tiến trình có thể tạo ra một tiến trình mới. Nếu như vậy, tiến trình sản sinh
ra tiến trình khác được gọi là tiến trình cha, còn tiến trình được sản sinh ra được
gọi là tiến trình con. Một tiến trình con được sinh ra từ một tiến trình cha, một tiến
trình cha có thể có nhiều tiến trình con, tiến trình cha kết thúc khi tiến trình con đã
kết thúc.
14
SVTH: TRẦN VĂN CHƯƠNG – TIN3A GVHD: PHÙ ĐÔN HẬU
Huỷ bỏ một tiến trình có nghĩa là huỷ bỏ nó hoàn toàn ra khỏi hệ thống.
Các tài nguyên của tiến trình này được trả lại cho hệ thống. Việc huỷ bỏ tiến trình
sẽ phức tạp hơn nếu tiến trình đó đã sản sinh ra các tiến trình con khác. Trong
Windows 2000 các tiến trình con sẽ bị tự động huỷ bỏ nếu tiến trình cha của
chúng bị huỷ, còn một số hệ thống khác thì các tiến trình con được tiến hành độc
lập với tiến trình cha và việc huỷ bỏ tiến trình cha không ảnh hưởng gì đến việc
huỷ bỏ tiến trình con.
Một tiến trình bị trì hoãn sẽ tiếp tục tiến hành khi chúng được tái kích hoạt.
Việc trì hoãn là một tác vụ quan trọng và được thi hành bằng nhiều cách tuỳ theo
từng hệ thống. Việc trì hoãn thường tồn tại trong một khoảng thời gian ngắn.
Chúng thường được hệ thống thực hiện để tạm thời xoá đi các tiến trình nào đó
nhằm giảm tải trong các quá trình nạp. Đối với việc trì hoãn lâu dài, nguồn tài
nguyên tiến trình đang “chiếm giữ” sẽ được giải phóng. Vấn đề quyết định giải
phóng tài nguyên này phụ thuộc rất nhiều vào tình trạng của mỗi tài nguyên. Còn
riêng bộ nhớ sơ cấp sẽ được giải phóng ngay khi một tiến trình được trì hoãn.
Tái kích hoạt một tiến trình là làm cho tiến trình đó bắt đầu hoạt động lại từ
thời điểm nó bị trì hoãn. Khi được tái kích hoạt, tiến trình sẽ được nạp lại
ngữ cảnh của nó khi nó bị trì hoãn. Nó sẽ được cấp đầy đủ tài nguyên và
tiếp tục thực hiện.
hàm của Win 32 để sử dụng và một phần thi hành cộng với 6 thành phần của
kernel để quản lý nó. Ở trong đoạn tiếp theo chúng ta có thể thấy những quy tắc cơ
sở, những dạng thức giao tiếp của Win 32, và việc thực thi.
2.1.6 Quản lý bảo mật:
Khi máy tính càng trở nên gần gũi và tiện dụng với chúng ta hơn thì vấn đề
bảo mật càng phải được quan tâm hơn. Mục đích của bảo mật trong Widows 2000
là quản lý, theo dõi, bảo mật và giám sát việc thi hành kỹ thuật bảo mật phức tạp
của windows 2000.
Vấn đề bảo vệ máy tính là yếu tố cần thiết. Bảo vệ bên ngoài liên quan đến
việc bảo vệ máy tính không bị xâm nhập và phá hoại, bảo vệ giao diện của người
sử dụng. Nhận dạng người sử dụng bằng use name và password trước khi người sử
16
SVTH: TRẦN VĂN CHƯƠNG – TIN3A GVHD: PHÙ ĐÔN HẬU
dụng đó được cho phép truy nhập vào hệ thống. Bảo vệ bên trong liên quan đến sự
đảm bảo các thao tác, các tiến trình, các thành phần quan trọng của hệ thống, đảm
bảo chắc chắn hệ thống máy tính không bị xâm phạm và bảo đảm tính toàn vẹn
của các chương trình và dữ liệu.
Việc bảo vệ các hoạt động của hệ thống có thể sử dụng nhiều phương pháp,
thủ tục khác nhau, có thể thực hiện bằng sự quản lý ngay ở quá trình cài đặt máy
tính, phân quyền truy nhập cho từng đối tượng cụ thể, thực hiện việc phân cấp hệ
thống, dữ liệu và ứng với từng cấp thì quy định quyền truy cập khác nhau. Hệ điều
hành Windows 2000 có hai chế đọ chính, đó là chế độ người dùng use mode và
chế độ nhân kernel mode. Ứng với mỗi chế độ thì có các quyền truy cập nhất định,
các ứng dụng chạy trong chế độ use mode sẽ không được truy cập một số hàm
trong chế độ kernel mode. Ví dụ như ứng dụng ntoskrnl.exe không thể chạy được
ở chế độ Win32 mode.
2.1.7 Quản lý bộ nhớ cache:
Cache thực chất là một thiết bị lưu trữ, cũng giống như các thiết bị lưu trữ
khác trong một máy tính. Tuy nhiên, thiết kế và tính năng của nó có một số đặc
tính khác đáng chú ý, cache được các thanh ghi của CPU truy xuất trực tiếp nên sẽ
công nghệ đối với các bộ phận phần cứng bổ sung thêm trong máy tính, yêu cầu
các bộ phận đó có khả năng tự đồng nhất hoá, và đáp ứng yêu cầu trong một loại
tiêu chuẩn. Tiêu chuẩn plug and play đòi hỏi phần cứng lẫn phần mềm đều phải
18
SVTH: TRẦN VĂN CHƯƠNG – TIN3A GVHD: PHÙ ĐÔN HẬU
thực hiện nhiệm vụ của mình. Phần cứng đó là BIOS loại plug and play có khả
năng nhận biết được các bộ phận máy của hệ thống ngay khi khởi động máy tính.
Sau đó BIOS sẽ duy trì tác động về bất kỳ những thay đổi về cấu hình quan trọng
nào mà bạn có thể gây ra, nên nó có thể chuyển những thông tin này cho hệ điều
hành, phần mềm này là một hệ điều hành phù hợp với plug and play. Với chuẩn
plug and play bạn không cần phải cài đặt các thiết bị hay quan tâm đến các cầu nối
và các mạch chuyển dip, hoặc các driver tương thích với phần mềm đối với các
loại máy in mới nhất.
Kiến trúc tiên tiến của windows 98 này được windows 2000 hỗ trợ đầy đủ,
trong khi tiền nhiệm windows NT không hỗ trợ. Một khi có một thiết bị được cắm
vào máy tính, windows 2000 sẽ thông báo và tự động tìm driver thích hợp để cài
đặt thiết bị đó vào máy. Như USB cắm vào là sử dụng được ngay.
Chúng ta tiến hành đi vào tìm hiểu Windows 2000 phát hiện “plug and
play” thiết bị mới như thế nào.
Plug and play là một sự kết hợp của BIOS, các thiết bị phần cứng, hệ điều
hành, trình điều khiển thiết bị và tài nguyên hệ thống. Trong phần này, bạn sẽ thấy
Plug and Play phát hiện phần cứng trên ACPI và hệ thống phi ACPI. Ví dụ các
bước mà Windows 2000 thực hiện khi phát hiện một thiết bị USB mới đã được
thêm vào hệ thống ACPI – compliant. Như vậy khi sử dụng một hệ thống máy tính
ACPI, Windows 2000 sẽ quản lý Plug and Play không phụ thuộc vào hệ thống
BIOS.
Khi bạn them một thiết bị USB mới vào hệ thống máy tính của bạn,
các bus USB phát hiện các thành phần mới và thông báo cho các
trình điều khiển chức năng thay đổi.
Trình điều khiển chức năng thông báo cho Plug and Play Manager
trình khởi động.
Nếu hệ thống xác định rẳng các thiết bị khởi động có một ROM, thì
nó sẽ khởi tạo nó.
Các cấu hình còn lại BIOS sử dụng các tài nguyên hệ thống có sẵn.
20
SVTH: TRẦN VĂN CHƯƠNG – TIN3A GVHD: PHÙ ĐÔN HẬU
Tất cả các thiết bị được kích hoạt.
Các Rom thêm vào được khởi động.
Bắt đầu nạp bộ khởi động.
2.1.9 Quản lý cấu hình (Config Manager)
Config Manager chứa thông tin khởi động về mỗi thiết bị được cài đặt trong
Windows. nó lấy danh sách từ HKEY_CURRENT_CONFIG và kiểm tra mỗi thiết
bị khi khởi dộng. Nếu một thiết bị được tìm thấy không có trong danh sách này, nó
sẽ thông báo thông tin đó cho hệ thông để cài đặt. Nếu một thiết bị trong danh
sách không còn trong hệ thống, nó sẽ được đánh dấu.
2.1.10 Quản lý LPC (LPC manager):
LPC (giao tiếp liên tiến trình và không phải lời gọi thủ tục cục bộ) là một
thông báo tốc độ cao đặt cơ sở cho cơ chế giao tiếp được thực hiện trong nhân của
NT. LPC có thể được sử dụng cho giao tiếp giữa hai kiểu tiến trình người sử dụng,
giữa một tiến trình kiểu người sử dụng và một kiểu trình điều khiển kiểu nhân hay
giữa hai trình điều khiển kiểu nhân. Một ví dụ là hai tiến trình kiểu người sử dụng
liên lạc qua LPC. Giống như CSRSS.exe đang nói chuyện với SMSS.exe thông
qua SmssWinStationApiPort trong khi việc tạo ra một phiên đăng nhập hay bất kỳ
tiến trình nào nói tới LSASS.exe thông qua LsaAuthenticationPort thay cho lý do
bảo mật ví dụ khác của một kiểu tiến trình người sử dụng giao tiếp với một trình
điều khiển kiểu nhân có thể là Build KSecDD.sys nói chuyện với LSASS.exe cho
sự mật mã khoá EFS và giải mã trong suốt thời gian đọc/ghi của một tập tin được
viết lại thành mật mã.
LPC sử dụng hai cơ chế khác cho dữ liệu chuyển qua giữa tiến trình client và tiến
trình server. Nó sử dụng bộ đệm thông báo LPC (cho dữ liệu cỡ nhỏ hơn 304 byte)
thi. Giao diện thiết bị đồ họa điều khiển hình ảnh cho màn hình và máy in. Nó
cung cấp lời gọi hệ thống tới chương trình người sử dụng cho phép được viết trên
màn hình và máy in trong một phạm vi thiết bị độc lập.Nó cũng gồm việc quản lý
window và các bộ phận điều khiển hiển thị. Trước khi tới NT 4.0, nó cũng là
không gian người sử dụng nhưng sự thực thi đó đã thất bại, cho nên Microsoft
chuyển nó vào trong nhân (kernel) và làm tăng tốc độ của nó lên. Chúng được đề
22
SVTH: TRẦN VĂN CHƯƠNG – TIN3A GVHD: PHÙ ĐÔN HẬU
cập đến và đánh giá như trong hình 11-7 nhưng đó không phải là tất cả. Ví dụ như,
Win32 và mô đun thiết bị giao diện đồ họa là rộng hơn phần còn lại của việc phối
hợp thực hiện.
2.2 Kernel - Nhân:
Phía trên lớp phần cứng là lớp chứa cái mà Microsoft gọi là "kernel"cũng
như các trình điều khiển thiết bị, microkernel là một thành phần trong kernel
mode. Microkernel có nhiệm vụ hàng đầu là cung cấp đồng bộ hóa giữa nhiều bộ
vi sử lý, điều phối, phân phối luồng và ngắt, lấy thông tin từ Registry khi hệ thống
khởi động…các trình quản lý bộ nhớ, file hệ thống, và các thành phần quan trọng
khác được tập trung trong không gian kernel và được chạy trong kernel mode từ
ngay khi khởi động.
Trong phần này chúng ta sẽ tìm hiểu thuật ngữ " kernel " và gọi toàn bộ các
mã chạy trong nhân hệ điều hành là “hệ điều hành”. Một phần của nhân là thường
xuyên cư trú trong bộ nhớ chính. Bằng việc điều chỉnh quyền ưu tiên của nó, nó có
23
SVTH: TRẦN VĂN CHƯƠNG – TIN3A GVHD: PHÙ ĐÔN HẬU
thể tránh khỏi các ngắt vào/ra. Mặc dù nhân là một phần đặc biệt quan trọng
nhưng nó chủ yếu được viết bằng ngôn ngữ lập trình C.
Mục đích của nhân là làm cho phần còn lại của hệ điều hành hoàn toàn độc
lập với phần cứng, và theo cách đó hệ điều hành sẽ mang tính linh động cao (khả
năng làm việc với nhiều phần cứng khác nhau). Nó truy nhập phần cứng qua HAL
và xây dựng dựa vào các dịch vụ mức thấp của HAL để xây dựng những quan
chắn đặt vào một bộ đệm nhân. Tuy nhiên, nếu một ngắt yêu cầu sao chép một bộ
đệm từ không gian nhân đến một bộ đệm trong vùng địa chỉ của quá trình người
sử dụng nào đó ( e.g., Như nó có thể hoàn thành một việc đọc từ hiện đại), chúng
sao chép các thủ tục cần thiết để chạy ngữ cảnh của thiết bị thu. Văn cảnh của thiết
bị thu đã được yêu cầu vì vậy bảng trang sẽ chứa đựng cả hai bộ đệm nhân và bộ
đệm người sử dụng (mọi tiến trình chứa đựng toàn bộ nhân trong vùng địa chỉ của
chúng).
Các loại khác của nhân là các trình điều phối các đối tượng . Bao gồm những cờ
hiệu, mutcxes, những sự kiện, thời gian chờ, và các đối tượng khác mà những
luồng có thể tiếp tục đợi. Lý do mà chúng phải được xử lý trong nhân là chúng
được liên hệ mật thiết với nhau với lập lịch luồng, mà là một thao tác trong nhân.
Giống như một phần dự trữ nhỏ, mutexes được gọi cho những " mutants " ở trong
mã bởi vì chúng được đòi hỏi để thực thi OS/ 2 ngữ nghĩa của việc không tự động
mở khóa khi một luồng đang giữ bị biến mất, những thứ mà người thiết kế
Windows 2000 được xem xét một cách kỹ lưỡng. (OS/ 2 hệ điều hành được cung
cấp trên PC/2 của IBM).
Bất cứ khi nào 1 chương trình chạy ở user-mode thực hiện I/O, cấp phát hay hủy
bỏ bộ nhớ, khởi tạo tiến trình/luồng hay tương tác với tài nguyên toàn cục nó
phải gọi 1 hay nhiều các dịch vụ nằm trong kernel-mode. Trong Windows 2000,
các dịch vụ này bị che dấu khỏi lập trình viên qua API của các hệ thống con môi
trường, chỉ được thể hiện từ module kernel-mode ntoskrnl.exe tới các ứng dụng
user-mode qua 1 thành phần hệ thống duy nhất, đó là ntdll.dll.
25