Microsoft windows -Kiến thức cơ sở (P.1)

Một số khái niệm và thuật ngữ cơ sở: (fundamental concepts and terms)

1. ‘Windows API’: windows applicationprograming interface (API) là một giao diện lập trình cho phép tương tác với hệ điều hành windows. Trước khi giới thiệu hệ điều hành 64-bit windows XP và 2003 thì giao diện lập trình cho phiên bản 32-bit của windows được gọi là Wìn API (để phân biệt với phiên bản 16-bit)

Windows API bao gồm hàng ngàn chức năng (function) có thể gọi được (callable), trong đó được chia thành các loại chính sau:

  • Base services: các dịch vụ cơ bản
  • Component Services: dịch vụ về các thánh phần
  • User interface service: các dịch vụ về giao diẹn người dùng
  • Graphics and Multimedia Services: dịch vụ về đồ họa và đa phương tiện
  • Messaging and collaboration: dịch vụ về thông điệp và phối hợp
  • Networking: dịch vụ về mạng
  • Web services: dịch vụ liên quan web

Trong đó, các thành phần cốt lõi nhất nằm ở base services, bao gồm quản lý tiến trình, bộ nhớ, I/O và an ninh v.v.

windows-api-1
(Hình minh họa các lớp API (windows/native); usermode, kernel mode (được giao tiếp thông qua system-call interface)

2.Services, Functions, và Routines:

  • ‘Functions’ (windows api): là một chức năng được mô tả trong tài liệu, có thể gọi được trong windos api, ví dụ: CreateProcess, CreateFile, GetMessage.
  • ‘Native system services’ (executive system services): là các dịch vụ không được mô tả trong tài liệu, nằm ở lớp dưới trong hệ điều hành và có thể gọi từ chế độ người dùng (user mode). Ví dụ: NtCreateProcess là một dịch vụ bên trong của hể thống.
  • ‘Kernel support function’ (routines): là những tiến trình (subroutines) bên trong windows mà chỉ có thể được gọi từ chế độ kernel (‘kernel mode’ – sẽ được giải thích trong các phần sau-). Ví dụ: ExAllocatePool là một tiến trình mà điều khiển thiết bị (Device driver) gọi để để được cấp phát bộ nhớ từ ‘heaps’ của windows.
  • ‘Windows services’: là các tiến trình được được khởi tạo (started) bởi trình quản lý dịch vụ của windows (Windows service control manager). Ví dụ, dịch vụ Task Scheduler chạy trong usermode (chế độ người dùng) hỗ trợ at (hiện đã thay bằng ‘schtasks’).
  • ‘DLL’ (Dynamic-link library): là một tập hợp các tiến trình được liên kết với nhau như một file nhị phân (binary file), thoe đó có thể linh động nạp vào chương trình có sử dụng các tiến trình đó. Ví dụ: msvcrt.dll (thư viện C run-time) và Kernel32.dll. Các thành phần và ứng dụng trong usermode  sử dụng DLL rất nhiều. Một trong nhữn lợi điểm của DLLs so với các thư viện tĩnh (static libraries) là các ứng dụng có thể chia sẻ DLLs và Windows sẽ đảm bảo chỉ có một hiện thực code của DLL trong bộ nhớ. (only one in-memory copy of a DLL’s code).

—  Tiếp tục phần 2 —