開篇和第一章:Mac OS X核心故事之“N國語言”
1、寫作動機和熱情來自兩方面:一是自喬幫主迴歸後,蘋果公司經歷了從瀕臨破產到全球市值第一的華麗轉身,其產品風靡全球。我本人當了4年的蘋果使用者,3年的weiphoner,在罈子上看到每天都有大量新人加入Mac/iOS大家庭,但是長期處於Win統治之下的普通電腦使用者,對Win之外的世界乃至個人電腦的歷史背景並不瞭解,有意無意地帶著有色眼鏡來看蘋果和其他非Win平臺、產品。罈子上經常有許多針對蘋果和微軟的極端言論,還為了一些僅僅是見仁見智的問題吵起來,我覺得有必要讓大家更多地瞭解蘋果及其產品,並消除一些廣為流傳的誤解和偏見,讓論壇少些紛爭和小白問題,也讓用著蘋果產品的各位更開心更放心,不至於像某些人產生Mac“
2、《程式設計師》雜誌登載的“Mac OS X背後的故事”系列文章我強烈推薦大家閱讀,專業性太強的部分可以跳過。其大致框架如下:從20世紀90年代後期蘋果公司的困境開始敘述喬幫主迴歸和Mac OS X的研發背景(第一篇),接下來講述Mac OS X的核心(第二、三篇)、GUI(第六、七篇)和開發工具鏈(第五、八篇),中間穿插了戈爾(和小布什競選總統失敗的那位)與蘋果公司的一段趣聞,堪稱營銷學的經典案例(第四篇)。最後三篇(第九篇的上中下)圍繞Mac OS X從32位到64位的轉換講了每個發行版本的簡史,順帶講了Mac OS X的圖形開發引擎OpenCL。
3、我的寫作思路。寫作內容上,Mac OS X採用了Unix核心,由於Unix核心是純文字介面(不像Windows核心已經整合了許多圖形介面的東西),蘋果自己在其上開發了Aqua圖形使用者介面(GUI)的模式,所以我也將分核心和GUI來講,文中有引用“Mac OS X背後的故事”或其他參考資料的地方我會標明,但絕不會有大段抄襲和雷同,另外我的時間線拉得比較長,會拉回到20世紀70-80年代,也就是Unix和GUI誕生的年代。開發工具鏈比較技術性,我會少講,主要是介紹Interface Builder,到時候我會提供一個喬幫主在1993年親自演示Interface Builder的珍貴視訊,值得大家fq去看的。發行版本史也是要講的,但不會只圍繞32位到64位系統,會更全面,更貼近大家的日常使用。寫作形式上,我會盡可能提供比“Mac OS X背後的故事”更多的各種資料,特別是圖片視訊等直觀展示性資料,技術性的東西儘量少且簡化,多講有趣和大家日常使用中能感受到的東西。另外,我不會按時間順序,不會按作業系統結構組成來寫,因為本文不是技術帖,也不是教你用Mac OS X的教程帖,而是由一個個小故事,小專題組成的軼事軼聞集,在尊重事實的基礎上,我會加進一些演義、想象的成分(比如YY一下當事人的想法)。
4、本人非理工科,專業和計算機基本無關,儘管程式設計成為我的興趣愛好已近20年,但和專業學計算機的比我幾乎是個小白。有不確定的地方我會查閱相關資料,絕不信口開河,但作為小白,文字中的專業錯誤在所難免,大家隨時可以拍磚。
5、不做Win黑,也不做NC果粉。我在之前的一篇開箱帖中曾經說過,Win和Mac都是優秀先進的作業系統,難分伯仲,這個罈子上的大多數人是說不出Win和Mac有什麼好壞的,無非是習慣、不習慣而已。這文章是Mac的主場,肯定要說Win的壞話,也有些時候僅僅是調侃(今天的第一部分中就有),而幾乎不會說Mac的壞話。如果有人覺得我這樣不客觀,我只有認了。作為對Win和Win粉的一點安慰,整個系列的寫作都將用我的小黑T420+正版Win7專業版+正版Office2010專業版完成。
6、本系列文章內容遵從CC版權協議, 在註明出處(Weiphone論壇 bbs.feng.com)和作者(weiphone id:fantacyleo)的前提下,可以隨意轉載。
最後一條:希望大家多多鼓勵、支援、批評、拍磚,讓我更有動力完成這個系列。並祝大家的蘋果之旅愉快。
下面進入正題,今天帶來的是:
第一章:Mac OS X核心故事之“N國語言”
這個系列文章裡幾乎不會講Mac的壞話,但也不等於不講Mac的壞話。這第一章我就來講講Mac的“壞話”——Mac OS X核心崩潰,俗稱宕機,別名“N國語言”(N是正整數)。為什麼用N而不是一個確定的數字?答案是這個N實際上在不斷變化,確切來說是不斷增長。
核心是啥玩意兒?說白了核心也是一個程式、一個軟體,是作業系統最核心最基礎的部分,專門負責硬體資源管理和排程,以保障其他程式和軟體的正常執行。大到你在暗黑3裡廝殺,小到你按下鍵盤上的一個按鍵並在螢幕上顯示出來,全都離不開核心的幫助。CPU、顯示卡、記憶體、硬碟、鍵盤、印表機等硬體本身都是些死東西,他們都會做好也只會做好份內的事情,比如你在鍵盤上按下字母“A”,鍵盤可以記錄下“A”鍵被按,但它所能做的也僅限於此了,它可不會自動幫你在螢幕上打出“A”,要想在螢幕上打出“A”,就必須由核心來幫你牽線搭橋,接收鍵盤傳來的訊號並給螢幕傳送指令。
核心也是程式,也是軟體,也是人造的東西,所以它不可能不出問題,bug和使用者的錯誤操作都可能讓核心掛掉,當然,核心對自身的錯誤是有糾正機制的,不過這也不保險,嚴重的錯誤會突破核心的承受極限,於是核心崩潰了。核心的工作是如此基礎而重要,一旦崩潰那是非常麻煩而棘手的。不過,核心臨死前會給我們留下一些有用的線索,一是會把系統執行的情況記錄在特殊的檔案中,二是會在螢幕上留下一些可見的資訊,就好像是核心的遺言,這也正是我要講的。
目前,個人電腦上的作業系統核心主要有兩大類:Windows核心和Unix/Linux核心(這兩大陣營的恩恩怨怨可以寫一大本書了。2002年有人拍了部紀錄片:作業系統的革命,http://www.tudou.com/programs/view/Nbz3C92uFuQ/大家有興趣可以去看看,我以後的文章裡也會用到這部電影裡的一些素材)。不同核心的遺言是不同的。Mac OS X的核心中包含了一個Unix的分支叫Free BSD,所以,Mac OS X早期版本的核心崩潰遺言就是Unix核心的崩潰遺言:
Mac OS X 10.0-10.1核心崩潰遺言:
再來兩張有趣的Linux核心崩潰圖:
看完上面幾張核心崩潰圖,除了那兩個吐舌頭的死人和死牛有點意思外,其他的大段英文和數字估計大夥都是一頭霧水。沒錯,這些核心崩潰遺言都是給專業技術人員看的,幫助他們排查故障,但對普通使用者來說無異於天書、火星文。早期的Mac OS X還不穩定,核心崩潰是家常便飯,時不時就跳出一段火星文。對普通使用者來說,給他們一大段火星文和簡單告訴他們電腦宕機了沒有任何區別,火星文或許還有副作用:會嚇到普通使用者。於是,一向注重使用者體驗的喬幫主不能忍了,他怒吼:蘋果電腦就算是宕機的使用者體驗也要做得比其他系統更好。幫主發話,下頭的人哪敢敢怠慢,馬上在10.2版本中拿出了一個使用者體驗更好的宕機畫面:
這個畫面用英法德日四種語言告訴你需要按住電源數秒強行關機,這就是大家熟知的“四國語言”宕機,也是“N國語言”的開始。這個“四國語言”提示真是與眾不同,只告訴你有問題要重啟,連繫統崩潰了都不告訴你;當然,Unix核心崩潰的詳細資訊也還是保留的,只不過是記錄在了專門的檔案中,而不是列印在螢幕上給普通使用者看。“四國語言”伴隨大家走過了10.2、10.3、10.4、10.5,到了10.6雪豹系統,N增加到5,新增西班牙語,俗稱“五國語言”:
我之前用pro玩那個GeekTool時遇到過幾次,可惜當時沒有截圖留念。。。如今,論壇上還是經常看大家稱呼“四國”、“五國”,其實,在10.8 Mountain Lion中,N已經增加到了6,新增的語言就是在10.8和iOS6中打了翻身仗的咱們的母語——中文:
不知道裝了10.8的各位有沒有遇到“六國語言”的?歡迎在下面跟貼出。當然,Mac OS X現在已經很穩定了,大家看到“N國語言”的機會非常非常渺茫,絕對比看到Win藍屏的機率小。
好了,Mac OS的壞話先說到這裡,既然提到Win的藍屏,本文的最後就來調侃一下Win的宕機畫面吧:
win95/98的藍屏,沒有輸出大量的錯誤資訊,基本上只有一個錯誤程式碼和出錯的記憶體地址。我認為這個藍屏畫面最經典的地方就是教會了大家按那三個鍵。
win2000藍屏,內容增加了:
win xp/vista/7藍屏,好多,越來越多:
可愛的win 8藍屏,世界又清淨了:
再來爆兩個和Win系統藍屏有關的糗事:
win 98釋出會上,當著蓋茨的面,98藍屏鳥:
http://www.tudou.com/programs/view/_tw8KCE27pY/
Surface平板電腦在釋出會上不堪演示者的亂點亂戳,當場宕機:
http://v.youku.com/v_show/id_XNDE3MDc0MjA4.html
————————第一章到此完結——————————
相關推薦
開篇和第一章:Mac OS X核心故事之“N國語言”
開篇宣告: 1、寫作動機和熱情來自兩方面:一是自喬幫主迴歸後,蘋果公司經歷了從瀕臨破產到全球市值第一的華麗轉身,其產品風靡全球。我本人當了4年的蘋果使用者,3年的weiphoner,在罈子上看到每天都有大量新人加入Mac/iOS大家庭,但是長期處於Win統治之下的
第五章:Mac OS X核心故事之從32位到64位
第五章:Mac OS X核心故事之從32位到64位 自從標配4G記憶體的筆記本面市以來,我就非常關心預裝作業系統是32位還是64位的,因為雖然理論上32位Win可以用到4G記憶體,但由於一部分記憶體要給系統和其他硬體裝置預留,使用者可見的記憶體並沒有4G,大概只
C/C++學習筆記第一天:MAC OS下搭建GCC和Sublime Text環境
本科的時候倒是學習了C/C++/Java 這一路搞研究,基本上就是網路模擬,也不太需要太多的程式設計,多半是演算法模擬,所以程式設計感覺越來越差。 人生總是那麼陰差陽錯,本科畢業的時候本來是計算機/金融雙學位,打算不再搞什麼計算機了,投身銀行算了。不料未及大四校園招聘,便被
[Mac OS X] 核心、驅動除錯
Kernel Debug Kit是蘋果官方提供的除錯工具包。 每個正式版本的系統都會有對應的Kernel Debug Kit,裡面包括以下內容 1.系統所有驅動及其符號表(.dSYM格式) 2.系統核心及其符號表(.dSYM格式),還有個debug kernel,debug
Mac OS X核心程式設計,MAC驅動開發資源彙總
一.Mac OS X核心程式設計開發官方文件: I/O Kit Fundamentals: I/O Kit基礎 - Mac OS X系統核心程式設計 Threading Programming Guide:MAC OS X 執行緒程式設計指南 - Mac OS
Mac OS X 核心Rootkit開發指南
1.引言 1.1 背景介紹 困 擾著不同作業系統的Rootkit已經由來已久,Linux,Windiws,還有各種類BSD等系統都受到了Rootkit的極大危害。目前廣泛使用的 一類“核心Rootkit”,是原來“檔案轉移Rootkit”的衍生和發展。這種發
mac os x環境下使用git+hexo搭建部落格:沒想到你們是這樣的npm和hexo
hexo deploy出現這個: { [Error: Cannot find module './build/Release/DTraceProviderBindings'] code: 'MODULE_NOT_FOUND' } { [Error: Cannot find module './bu
Mac OS X中Launchpad的圖標添加刪除方法(添加方法別試了,和Linux很大區別)
com nsh usr folders 單純 ron bsp blank 結構 說明:在Mac下的Launchpad圖標添加和刪除都與應用程序的app文件有關,如果單純的只想在Launchpad添加自定義的圖標,然後指定要某條命令運行時,建議不要這麽幹,Launchpad的
在Mac OS X 10.13.2中安裝nltk 和numpy
www. htm bsp ati imp optional org html pre 參考網址:http://www.nltk.org/install.html Mac/Unix Install NLTK: run sudo pip install -U nltk I
Mac OS X 下查看和設置JAVA_HOME
腳本 span 一個 命令行 mac os x 路徑 auto 重新 查看 JAVA_HOME是很多應用程序需要配置的東西,我安裝過很多,每次都要重新上網查怎麽找JAVA_HOME, 這裏把mac上的方法歸納一下。 mac上找JAVA_HOME很方便,把一個腳本跑一下就
<python3-cookbook>第一章:數據結構和算法
tool 排序類 集合 必須 類型 數通 個數 自己 def 第一章:數據結構和算法 介紹:這本書是高級用法,不是小白使用書目的:寫作目的是記錄下自己學習這本書的過程以及收獲 1.1解壓序列賦值給多個變量: 問題:現在有一個包含 N 個元素的元組或者是序列,怎樣將它裏
第一章:程序設計和C語言
統一 c程序 集合 out 包含 有一個 機器 文件名 部分 一、什麽是計算機程序? 所謂程序就是一組計算機能識別和執行的指令。計算機的一切操作都是由程序控制的,本質是程序的機器,程序和指令是計算機系統最基本的概念。 二、什麽是計算機語言? 人和計算機交流信息要
第一章:Python資料結構和演算法
第一章:Python資料結構和演算法 Python 提供了大量的內建資料結構,包括列表,集合以及字典。大多數情況下使用這些資料結構是很簡單的。 但是,我們也會經常碰到到諸如查詢,排序和過濾等等這些普遍存在的問題。 因此,這一章的目的就是討論這些比較常見的問題和演算法。 另外,我們也會
“全棧2019”Java第一章:安裝JDK11(Mac)
安裝 開發環境 ref 進步 技術分享 mac com 第一章 計劃 難度 初級 學習時間 10分鐘 適合人群 零基礎 開發語言 Java 開發環境 JDK v11 文章原文鏈接 “全棧2019”Java第一章:安裝JDK11(Mac) 下一章 “全棧2019”Java
《計算機網路-自頂向下方法原書第六版》~~~~~第一章:計算機網路和因特網
1.1 什麼是因特網 1.1.1 具體構成描述 1. 端系統(主機):資料的傳送或接受的終端。 2. 通訊鏈路:資料傳輸的媒介。 3. 分組:資料在鏈路中傳輸的一種封裝格式。 4. 路由器:負責轉發資料,用於網路核心中。 5. 鏈路層交換機:負責轉發資料,用於接入
mac OS X Yosemite 安裝 python lxml 和libxml2
2016-05-25 周海漢 2016.5.25 用python做資料分析或爬蟲抓包,離不開高效的lxml。但lxml安裝在mac下卻會失敗。 % pip install lxml Collecting lxml Usi
如何在Mac OS X 作業系統中安裝gcc和make
第一步:在Mac OS X系統中安裝Xcode 首先需確認已在Mac OS X系統中安裝好了正確版本的Xcode。例如,我使用的是Mac OS X 10.8.5,安裝的Xcode版本是5.0,儘管高版本可以安裝成功,但啟動時會報作業系統版本太低,不能執行的錯誤。需要安裝請進
Mac OS X 10.10優勝美地如何完美接管iphone上的電話和簡訊
自從今年蘋果第一次的釋出會上毛貓就特別注意這個功能,感覺特別Cool,特別方便。但直到今天毛貓才第一次成功測試出這個功能呀!雖然handoff功能還未測出來,但是覺得在mac上發簡訊和打電話也
scons使用者指南第一章:編譯和安裝SCons
如果Python沒有安裝,你會看到一條錯誤訊息比如“command not found”(在UNIX或Linux裡)或"python is not recognized as an internal or external command, operable program or batch file"(在W
開發藝術探索——第一章:Activity的生命週期和啟動模式
目錄 1.1 Activity 的生命週期和啟動模式 1.1.1 典型情況下的生命週期分析 1.1.2 異常情況下的生命寧週期分析 1.2 Activity 的啟動模式 1.2.1 Activity 的 LaunchMode 1.2.2 Activity 的Flags