倉頡之友
康熙与倉頡
主頁 自學 倉頡字典 康熙字典體

倉頡平台2022 網上輸入法 九萬漢字

論壇 聯絡 康熙字典網上版 捐助本站

中文輸入法學術論壇

Mac OS 9與Mac OS 9中文版中文輸入法體驗
2020年11月,Tim Cook在綫上發佈會中揭曉了Apple新的重磅產品——MacBook Pro with M1 chip。這款產品標誌着MacBook系列邁開了從Intel遷移到ARM平台的第一步。

為了遷移,Apple做了大量準備,他們通過Rosetta 2以及Fat Binary等技術解決了兼容性問題。事實上,Apple在遷移上駕輕就熟,這是因為Apple做這種驚險的事情已經不是第一次。也許很多人已經知道,在2005年,Apple就曾着手從PowerPC平台遷移到Intel平台上。這還不是全部,在1994年,Apple從Motorola 68000平台上遷移到了PowerPC平台上。2001年,Apple從Mac OS 9遷移到了Mac OS X(現名macOS)上。雖然Mac OS 9到macOS的遷移不涉及芯片轉換,但其驚險程度恐怕並不比芯片遷移更小。本次的故事,就要從Mac OS 9上開始。
倒序瀏覽 看全部 全部回復20
本帖最後由 馬拉一個錘子 於 2-10-2022 10:44 AM 編輯

為什麼是遷移?

相信許多人看到上文會有疑問。Mac OS 9到Mac OS X不就是一次簡單的系統升級嗎?

1999年發佈的Mac OS 9及其前任被統稱為Classic Mac OS,事實上,Classic Mac OS和Mac OS X除了名字相同,界面有一些相似以外,幾乎就沒什麼關係了。Mac OS X利用一種被称為“Classic Environment”的技術來運行為Classic Mac OS編寫的應用程序,到了Mac OS X Tiger(10.4, 2005年)时,搭载Intel芯片的機型就已經無法運行Classic Mac OS的應用程序。
而到了Mac OS X Leopard(10.5, 2007年)時,Apple將Classic Environment從Mac OS X中移除,從此Mac OS X再也無法運行Classic Mac OS上的應用程序了。
本帖最後由 馬拉一個錘子 於 2-10-2022 09:53 PM 編輯

為什麼要遷移?
既然如此,為什麼要冒着巨大的風險遷移到Mac OS X上呢?這就要從Classic Mac OS的歷史說起了。

1984年,Macintosh和它的操作系統只被設計為一個單用戶、單任務的系統。這樣可以極大地簡化硬件開發的難度。然而,這造就了後來的一系列問題。由於會假設同一時間內只運行一個程序,工程師就會忽略掉可重入性。可重入性是指一個程序可以在任意一個點被中止,做一些其他事情,然後回到原任務。以Classic Mac OS的一個API,QuickDraw為例。這意味着操作系統可以將狀態信息存儲在內部,比如窗口的當前位置等信息,因為只有當前運行的程序會更改這些信息。再進一步,工程師將大部分的狀態信息留在了應用程序內,而非在QuickDraw內,這樣就無須將這些數據在應用程序和庫之間進行複製。QuickDraw通過尋找應用內的已知位置來找到這些數據。

結果,這種類型的內存共用觀念導致了程序崩潰和電腦崩潰。如果一個程序往這些共用區域內寫入了不正確數據,會導致QuickDraw崩潰,結果整台電腦都會崩潰。同理,QuickDraw中的一些問題也會導致它向這些程序內覆寫一些數據,又會導致崩潰。

另外,Classic Mac OS還缺乏內存保護功能。MMU技術保證了程序不會不小心向其他程序的內存空間內寫入數據,提前準備的共享內存可以讓數據可以在不同的庫之間傳遞。然而,Classic Mac OS沒有這種意義上的共享內存觀念。應用程序和操作系統同時共用所有的內存,崩潰成為家常便飯,在1990年代中期,Mac因其經常性的崩潰而惡名昭彰。

大約同期Microsoft所推出的Windows 9x系列也只有很有限的內存保護功能。以下的C代碼會讓整個系統出問題(可能會藍屏):
int main() {
    int* p = (int*)0x00010000;
    p += 1;
    *p = 0;
    return 0;
}
但是1993年推出的Windows NT家族(包括我們今天看到的Windows 11也是Windows NT家族中的一員)有了真正意義上的內存保護,Windows NT最初只用於服務器,後來才取代Windows 9x成為也面向家庭用戶的產品。

於是,從1994年3月起,Apple開始研發新一代的操作系統,內部代號為Copland。
Copland通過一種名叫“Blue Box”的環境來提供應用程序服務。這樣,如果程序crash掉,導致的最壞結果也是Blue Box炸掉而已,不會影响到整個系統。

然而,Copland開發進度缓慢,一再跳票。被雇來救火的Ellen Hancock意識到這個項目永遠也不會完成,於是她決定停止開發Copland,繼續原有的Mac OS Classic產品綫,然後向外界購買一個操作系統。由此,Mac OS Classic得以續命到2001年,而Apple最終選擇了購買NeXT公司。Steve Jobs和NeXT公司一起回到了Apple,同時Apple還獲得了NeXTSTEP操作系統。NeXTSTEP操作系統成為了Mac OS X的基石。因此,Mac OS X在技術上和Classic Mac OS是沒什麼關係的。

直到今天,如果我們使用Objective-C開發Mac OS X(macOS)和iOS應用程序,我們還是要大量地用到許多命名以“NS”开頭的類,例如NSString、NSDictionary、NSData、NSArray等等。而NS正是NeXTSTEP的縮寫。

OS X是一個全新的開始。它帶來了搶佔式多任務、內存保護等Apple夢寐以求的新特性。iOS也基於它。2007年,Steve Jobs在Macworld 2007上說:“iPhone runs OS X.”可以說,沒有Mac OS X就沒有今天的Apple。
Mac OS 9安裝

相信許多人是在Mac OS X時代才開始使用Apple的產品,而今天,我們要體驗的就是与OS X完全不同的Mac OS 9環境,以及上面的中文輸入法。

英文版本的Mac OS 9並不提供中文輸入法。英文版Mac OS 9預設無法顯示中文,都會顯示成問號。我們這裏以中文版Mac OS 9開始講解。

在Mac OS 9時代,Apple還在使用PowerPC,因此我們無法使用虛擬機來運行它。我們需要使用QEMU這個模擬器。值得一提的是,如果你現在在用ARM芯片的Apple電腦,那麼你也可以以QEMU模擬Windows 7等系統。至於Windows 10和Windows 11,它們都有ARM版本,用虛擬機更快。注意,模擬的效率比虛擬的效率要低得多。
首先,我們打開終端,鍵入下列命令:
brew install qemu

如果你沒有Homebrew,則需另外安裝,在此不表。

安裝完成後,新建一個文件夾,用來存放Mac OS 9的虛擬硬盤。例如我就以os9為名建了一個文件夾。

用終端進入,然后輸入以下命令:
qemu-img create -f qcow2 os9tc.img 1G

然後以準備好的Mac OS 9中文版iso啓動:

qemu-system-ppc -L pc-bios -boot d -M mac99 -m 512 -hda os9tc.img -cdrom 你的鏡像位置 -device usb-mouse -device usb-kbd
9642163385732437f2.png
484566338574d2db2b.png
至此我們的光盤啓動就完成了。
690926338577dda9d0.png
我們看到了Mac OS安裝的選項。但是不要急着點它,因為我們的虛擬磁盤尚未被格式化。
因此我們需要使用“工具程式”中的“磁碟設置”來配置磁盤。

911156338578c8f270.png

我們選擇“未初始化”,點擊初始化。

559586338579b8e30f.png

初始化成功後,我們選擇檔案→結束,關閉磁碟設置,然後才能開始安裝。

54040633857ae77934.png

Classic Mac OS關閉窗口的按鍵是窗口左上角的小方塊。至於右上角那兩個方塊,則是改變窗口形態用的。Mac OS X則是改成了我們熟知的紅綠燈。
59884633857e94385d.png

我們可以開始安裝了。

98946633857f6374a8.png

64244633858011edfd.png

安裝結束。

382196338581515ae9.png

光盤裏還提供了Adobe Acrobat Reader。不過我們現在是時候進入系統了,因此我們要先關機。
關機完成,回到終端,在終端裏輸入
qemu-system-ppc -L pc-bios -boot c -M mac99,via=pmu -g 1024x768x32 -m 512 -hda os9tc.img -device usb-mouse -device usb-kbd
系統開始啓動。

24133633858414de2f.png

進入系統。

36714633858692d31d.png

我們會注意到中文輸入法預設是倉頡。我們先完成設定輔助程式,然後再來看看輸入法。

49061633858904b922.png

首爾在那時還是被稱作漢城,時代的眼淚。

然後我們來看看輸入法。

393736338589c77e17.png

可以看到Mac OS 9提供了多種中文輸入法。注意,繁體中文版和簡體中文版提供的輸入法是不同的。

中文輸入法裏面有一個“密碼”。“密碼”其實就是英數輸入模式。

本帖最後由 馬拉一個錘子 於 2-10-2022 10:43 AM 編輯

中文輸入法測試(一)

為了方便測試中文輸入法,我們打開未命名→Applications→SimpleText。這是一個簡單的文本編輯器。

我們會發現,Mac OS 9的倉頡輸入法和微軟倉頡一樣無法以“手日土”輸入“捏”字。只能以“手竹難一”輸入“捏”,而且系統的Taipei字體會把“捏”顯示為“手竹難土”的字形。

90015633858ca348ac.png

和Mac OS X一樣,Z被作為萬能鍵使用。

“產”也只有按“産”字形取的“卜竹竹手一”編碼。“卜大一竹一”為空碼。

19075633858d760835.png

但是“睾”的編碼與微軟倉頡不同。微軟倉頡的“睾”為錯碼“竹田土廿戈”,而在Mac OS 9上,這個編碼是正確的。

46692633858ea35bdf.png

文本buffer,虛綫上加倉頡字母。像極了Windows 10。(下圖上為Mac OS 9,下為Windows 10)

14907633858f7883a1.png
本帖最後由 馬拉一個錘子 於 2-10-2022 04:30 PM 編輯

我們會發現,輸入“卜竹一月金”只有“頻”,沒有“顏”。
“顏”去哪了?難道Mac OS 9內置的倉頡缺字嗎?

原來,Mac OS 9的倉頡按照官方的排重規則,重碼字在前加一“X”,若超過五碼,則略掉最後一碼。因此“顏”只能以“X卜竹一月”打出,“卜竹一月金”只有“頻”候選。

同理,“佑”只能以“X人大口”打出。

Mac OS 9的倉頡無法以“ZX??”和“YYY??”輸入符號,而要以鍵盤上的符號來輸入。
123下一頁
回復 收藏 淘帖