作者: jjhou (jjhou)
標題: 【Win95 系統程式設計 - VMs & VxDs 譯序】
時間: Tue Dec 1 23:41:31 1998
【Win95 系統程式設計 - VMs & VxDs 譯序】
侯俊傑 jjhou@ccca.nctu.edu.tw
1998.12.01 第一次發表於
清大.楓橋驛站(140.114.87.5).電腦書訊版(CompBook)
----------------------------------------------------
很多讀者關心這本書。現在,書已經差不多好了,下星期交付
松崗公司。
以下是本書的作者簡介、譯者簡介、譯序、翻譯風格。
●關於作者
自從 1968 畢業於 MIT(麻省理工學院)後,Walter Oney 就成為
一位專業的系統程式開發人員。1990 年開始,他專攻低階的 Windows
程式設計。在一家 DOS Extender 主要供應廠商任職期間,他協助起草
DPMI(Dos Protected Mode Interface)標準。Oney 寫出第一套
Windows extenders,可以在 Windows 3.1 上執行 32 位元
Windows 程式。現在他是一位獨立顧問,幫助許多公司及個人學習
Windows 系統程式設計。
●關於譯者
自從 1983 畢業於 NCTU(交通大學),並經過兩年兵役、兩年工作、
兩年研究所,於 1989 年畢業於 NTHU(清華大學)後,侯俊傑就成為
一位專業的軟體開發人員。1990 年開始,他專攻 Windows 程式設計,
並逐次下探 Windows 系統深處。他曾服務於工研院,目前於元智大學
開課。他是一位獨立而自由的研究人員,曾經幫助許多公司及個人學習
Windows 環境上的各種技術。
●譯序(侯俊傑)
我於 1997 年初譯完 Matt Pietrek 的 <Windows 95 System Programming
Secrets> (中譯為 Windows 95 系統程式設計大奧秘,旗標出版)之後,
網路上的 CompBook(電腦書訊)版貼出了這樣一則 post:
> 作者 Imanaka (八方歸去)
> 時間 Sat Mar 15 01:05:29 1997
> ────────────────────────────────
> Matt Pietrek 我最崇拜的作家
> Windows 95 System Programming Secrets 我最愛的書
>
> 現在居然有中文本了...看來我又得去買一本中文本,中英對照看了。
> 任何喜愛 Windows 程式的人千萬不能錯過這本書... 不過得先懂點 SDK
> 就是了... 看完這本書後,幾乎能解答所有關於 Windows 95 OS 方面的
> 疑問... 大家快去買吧!侯俊傑先生既然有勇氣翻譯這種高技術性的書籍,
> 大家也應該多多支持和鼓勵,這樣才有更好的翻譯書...例如 Inside OLE
> 或是 System Programming for Windows 95 等等。嘿嘿!會不會太狠了點?
不,不會太狠!現在,這本 <Windows 95 系統程式設計 - VMs & VxDs>
就是我對所有需要系統層面的進階好書的讀友的回應。
這本書的原文出版日期是 1996 年第二季。我一向對 Virtual Machine 和
Virtual Device Driver(VxD)的原理甚感興趣,因此很快就享用了原文本。
一年半載過去,中譯本卻一直未見面世!國內電腦書商爭取譯權的動作向來
十分迅速,這麼好而且重要的一本書遲遲沒有中譯本,我唯一能夠想到的
原因是,和內容深度以及市場考量有關。
事實上,市場的憂慮是多餘的,臺灣 PC 工業如此發達,對於這類書籍
已經到了求書若渴的程度。臺灣電腦出版界對於高階技術領域的無能為力,
才真令人憂慮;臺灣高階技術翻譯人才的凋零難覓,能者不為,為者不能,
才真令人憂慮。
1997 年春夏兩季,我應新竹科學園區多家廠商之邀(包括睿昱半導體、
華邦電子、力捷電腦...),開授總近 100 小時的 Windows 作業系統課程。
在系統軟體層面,我採用 <Windows 95 System Programming Secrets>
做為教材(噢噢,當然是採用我的中譯本 :));在低階 VxD 的入門層面,
則為學員大量補充這本 <System Programming for Windows 95> 的內容。
其後,1997 年末松崗公司爭取了此書之中譯權,委由我負責翻譯。這對
期待高階好書的讀者而言是一個美好的開始,對我而言則是一個艱鉅的任務。
但我期許自己,藉由徹底熟讀此書的機會,提昇自己的技術水平,也藉此
為國內需要瞭解系統低階技術以及撰寫 VxD 之眾多工程師盡一份心力。
是的,工程師閱讀原文書不是問題,但一本好的譯本可以在閱讀效率和吸收
效率上帶來極大的幫助。
<Windows 95 System Programming Secrets>(Matt Pietrek 著)的讀者,
大概會對這本名稱相似的 <System Programming for Windows 95>
(Walter Oney著)乍見之下感到疑惑。基本上 Matt Pietrek 是在軟體
層面討論作業系統,包括 processes、threads、modules、memory management、
executable file format、windowing system、messaging system...。
其中雖討論了 VxD,卻是以使用者角度切入。Walter Oney 這本書走的是
更低層次,從虛擬機器(VM)來看 Windows 95 作業系統,並以大量篇幅
介紹 VxD 程式設計的技術與實作細節(包括 Plug & Play device,
Communication Driver, Serial Port, VCOMM, IOS, IFS...)。其內容之
詳盡豐富,技術之深刻紮實,實在是這個領域的罕見好書,是一本由淺而深,
涵蓋初中高階的詳實好書。
對於任何需要撰寫 Windows 9x 驅動程式的朋友,或是想瞭解 Windows 9x
低階面貌(虛擬機器層面)的朋友,我鄭重向您推薦此書!
翻譯此書的 10 個月之中,Windows 98 問世了。我想許多人都對 Win98 WDM
和 Win95 VxD 之間的異同與定位,感到興趣。本書作者已在「前言」第一頁
(頁碼17)針對這一部份提出了他的看法,有興趣的讀者請特別注意。
基本上,Win98 的WDM 係以VxD 模擬出來。VxD 仍然是 Windows 9x 的原生
(native)技術。也因此,本書所有技術均適用 Win95 和 Win98。
我一直喜歡拿高階技術書籍挑戰自己的極限。這本書,實在說,後半部的
driver 實務已經超越了我的極限。本書原擬以合譯方式,由我負責前半,
由業界朋友負責後半。後因朋友過於忙碌,遂幾乎全部由我完成。為了讓
後半部也有良好的水準,特別商請華碩公司幾位好朋友幫助檢閱。他們提出
了許多技術上的見解,也提供了許多註解。這本書能夠在此刻以目前的
水準出現於各位眼前,他們功不可沒。當然,本書的一切責任,仍然是屬於我的。
完成了這本書,如果還有人拿 Inside OLE 叫我譯,我真要「從命不如恭敬」了 :)
--- 侯俊傑 1998.12.01 于新竹
jjhou@ccca.nctu.edu.tw
★本書 11~12 章之翻譯與技術推敲,得力於華邦公司陳欽燦先生甚多,
謹致謝忱。
★本書 11~16 章談到各種 drivers 的實作細節。這一部份非我專精,
特別商請華碩公司的朋友擔任這些章節的檢閱工作:
高雲慶先生:第11, 12章
張訓賓先生:第 13 章
吳俊良先生:第 14 章
林居輝先生:第 15 章
林偉博先生:第 16 章
對於他們的協助,我在此致上深深謝意。如果有更多業界朋友願意抽出
時間在教育事業上出力,我們的高階翻譯人才及高階實務書籍,當不至
凋零至此。
★在我的教育理念中,原文技術名詞是不必也不該翻譯的。面對某些
普及並得神韻的中文譯名,當然從眾為佳;但許多原文技術名詞,強譯
為中文的結果是畫蛇添足。考慮到業界的習慣用語,以及此書的讀者層,
我在書中保留了許多原文技術名詞(與動詞)。當然,我必需承認,
用詞的選擇取捨,都是根源於我(譯者)個人的文字習慣與閱聽習慣,
不見得為每一個人所接受與喜愛。
★一本技術書籍之索引(index),扮演十分重要的角色。很抱歉由於
我個人在排版軟體的操控上還沒有能力製作 index,所以此書如同絕大
部份的中文書籍一樣,沒有 index。我知道這是很大的缺失,謹向讀者
致最大的歉意。精良的 index 是未來我在書籍方面的追求目標之一。
●翻譯風格
以下是本書對於譯詞的處理原則,以 Q/A 方式呈現,由此或可略窺本書風格:
Q: 原文名詞,時而譯之,時而未譯。
A: 由於電腦技術書籍(尤其如本書之類)有非常多的函式名稱、
常數名稱、術語,在大量中英文夾雜的情況下,我個人並不絕對
考量(實在也沒有能力做到)整體的譯詞統一和「該譯都譯」的層次。
反倒是以「本書讀者之程度可接受,並可獲得原詞之隱含意義」為
重要考量。舉個例子,page, paging, pageable, 如果我把 page
譯為分頁(名詞),paging 譯為分頁(動詞),這基本上已經不太
理想了。饒是如此,pageable 或可譯為「可分頁的」,page fault
或可譯為「分頁失敗」,page swapping 或可譯為「分頁置換」。
但因我已保留了 page 一詞,只好對於 paging, pageable, page fault,
page swapping 統統保留。相信這是本書讀者樂見的。又例如,
communication port error 雖可譯為「通訊埠錯誤」,但先前我
都保留 port 這個詞,所以...。此外,像 request 一詞,是我們
工程師常掛在嘴上的,所以也保留了。
但是,留下這麼多原文名詞,再加上函式名稱、常數名稱、變數名稱、
結構名稱...,整本書在某些地方變得蟹形字密度過高,這時候我可能
又對於某些原已保留原文但若譯為中文亦還可接受的詞,改用中文
(在不造成迷惑的情況下)。
另一種情況是,我們或許可以把 entry 譯為項目、條目、條孔、條格,
但面對 IO service entry 我卻不好譯為「IO service 項目」或
「IO service 條目」。換句話說在一串完整的名詞裡,我比較不喜見
到中英夾雜的現象。
再一種情況是,例如,三種 drivers:"Nonompliant" drives,
"Port" drives 和 "Generic" drivers。我們或許可將第三種譯
為「通用型 driver」,但為與前兩者位階相等,仍沿用原文。
再拿 "hook into" 為例,每一位有能力閱讀此書的讀者,都知道
hook 的意思。如果我前面保留了 hook 一詞,我也只好保留
"hook into" 這個詞,才有精簡的表現與足夠的意義。
cache 和 caching 也是一樣的情況。
queue, queued, queueing 也是一樣的情況。
Q: 未譯之英文名詞加上 s,或未譯之英文動詞加上 ed,讀來非常不順。
既然是中文書,理應依照中文單複數慣用法。
A: 中文很少有複數用法,只能加「們」,但「虛擬機器們」或「裝置們」
是很滑稽的。在譯文中出現「名詞加 s」或「動詞加 ed」的情況,某些
時候可以讓讀者更清楚意義。不過,我也的確發現不少非必要的 s 或 ed,
這種情況下我便把它們拿掉了。
Q: 已經出現在章前註解或已中英文對照過的詞,不必每次都中英文同時
出現。例如 mount 或 reentrant 或 entry。
A: 有些字我很想一直使用原文,例如 mount,例如 reentrant,例如 entry。
但出現過多次之後,又使我信心動搖,覺得怪怪。尤其對於動詞,
例如 mount,如果說:「我 mount 了一個硬碟」,似乎怪怪的,說
「我裝載了一個硬碟」,又似乎沒有讓讀者得到 mount 的那個意思。
所以,既然不太費事,我也就常常不厭其煩地讓這一類詞的中英文一起出現。
事實上大家都有經驗,讀一本書不見得從頭看起,也可能是日後需要
抽出某個章節看三五頁。對於上述之類的動詞或名詞,如果突然看到,
而沒有注意先前曾出現過的中英對照,就會覺得奇怪或不解。因此我
常常不厭其煩地讓這一類詞中英文並現。
Q: 有些詞似乎不必再原文對照。
A: 這大約是指諸如 send 或 flush 之類的詞。send 若譯為傳送或送出,
讀者不知道它是 send 或是 post(這是兩種不同的訊息傳遞方式)。
flush 若譯為清除,讀者可能會以為是 clean up 或 reset。舉一句為例:
「你應該掃清(flush)任何 cache,並清除(clean up)你所握有且
代表 volume 的其他資源」
諸如此類的問題,在一整本書籍裡,層出不窮,很難做到符合每個人的理想。
換句話說,「統一譯詞」以及「中文形式之完整」這兩項,在此書已經
難以企及了,所以我比較寧願「得義而忘言」。
當然,很多詞句的順眼與否,都根源於閱讀者的個人習慣。儘量減少讀者
的疑慮,是我最大的考量(然而我的作法,其實也根源於我個人的閱聽習慣)。
本書 11~16 章,有許多檢閱者的註解。每一個大型註解皆以檢閱者為名,
例如 11,12 章為高雲慶註,13 章為張訓賓註... 依此類推。如果以
「譯註」起頭,那就是我(侯俊傑)所寫的註。
--- the end
--
※ Origin: 楓橋驛站<bbs.cs.nthu.edu.tw> ◆ Mail: jjhou@ccca.nctu.edu.tw
※ X-Info: Mave -> ric.bbs@ptt.csie.ntu.edu.tw
※ X-Sign: 0ROABMDPH61mCmeMTPas (99/07/09 7:05:49 )