24/05/2018, 18:39

Môi trường lập trình kiểu Kernel – Mode

Hình 3-1 minh họa một số những thành phần tạo ra hệ điều hành XP Microsoft Windows. Mỗi thành phần hàm dịch vụ nó có tên bắt đầu với một tiền tố đặc biệt 2- ký tự, 3- ký tự: Quản lý vào/ra (Tiền tố Io) chứa đựng nhiều hàm dịch vụ mà những trình điều ...

Hình 3-1 minh họa một số những thành phần tạo ra hệ điều hành XP Microsoft Windows. Mỗi thành phần hàm dịch vụ nó có tên bắt đầu với một tiền tố đặc biệt 2- ký tự, 3- ký tự:

  • Quản lý vào/ra (Tiền tố Io) chứa đựng nhiều hàm dịch vụ mà những trình điều khiển sử dụng, và đó là điều mà tôi bàn luận trong cuốn sách này.

Mô đun Cấu trúc Quá trình (Tiền tố Ps ) tạo ra và quản lý những luồng kiểu nhân. Một trình điều khiển WDM bình thường có lẽ đã sử dụng Một luồng độc lập để nhiều lần cắt ngọn Một thiết bị không có khả năng của việc phát sinh những ngắt, và (cho) những mục đích khác.

  • Quản lý bộ nhớ ( Tiền tố Mm) điều khiển những bảng trang mà định nghĩa ánh xạ (của) những địa chỉ ảo lên trên bộ nhớ vật lý.
  • Thi hành ( Tiền tố Ex) cung cấp quản lý tất cả các dịch vụ đồng bộ hóa. Tôi sẽ bàn tới các vấn đề thực hiện các chỉ lệnh ở chương tiếp theo, bao hàm những dịch vụ đồng bộ hóa.
  • Quản lý đối tượng ( Tiền tố Ob ) cung cấp kiểm soát tập trung qua nhiều đối tượng dữ liệu mà khi Windows XP hoạt động. Những điều khiển WDM tin cậy trong quản lý đối tượng để làm cho một tính thử lại mà ngăn ngừa một đối tượng không biến mất trong khi người nào đó vẫn còn sử dụng nó và để chuyển đổi phần đối tượng qua con trỏ tới những đối tượng đại diện.
  • Bảo mật tham chiểu mà hình ( Tiền tố Be) cho phép điều khiển hệ thống tập tin thực hiện những sự kiểm tra bảo mật. Một vài điều khiển khác thì phân phối với những sự liên quan bảo mật trước thời gian một yêu cầu vào/ra đạt đến điều khiển WDM, vì vậy Tôi đang bàn luận những hàm đó trong sách này.
  • Thành phần " thư viện thực thi " ( Tiền tố Rtl) chứa đựng những chương trình thông dụng, như danh sách và những thủ tục quản lý chuỗi, những trình điều khiển Kernel - mode có thể sử dụng thay vì ANSI- tiêu chuẩn bình thường những thủ tục thư viện. Phần lớn, thao tác những hàm này hiển nhiên thông qua những tên của nó và những hiểu biết của bạn khi sử dụng chúng.
  • Windows XP thi hành những ngôn ngữ API của Kernel - mode được gọi khi sử dụng những tên thủ tục mà bắt đầu với tiền tố Zw. Những tài liệu DDK dung một vài ký hiệu hàn ZwXxx, Tức là là thứ mà gắn liền với nơi đăng ký và sự truy nhập hồ sơ. Những hàm đó được bàn luận trong chương này.
  • Nhân XP Windows ( Tiền tố Ke ) là tất cả sự đồng bộ hóa mức thấp (của) những hoạt động giữa những luồng và những bộ xử lý xuất hiện. KeXxx được bàn tới trong chương tiếp theo.
  • Nhiều lớp dưới của hệ điều hành, nó có tác dụng hỗ tợ hệ thống khi về chế độ nghỉ ngơi, là lớp trừu tượng hóa phần cứng ( hay HAL, tiền tố Hal). Tất cả những thành phần hệ điều hành của máy tính được liên kết với nhau trong HAL. HAL gọi ngắt trong những quá trình làm việc, để kết nối các thiết bị vào/ra và những thiết bị lưu trũ khác. Thay vì việc kết nối trực tiếp tới phần cứng của máy tính, điều khiển WDM gọi là những hàm trong HAL để thực hiện.

Windows NT, kiến trúc sư ưa thích mà không sử dụng trình điều khiển run_time các thư viện được cung cấp bởi nhà cung cấp của chương trình biên dịch C. Trong một phần, ban đầu không chấp nảy sinh từ thời gian rất đơn giản. Windows NT đã được thiết kế tại một thời gian khi không có ANSI tiêu chuẩn cho những gì thuộc một hàm chuẩn thư viện và khi rất nhiều trình biên dịch tồn tại, với mỗi ý tưởng riêng của những gì bao gồm sự bình tĩnh và độc đáo riêng chuẩn chất lượng.

Yếu tố khác là thư viện chuẩn run_time đôi khi dựa vào khởi tạo rằng có thể xảy ra chỉ trong một người sử dụng chế độ-ứng dụng và đôi khi được triển khai thực hiện trong một sợi-đa-không an toàn hay không an toàn cách.

Các "functions" mà bạn sử dụng trong một trình điều khiển được định nghĩa là macros trong DDK tiêu đề file. Ví dụ, các mã sau đây:

int a = 2, b = 42, c;

c = min(a++, b);

Cơ bản bạn có thể không biết khi nào các DDK sẽ sử dụng một macro và nó sẽ khi tuyên bố một thực tế hàm bên ngoài. Đôi khi một dịch vụ hàm sẽ là một nền tảng vĩ mô cho một số hàm và một cuộc gọi các nền tảng. Hơn nữa, Microsoft là miễn phí để thay đổi ý nghĩa của nó trong tương lai. Do đó, bạn nên làm theo quy định này khi lập trình cho trình điều khiển WDM : Không bao giờ sử dụng một biểu hiện có phản ứng phụ như là một đối số cho một hạt nhân-chế độ dịch vụ hàm

0