Tổng qua về Windows XPHì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ữn
Trang 1Tổ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
Trang 2Tổ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
Trang 3đượ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 kernel-mode 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