Tải bản đầy đủ (.pdf) (3 trang)

Tổng quan về các hệ điều hành (an overview of the operating systems)

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (91.1 KB, 3 trang )

Tổng quan về các Hệ điều hành (An Overview of the Operating Systems)

Tổng quan về các Hệ điều
hành (An Overview of the
Operating Systems)
Bởi:
Khoa CNTT ĐHSP KT Hưng Yên
Windows Driver Model cung cấp một khung cho các bộ điều khiển thiết bị đó hoạt động
ở 2 hệ điều hành hệ thống—Windows 98/Windows Me và Windows 2000/Windows
XP. Như được thảo luận về trong tóm lược lịch sử trước đây, hai cặp này của những hệ
điều hành là các sản phẩm của hai con đường của sự phát triển song song. Thật ra, tôi
sẽ tham chiếu tới cặp trước kia của những hệ thống với sự tóm tắt “Windows 98/Me”
để nhấn mạnh di sản chung của họ và để and to cái đó ghép đôi đơn giản như XP. Mặc
dù tới người dùng cuối hai cặp này của những hệ thống là giống nhau, chúng làm việc
khá khác nhau ở trong. Ở đoạn này, Tôi sẽ giới thiệu tổng quan và ngắn gọn của hai hệ
thống này.

1/3


Tổng quan về các Hệ điều hành (An Overview of the Operating Systems)

Tổng qua về Windows XP

Hình 1-1 là một tóm tắt cao sơ đồ chức năng của hệ điều hành Windows XP, ở khía cạnh
nào đó tôi nhấn mạnh những đặc trưng mà quan trọng tới những người mà viết những
bộ điều khiển thiết bị. Mọi nền tảng mà Windows XP chạy hỗ trợ hai kiểu của sự thi
hành. Phần mềm thực hiện hay trong user-mode hoặc ở trong kernel-mode. Một chương
trình user-mode điều đó muốn tới, nói, đọc dữ liệu nào đó từ một thiết bị gọi là một giao
diện lập trình ứng dụng (API) như ReadFile. Một module hệ thống con như những sự
thi hành KERNEL32.DLL API này bằng việc kéo theo một chức năng API bản ngữ như


NtReadFile. Đề cập tới khía cạnh để có thêm thông tin về API bản ngữ.
Chúng tôi thường nói NtReadFile được gọi là quản lý Vào/ra. Thuật ngữ quản lý Vào/ra
là có thể một ít lạc đường bởi vì ở đó không là bất kỳ mô đun có thể thực hiện đơn nào
với tên đó. Hệ điều hành sẽ giao tiếp với thiết bị bằng trình điều khiển của riêng mình.
Nhiều thủ tục phục vụ như NtReadFile. Họ vận hành ở kernel-mode ở thứ tự để phục vụ
một vài ứng dụng để tương tác với một thiết bị trong cách nào đó.

API gốc
NtReadFile thuộc API của Windows XP. Hệ điều hành Windows NT bao gồm một số
hệ thống để thực thi những ngữ nghĩa của vài cái mới và những hệ điều hành đang tồn
tại. Đã có một hệ thống con OS/2, POSIX, và hệ thống con Win32. Những hệ thống con
2/3


Tổng quan về các Hệ điều hành (An Overview of the Operating Systems)

được thực hiện bằng việc tạo mà user-mode hướng tới API gốc, mà chính nó được thực
hiện trong kernel-mode.
Một user-mode DLL có tên (rather redundantly, I’ve always thought) NTDLL.DLL
những bổ sung API gốc cho những đối tượng gọi Win32. Mỗi mục vào trong DLL này
là một trình bao bọc mỏng xung quanh một sự gọi tới một chức năng kernel-mode maf
thật sự thực hiện chức năng. Việc gọi sử dụng một giao diện cộng tác hệ thống phụ thuộc
nền để chuyển điều khiển ngang qua ranh giới user-mode/kernel-mode. Trên những bộ
xử lý Intel mới hơn, giao diện công tác hệ thống này sử dụng chỉ dẫn SYSENTER. Trên
những bộ xử lý Intel cũ hơn, những sự sử dụng giao diện cấu trúc INT với với chức năng
viết mã 0 x2E. Trên những bộ xử lý khác, vẫn còn những cơ chế khác được sử dụng.
Mặc dù, bạn và tôi không cần hiểu những chi tiết của cơ chế để viết những bộ điều khiển
thiết bị. Tất cả chúng tôi cần hiểu là cơ chế cho phép một chương trình được chạy trong
user mode gọi một chương trình con mà thực hiện ở kernel mode và ý định đó dần dần
trở lại người gọi user-mode của nó. Không có sự chuyển mạch ngữ cảnh luồng xuất hiện

trong thời gian xử lý: tất cả những sự thay đổi là mức đặc quyền của thực hiện mã (cùng
với vài chi tiết khác những lập trình viên hợp ngữ duy nhất đó từng chú ý hoặc quan tâm
xung quanh).
Hệ thống Win32 là một trong đa số những lập trình viên ứng dụng quen thuộc với vì nó
thi hành những chức năng một trong những sự kết hợp phổ biến với hệ giao diện đồ hoạ
Windows.
Một bộ điều khiển thiết bị có thể dần dần cần truy nhập thật sự phần cứng của nó để
thực hiện một IRP. Trong những trường hợp của một IRP_MJ_READ tới một loại vào/
ra (PIO) được chương trình hóa của thiết bị, sự truy nhập có lẽ đã đưa mẫu (dạng) (của)
một thao tác đọc được định hướng đi một cổng vào/ra hoặc một thanh ghi bộ nhớ được
đăng ký bằng thiết bị. Những bọ phận điều khiển, mặc dù họ thực hiện trong kernelmode và có thể bởi vậy nói trực tiếp tới phần cứng của họ, sử dụng những phương tiện
được cung cấp bởi lớp trừu tượng hóa phần cứng (HAL) để truy nhập phần cứng. Một
thao tác đọc có lẽ đã bao gồm sự gọi EAD_PORT_UCHAR để đọc một byte dữ liệu từ
một cổng Vào/ra. HAL thường sử dụng một phương pháp platform-dependent thật sự
thực hiện thao tác HAL thường lệ sử dụng một phương pháp phụ thuộc nền tảng để thật
sự thực hiện thao tác. Trên một máy tính x86, HAL sử dụng trong lệnh IN; trong một
nền tảng Windows XP tương lai khác nào đó, nó có lẽ đã thực hiện một công việc nạp
vào bộ nhớ.
Sau khi một trình điều khiển đã kết thúc với một thao tác Vào/ra, nó hoàn thành IRP
bằng việc gọi một thủ tục dịch vụ kernel-mode đặc biệt. Hoàn thành là màn cuối cùng
trong việc xử lý một IRP, và nó cho phép ứng dụng chờ đợi thực hiện lại.

3/3



×