libuv 中文編程指南(一)序言


序言

本書由一系列 libuv 教程組成, libuv 是一個高性能事件驅動的程序庫,封裝了 Windows 和 Unix 平台一些底層特性,為開發者提供了統一的 API.

本書旨在涵蓋 libuv 的主要特性, 並不是一份完整介紹 libuv 內部每個 API 和數據結構的指南, 官方文檔 official libuv documentation 可以直接在 libuv 源碼提供的頭文件中找到.

本書還沒有完成,某些章節可能不完整,但我希望在我不斷完善本書同時,你也能夠從中獲益 :-)

本書為誰而寫?

如果你正在閱讀本書,你或許是:

  1. 系統開發人員, 編寫一些諸如守護進程(daemons), 網絡服務程序或者客戶端等底層應用, 你發現 libuv 的事件循環方式適合你的應用場景, 因此你決定使用 libuv.
  2. Node.js 某一模塊的作者, 決定使用 C/C++ 封裝系統平台某些同步或者異步 API, 並將其暴露給 Javasript, 你可以在 node.js 上下文中只使用 libuv, 但你也需要參考其他資源, 因為本書並沒有包括 v8/node.js 相關的內容.

本書假設你對 C 語言有了一定的了解。

背景

node.js 最初發起於 2009 年, 是一個可以讓 Javascript 代碼脫離瀏覽器的執行環境, libuv 使用了 Google 的 V8 執行引擎 和 Marc Lehmann 的 libev. Node.js 將事件驅動的 I/O 模型與適合該模型的編程語言(Javascript)融合在了一起, 隨着 node.js 的日益流行, node.js 的開發者們也意識到應該讓 node.js 在 Windows 平台下也能工作, 但是 libev 只能在 Unix 環境下運行. Windows 平台上與 kqueue(FreeBSD) 或者 (e)poll(Linux) 等內核事件通知相應的機制 是 IOCP, libuv 依據不同平台的特性(Unix 平台為 libev, Windows 平台為 IOCP) 給上層應用提供了統一基於 libev API 的抽象, 不過 node-v0.9.0 版本的 libuv 中 libev 的依賴已被移除, 參見: libev has been removed libuv 直接與 Unix 平台交互.

本書代碼

本書所有代碼均可以在 Github 上獲取, Clone/Download 本書源碼,然后進入到 code/ 目錄執行 make 編譯本書的例子. 書中的代碼基於 node-v0.9.8 版本的 libuv, 為了方便讀者學習,本書的源碼中也附帶了相應版本的 libuv,你可以在 libuv/ 目錄中找到源碼,libuv 會在你編譯書中的例子時被自動編譯。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM