Windows 作業系統分層語言選型
| 層級 | 主要語言 | 典型組件 |
| **硬體抽象層 (HAL) / 核心底層** | **組合語言 (ASM)** | 中斷處理、上下文切換、啟動代碼 |
| **核心執行體 / 驅動程式 / 系統 DLL** | **C 語言** | 記憶體管理、排程器、檔案系統、圖形內核 (win32k.sys) |
| **使用者模式系統服務 / Shell / 內建應用** | **C++ / C# / Rust (近年引入)** | Explorer、Settings、Edge (Chromium)、.NET Runtime |
| **歷史私有語言** | **C/AL (早期)、Midori 研究專案語言** | 特定實驗性組件 |
編譯器工具鏈演進
- 早期:Microsoft C Compiler (MSC) → Visual C++ (VC6 經典)。
- 現代:MSVC (cl.exe) 整合於 Visual Studio / Build Tools,支援 C11/C17、C++20、OpenMP、Link Time Optimization (LTO)、Profile-Guided Optimization (PGO)。
- 組合語言:MASM (ml64.exe) 64 位專用,內核關鍵路徑手寫優化。
- Clang/LLVM:Windows 10+ 內建
clang-cl 相容 MSVC,Chrome/Edge/Firefox 等大型專案常用 Cl 編譯 Windows 版本。
殺毒軟體技術棧多樣性
**無統一標準**,視廠商技術傳承而定:
- 核心掃描引擎:極度追求效能 → **C/C++** (位運算、SIMD 內聯組合、自定義分配器)。
- 驅動程式 (Mini-filter / WFP / Kernel Callback):**C + 少量 ASM**,簽名驅動需通過 WHQL。
- 使用者介面 / 管理控制台:C# (WPF/WinForms)、Qt (C++)、Electron (JS/TS) 均見於主流產品。
- 腳本/特徵碼引擎:Lua、Python、自定義字節碼 VM,便於快速更新規則。
- 機器學習模型推理:ONNX Runtime / TensorRT / 自研 C++ 推理庫,模型由 Python 訓練導出。
開發工具與環境
- 編輯器:Visual Studio (全功能)、VS Code (輕量、跨平台)、Vim/Emacs (核心開發者偏好)。
- 建構系統:MSBuild (VS 原生)、CMake (跨平台專案標準)、Ninja (高速建構)。
- 靜態分析:
/analyze (MSVC)、Clang Static Analyzer、Coverity、Premake。
- 調試器:WinDbg (核心/用戶模式終極武器)、Visual Studio Debugger、x64dbg (逆向分析)。
內部工具開源案例
微軟近年大量開源內部工具:
- Windows Terminal (C++/WinRT) —— 現代化終端機。
- PowerToys (C++/C#) —— 進階使用者工具集。
- ProcMon / ProcExp (Sysinternals) —— 系統監控利器,部分源碼開放。
- GitHub: microsoft/ 組織下百餘專案,涵蓋編譯器、運行時、雲端工具。
總結
Windows 核心仍以 **C 為主、ASM 為輔、C++/Rust 向上滲透**;殺毒軟體則是 **多語言協作** 的典型工程。掌握 **C/C++ 系統編程 + 現代工具鏈 (CMake/Clang/LLVM/靜態分析)** 是進入該領域的核心競爭力。