为什么从苹果笔记本硬盘上下载的视频放到硬盘上后就看不了,每次都显示项目已被mac os使用是怎么回事?

【图片】[转帖威锋] 从新手到高手!一步到位!Mac操作指南完全说明【macbook吧】_百度贴吧
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&签到排名:今日本吧第个签到,本吧因你更精彩,明天继续来努力!
本吧签到人数:0成为超级会员,使用一键签到本月漏签0次!成为超级会员,赠送8张补签卡连续签到:天&&累计签到:天超级会员单次开通12个月以上,赠送连续签到卡3张
关注:318,511贴子:
[转帖威锋] 从新手到高手!一步到位!Mac操作指南完全说明收藏
顺序 目录:桌面;Lanuchpad;MissionControl;Dock;Finder;废纸篓;搜索;快速预览;截图;听写;键盘;快捷键;系统偏好设置;蓝牙文件交换;字典;Safari;下载APP;iTunes;iCloud;日历;Time Machine;分享功能;通知中心;光盘刻录;钥匙串访问用command+f 搜索你需要的内容
在登陆系统之前需要了解Mac操作中的手势都有哪些 鼠标指针的变化:①鼠标指针,日常移动;②I 型光标:进行文本的交互;③“风火轮”:表示当前‘忙’的状态;④不可行:不可完成当前的任务;⑤添加:直接拷贝/添加到指定处
首先,先看到是桌面底下的是Dock,一些快捷打开的程序或正在运行的程序会显示在上面其中正在运行的程序下方会有小灯亮起(如果没有灯,可以在‘系统偏好设置’程序里的‘Dock’“显示已打开的应用程序指示灯”中勾选)Mac不像Win那样,按住左上角关闭按钮就是退出程序,在Mac中‘关闭’的涵义只是关闭窗口,想要 退出程序 需要在菜单栏中或Dock右键“退出”程序退出程序快捷键是⌘command+Q; 关闭窗口快捷键是⌘command+W; 最小化窗口快捷键是⌘command+M 点击此处 查看Apple官方 桌面 说明
如果某款程序不在 Dock 上,你也能在 Launchpad 中找到它,拇指或其它三指合拢可激活 Launchpad在Launchpad中可以任意拖动程序,已达到自己想要的排列顺序,在App Store中安装的程序(APP)可在Launchpad中直接删除卸载调整 Launchpad的背景可视化特效可按control+option+command+B
Mission Control Mission Control 是可以让你了解所有打开的窗口,以便切换你需要的窗口左上角是Dashboard ,里面有很多Widget小插件,比如天气、汇率、时钟等…右上角是桌面缩略图,可以新建多个桌面或全屏打开的程序可以四指或三指(根据自己设置)在各桌面或全屏程序中切换…点击获取更多Widget小插件 想要关闭多余的桌面可按X关闭
DockDock,与win下的‘开始’的地位同等重要(但win8已经把它抛弃了~),可以自定顺序,把不常用的程序用鼠标单击不放拖到Dock以外的区域就可以让它在Dock中消失,当然 也可以把常用的程序拖到Dock里,以便捷打开。Dock左端有不可移动的Finder和一些常用软件,中右段是正在运行的程序,右侧也有不可移动的废纸篓和‘堆栈’,那么什么是‘堆栈’呢?堆栈就是‘可以使用它快速访问常用的文件或文件夹’
补充:将项目拖到 Dock 上时,该项目的替身被放置到 Dock 中。原始项目没有被移动。
制作堆栈也十分简单,只需把文件夹拖到到Dock右端即可,比如 将‘应用程序’文件夹拖到dock上,就形成了堆栈,利用堆栈可以快捷访问里面的文件/程序(十分怀念雪豹里的自带堆栈)
更改堆栈里的视图大小也十分简单,按command+(加号)就是放大图标,按command-就是缩小图标
Finder Finder 相当于windows下的‘我的电脑’ 资源管理器,文件和程序可以从Finder 中管理‘系统’文件夹中就是系统文件(新手不要乱动哦);‘应用程序’就是本电脑的app程序所在文件夹;‘用户’文件夹顾名思义就是你个人的文件夹;‘资源库’是一些本机程序所需的运行文件和素材。拷贝(复制)的快捷键是command+c;粘贴 command+v;一些文字的剪贴是command+x点击此处查看Apple官方Finder说明 在Finder的标题栏里‘右键’选择‘自定工具栏…’,可以根据个人喜好或需要程度来自定 工具,当然 也可以把最常用的文件夹拖到工具栏里 达到快捷打开的目的… ‘前往文件夹…’功能可以仅凭地址 来打开文件夹,在前往复杂深邃的文件时相当有用,前往文件夹的快捷键 shift+command+G 在‘Finder’偏好设置中可以根据自己需求设定自己所需在边栏中显示的项目,推荐把‘外置磁盘’选项的对勾划上,因为 插硬盘的时候查看十分方便 当你要查看一个文件夹或app程序的‘属性’时,需要在‘文件’里选择‘显示简介’或者按下快捷键command+i便出来一个信息框,看要查看项目大小/修改日期/权限等在这个信息框里 你可以更改这个项目的属性,比如更改图标
只需把icn图标文件直接拖到 信息框左上角的图标中,即可替换/更改图标,要还原按下delete即可还原原状也可以更改使用权限,比如这个文件你只想读,不想写的话,在底部方框中 选择‘读或写’的要求,也可以设成不可访问的文件… 新建智能文件夹新建智能文件夹,是可以根据用户自己所需量身打造‘文件夹’,这不是传统意义上的‘文件夹’里面没有实体的文件,只是把用户需要的变量和因素来查找符合条件的文件 在其中,当然 这里面可以实时删除文件的。里面有非常多的变量让用户选择,Mac会根据你的条件查找整机里符合的文件来分类,比如只有MP3格式的文件/今天创建的文件等… 当你运行的运行程序出现未响应的状况或卡死的状况时,按下‘退出’键也无法退出时,不妨试一下 option+command+esc 选择你要退出的程序,强制退出,十分管用~ 在点击菜单栏之后,按不同的功能键会出现不同的效果,比如按shift键的时候,菜单中的‘强制退出…’就变成了‘强制退出当前的程序’;比如按option键的时候,菜单中的执行命令可立即执行,关机不再等待/确认,就可以立即关机,当然 还有很多奥秘
废纸篓 废纸篓不用多说,和win下的回收站一样想要清空废纸篓就可以右键废纸篓选择‘清倒废纸篓’,如果想‘倒’的干净点 在标题栏中的‘Finder’中选择‘安全清倒废纸篓…’,陈冠希老师当年就没有选择安全清倒废纸篓~关于废纸篓的小技巧:把移动硬盘或U盘或光盘等一些外部设备 拖到到废纸篓的时候,这时候废纸篓变成‘推出’的样子,这样就可以安全推出设备,是不是很方便?
强大的搜索“善用搜索”Mac中的Spotlight搜索也十分强悍,你几乎能用它搜到任何文件(系统文件除外),算术题它也会~在Mac中搜索的快捷键是command+f,在不同的程序中 搜索会不同,比如在Safari中按下⌘f 会搜索当前网页的关键字…在Finder中就是搜索文件……
强悍的快速预览在Mac中你可以不用打开文件即可快速查看文件,十分强大,只要合理文件都可以快速预览,只需选中项目 按下空格键即可 或者用三指单击项目文件也可以快速预览快速预览支持的文件十分多,也支持第三方程序的扩展;用手势放大或点击右上方全屏功能即可全屏,甚至可以多选项目 按空格来 快速预览
万能的截图在Mac中自带了 最‘完美’的截图功能:全屏截图:按下Command+Shift+3 ,截取全屏图像将以PNG透明格式保存到桌面上。区域截图:按下Command+Shift+4,鼠标变成十字准星,单击划出你想要的截图范围,自动保存到桌面上,想要取消截图按esc,想要移动选区按空格键即可窗口截图:按下Command+Shift+4后,再按下空格键,这时鼠标变成'小相机',点击想要的部件,就可以以PNG透明格式存在桌面上
懒得打字?动动嘴就行~Mountain Lion中自带 听写功能,懒得打字?动动嘴就行!只要在你需要键入/打字的地方,你都可以用说话的方式输入。听写功能可将你说的话 通过联网 转换成文本。说出“逗号”或“感叹号”时,听写功能会为你加上标点‘,’‘!’。默认按键是按两下fn(在键盘左下角)即可唤出 听写功能。设置在‘系统偏好设置’中的‘听写与语音’
点击此处 查看Apple官方 听写 说明
音量/键盘灯/屏幕亮度 调整 关于调节屏幕亮度/键盘灯亮度/音量大小 我相信不用说分享一个小技巧,就是微调,所谓微调就是以¼的量调整,按住Shift+Option+f1就是降暗,Shift+Option+f2就是缓亮,其它键盘灯和音量大小也可以组合Shift+Option来按还有一个小技巧,就是在调节音量大小时候不发出“嘟嘟嘟”的声音,首先按shift不放,再按f11/f12,这样调节音量就是无声了,也可以组合上面的微调键
快捷键 快捷键在Mac的操作中 有着举足轻重的地位,一些繁琐的操作 仅凭快捷键就可以完成在菜单中,右侧的字符便是快捷键的方式由于快捷键十分繁多,就不一一举例详情 点击此处查看Apple快捷键 大全
系统编好设置 系统偏好设置与win下的控制面板功能相同,但Mac的控制面板逻辑性/归类方法要比win的控制面板简洁明了,新手上门也会很快。首先打开‘系统偏好设置’,从中可以看到如何你想设置的一切,这个面板也可以扩展,后续会讲到…
首先先要根据个人情况设置触控板/鼠标 新上手的机子,肯定有不少人抱怨触控板默认下无法‘轻拍’,单击需要使劲按下“嘎嘣嘎嘣”十分不方便也十分心疼这样按打开‘触控板’下面红框的就是‘轻拍来点按’把√划上即可轻拍… 有些新手一直以为在Mac中没有右键的说法,其实右键是有的,但唤出方式与Win不同,Mac下的右键需要双指点按,当然
如果习惯了win
也可以设置成右键的方式下拉选框,选择你习惯的方式即可……其他手势功能和鼠标手势 根据自己习惯自己设置,百变不离其踪,设置 十分方便 双击标题即可最小化在win下 双击标题即可最小化,这是十分方便的一向功能,Mac中也可以设置~首先打开‘系统偏好设置’,找到‘Dock’项目,‘连按窗口的标题栏以将窗口最小化’√划上 ⬆另外,在这里用户可以调节Dock的大小、Dock的自动隐藏,最小化缩到图标里…或者缩放的动画效果,还有之前提到的“显示已打开的程序的指示灯”也是在这里设置另外,再向大家推荐一个功能—触发角,触发角就是可以根据鼠标指针接触屏幕四角而达成一些快捷功能比如,当鼠标指针滑到屏幕左上角时 活动窗口滑向四边,显示桌面;当鼠标指针滑到左下角的时候
唤醒Mission Control
以切换窗口,指针滑到右下角 屏幕熄灭但机器运行…这一切都要在‘Mission Control ’中设置,左下角找到‘触发角…’ 四角用户根据自己习惯自定,如果不习惯或感觉麻烦也可以空着不设置 如果在设置过程中按下⌘⌥⌃等 功能键,那么在触发四角的时候也要搭配 功能键使用,这样可以防止误触到四角
部分 有锋友抱怨 不知为什么在登陆界面莫名多了一个“客人账户”,那么改如何删除呢?首先‘系统偏好设置’,找到‘用户与群组’,左侧候选栏里选中‘客人账户’,再单击左下角小锁
输入用户设定的密码解锁 权限 ,如果没有密码 直接空着不填点‘确定’在“允许客人登陆到这台电脑”的选项中把 √取消即可关闭‘客人账号’,需要的时候可以再开启… 这个是‘登陆选项’用户可以设定 登陆时的选项,不如是直接登陆用户账户还是显示登陆界面后在登陆用户等,根据个人需要设定吧…或者,有些程序莫名的随机启动,和win下‘启动’菜单一个道理,自己可以设定哪些程序可以自动随机启动(按下方+号),哪些不要随机启动(下方-号)点击‘当前用户’选择‘登陆项’中 你可以看到哪些程序是随机开启启动的…自己设定
另一个十分常用的功能就是—让Mac成为WIFI热点如果用的是有线网络,不是无线网络,那么可以让你的Mac成为WIFI热点,把有线网络形成WIFI的形成发散出去,供 手机或一些设备利用电脑的网络上网打开‘系统偏好设置’—找到“共享”,在左侧选择选择你要‘共享’的内容,之后在右侧选择你要‘共享’的方式,如下图所示,就可以让你的Mac成为WIFI热点 “共享”还有很多功能,WIFI热点只是一个典型例子,其他 共享 也很精彩~自己尝试一下。关于系统偏好设置先讲到这里,其它功能大家可以自己体验体验
蓝牙文件交换 这个程序是非常好用的!当手头上没有数据线,要想给手机传图片/歌曲/文件 就可以用‘蓝牙文件交换’这个程序搞定!(注意!有些手机是不支持的!主要以智能手机为主,不支持iPhone)首先在“应用程序”—“实用工具”中找到“蓝牙文件交换”这个程序传输文件的方式有两种:先说第一种,是类似发送信息的方式把文件发送出去(类似与手机与手机直接传歌);①首先打开程序会出来文件选择窗口,选择你要传输的文件 ②找到手机,点击后 会出现配对设置,在手机中输入电脑出现的配对码 即可配对,之后再传输就不用再配对了 ③手机支持!这样就可以传输文件了,手机会以信息的提示 收到文件 另一种是直接访问手机的文件管理器
可以直接把文件放到手机需要的目录下即可①点击选择‘文件’—‘浏览设备…’ ②与上面的②相同,需要手机配对③出来一个窗口,这样就可以访问手机里的储存空间,可以把需要的文件拖到想要的目录下
字典 ‘字典’这个应用程序虽然不起眼,但内容十分强大这个就是‘字典’程序,command+(逗号)即可唤出当前程序的偏好设置,选择你所需要的词库~(Mac自带的词库非常少,下面部分我会补充词库) ‘字典’这个程序在浏览网页时非常方便,当有不认识的单词或不明白的术语,都可以 “用三个手指轻按(在系统偏好设置中设置)” 可唤出字典功能 扩充自带的词库!
首先,引用我之前教大家的“前往文件夹…”的功能打开 Finder,在 Mac 屏幕顶部菜单栏选择 “前往” — “前往文件夹”。在弹出窗口里粘入下面这个路径 /Library/Dictionaries 然后就转到Mac系统资源库的‘字典文件夹’,把字典包拖进去就行了(如果弹出个警告框,点击 “鉴定”,然后输入密码就行)扩展后再打开‘字典’程序,⌘,偏好设置中√你需要的字典即可 以下是几个常用的扩展词库115网盘 英-汉字典词库115网盘 汉-英字典词库扩展更多词库
Safari Safari是Mac中自带的网页浏览器,通过 iCloud 令你的 Mac、iPad、iPhone 协作得更有默契Safari 是第一个支持 HTML5音频和视频标签的浏览器和第一个支持 CSS3 动画的浏览器。
首先,也是了解一下在Safari中常用的手势都有哪些①双指轻扫,用于网页中的后退/前进 ②双指缩小,在多标签中转换标签 ③双指扩大,放大查看网页
点击查看Apple官方Safari说明 top sites功能是Mac Safari独有的一项功能,它能都打开网页开始,方便查看一些常用网页,还会提示有哪些网页已经更新 我打开Safari为什么没有发现top sites?首先在使用Safari之前,需要设置一下你需要的功能,打开Safari的偏好设置⌘(逗号),会出来Safari的偏好设置,从中可以设置任何你需要的一切‘Safari的打开方式’就是你启动Safari第一眼所看到的是什么,根据个人设置,可以是某个网页,可以使书签,也可以是top sites
偏好设置中的功能
通用:设置基本用户操作方式,包括主页,历史记录,下载目标文件等…书签:书签功能 能设置在顶部书签栏中要显示的项目,以及联系人的个人主页等标签页:标签页用于 当你点击某个连接时 标签页显示的状态自动填充:自动填充Web表单,比如在填表的时候,只需之前设置你的个人信息,它会记住 自动当你填充密码:这个功能很强大但也很脆弱!它能记住你邮箱/微博/论坛等的用户名和密码,帮助你下次不用重复繁琐的输入密码。但是!它能查看你的密码,所以在把电脑借给朋友的时候 一定要设置一下用户密码,不然 你邮箱/微博等用户名和密码 一览无余 全部都知道安全性:网页安全,总之打开为好隐私:里面存储的cookie和一些网站的数据,与win下的道理相似通知:用于网站消息的通知,比如微博/邮件受到新消息 它会提醒你,但目前我一条还没有受到= =,比较鸡肋扩展:功能强大!能够扩展Safari的功能,比如下载器的联动插件,Google翻译等,还有一个很强大的屏蔽视频网站广告的插件 下面讲到高级:所谓的高级 其实就是其它的补充内容,在中可以可以设置字体,编码等有一个技巧,就是不用Flash插件 用HTML5观看视频,如同iPhone和iPad那样,发热量小在‘高级’中的‘在显示栏里显示‘开发’菜单’这样,再打开视频网址的时候选择‘用.户.代.理.’就可以显示的是移动版的网页 和iOS上观看的一样,用完之后关闭 或 选回‘默认(自动选取)’ 默认搜索引擎
就根据各位的习惯和所在地域设置吧,需要搜索的时候 直接在地址栏里打入关键字即可搜索
收藏网址只需把地址栏中的地址 拖拽到下面的收藏栏里即可,或者也可以按照紫色箭头拖到top sites中显示。 下载太慢?不如把下载地址拷贝了,到下载器中去下载,找到项目右键'拷贝地址'再到下载程序中新建项目即可 其它Safari神奇的扩展功能谷歌翻译/视频下载 扩展部件下 载OpenGG 视频网址屏蔽广告 说明Adobe官方 Flash播放器 下载
下载 app应用程序下载来说目前就有两个渠道,一个是从
App Store里下载,里面的软件都是需要购买的(俗称 正版),当然比如QQ、PPS、迅雷等常用软件都是免费的,需要Apple ID来购买,和iTunes里的Store是一样的,账户可以共用,如果经济条件允许的话 我们还是推荐在App Store里安装程序在Store里,按下‘安装’,程序就会自动的安装到Mac上,不用安装包,一切都是自动的,它也会更新已安装的软件,卸载程序也非常简单,直接把程序图标拖到废纸篓里就是删除程序⌘⌫我着重讲另一种渠道,因为这种渠道是最常用的,不为别的,就为它基本是免费的。在威锋上就可以下载Mac软件,都是免费的,大部分也是破解版的,就体验上来说与‘正版’一样,只不过初期安装 要费脑筋(是因为在Store里安软件太白痴了,用多了人会变傻~)1.Wefiler网盘上下载软件,但是需要邀请码,邀请码在235楼点我 直达235楼2.Mac综合区或软件游戏分享区里会有帖子分享 程序3.从其他网站上下载,比如MacX、MacApp等网站,度娘一下,你就知道我从网站上下完了程序,该怎么安装呢?下载完后,在‘下载’文件夹中可以看到你下载的安装包,安装包大致分为两类,一个是dmg格式,一个是pkg格式,没有win的exe文件dmg是压缩镜像文件,相当于在Win上常见的iso文件;pkg格式属于系统级软件的安装程序,目前以dmg格式居多
dmg首先是dmg安装文件,双击打开文件会出现一个窗口,程序就在里面,安装方法也比较简单,就是直接把程序图标拖到‘应用程序’文件夹里就行了(尽量都放在应用程序文件夹里)相当于拷贝/解压的过程,拷贝完之后
就安装完毕了~是不是很简单 另外,在安装完毕后,记得推出 dmg安装包,之后这个安装包就没什么作用了,可以删除了⌘⌫(也可以留着 供下次或给朋友安装…) 新手可能疑问了,就这样复制到文件夹里就是安装程序?是的,因为Mac使用的是linux的文件分区格式和存储方式,运行文件都包含在‘程序’包里,没有win所谓的程序文件和快捷方式启动,mac一般不存在文件碎片和磁盘整理的问题如果要查看app程序 里的程序文件夹,选择程序 右键‘显示包内容’,里面就是这个程序所需的运行文件,全部包含在里面,是一个整体!因此要删除程序的话只需拖到废纸篓
pkg接下来是pkg安装包,与dmg不同,pkg需要’安装器‘这个程序安装,一般pkg程序比较大型。安装方式和win差不多,按照一步一步的顺序就能安装完毕了 pkg安装后的程序想要卸载,需要卸载器或卸载程序 来卸载,因为在’资源库‘里也会有文件,故 直接拖到废纸篓里是删除不干净的
iTunes自它诞生之日起 就背负着‘复兴苹果’的伟大 重任,如今经过10代的洗礼用iTunes的用户不用多说,再熟悉不过了,这里我不着重讲解怎么操作,喜欢iTunes的人 恨不得抱着电脑,恨iTunes的人恨不得砸电脑点击查看具体Apple官方iTunes说明这是iTunes11,与之前的iTunes有了很大的改观,风格变得清淡,与iPhone5传达的感觉 一样,但取消了cover flow模式 很多人不爽(包括我)如果不习惯iTunes11没有左侧边栏 是可以打开的,在菜单栏里找到“显示”—‘显示边栏’即可,快捷键是command+option+s,剩下的一切与之前 无异 这里 告诉一下我使用iTunes后的心得,打开‘偏好设置’⌘(逗号),在iTunes中也分成各个项目来设置,但有些在天.朝是无法使用的……在通用设置里,是可以勾选你需要显示的项目。视图 就是显示窗口的效果,‘插入CD时…’这个后面会讲到
有些用户在使用过一段iTunes之后 发现电脑的容量急剧缩小,可能有人知道为何如此,就是因为iTunes的一个‘贴心’设计我和大多数用户都喜欢和习惯把‘音乐‘放在一个文件夹里,建一个音乐库,这个’文件夹‘都是音乐文件,而在iTunes的世界中有一个叫做‘iTunes Media’的文件夹‘iTunes Media’文件夹的主要任务就是把用户拖入的媒体文件(音乐/视频)拷贝一份到iTunes里,理论上 是直接可以把拖完的音乐文件删除的但我们大家的习惯都是自己‘手动’的建一个‘音乐库’(文件夹)。所以,这就造成了同一个歌曲在电脑里有两份,iTunes Media文件夹一份,我们自己建的音乐库一份这就造成了电脑的容量 减少/下降,当然,是可以关闭 拷贝iTunes Media文件夹 这个功能的。在偏好设置中找到‘高级’下的“将添加到资料库时将文件拷贝到itunes media文件夹”这一项的√去掉。 iTunes‘导入设置’ 是可以把CD里的歌曲转换格式拷贝到Mac上,‘导入设置’就是设置CD转换成的格式;需要翻刻的时候只需选中你要翻刻的项目,右键 “创建XXX版本…”即可CD中的数字音乐比特率约为1410kbps (简单来说数字越大 音质越好) ,一个3分钟的音乐 大约30MBAAC编码格式16~320kbps :AAC相对于mp3,AAC格式的音质更佳,文件更小 ,在iTunes音乐商店下载的歌曲一般为 256Kbps AAC ,一个3分钟的音乐 大约6MBAIFF编码格式:与CD的编码率相同,主要适用于电子音响设备,大小有CD音源决定Apple Lossless:与CD的编码率相同,苹果研发的无损音频压缩编码格式,在苹果设备中听高音质音乐 Apple Lossless最为合适Mp3编码格式64~320kbps:大众最熟悉不过的格式,就是因为使用的人多,才让它保持生命,一个3分钟的音乐 大约8MBWAV编码格式:目前公认最好的音频格式
最接近CD的音质,虽然苹果设备是支持WAV格式的,但不支持歌词/插图,所以在苹果上编辑不如Apple Lossless完整
在Dock中显示iTunes播放专辑封面 这是一个小插件,可以让Dock中的iTunes图标显示成正在播放专辑的封面
Remote Remote是可以使iOS设备当做Mac的‘遥控器’来使用,首先是在iPhone或iPad中安装点击此处查看Apple官方Remote说明点击下载iOS设备Remote的app在iOS设备上安装Remote完毕后 ,在iTunes中输入 iOS屏幕显示的适配码即可配对(同一个局域网内) 操作方式如同iOS自带音乐播放器一样,只是声音是从Mac上播放的…躺在床上也可以换歌~
点击此处查看Apple官方Remote说明点击下载iOS设备Remote的app
iCloud iCloud 不仅可存储你的内容,还可让你在所有设备**问你的照片、日历、通讯录、文档以及更多内容。十分方便,在Mac下编辑好的通讯录、备忘录、日历等信息会通过iCloud自动同步到iOS设备上,同时 在iOS设备上 照的照片以及修改的文稿也会通过iCloud回传到Mac上…点击查看Apple官方iCloud说明点击访问iCloud首先需要开启iCloud账号,iCloud账户有两种,一种是有iCloud邮箱账户,这个需要重新注册以@me或@iCloud结尾的账户;另一种就是普通邮箱也可以注册的iCloud账号,但是‘邮件’这个功能是无法使用的,需要单独在“邮件”程序中单独设置 在"系统偏好设置"中点击 iCloud,输入你的 Apple ID,然后选择要启用的服务 邮件:此功能需要iCloud邮箱开启 通讯录:可以与iOS上的通讯录同步,或在iCloud上备份 日历与提醒事项:在日历中添加的任务可自动同步到iOS设备上,提醒事项也是如此 Safari:同步Safari中的标签页 以及在iOS上浏览过的网页 照片流:简单来说就是在iPhone上照张照片,立即会在Mac的iPhoto中出现~~借给朋友时 应该把此项功能关闭 文稿与数据:iWork办公套件,在iPhone上修改文稿的时候 会自动同步到Mac上,还有游戏存档~~ 回到我的Mac:简单意思就是远程访问,复杂的来说 我也没有用过…… 查找我的Mac:与查找我的iPhone一样,丢了 被偷了可以找回来(除非那贼太笨或压根就是个苹果白痴…个人建议在‘关闭’这个功能的时候也要输入账户密码)
登录百度帐号推荐应用Mac技巧之苹果电脑上不发热且能下载视频的 B 站客户端:Bilibili for Mac
引用功能被关闭了。
从去年开始,我的首选视频网站就从优酷、搜狐变成了 Bilibili。视频全、没广告,无聊时还能看字幕。但是苹果电脑看 Flash 视频的后果大家都懂的:CPU 占用率飙升,Mac 发烫。推荐个新出的苹果电脑 Mac OS X 系统上的 B 站客户端:Bilibili for Mac,硬解播放不发热,弹幕收发和过滤功能很全面,视频下载功能也很爽。Bilibili for Mac 的其它特性还有:自动拼接分段视频、自动选择最快的源缓冲、视频清晰度切换、弹幕透明度调整、本地视频弹幕播放、网页书签调用播放器、弹幕关键词屏蔽、弹幕智能屏蔽,一键屏蔽吵架,剧透等弹幕 ……Bilibili for Mac 官网下载
如您想转载:
微信扫描订阅您的位置: >>
  作者王越,美国宾夕法尼亚大学计算机系研究生,中国著名 TeX 开发者,非著名 OpenFOAM 开发者。
                    
Ellen Hancock曾任苹果公司技术总监
  Mac OS X 背后的故事(一)力挽狂澜的 Ellen Hancock
  故事还得从 20 世纪 90 年代说起。Ellen Hancock 是本文的主人公,也是一位女英雄。她因在 IBM 的经历而被人们所熟悉。 年间,Ellen Hancock 在 IBM 共工作了 29 年。1985 年,她成为 IBM 的副主席。在
年间,Ellen Hancock 担任过 IBM 通信产品的主席,并在 1992 年被选为资深副总裁。1995 年 9 月,她被时任美国国家半导体(National Semiconductor)CEO的 Gil Amelio 忽悠,跳槽来到这个企业,做执行副总裁。她在这里带领团队完成了 CompactRISC 架构,这个架构事后成为 ARM7 系列的前身。很多人早已经把她忘了,也很少有人能够在回忆时将她和 Mac OS X 联系起来。但事实上,她是让苹果放弃 Copland 转而购买 NeXT 的关键人物。
  早在 1994 年,Gil Amelio 就找好了下家 Apple,成为 Apple 董事会的成员。1997 年 2 月,Gil Amelio 从 National Semiconductor 辞职,并成为 Apple 的 CEO。为了紧跟老板的召唤,Ellen Hancock 再次被忽悠,来到了当时危机四伏的 Apple。这时是 1996 年 5 月,为什么是危机四伏呢?还得从早先的事情说起。
  20 世纪 80 年代,卖可乐的 John Sculley 成为 Apple 的 CEO,随之 Steve Jobs 被轰出Apple。毕竟可乐和计算机不是一回事,因此不管是硬件还是 Mac OS,整个公司的开发项目越来越受阻。而且由于先天的不足,Mac OS 从诞生之初就不具有一个现代操作系统所应有的特性。所以,在 1987 年,开发下一代操作系统的计划呼之欲出。具体的规划是,把新的系统所需要的功能,写在一堆卡片上。短期可实现的目标,比如增加颜色支持(当时计算机仍是黑白的),写在蓝色的卡片上;长期的目标,比如多任务功能,写在粉色的卡片上;而在可预见的未来都无法实现的长期的目标,比如加一个纯物件导向的文件系统,就写在红色的卡片上。在这样的思路下,Mac OS 的开发团队马上就被分成两个组,一个叫蓝组,目标是在 1991 年,发布一个关于 Mac OS 的更新版本;另一个叫粉组,和蓝组同时工作,计划在 1993 年,发布一个全新的操作系统。
  1991 年 5 月 13 日,蓝组顺利按时完成开发任务,发布了 Mac OS 7(一般被称为 System 7),而粉组却没做出什么有实际用途的东西来,因此接连跳票。而且,由于 Mac OS 7 的发布缺乏人手,为了保持正常发布,常常需要从粉组抽调人员参加蓝组的开发,再加上 Apple 当时把重心放在了和 IBM 等公司的合作上(Taligent 项目)而不是在粉组上,最终导致了粉组项目夭折。而本来 Apple 指望和 IBM 合作的Taligent 项目能开发出一个可用的新系统,但后来 IBM 不跟 Apple 继续玩了,因而 Taligent 的果子又吃不到,Apple 相当郁闷。这时由于 Mac OS 有先天不足(单任务,没有内存保护),再加上 Apple 以及第三方软件的无限量增加(在这段时期,单 Apple 自己就已经加入了 QuickDraw、PowerTalk、QuickTime 等软件和技术,每一个都比 Mac OS 本身来得大),Mac OS 的问题终于大爆发。上个世纪 90 年代,Mac OS 给人的印象就是很不稳定、经常崩溃,同 Windows 95 留给 PC 用户的印象差不多,甚至更甚。
  Taligent 项目挂掉后,Apple 自己尝试过十多个不同的内部项目,但大多没做多久就夭折了。而这时正是 Windows NT 走向成熟的关键时期。眼看着日子逐渐变得不好过了,Apple 开始重新开始考虑建立下一代操作系统的事情。1994年,Mac OS 7.5(Mozart)发布后,Apple 推出新规划,建立一个全新的操作系统,以 Copland 命名(纪念 Aaron Copland,Mac OS 的发布以音乐家名字命名,和 Mac OS X 后使用猫科动物名字很不一样),这个项目将有一个全新的内核,具有类似 Windows NT 内核的所有高级特性,而老的软件都当作独立的进程模拟运行。这个项目时间紧、任务重,1995 年 3 月公布计划,预期 1996 年发布。而 Copland 后的版本 Gershwin(纪念 George Gershwin),预计 1997 年发布,将重写 Mac 的所有系统主要部件,以适合新内核的各种特性。
  Copland 将使用微内核技术,只做任务和内存分配。除此之外的所有功能,比如文件系统、硬件驱动等作为微内核上的服务运行。而 Mac OS 的所有用户界面功能将成为一个独立的框架,称为蓝盒(Blue Box,今后介绍 Mac OS X 时,我们还会遇到这个词)。所有的任务相互独立,占用独立内存,也可以用 IPC 相互交流。学过操作系统的人都知道,微内核是当时的一个热词,一个系统只有被称为微内核才可被看作是先进的,当时还有针对 Linux 系统的著名的 Tanenbaum-Torvalds 笔战。但事实证明,所有本来想做成微内核系统的成功项目都放弃了原先的设计(包括 NeXTSTEP、Windows NT),因为这种类似 Mach 微内核的系统往往难产,GNU/Mach + Hurd 之类的项目做到现在经过了20年,仍未成事,一年内搞一个微内核系统谈何容易。
  微内核还没搞成,Apple 几乎所有开发组的成员都来添乱。大家都说自己做的东西很重要,一定要加入 Copland 开发组,所以 QuickDraw GX、OpenDoc 之类的开发组产品成为新系统的核心组件,甚至类似用户界面皮肤之类的开发组都来凑热闹,马上就使 Copland 成为一个无法维护的项目。开出的计划越来越长,项目越来越多,但相关进展越来越少,完成速度越来越慢。即便做出了产品,连测试人手都不够。1995 年就有工程师指出,在 1996 年发布 Copland 纯粹是幻想,能 1997 年发布就不错了。
  1996年,Gil Amelio 已经掌权。在苹果电脑全球研发者大会上他开心地宣布,传说中的 Copland,也就是 System 8 的开发版会在当年夏天发布,而正式版在秋天就可以送到每位用户手上。时任 TidBITs 编辑的 Matt Neuburg 有幸见到了这个传说中的系统。令他大吃一惊的是,这个系统在当时只能打开或关闭文件,而无法对文本文件进行编辑,甚至所有用户界面的文本框都不能输字。哪怕什么都没做,整个系统也会随机崩溃,而崩溃甚至会造成文件系统损坏。参加演示的苹果员工,则需要不断守在旁边,他们的工作是不断地格式化已崩溃的计算机磁盘,然后重装系统。那年夏天,第零个测试版送到一小簇不明真相的开发者手中,把那些脆弱的没见过世面的人吓得半死。就连 Apple 内部都开玩笑说 Copland 的正式发布日期可能得推迟到 2030 年。
  Gil Amelio 心急如焚,希望 Copland 快点走到正道上来。作为 Gil Amelio 永远的好朋友,Ellen Hancock 就在这个乱糟糟的时候来到了 Apple。她的职务,正是担任这个乱糟糟项目的负责人。她亲自下访各小组体察民情,了解情况。毕竟在 IBM 干了近三十年,她依靠自己过人的判断力在 2~3 个月内便得出结论,Copland 这个项目是没有指望的,就按目前 Apple 这样的状态,Copland 永远都不可能发布,还不如早点取消了好。在短期内,先把 Copland 中的一些有用的成果一点点合并到老的 Mac OS 中,并且抓紧从外部购买一个全新系统来满足 Apple 的需要。正是她的这个结论,结束了 Apple 长达五年的纠结,使公司重新走向正轨。整个 PC 的黄金时代已经过去,Apple 想要翻身,还有很长一段路要走。Gil Amelio 支持了 Ellen Hancock 的计划。1996 年 8 月,Apple 取消 Copland 项目。开发预览版的 CD 封套都已制完,每个邮包上的地址都已打印就续,而 CD 却从未曾制出。
   年是 Apple 最混乱的几年。在商业上,有一阵曾传出 Apple 要被 Sun 收购的消息。更有意思的是,《连线》杂志在 1997 年的六月还发表了一篇文章,名为《101 种拯救 Apple 的方法》,其中一条说最好的方式是 Apple 让自己被 Motorola 买下,成为 Motorola 的一个部门,做 PowerPC 系列产品。以当时的眼光来看这些建议非常讽刺好笑,以今天的眼光看更为好笑。而 Ellen Hancock 在这段时间内的出色工作,成功地挽救了 Apple。
  首先,Ellen Hancock 的对内政策是继续 Mac OS 7.5 的开发工作,一步步把 Copland 中的技术并到 7.5 中。同时,也大量购买第三方的系统增强包,包括插件管理工具、层次化菜单等技术。Apple 把它们买过来,整合到现有的系统中。整个老系统在新系统尚未完成的时候不断更新,至 2000 年已出到 9.0 版,尽可能地留住了老用户。并且,前面提到的蓝盒(Blue Box)也作为后来新 Mac OS X 系统的一部分,支持用户运行经典 Mac OS 的程序。
  而对外政策更是一个大手笔。Ellen Hancock 协助 Gil Amelio 在 Apple 之外找寻操作系统技术。在 IBM 和 Microsoft 合作 Big Blue 的经验告诉她,购买一个操作系统的使用权问题多多,最好的计划是整个一并买下来。因此,Gil Amelio 开始和当时看好的 Be 谈,却因价格问题没有成功,最终转而收购了 NeXT。而 Apple 合并 NeXT 后,NeXTSTEP 就演化为 Rhapsody,并最终成为 Mac OS X。这些事情我们今后会详细再谈。
  买完 NeXT 后,Steve Jobs 执政,Gil Amelio 因任 CEO 期间 Apple 亏损严重而被炒。Steve Jobs 把信得过的人(很多是前 NeXT 员工)拉拢到周围,开始新政,而同 Gil Amelio 有关的 Ellen Hancock 则在人事变动中被疏远。Steve Jobs 甚至在很多场合称她为&笨蛋&。Ellen Hancock 最终于 1998 年主动辞职。事后同 Gil Amelio 以及 Apple 的创始人之一 Steve Wozniak 一同创业,但始终不景气,她的辉煌时代已经过去。
  Gil Amelio 总结他在 Apple 时期的工作时说:&Apple 是一艘底部有洞漏水的船,而我的工作是把这船引向正道。&(Apple is like a ship with a hole in a bottom, leaking water, and my job is to get this ship pointed in the right direction. )Ellen Hancock 虽然同 Gil Amelio 一样,不知如何去堵这个漏水的洞,但正是由于她在 Apple 的出色表现,不但把船引到了正道上,还找来了有能力堵这个洞的人。
  Mac OS X 背后的故事(二)&&Linus Torvalds的短视
  本文主要的故事来源是 Linus Torvalds 的自传《Just for Fun: The Story of an Accidental Revolutionary》。
Steve Jobs 于 1997 年回归 Apple
  Steve Jobs对Mac OS X的考虑
  1997 年,Steve Jobs 回归,开发下一代操作系统的工作被提上日程。此刻的时代背景是像 Linux 这样的开源软件大行其道。随着网络的发展,使得像 Red Hat、VA Linux 之类的企业成为爆发户,把泡沫越吹越大。Steve Jobs 承认 Linux 的好处,甚至在若干年后介绍 Mac OS X 底层的 Darwin 时还不忘在幻灯片上写道:Darwin 是类似 Linux 的系统。而当时精明的 Steve Jobs 在考虑下面几个问题。
  第一,NeXTSTEP 的内核和外围工具中,BSD 代码维护起来需要大量人力,而且各分支的 BSD 发展显然不如 Linux 快。很多功能都没有,需要 Apple 自己做。
  第二,像 Apple 这样的小公司,需要借力打力。Apple 的主要竞争对手是 Microsoft,而开源软件的矛头也是 Microsoft,如果联合起来干革命,不但能让自己得到一个好名声(Apple 事后一直自称是最大的开源软件公司),也可以获得可观利益,从而对 Microsoft 造成压力。
  第三,也是最重要的,联合各开源组织能够推动 Mac OS 的发展。毕竟开源软件中像 GCC 之类都是很成熟的项目,Apple 用起来省时省力,投点钱就有大效益,多好。
  所以,把 Linux 内核作为 Mac OS X 的重要组成部分的想法被这位伟大的智者想了出来。Apple 之前也有开发 Linux 的经验,比如在 Steve Jobs 回归之前,Apple 就和 OSF 合作开始把 Mach 内核移植到 PowerPC 上(Apple 是最大的 PowerPC 玩家,而 OSF 是最大的 Mach 玩家),并把 Linux 作为服务跑在 Mach 上。这个系统就是 MkLinux,我们在后续的连载中还会提到这个系统,因为它不但对 Linux 的移植性作出了重要的贡献,也对后来的 Mac OS X 的 XNU 内核技术起到了相当重要的作用。
  如果可以采用 Linux 作为系统重要组成部分,并且这个构想能够取得在开源软件界呼风唤雨的 Linus Torvalds 的认同,就能靠他在社区鼓动一大群开发者皈依 Apple 麾下,这是 Apple 很想看到的给力结局。有了这个指导思想,他便让秘书给 Linux 的开发者 Linus Torvalds 发了一个邮件,问他是不是有一到两小时的时间和 Steve Jobs 会面。不明真相的 Linus Torvalds 收到邮件后相当高兴,因为这是他第一次有机会去硅谷观摩。
  无果而终的会面
  Apple 总部 Infinity Loop 终于迎来了这位稀客,Steve Jobs 亲自接见,而先前任 NeXT 技术总监的 Avie Tevanian(这人的故事我们今后会提到)也参加了这次会谈。不用多说,这次讨论的内容自然是还处于未知状态的 Mac OS X。讨论算不上正式,但 Linus Torvalds 的愤青个性,却让谈判陷入僵局。
  Steve Jobs 自然搬出他 1997 年回归之际在 MacWorld 讲话时的那套理论,Apple 虽然很颓,但骨子里是个牛逼的公司。全世界桌面领域的真正玩家就两个,一个是 Apple,另一个是 Microsoft,两者加起来,构成百分之百的桌面用户群。所以,Linus 同学,你就从了我们吧,如果你从了我们,让我们把 Mac 架在 Linux 上,一大批桌面用户就是 Linux 用户啦,前景可是一片大好!
  而 Linus Torvalds 那时候牛啊,诸多大公司如 IBM、Red Hat 都围着他转。他可是企业家中的大红人,像 Apple 这样的企业根本就不在他眼里。作为一个开源软件的革命家,在他的想象中 Linux 的潜在用户应该比 Apple 还多。他始终相信,按照目前开源软件的发展态势,自己很快就能在桌面领域分到一杯羹。而且这个命题在他这种古怪性格下的直接推论是,即使我能占领桌面领域,我也要摆出一副不在乎这个领域的态度来。所以实际上 Steve Jobs 的开场白一开始就失败了。
  接着,Avie Tevanian 向 Linus Torvalds 介绍了整个计划。他们想把 Mach 和 Linux 内核合并起来作为 Mac OS X 的基础,我估计 Linus Torvalds 是听错了(因为 Avie Tevanian 很早就意识到相比于微内核,混合内核有明显优势),他以为 Apple 想把 Linux 作为 Mach 的一个服务来跑(当然我个人认为,即使是合并 Mach 和 Linux 成为混合内核,依 Linus Torvalds 的愤青性格,依然是不可能接受的),这正让他回想到先前和 Tanenbaum 教授的笔战。并且,他也知道 Apple 和 IBM 合搞的失败项目 Taligent 正是用 Mach 的。
  Linus Torvalds 对于微内核有他自己的看法,之前也曾在不同的地方表述过。若把关于微内核的笔战去掉限制级敏感词的话可概括成两方面。一方面,设计一个微内核和相关的服务,可能造成各种设计上的灾难。GNU/Hurd 早在八十年代末就考虑尝试在 Mach 上写一系列 Unix 的服务层,结果他们始终无法搞明白到底是让这些服务先发消息到另几个服务呢,还是考虑其他方案。所以直到 2011 年我写这篇文章时,Hurd 项目依然处于半死不活的状态。而另一方面,微内核的效率无法和传统内核相比,最简单的系统调用会涉及一系列底层服务的互相通信。所以很多研究者着手研究如何把微内核的效率提上去,结果就导致微内核变得更加复杂。能提高微内核效率的很多研究成果都已在 Mach 项目中实现了。而在 Linus Torvalds 看来这恰使 Mach 成为了一个非常复杂的项目,并且效率也不怎么高。
  会谈时坐一旁的 Avie Tevanian 事实上是 Mach 最早的开发者之一,他热情地给 Linus 讲述 Mac OS X 系统蓝图。而 Linus 实际上早就不耐烦了。比如,Mac OS X 中,有一个模拟层,可让用户使用经典的 Mac OS 程序。这个技术极类似于现在跑在 Unix 系统上执行 Windows 程序的 Wine 。Apple 当时的考虑是这样,因为老的 Mac OS 在设计 API 时,就没有考虑到类似内存保护之类的问题,所以这层 API 必须废掉,Mac OS X 中所有的新程序必须采用 NeXT 的那套更先进的 API(根据我的考证,当时还没有 Carbon 这样的想法,而且事实上 Carbon 不管在 API 还是 ABI 上都和经典 Mac OS 不兼容)。而短期内已有的软件又不可能快速重写迁移至 Mac OS X。所以,如果用户需要使用老版 Mac OS 的第三方应用程序,就可以使用 Apple 提供的这个兼容层。但是由于刚才提到的原因,老版程序并不享受新版程序的待遇,因为模拟器本身运行多个老 Mac OS 任务时,和原先老版 Mac OS 一样,实际上只有一个进程,没有内存保护。这样做的好处是明显的,因为一方面老的程序在 Mac OS X 发布之初还能用,另一方面 Apple 又和老技术划清了界限,逼着开发者使用新技术,技术方面的原因是最重要的。但这个看似很正确的技术在 Linus Torvalds 看来是古怪的,他想当然地认为,完全可以运行多个不同的模拟器进程,来执行不同的任务,使得每个任务都可以享受内存保护。这种浪漫主义情调让他无比鄙视 Apple 员工的智商。而事后当笔者使用早期版本的 Mac OS X 时,发现 Linus Torvalds 的想法完全是不切实际的。因为这个模拟层本来就要占用不少的内存和 CPU,在处理器速度不及今日手机、内存无比精贵的 90 年代末,跑一堆模拟器进程无异于是和自己过不去。
  Steve Jobs 考虑到 Linus Torvalds 是开源软件的领军人物,便继续以开源为话题,动之以情,晓之以理。他告诉 Linus Torvalds,我们这个系统做出来后呢,所有的 Unix 层(非图形界面层),都会开源,所以事实上你加入我们,也是在给开源做贡献啊!而由于在开源圈子混久了,Linus Torvalds 对此丝亳不领情,他认为,有谁会想用一个底层是开源而图形界面是不开源的系统呢?所以,像笔者这样的用户被&代表&了。
  Mac OS X 与 Linux 分道扬镳
  总之,这次会面完全谈崩,两人站在不同的角度去看问题,加上 Steve Jobs 和 Linus Torvalds 都是个性鲜明、唯我独尊的人,技术和商业上的考虑都不同,所以会谈中双方简直就是鸡同鸭讲。这次讨论也使得 Apple 放弃 Linux,转而采用 FreeBSD 技术,并在 2001 年任命 FreeBSD 的发起者、领军人物 Jordan Hubbard 为 BSD 技术小组的经理,并在后来升为 Unix 技术总监。至于 Apple 的内核技术后来走向何方,我们下期再讲。
  笔者认为,Apple 和 Linus Torvarlds 的商谈破裂,以今天的眼光来看,是因 Linus Torvarlds 的自命清高和短视造成的。他不懂得尊重其他开发者的意见,并且不断抬扛。包括后来关于 C++ 的论战。Mac OS X 发布后,Linus Torvalds 又数次嘲笑 Mac 的技术落后,并说这些他在当年和 Steve Jobs 开会时就预料到了。直到最近,他终于有些成熟,对 Mac OS X 的观点开始缓合,但还是不忘批评 Mac 的文件系统就是垃圾(事实上,Linux 的也没好到哪去,至少 Apple 还搞过一阵 ZFS)。这种性格最终导致在 Mac OS X 和 iOS 大行其道的时候,Linus Torvalds 连兔子汤都不曾分到。
  而事实上这对 Apple 也是件好事。Apple 重要的是利益而不是折腾,即使是开源也是利益驱动。像类似 Linux 开发组那样自以为是但代码又写得差的开源项目,Apple 事后也遇到不少,比如 GCC 编译器项目组。虽然大把钞票扔进去,在先期能够解决一些问题,但时间长了这群人总和 Apple 过不去,并以自己在开源世界的地位恫吓之,最终 Apple 由于受不了这些项目组人员的态度、协议、代码质量,觉得还不如自己造轮子来得方便,因此 Apple 推动了类似 LLVM 这样宏伟的项目,并且在短短几年内,使其成为最领先的开源软件技术。这无异于扇了 Linux 小组、GCC 小组一记响亮的耳光。
  Mac OS X 背后的故事(三)Mach 之父 Avie Tevanian
  1975 年,美国罗彻斯特大学纽约分校,一组研究员正在做一个名为 RIG(Rochester&s&Intelligent&Gateway)的项目,它由 Jerry&Feldman 主持设计。RIG 的目标是给所有本地以及远端的计算设备(比如磁盘、列印机、磁带、绘图机等)提供一组统一的访问方式,其作业系统称为 Aleph。为了实现所需要的功能,Aleph 的内核主要构建了一个进程交互(Interprocess&Communication,IPC)的机制。RIG 的各进程,只要设置了目标端口,就可以彼此间发送信息。RIG 项目没过几年就被判了死刑,主要是缺少很多有用的功能,比如端口没有保护机制,一次最多只能发送 2KB 大小的信息(受硬件限制),也没有很好的网络支持等。不过在 20 世纪 70 年代,这个系统依然代表着当时作业系统设计的先进水平,比如除了进程交互外,每个进程还有内存保护的功能,这足以让 20 世纪 90 年代末都没有做出内存保护技术的 Apple 公司汗颜。
  该项目后来失败了,随后在 1979 年,RIG 的 Richard&Rashid 博士毕业到卡内基-梅隆大学当教授,开始做 Accent 项目。它是一个网络作业系统,于 1981 年 4 月开始活跃开发。受 RIG 的影响,Accent 系统的亮点也在于可以使用 IPC,而且解决了很多 RIG 的不足。比如每个进程有 4GB 的虚拟内存空间,而且甚至连内核自已都可以被存入缓存页面,内存有先进的更新前拷贝(Copy-on-Write)功能,可以实现进程间大信息的传送等。读者可以把 Accent 理解为支持虚拟内存技术,并且具有网络透明 IPC 功能的 RIG 内核。
  但过了几年,开发者们越来越对 Accent 失去兴趣。在 1980 年初,很多人觉得多核计算是计算机未来发展的潮流,但 Accent 内核在设计时并没有考虑到这些问题。而且,随着许多实验室纷纷购置性能更强劲的计算机,这就意味着 Accent 需要移植到新的目标架构上。此外,Unix 正大行其道,不管是在作业系统理论上还是在用户程序上,都成为最为流行的作业系统模式,而 Accent 并不是一个 Unix 系统,所以无法享受 Unix 世界的诸多美好。为了解决这个问题,研究人员决定把所有设计推翻重来,于是就有了一个全新的系统。
  在匹兹堡的一个雨天,卡内基-梅隆大学的 Avie&Tevanian,此系统的最主要开发者,正打着伞和同学们在去吃午饭的路上。他们一边绕着无数的泥塘,一边构思给这个新系统取什么名字好。灵感突来, Avadis&Tevanian 建议把这个系统叫作 Muck,引得同学们哈哈大笑。后来,Richard&Rashid 和一位意大利同事 Dario&Giuse 说起这玩笑,结果这位同事不经意地把 Muck 发为 Mach,遂把 Richard&Rashid 笑翻,伟大的 Mach 系统因此得名。
  Mach 是一个受 Accent 启发而搞出的Unix兼容系统。那年,Unix 已经十六岁,而且依然是作业系统理论与实践开发的主要阵地。Unix 内核由于新加入的功能越来越多,变得越来越复杂。而 Mach 的一个主要目标就是尽量缩减 Unix 的各项服务,以使内核变得简单可维护。此项目从 1984 年开始,目标主要是包含完整的多任务支援、良好的硬件移植性,并要把大量服务移出内核作为跑在内核上的服务,以及提供与 Unix 的兼容性。
  Mach 使用纯 C 编写,所以在一定程度上保证了可移植性,这事实上为后面的 NeXT 向 PowerPC 移植以及 2005 年的向 Intel 移植提供了很重要的前提。而为了缩减内核该管的任务,Mach 做得很绝,只提供内存和处理器管理。类似于档案系统、网络、输入输出等功能都作为单个的系统进程,独立执行于内核之上。Mach 的开发过程以 4.3 BSD 作为起点,以 RIG 的 Accent 作为参考,采纳 DEC 的虚拟内存设计思路,逐步开发,以新写的代码代替 BSD 的代码。两年后的 1986 年,虽然没能把系统服务完全分离于内核之外,但已颇见成效。Mach 第一版大功告成,组员发表会议论文,成为操作系统史上里程碑式的经典,引发操作系统业界的&微内核&学潮,如今学习作业系统设计的皆需学习此文,二十五年来被引用一千二百余次。
  这篇文章主要讲了两方面内容:IPC 和虚拟内存。在 IPC 方面,Mach 把复杂的消息传送机制分为四个独立的清晰概念&任务、线程、端口、信息。任务是拥有一组系统资源的对象,允许线程在其中执行;线程是执行的基本单位,拥有一个任务的上下文,并且共享任务中的资源。
  由于该论文的影响力,所以项目得到了 OSF(Open&Software&Foundation)在内的很多投资。当然了,学术和工程永远存在差距,所以即使是最受欢迎的 Mach&2.5 其实仍然是一个包括大多数 BSD 服务层的单内核。但包括 NeXTSTEP、OSF/1 在内的很多操作系统都采用 Mach 作为其内核技术,原因是广大研究人员依然相信微内核代表着未来。虽然 Mach&2.5 的效率比传统的 Unix 系统稍低一些,但研究者们表示情绪淡定,因为 Mach 支持多处理器系统,可以利用多线程把任务处理得飞快,相比之下其他 Unix 内核并没有多处理器的完善支援,因此 Mach 效率稍低完全可以接受。但随着真正把 Mach 和 BSD 服务完全脱离的 Mach&3 微内核面世,研究人员们的情绪就再也淡定不起来了。因为服务和内核分离后,任务间的 IPC 数量暴涨,一个简单的 Unix 系统调用要涉及到十多个开端口、设权限、发送、收取消息的操作,哪怕是使用数年后的 1997 年的硬件,跑一个系统调用密集的程序,Mach 的效率要比一般的 Unix 系统慢 50%,而且根本没有什么好方法来解决这个问题。
  所以 Mach&3 出来后,虽有少数微内核信徒继续执著地改进 Mach,或者开始其他微内核比如 L4 的研究。但学术界对 Mach 的兴趣大减,因而 Mach&3 也成为最后一版。项目解散后,Richard&Rashid 去了微软研究院。
  再说我们的主角 Avie&Tevanian,他 1987 年博士毕业去了 NeXT。这家公司刚刚由 Steve&Jobs 成立两年,这两年 Steve&Jobs 啥正经事都没干,只是花了十万美元雇 Paul&Rand 设计了一个公司商标。直到 Avie&Tevanian 加入后,这个公司才开始干实事。1987 年公司确认要开发一个面向研究人员使用的计算机工作站,于是软硬件的开发工作紧锣密鼓地展开。硬件组由领导过 Apple&Lisa 的 Rich&Page 原班人马负责,而软件则由 Avie&Tevanian 负责,计划开发一个有图形界面的操作系统 NeXTSTEP。由于 Avie&Tevanian 是 Mach 主要的开发者,自然 NeXTSTEP 就基于 Mach 了。1988 年 10 月 12 日,NeXT 发布预览版(0.8版),并于 1989 年 9 月 18 日发布 1.0 版(注:http://en.wikipedia.org/wiki/NeXTSTEP)。
  作为 NeXTSTEP 系统的内核,NeXT 分支的 Mach 经历了不少变化。NeXTSTEP&0.8 主要使用 Mach&2.0 版,而稍后的 NeXTSTEP&1.0 版主要基于 Mach&2.5 版,包含一个自己定制的当时最新的 4.3 BSD 服务层。从 3.1 版开始,NeXT 分支的 Mach 还包括一个全新的设备驱动框架,&名为 Driver&Kit,仅供 x86 系列的硬件使用。和 Mach 以及 BSD 代码不同,Driver&Kit 是使用 Objective-C 写的。为什么是一个面向对象的语言呢?看 NeXTSTEP&3.3 的 DriverKit 文档。读者大概就会发现,NeXTSTEP 把所有硬件设备理解为对象,而我们知道,对象之间有继承关系,比如,磁盘(IODisk物件)属于输入输出设备(IODevice物件)的子物件,而磁盘(IODisk)本身又是逻辑磁盘(IOLogicalDisk)的父物件。硬件的初始化对应于每个物件的初始化(init方法),硬件又有读、写,所以可以用 getter/setter 的方法。因此,DriverKit 是一个非常有特色的实现。而且由于 Objective-C 的效率很高,依赖很少(Objective-C 程序可以直接被编译器翻译成等价的C语言程序并编译,而 Objective-C 的运行库 libobjc 也以高效著称),所以也是编写驱动的良好选择。几年后的 IOKit 其实就是个 DriverKit 的翻版。
  这时,NeXTSTEP 操作系统大获成功,风险投资商们纷纷购买,但硬件却始终卖不出去(注:Aaron&Hillegass《Cocoa&Programming&for&Mac&OS&X》前言),所以 NeXT 砍掉了硬件部门专做软件,更是使 NeXTSTEP 发展到了巅峰时期,同时支持 68K、x86、PA-RISC 和 SPARC 等硬件,但颇有意味的是它就是不支持 PowerPC 架构。它可以同时产生一个包含所有架构可执行码的二进制文件,来使开发的程序在所有平台上执行。这个功能也影响了后来 Mac&OS&X 的技术。Mac&OS&X&10.4 时代有两件跨时代意义的事情,一件是 Apple 搞出了 64 位的 Power&Mac,开发者可以发布一个包含64位和32位程序的单一可执行文件,而无需让用户去区分;另一件是和 Intel 合作。Apple 正式发表了 Universal&Binary 技术,可以一个 Mach-O 文件同时包含 Intel 和 PowerPC 的指令。这非常贴心的设计(要知道,大多数电脑用户根本不知道 Intel、PowerPC、64位、32位等技术)就是来自于 Mach 的技术。
  NeXTSTEP&3.3 后,NeXTSTEP 因为 NeXT 和 Sun 的合作改名为 OPENSTEP,1996 年发布 4.0 版,到 1997 年 2 月 4 日,NeXT 被 Apple 收购之前,期间内核改进除源码同步到 Mach&3.0 版外不明,而且出于不知道的原因,我手头的 OPENSTEP 正式版光盘中,居然找不到 DriverKit 的发布说明和编程文档,故不作详述。不过这段时间,Apple 的活动值得好好一说。之前在《Linus&Torvalds的短视》中,我们曾提到,1996 年,Apple 和 OSF 曾经合作,把 Mach 移到 PowerPC&Mac 上,再把 Linux 作为单一的服务跑在 Mach 上,这个项目叫做 MkLinux。在 1996 年发布基于 Mach&3.0 和 Linux&1.3 的预览版,并更新到 2002 年结束其历史使命,对 Mach 在 PowerPC 的移植性上做出了重要贡献。这个 PowerPC 版的 Mach 被叫作 osfmk 分支,也正是现在 Mac&OS&X 中用的分支。当然了,NeXT 被合并后做了大量修改。
  Apple 收购 NeXT 后,Mach 被确定作为未来的操作系统核心。Avie&Tevanian 被选为软件开发部的总裁。合并所有项目的号角吹响后,上层的 OpenStep&API 和老版 Mac&OS 的部件开始合并,而 Mach 也经历重大变化。主要是一方面,Mach 使用了 osfmk 分支,但依然包含 4.3 BSD 服务;另一方面,DriverKit 被 IOKit 取代。这是 Apple 走得很被动的一步。因为当时外界普遍对 Objective-C 不看好,逼着 Apple 走老版 Mac&OS&&API 的老路。而 Apple 自己对 Objective-C 也很不自信,甚至想索性换用 Java 了事(我们以后会谈及这段不自信的历史)。所以 IOKit 是一个 C++ 的驱动架构,来符合大众口味。这些改变最早在 Rhapsody 中出现(我们以后也会有一期 Rhapsody 的专题)。但由于 C++ 是门很恐怖的语言,所以 Apple 又把 C++ 给阉割了,去掉了多重继承、模板、运行时动态以及异常,让开发者使用这种对于 Objective-C 来说换汤不换药的 Clean&C++ 来做驱动。但公正地说,IOKit 对于 Driver&Kit 是有不少改进的,比如 IOKit 可以写在用户空间跑的驱动(虽然大多仍是跑在内核空间上的),因而驱动挂了而系统不会挂。另外 IOKit 考虑到了计算机发展的趋势,所以在电源管理、即插即用、动态加载上做得更好。
  但各位也知道,C++ 程序得用专门的运行库才能跑,所以 Mach 中又加入了一个叫作 libkern 的库负责 C++ 相关的功能,同时,还有一个 libsa 的库提供一些类似二分查找、排序等基本算法之类的功能。最后和硬件相关的还有一个叫作 pexpert(Platform&Expert)的库,负责收集硬件设备列表、检测机器种类(比如处理器速度等)、解析启动参数等杂活。
  至此,Mac&OS&X 的内核完全形成,形成 BSD、IOKit、Mach&osfmk 三足鼎立的态势,并有 pexpert、libkern、libsa 作为基础。Apple 称它的内核杰作为 XNU。其代码开源,请读者移步http://www./source/xnu/xnu-123.5/,每个部分的代码都独立存放在一个文件夹中,条理清晰,不妨一读。
  由于 4.3 BSD 已是过眼烟云,Apple 后来投入大量资源扶持 FreeBSD 开发。2001 年,Apple 将 FreeBSD 的发起者、领军人物 Jordan&Hubbard 收入麾下,并在 Mac&OS&X&10.3 时基本同步到 FreeBSD&5 的代码(注:/book/bonus/ancient/whatismacosx/arch_xnu.html)。
  另外,Apple&的开发也同时反馈到 FreeBSD 小组,包括 FreeBSD&6.2&内核引入的&AUDIT&(man&audit&或参见http://manpages.unixforum.co.uk/man-pages/unix/freebsd-6.2/4/audit-man-page.html),后来&FreeBSD&8引入的&libdispatch&(http://wiki.freebsd.org/GCD,&在 Apple 这项技术叫 Grand&Central&Dispatch,是 Mac&OS&X&10.6&主推的新功能,FreeBSD 基本在&Mac&OS&X&10.6&上市的同时就拥有这项最新技术),以及&FreeBSD-CURRENT&中的&LLVM-Clang,全是 Apple 的手笔。从&1999&年开始,FreeBSD&源码仓库可以搜索到&Apple&提供的大量的补丁以及新功能。
  Mac&OS&X 早期版本不太稳定,所以会内核崩溃。10.0 版本会直接像 Linux 或者 BSD 那样打出回溯信息,很不美观,所以 Apple 在 10.2 版本开始设计了一个多国语言的图片告诉用户你的内核崩溃了,以让内核崩得看起来更优雅一点。由于包含四国语言,被国内用户戏称为&四国&(注:优雅的图片见下图,详见 /kb/ht1392),这是 XNU 的 Mach&osfmk 部分的功能。但从 10.3~10.4 版本开始,系统越发稳定,正常使用已很少见到内核崩溃。而且,内核提供的服务也越来越多,使得 Mac&OS&X 成为一个完善的系统。
  21 世纪 XNU 架构方面的最重大改动是支持了 PPC64(10.4 版本时代)、x86 架构(其实本来也一直支持的,以后讲 Apple 的 Intel 迁移时详谈)、x86_64(64位支持是苹果长年努力逐步展开的。10.4 时代 32 位内核支持载入 64 位的用户程序,10.5 系统提供 64 位的Cocoa框架,但系统大部分程序都是 32 位的,10.6 时代内核支持以 64 位模式启动,但在不少硬件上这是非默认的方式,但系统大量程序已被改写并编译为 64 位的二进制程序,10.7 时代内核默认以 64 位模式启动。)和 ARM 架构(iPhone 和 iPad 使用 XNU 内核)等多个新架构。
  而其中 ARM 架构的支持别具意义。但 2006 年 5 月 31 日,功成名就的 Avie&Tevanian 离开 Apple 另谋发展,此时,离 Apple 的 iPhone 奇迹发生,只有不到一年时间。
  Mac OS X 背后的故事(四)&& 政客的跨界
  2000 年,美国总统大选,由于选票设计问题,时任美国副总统的 Al Gore 败北。2000 年 12 月 13 日,在一番重新计票的大折腾不起作用后,曾经意气风发的 Al Gore 拖着疲惫的身子,走上讲台,发表了认输讲话(参见 Al Gore《2000 Presidential Concession Speech》),从此退出政坛。一般国家领导人的退政生活其往往松愉快,出出日记,学用哲学,或者像多才多艺的李岚清不但去各地推广古典音乐,更是玩起了篆刻(参见《南方周末》2006 年 5 月 11 日《老常委的卸任生活》),克林顿先生都成立个基金会来帮助社会预防和治疗爱滋。 Al Gore 也没闲着,他找到了让他感兴趣的去处&&Apple 总部,并成为董事之一。
  Mac OS X 和 Al Gore 的双赢
  2003 年 5 月 19 日,Apple 的启示中罕见性地登出了《前总统 Al Gore 加入 Apple 董事会》的快讯。文中提到,Al Gore 总统是一个正宗果粉,他一直用 Mac 计算机,而且还会用 Final Cut Pro 来编辑他的视频。Al Gore 也不掩饰他对 Apple 技术的热爱,他表示对 Mac OS X 的开发极感兴趣,并且也对 Apple 在开放源代码运动中的贡献喜闻乐见。他虚心地说,想在这个让 Apple 起死回生的董事会好好观摩并学习。
Al Gore 的加盟让 Apple 一跃成为电子产品的代言人
  苹果公司的 CEO Steve Jobs 表示 Al Gore 曾经管理过世界最大的组织&&美国政府,期间显示出的经验和智慧对苹果公司是笔巨大的财富。Al Gore 将成为出色的董事会主席,苹果将以他把苹果公司作为职业生涯的开始为荣。
  这之后,Al Gore 在 Apple 内部的决策究竟起了什么作用,和 Mac OS X 的开发有何关联,在正式的渠道很少有史料,但是他后来的各种公开活动,却给 Mac OS X 的技术做足了广告,而且很多证据表明,他正是使 Apple 从被绿色人士攻击的众矢之的的状态,成为业界注重电子产品环保领头羊的主要推手。
  Al Gore 重新进入普通人的视野是在 2006 年,他推出了自己参与制作和演出的纪录片《An Inconvenient Truth》(《难以忽视的真相》)和同名书籍。这部长达 94 分钟的影片,在西方国家引起了广大的回响,以 Al Gore 的一场演讲和人生的回忆作为两条主线,详细、科普地向民众介绍了全球变暖问题的科学证据及美国政府掩盖问题的真相。该片以发人深省的立意、详尽的科学数据、平实的讲演风格,加上苹果高超的技术,而获得了广泛的好评并一举获得年度奥斯卡最佳纪录片奖,使得这位美国前副总统摇身一变,成为好莱坞明星。
  为什么单单一场简单的讲话,就能做出一部电影,还能得到奥斯卡这样学院艺术奖的亲睐?是因为讲话内容无懈可击么?事后有很多科学家站出来表示,虽然影片内容有积极的意义,但其实也有很多被夸大的科学数据、假设和结论。试思索,该片之所以成功,甚至成为诸多演讲培训机构的重要分析案例,除了数据、观点、论述外,还有以下几个原因。
  首先,这场演讲由苹果主导的技术和艺术的设计。Al Gore 向来以说不清想表达的内容而著称。他经常因为讲得过于专业或者缺乏好的表述方法以致于民众完全不懂他在讲些什么。他的早期讲话用现在的眼光看就是个少将体,比如&互联网&网&我&这个&那个&那个&怎么说呢&我想这个&这&这&这&我啊&我啊&就是说&互联网是我发明的!&因此作为苹果展现公司软实力的重要机会,苹果非常重视这场讲话,请公司的图形设计小组带领完成各种所需设计,苹果甚至特地请来了专业的设计公司 Duarte 来进行讲稿和讲话内容的安排。因此,不管是内容安排、图形设计还是技术支持,Al Gore 都有强有力的后盾,他们能够帮助Al Gore 完成任何想达到的目标。不论是 FinalCut 还是 Keynote,一旦缺少任何 Al Gore 想要的功能,Apple 都可以给他开小灶实现。在片末的走马灯字幕中,有大量 Apple 的 Keynote 组、Final Cut 组和图形设计组的员工名字,以示鸣谢。
  其次,上面这些资源的相互合作,也使得 Al Gore 的这场讲话的讲稿被精心制作,体现了精心设计的电子稿演讲所能达到的最高成就。苹果公司向来重视演讲,也是各大企业中最会通过演讲来营销产品的公司。每年的 MacWorld 和 WWDC 的 Steve Jobs 讲话都会吸引百万人在计算机前观看。每场讲话都好戏连连,台下的观众的欢呼和掌声不亚于著名歌星的演唱会。这种风格显然给 Al Gore 的讲话风格带来很大的影响。在影片中,观众看不到一个传统的 bulletpoint(PowerPoint 用户常爱使用的表示讲话结构的方法),取而代之的是高清的照片、视频,来展现环境的严峻性。观众不再会为枯燥无味的技术词语而搞得昏昏欲睡,因为屏幕上的一切都是如此真实,各种科学现象由动画效果配合,使其浅显易懂。另外,所有的数据、图表都精心使用软件制作,使其一目了然,表现准确而美观大方,而且 Al Gore 时而还会玩些小噱头,比如讲到现在的温室气体浓度是多么高时,他甚至爬上工作人员为他准备的升降机,升到舞台顶端,来告诉观众,数据已经突破图表的顶端了。现在距笔者观赏完这部影片,已经五年过去了,但影片中的灾难场景、冰川融化的影片段落、海平面上升的计算机模拟、二氧化碳浓度的数据图表,至今都记得一清二楚,足以见得其表现力是何等深入人心。甚至有人在调侃他在 2000 年的竞选演说是怎么回事?难道就是缺少了这些科技元素?
  最后,Mac OS X 的各项技术也是这部片子的重要保证。Duarte 公司的 Ted Boda 表示(该幻灯片的设计师之一),Mac OS X 系统本身的反锯齿功能把文字、图片、矢量图标表现得栩栩如生,使得幻灯片充满美感。QuickTime 技术作为 Mac OS X 的一块重要基石,又使得 Keynote 不需任何插件就能引入任何图片和影像,所以类似使用 Illustrator、Photoshop、AfterEffects 等软件做出的图片、影像或动昼,不需要任何转换过程就能直接拖到 Keynote 中。哪怕
的高清视频,都可以轻松插入,流畅播放。他们组根本想象不出在 Windows上 使用 PowerPoint 会成什么样子。
  可以说,没有 Mac OS X,就没有这部电影。而实际上这部电影的作用远胜过任何一部 Apple 公司的广告。片中 Al Gore 时时拿着 PowerBook 的笔记本,在办公室用 Safari 查网页,字体渲染真实而美观,甚至在车上都不忘打开笔记本用 Keynote 做几张幻灯片,就更不用说电影中 Keynote 幻灯片曾经迷倒多少 Windows 用户了。向笔者推荐这部电影的好朋友了解到这些全是 Apple 技术的功劳时,拥有一台 Mac 就成为其人生梦想。
  环保卫士的 Apple 之路
  作为环保人士,Al Gore 对 Apple 的策略的影响也不容忽视。Apple 向来被各环保组织长期批评,即使 Apple 长年不断地改进这方面问题,但绿色人士依然不买帐。哪怕在稍后的 2007 年,也仍有包括 GreenPeace 在内的七十多个组织联名写信给 Al Gore,敦促 Apple 更重视环境问题,信中指责 Apple 仍在大量使用 PVC 和 BFRs 等对环境有害的材料,也不注重对自家产品的回收。由于 Al Gore 是 Apple 董事会成员,使得这个问题受到了 Apple 的广泛关注。Apple 在 2007 年后史无前例地迈开大步,大力推广环保计划(要求全世界的 IT 制造商们逐步弃用 PVC 等有毒的化学用品进行生产),让 Apple 一跃成为注重电子产品环境保护问题的领头羊。
  从制造材料上,2007 年 8 月发布的 iMac 成为分水岭。这款产品的设计主要使用可完全被回收的玻璃屏和铝外框,减小了塑料等不环保物质的使用,此后苹果一发不可收拾,把这项革命进行到底,从手机到笔记本,都全番设计。2008 年的 MacBook Air 引出的 Unibody 技术是这场革命的代表产品,不但在外观上还是工程上做到极致,在环保上更是让各绿色组织无可挑剔。
  在造势上,Apple 现在每项主要产品的都有&环境&的标签页,从制造、运输、耗电、回收等性能情况分产品详细列出。Apple 甚至在包装上都动足脑筋,尽量减少每个产品的包装,使得同一架飞机可以运输更多的产品,从而在运输相同数量产品的情况下减少飞机温室气体的总排放量。
  Mac OS X 的各项节电功能的开发更是不用说了。休眠、调整空闲时的屏幕亮度、硬盘转速等常规功能自然越做越好。而系统的多项技术能使程序更优地分配使用中央处理器和显示卡。甚至系统还能在用户打字时,每两键之间的空隙减少处理器的占用从而节省击键之间的功耗,这使得 Mac OS X 不但更节约能源,笔记本的电池使用时间也不断提高。而这一切的变化,和 Al Gore 似乎都有着千丝万缕的联系。
  由于《An Inconvenient Truth》中的讲话让 Al Gore 的观点深入人心,同时也对美国政府在京都议定的决策产生重大的压力,挪威诺贝尔委员会决定把 2007 年的诺贝尔和平奖颁给了 Al Gore,以表彰其在全球环境问题方面的努力,同时苹果的主页上全版刊发新闻,以示祝贺。贺词如下:
  Al has put his heart and soul, and much of his life during the past several years, into alerting and educating us all on the climate crisis. We are bursting with pride for Al and this historic recognition of his global contributions. (Al Gore 在过去几年殚心积虑,全身心地投入对公众关于气候危机的警示和教育中。我们为他这次所得的荣誉和他全球性贡献的历史性承认感到无比自豪。)
  或许,由于 Al Gore 在计算机领域的一贯低调(他也是 Google 的高级顾问),他在这些企业的工作很少被报道出来,但是他在政界的跨界身份是显而易见的。Al Gore 在他的人生道路将何去何从,我们不得而知,但是从各种媒体信息的披露可以看出,Al Gore 对计算机事业的热衷,对环保问题的投入,可能是美国历任领导人中最突出的。
  Mac OS X 背后的故事(五)Jean - Marie Hullot 的 Interface Builder 神话
  Interface Builder,是用于苹果公司 Mac OS X 操作系统的软件开发程序,Xcode 套件的一部分,于 1988 年创立。它的创造者 Jean-Marie Hullot 自称是&一个热爱旅行、充满激情的摄影师&,本篇分享 Hullot 热爱技术的那一面&&创造 Interface Builder 的过程。
  因势而动
  1981年, Jean-Marie Hullot 拿到巴黎第十一大学的计算机科学博士资格后,开始了法国国家信息与自动化研究所(INRIA)的研究生活。
  Jean-Marie Hullot 的名字似乎不为大众所熟知,但他设计的 Interface Builder 却深入人心,创造了一个个软件神话。
  20 世纪 70 年代初,正是面向对象程序设计开始走上历史舞台的时期。许多现代计算机技术的诞生地 Xerox PARC(施乐帕洛阿尔托研究中心)的 Alan Kay、Dan Ingalls、Ted Kaehler 、Adele Goldberg 等人,从 1969 年开始研发一款面向对象的程序语言 Smalltalk,并于 1980 年正式公布。这是一个完整地实现面向对象范型的编程套件,包含了一种面向对象的程序设计语言、一种程序设计库和一个应用开发环境(ADE)。
  虽然当时的机器跑得巨慢无比,但 Smalltalk 先进的思想对其他众多的程序设计语言(Objective-C、Actor、Java 和 Ruby)的产生起到了极大的推动作用,对计算机工业界的发展产生了非常深远的影响。我们将会在今后介绍 Objective-C 时,详细介绍 Smalltalk 及其对 Objective-C 的影响,这里先一笔带过。
  Smalltalk 的发布在业界一石激起千层浪,也给 Jean-Marie Hullot 幼小的心灵带来了巨大的震撼。他立即明白了面向对象思想所代表的先进生产力,一定会改变今后数十年的程序设计流程,他毫不犹豫地成为面向对象编程模式的早期粉丝。
  SOS 的助力
  那时,Jean-Marie Hullot 使用早期的 Macintosh 计算机进行开发。不过他很快就和其他开发者一样,发现虽然 Mac 的用户界面做得不错,但开发程序实在是太糟糕了。他说:&当 Macintosh 被发明出来时,计算机和先前就大不一样了,你至少需要花 60%~70% 的时间在用户界面部分的代码上。&在 Macintosh 被发明之前,用户界面是相当简单的,只需要在命令行下面打一串字符,计算机就会回应出一行行的信息。所以在那个时代,开发者完全不需要专注于用户界面。而 Mac 一经发布,随之而来的众多的窗口和菜单,让整个世界都不一样了。虽然对于使用最终产品的用户而言是简单方便的,但对于码工来说简直是个噩梦。每次他们需要一个窗口或者菜单,都要从零开始构建。
  聪明的 Hullot 开始动脑筋改进 Mac 编写用户程序难的现状。他开发了一个程序,有点像现在 Windows 系统中的&画板&。一侧的工具条,是类似菜单这样的大量可重用的对象;而另一侧,则是程序员想构建的用户程序界面。只要把工具条上的工具拖放到程序界面中,那么类似&打开&、&打印&等相关的功能,就可以被添加到用户界面中。事实上,这个程序,是最早的一批能通过鼠标把控件拖入界面设计窗口实现相应功能的商业程序,是用户界面设计软件的先驱。
  这个跨时代的发明被称作 SOS,用 Lisp 语言编写【注:What are we going to called this thing 中认为此时就是 Interface Builder,但据 The NeXTonian 等多处资料表明,在 Steve Jobs 见到以前,该程序名为 SOS】。当时,ExperTelligence 开发了一种叫做 ExperLisp 的方言,SOS 即用此语言写成【注:http://en.wikipedia.org/wiki/Interface_Builder】。
  此时 Hullot 忽然意识到,他设计的东西事实上很强大,其重要性简直可以和 Smalltalk 这样的发明相比&&Smalltalk 让开发者尝到了面向对象语言的甜头,而 SOS 则是直接把对象放到了开发者手边。有了这么拽的东西,Hullot 意识到如果他只在研究所窝着,那只能让十几个人享受这一成果,而如果他跳槽,把这个工具公开,那对天下的码工来说可是大福音。
  诞生之源
  经过不断努力,Hullot 找到了一个值得推销自己发明的好地方&&剑桥的苹果大学联盟(Apple University Consortium)。这个苹果和大学合作的组织看到 Hullot 的创作后反响很好,就推荐他去见 Jean-Louis Gassee。 Jean-Louis Gassee 是个法国人,时任苹果开发研究院主任,见到 SOS 后也认为这是个好东西,便说服他去美国闯一闯。经过几次的鼓励和推荐,加上美国对 Hullot 来说又不陌生,于是他就买了机票跳上飞机就奔赴美国。
  不过当 Jean-Marie Hullot 来到美国加州苹果总部时,他却认为这不是一个工作的好地方&&苹果已经是一个很庞大的企业,很难再有所创新发展。他最终决定不留在那儿,转而在美国寻找一个能把这个产品卖出去的人。四处推销之后,找到他用来写 SOS 的 Lisp 解释器的生产商,就是刚才提到的位于 Santa Barbara 的软件公司 ExperTelligence。
  事实上,当时的 ExperTelligence 正在寻找合作商卖自已的 Lisp,而 Hullot 也在找合作商卖自已的 SOS,两者一拍即合,随即打电话给 NeXT,共同推销自家的产品。
  NeXT 在 Palo Alto 总部的产品市场部人员接待了 Jean-Marie Hullot 和两位来自 ExperTelligence 的员工,被 SOS 的理念镇住,遂打电话请 Steve Jobs 下来看。Jean-Marie Hullot 像复读机一样又把自己的大作秀了一遍。老谋深算的 Steve Jobs 事实上早就看中了 SOS,但他对 ExperTelligence 的 Lisp 一点兴趣都没有。所以他装作对这场演示毫无兴致【注:这有很多引用该文的翻译译错,原文说 nonplussed,字面意思为惊异,但在美国非正式表述中,此字表毫无兴致】,挥挥手就把这三个人打发走了。
  但当他们一行人走到停车场时,Steve Jobs 让他手下把 Hullot 追了回来,当他只身回到 NeXT 总部时,发现 Steve Jobs 正恭敬地等着他。
  &我想要你计算机上那个程序&【注:/2/0/people/】,Steve Jobs 说道:&你大概什么时候能开始给我们工作?&
  Hullot 回答说自己翌日就要离开去度假。
  &好吧,我两周后给你打电话,&Steve Jobs 说。
  &不行,老乔&,Hullot 表示:&我不游美国,我可要环游欧洲,你七个礼拜后再打给我吧。&
  Steve Jobs 虽然一骨子傲气,但他明白一个简单的道理:21世纪最缺的是什么&&是人才!即使 Jean-Marie Hullot 玩起了大牌,这电话自然还是要打的。Hullot 刚一度完假回来,Steve Jobs 的电话就如期而至。
  如此三顾茅庐般的热情,把 Jean-Marie Hullot 感动得第二天就登上了去美国的飞机。合约签了半年,但实际上他最终在 NeXT 整整待了十年。在 NeXT 工作期间,他使用 Objective-C 和 NeXTSTEP 框架重写了 SOS,命名为 Interface Builder。由此,Interface Builder 成为 NeXT 集成开发环境 Project Builder 标准套件之一。
  进阶与探索
  Interface Builder 和 SOS 一样,提供了一个工具箱,包含一系列用户控件对象。工具箱并不是官方定死的,而是可以任意扩展的,比如如果用户想使用类似 Safari 中的 toolbar,而这不是官方提供的,则下载第三方的 PSMTabBar 即可实现,甚至连 Cappuccino 这样的网页框架也可以用 Interface Builder 来完成设计。开发者只要把控件比如菜单和文本框拖入项目文件就能完成用户界面设计,节省了几乎所有和控件放置有关的代码。
  开发者拖拽鼠标,将控件可提供的动作(IBAction)和另一个对象的接口(IBOutlet)连在一起, 则建立了一个绑定。这样,一旦动作被激发(比如用户点了按钮),那接口中相应的方法则会被执行。所以,大量对象关联的代码也能被省去。
  有了这样的模式后,Interface Builder 和 Cocoa 可以比后来出现的 Microsoft Visual Studio 或 Qt Designer 等软件走得更远&&只要是对象,Interface Builder 就能够操控它们,不需要一定是一个界面的控件。比如,数据库的数据源、队列等,都可以在 Interface Builder 中连接起来,于是很多原本需要上千行的复杂应用(比如用来显示、修改企业中职工姓名、部门、电话、地址、头像等信息 SQL 数据库的用户界面程序),数分钟内就可以写完,不用一行代码。不信?让 1992 年的 Steve Jobs 亲自做给你看【注:/watch?v=j02b8Fuz73A, 第 23 分钟~第 29 分钟】。
  NeXT 被 Apple 收购后,苹果把下一代操作系统建立在 NeXTSTEP 的基础上。Objective-C 和 Cocoa 被作为主要框架,而 Interface Builder 和 Project Builder 也因此受到重用。就官方的工具箱而言,支持 Objective-C/Cocoa、Carbon 的 HIToolbox 和 WebObject。
  2008 年 3 月 27 日,苹果发布首个 iPhone SDK,设计 Cocoa Touch 界面的,也正是 Interface Builder。可以说,Interface Builder 一直随着公司产品的发展而不断拓新。
  Jean-Marie Hullot 是在 NeXT 被收购时进入苹果的。Steve Jobs 令他率领在法国的一个小团队,秘密为 Mac OS X 10.2 开发一个办公软件。以往这样量级的程序,都是由苹果加州总部的大班人马完成。而这次,为了向世人表明他的 Interface Builder 有多强大,iCal 横空出世,展示复杂的界面元素(日历、可拖拽的任务、五花八门的分类)和诸多功能(网络同步、Apple Script 脚本控制)可以用相当快速的时间内开发出来【注:/articles/07/10/17/road_to_mac_os_x_leopard_ical_3_0.html&page=2】。
  最后,在 iCal 小组打完酱油的 Jean-Marie Hullot 荣升苹果软件开发部首席技术官。
  Project Builder 在 Mac OS X 10.3 时被重命名为现在大家所熟知的 Xcode。Xcode 3 以前,Interface Builder 使用一种名为 nib 格式的二进制文件格式。不过由于 nib 不能用肉眼读,也不方便使用版本管理工具来管理,所以 Xcode 3 开始新加入一种名为 xib 的文本文件格式,最后再在项目编译阶段输出为 nib 格式。和产生静态界面布局代码的工具(如 MSVC、QtDesigner、 Delphi 等类似的软件)很不同,nib 是不被转译成相应 Objective-C 代码的。用户程序执行时,nib 文件被读入,解包,并且唤醒【注:awake,即载入 nib 会自动调用程序中 awakeFromNib 方法】,所以 nib 文件是在运行时动态加载的。
  长期以来,Xcode 环境和 Interface Builder 是两个独立但相互工作的程序。而 2010 年释出的 Xcode 4 预览版中,Xcode 和 Interface Builder 合二为一,成为一个一体化的编程环境。所以现在,开发者甚至可以只用鼠标在用户界面和代码间来回拖拽就能完成,这样一来 Interface Builder 对用户代码的解释也比先前更正确。比早期分离的程序使用起来确实方便很多。
  当然,一个负面的影响是,这样用一体化集成开发环境写程序,往往会发现屏幕空间是不够的,所以像我这样用 11 寸 Air 或者 13 寸 Macbook Pro 的人,出去打招呼都不好意思说自己是做 Mac 开发的。
  下一个海阔天空
  在而后的岁月里,Interface Builder 创造了一个又一个应用软件神话,小到官方教程中的汇率计算器,大到苹果所有的家用、专业软件,都由 Interface Builder 完成。
  在风起云涌的 1989 年,欧洲核子研究组织(CERN)工作的科学家 Emilio Pagiola 忽悠经费,买来研究所的第一台 NeXT 计算机&&当时 NeXT 计算机在 CERN 可是个新鲜事物&&那里的科学家们纷纷前来把玩,普通青年发现里面有全本的韦氏词典,并可自动检查用户输入的拼写错误,技术青年发现它跑的是 Unix 系统,还有一个可读写的光驱,文艺青年更是发现里面居然预装了莎翁全集。不过毕竟像 Emilio Pagiola 这样忽悠巨款买 NeXT 机器的青年不多,所以大家围观完了,也就回去该干嘛干嘛了。
  但 Tim Berners-Lee 和别人不一样,他不仅围观了那台计算机,还看到了 Jean-Marie Hullot 设计的 Interface Builder,研究了 Objective-C,发现了面向对象编程范式开发环境的最高成就。这情景让他心中漾起了巨大的波澜,最终化为激情澎湃的投入,汇成了一行行面向对象的代码,一泻千里,奔向未来。
  一年后,世界首个 HTTP 服务在 CERN 的 NeXT 计算机运行起来,而使用 Objective-C 和 Interface Builder 所编写的超文本语言编辑器兼浏览器同步发行。他给这个主从式架构起了个好听的名字&&World Wide Web(万维网)。
  Mac OS X 背后的故事(六)上善若水
  Aqua 是 Mac OS X Public Beta 全新用户界面的名字,英文中为水的词根,寓意以水为灵感,精心设计。Steve Jobs 曾介绍说,Aqua 的设计是如此之美好,初次见它甚至有想亲吻的冲动。本篇 Cordell Ratzlaff 引发的 Aqua 革命(上)介绍的是 Aqua 的起源和来历,在下篇中,我们将展示 Aqua 的具体设计过程。
  &Mac OS 的图形界面就是你们那么业余的人设计的吗?& Steve Jobs 开门见山地问。
  包括 Cordell Ratzlaff 在内的设计师们怯怯地点头称是。&你们就是一群白痴!& Steve Jobs 骂道。
  这个场景发生在 Steve Jobs 回归不久的图形界面组组会上,前文提到的骂人的话,是他送给图形界面设计组的见面礼。【注:参见 ,】
  不进则退的局面
  Mac OS 曾是图形界面设计的先驱。
  从 System 1 开始,Mac 就打破了字符终端的模式,使用图形界面和用户交互设计。但自 System 1 到 System 7,10年过去了,界面却始终没有显著的变化。设计组一直认为,为尊重用户的习惯,定下的规矩不要轻易改动。但同时,Microsoft 的变化可以说是天翻地覆,从黑屏的 DOS,到全屏幕的 Windows 1,再到成熟的 Windows 3,最后演变到奠定当今 Windows 界面基础的炫丽多彩的 Windows 95。用当时的眼光来看,这个变化是相当惊人的。由于因循守旧,Mac OS 在界面设计上从领先掉到了最后。旧的界面原语,一成不变的界面风格,让 Mac OS 的图形界面在 Windows 前显得黯然无光。【注:参见 】
  于是,在图形界面组的组会上,Steve Jobs 抨击了老 Mac OS 界面的各种不是&&几乎所有的地方都被骂了一遍。众矢之的是各种打开窗口和文件夹的方式。在 Mac OS 中有至少 8 种打开窗口和访问文件夹的方式,如弹出菜单、下拉菜单、DragStrip、Launcher、Finder 等不同的程序。
  Cordell Ratzlaff 作为主管,他一开始担心是不是会被 Steve Jobs 炒掉(传闻说 Steve Jobs 刚进入苹果时最爱炒人,经常会发生一些&神奇&的情况,比如有员工和他一同进了电梯,等一同出电梯时,该员工已被炒掉)。不过批评大会进行到第 20 分钟时,Cordell Ratzlaff 转为淡定,因为他意识到如果 Steve Jobs 要炒他,不用废那么多话,早就可以动手了。
  其实 Cardell

我要回帖

更多关于 苹果笔记本换固态硬盘 的文章

 

随机推荐