开篇声明:
      1、写作动机和热情来自两方面:一是自乔帮主回归后,苹果公司经历了从濒临破产到全球市值第一的华丽转身,其产品风靡全球。我本人当了4年的苹果用户,3年的weiphoner,在坛子上看到每天都有大量新人加入Mac/iOS大家庭,但是长期处于Win统治之下的普通电脑用户,对Win之外的世界乃至个人电脑的历史背景并不了解,有意无意地带着有色眼镜来看苹果和其他非Win平台、产品。坛子上经常有许多针对苹果和微软的极端言论,还为了一些仅仅是见仁见智的问题吵起来,我觉得有必要让大家更多地了解苹果及其产品,并消除一些广为流传的误解和偏见,让论坛少些纷争和小白问题,也让用着苹果产品的各位更开心更放心,不至于像某些人产生Mac“ 华丽的袍子下面却满是虱子 ”的怀疑。二是我这两天偶然看到《程序员》杂志官网登载的 Mac OS X背后的故事 系列文章,原作者王越,美国宾夕法尼亚大学计算机系研究生,中国著名TeX开发者,非著名OpenFOAM开发者。阅毕,我被其深深吸引了,Mac OS X的背后有着太多有趣而鲜为人知的故事,不仅仅关乎Mac本身,还牵扯到乔帮主、Linus等一众IT界领袖,足可以在IT发展史上留下浓墨重彩的N笔。“Mac OS X背后的故事”系列尽可能想做到通俗易懂,但还是有许多技术层面的东西难以为一般用户所理解,在这个论坛上估计也没有多少人愿意看技术性太强的文章。我所做的是借鉴“Mac OS X背后的故事”的写作思路和一些故事,把Mac OS X前世今生中(我自己认为,同时也认为大家会觉得)最有趣最具代表性的东西展现给大家,对技术性太强的部分尽我所能进一步简化(“尽我所能”一方面是指有些内容必须有一定的知识背景,不可能做傻瓜式讲解,这部分我可能会少讲甚至忽略;另一方面,有些地方我自己都不能理解,更谈不上给大家科普了),并附上尽可能多的补充文字、图片、视频(其实原文也有不少补充阅读的材料,有些已经“404 Not Found”了。我会尽力找其他的来源替代。有些资料是全英文,估计大家看了头大,如果我觉得有趣,我会择其要点用中文讲解。有些视频,包括许多乔帮主的珍贵视频,必须突破GFW,抱歉了,有空我会考虑下载后转到youku)等来帮助大家了解Mac OS X的发展史、趣闻轶事、苹果文化、各路人马。
      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. 第二章:Mac OS X内核故事之三位一体:

    第二章:Mac OS X内核故事之三位一体(上)       乔帮主年轻的时候玩high了,弄出了人命,也就是他的女儿Lisa(话说这女儿果然像老爸):       尽管乔帮主一开始不愿意承认这个女儿 ...

  2. 关于 Mac OS X 内核技术来源

    Mach(Multiple Asynchronously Communication Hosts) 是一个由卡内基梅隆大学开发的操作系统内核,Mach的开发是为了取代BSD的UNIX核心. Mach ...

  3. Mac学习第一步——Mac OS X系统常用多点触摸板操作手势

    原文:http://os.yesky.com/118/34476618.shtml 果的 Macbook 笔记本有一个非常灵敏的触摸板,以至于苹果甚至专门推出了价格不菲的触摸板单独销售.对于刚刚入手 ...

  4. 穿越Java - 基础篇 第一章 快速带你入门 | 第3节 Java语言发展史

    主题:Java语言发展史 开发环境 更多干货 发展史 开发环境 基于:IntelliJ IDEA.Maven构建工具.JDK1.8.SpringBoot 2.3.4 .Spring4.3.28编写. ...

  5. 《MAC OS X 技术内幕》读书笔记第一章:MAC OS X的起源

    <MAC OS X 技术内幕>读书笔记第一章:MAC OS X的起源 前言 1 System x.x系列 1.1System 1.0(1984年1月24日) 1.2System 2.x(1 ...

  6. 《Abaqus GUI程序开发指南(Python语言)》——第一章 概述1.1 简单插件实例——创建带孔板有限元模型...

    本节书摘来自异步社区<Abaqus GUI程序开发指南(Python语言)>一书中的第1章,第1.1节,作者: 贾利勇 , 富琛阳子 , 贺高 , 周正光 更多章节内容可以访问云栖社区&q ...

  7. Mac OS使用技巧之一:查看Finder中的.bash_profile等系统隐藏文件

    作为一个程序员,经常要配置变量,可能要更改hosts文件,或者你闲着没事儿寻找homebrew给你安装的东西在什么地方.Mac OS的内核是Unix,Linux/Unix系统出于系统安全和用户安全的考 ...

  8. Mac OS X上获取鼠标事件

    原文地址:http://www.keakon.net/2011/11/10/监听MacOSX的全局鼠标事件 Mac OS X下怎么监听全局的鼠标事件呢? 首先不能错过的是Cocoa Event-Han ...

  9. 监听Mac OS X的全局鼠标事件

    因为Mac OS X下没有给力的鼠标手势软件,所以昨天突然想自己实现个玩玩,便研究了一番怎么监听全局的鼠标事件. 首先不能错过的是Cocoa Event-Handling Guide这篇文档.它详细介 ...

最新文章

  1. 小程序 navigator 无法跳转 tabBar上的页面
  2. FBI很气愤:黑了CIA的熊孩子又回来了
  3. 数据结构:堆(Heap)
  4. 用c语言链表编写便利店零售系统,链表实现多项式求和(C语言)
  5. 【Python】手把手教你用Python做一个图像融合demo,小白可上手!
  6. 1分钟读懂直播和音视频通话的区别
  7. java 断点续传组件_chunkupload 文件上传断点续传组件(java) - 正式发布
  8. elementui更改默认样式
  9. PV、UV、UIP、VV、CPC、CPM、RPM、CTR指的是什么?
  10. 利用OGG实现Oracle到Kafka到Greenplum的增量数据同步
  11. 使用Python分析网易云歌曲评论信息,我发现了这些有趣的规律
  12. 深度学习三巨头共获 2018 年图灵奖(经典重温)!
  13. Caffe傻瓜系列(8):命令行解析
  14. winrar 4.20注册码
  15. 微信游戏推荐系统大揭秘
  16. 计算机辅助三维设计大纲,《电脑辅助三维设计》课程教学大纲.doc
  17. 遍历输出数组-----淫巧
  18. Spring5.0响应式编程入门
  19. C++基础知识(7)
  20. eval解析json字符串

热门文章

  1. 开一家300平方米的亲子乐园需要多少钱?看完你就懂了!
  2. 艺术对于学计算机来说有用吗,人工智能都能画画了,学艺术还有什么用?
  3. 分词的原理和认识以及工具的使用
  4. ArcGIS 每天一个高级制图技巧:开篇碎碎念
  5. 图像分割 - Canny边缘检测
  6. 加速想象力(北京)技术研发中心正式挂牌
  7. VMware虚拟机是什么?
  8. 网易云音乐歌曲评论爬虫(附源码)
  9. 探究NFC SWP移动支付技术
  10. 2023年程序员前景如何?还值得入坑吗