分类 观点 下的文章

左:Milestone 5,主屏幕展示了“All”按钮,两个dock图标,以及四个最近使用的应用。中:主屏幕与打开的应用程序列表。右边:电源菜单。

左:Milestone 5,主屏幕展示了“All”按钮,两个 dock 图标,以及四个最近使用的应用。中:主屏幕与打开的应用程序列表。右边:电源菜单 [Ron Amadeo供图]

安卓0.5, Milestone 5——如今已经是报废接口的领地了

“M5-RC14”版本发布后——也就是第一个安卓模拟器发布三个月之后,安卓迎来了它的首次重大革新。 2008 年 2 月发布的“Milestone5”甩掉了延伸自黑莓的界面,走向一个完全革新的设计——谷歌在触控友好界面上的第一次尝试。

在浏览器的用户代理字符串的中,此版本仍然被识别为“Android 0.5”,但 Milestone 5 与安卓的第一个版本相比已经完全不一样了。几个核心的 Android 功能直接追踪他们的血统会最终回到这个版本。通知面板的布局和功能几乎已经整装待发,并且,除了样式变化外,菜单也最终成型。距离安卓 1.0 项目发布的时间仅仅只剩八个月,一个操作系统的基础已经开始成型了。

有一件东西目前绝对不是它的最终模样,那就是是主屏幕。这是一个不可配置的、单屏壁纸的应用程序的抽屉和托盘。应用程序图标是气泡状的,三种颜色的组合,由一个圆角矩形的白色背景包围着。应用程序抽屉在右下角有一个“所有”按钮,轻按它,打开的应用程序列表显示在了左边。这个“所有”按钮正上面的是两个托盘图标,“联系人”和“拨号盘”分别获得了永久的专属主屏幕位置。然后上边有四个模块,它们是“最近的应用程序”的早期版本,展示了最后访问的应用程序。没有了左侧屏幕和右侧屏幕,要是没有托盘和“最近的应用程序”占用的一整列,这种布局下只能放下 21 个应用程序图标。模拟器仍然只带有尽量少的应用程序,但在实际的设备中,这样的设计看起来并不会很好的工作效果。

按住“挂断”按钮会出现电源菜单的一个相当早期的版本,就像你最右侧的图片中看到的。谷歌此时仍然没有标准的智能手机命名术语:对于 “关闭屏幕” Turn Off Screen 最好的形容也许是 “锁定屏幕” Lock screen (虽然当时没有锁屏)和 “关闭射频” Turn Off Radio 在今天被叫做 “飞行模式” Airplane Mode

从左至右依次为:令人惊喜的现代通知面板,谷歌地图的菜单在打开着(地图已经不可用了),和新的适合触控的列表视图。

从左至右依次为:令人惊喜的现代通知面板,谷歌地图的菜单在打开着(地图已经不可用了),和新的适合触控的列表视图 [Ron Amadeo供图]

回溯到 Milestone 5,谷歌在那时对通知面板有着明确的认识。就像在任何现代的智能手机里一样,通知中心从屏幕顶部下拉下来以唤出。目前的通知都以列表的形式显示。通知面板的第一个版本是不透明的白色薄片以及底部中心有个橙色圆点的,带着棱纹的的“把手”。通知是可点击的,通过点击可以打开该通知关联的应用程序。没有人为此列表中垂直对齐应用程序图标而感到困扰,不过也没关系,随着接下来的更新,它已经是过去式了。

置顶通知能够进入一个在面板顶部的“正在进行”的部分。在这个版本中,这里似乎只包含通话。在“最近事件”里的通知只有打开相应的应用程序后才清楚。用户惊喜地发现可以通过内置的 XMPP 连接成功登录到谷歌 talk。不过,虽然通知面板中显示“新会话信息”,这里实际上并不是一个即时消息应用程序。

Milestone 5 里是全新的艺术设计。应用程序图标被重新绘制,并且菜单从一个无聊的黑莓风格的文本列表转变为一个全彩、卡通的大图标方阵。通知面板图标也从简单的、突兀的、白色的图标切换到一个绿色的气泡设计。当时信号指示下边有一条奇怪的黑线,没有明显的作用。早期开发版本的微小列表视图不适合手指使用,所以 Milestone 5 带来了更加强大的整体布局。

拨号盘,最近通话,和来电。

拨号盘,最近通话,和来电。 [Ron Amadeo供图]

M5 是第一个有一个拨号盘的版本,即使她是一个相当难看的版本。数字被显示在包含一个奇怪的聊天气泡风格的退格键的渐变填充条里,看上去就像是从其他界面回收回来的。对齐问题随处可见。按钮上的数字没有正确的垂直居中,而且退格键的“X”也没有与对话框对齐。由于屏幕上没有的“拨号”按钮,你甚至不能从拨号盘打个电话,它强制要求有个拨号的硬件实体按钮。

Milestone 5 有几个选项卡式界面,所有这些都演示了一个关于标签应该如何工作的奇怪的想法。活跃的标签是白色的,而背景标签是底部拥有一小条白色条带的黑色标签。后台标签应该是表示向下下沉的吗?切换标签时,是没有动画效果的。直到目前还不清楚这个设计试图想表达什么。

在第二张图片中显示的最近通话记录项,是从一个单独的应用程序降级为拨号盘的选项卡。它抛弃了早期版本疯狂的十字 UI,多亏了大块列表视图,现在所有必要的信息都是显示在一个正常的列表中。

不同于拨号盘,来电画面有显示在屏幕上的按钮来接听和结束通话。奇怪的是,来电屏幕贴在屏幕的底部,而不是顶部或中心。它可能是从旧的黑莓 4:3 屏幕遗留下来的问题。

通话中,触摸屏不可用的显示错误信息,和显示第二通话暂停的通话界面。

通话中,触摸屏不可用的显示错误信息,和显示第二通话暂停的通话界面 [Ron Amadeo供图]

通话中的界面看起来正常,但在实际中毫无意义。今天,在通话中为了阻止你的脸按到按钮,手机近距离传感器一旦检测到物体会关闭屏幕。尽管 Milestone 5 不支持近距离传感器。谷歌的随意的解决方案是在通话过程中禁用整个触摸屏。与此同时,通话中的屏幕显然会检测触摸。这时候是有大的、可触摸的按钮,但就是不让你摸!

M5 在这里让 Milestone 3 版本的几个功能回归了。许多旧的界面里体面的图标被替换成了文本。像“静音”按钮在激活的时候不再提供屏幕上的反馈。合并通话被完全去除了。

浏览器的主要菜单,浏览器的二级菜单,疯狂的变焦控制和窗口界面。

浏览器的主要菜单,浏览器的二级菜单,疯狂的变焦控制和窗口界面 [Ron Amadeo供图]

浏览器菜单中进行了常规的触摸功能大整修,并且“更多”按钮第一次出现。它充当一个你菜单的额外菜单。相对于将 3x2 的网格变成 3x4 的网格,Milestone 5(以及 Android 的许多后续版本一样)中使用很长的、滚动的列表来引出其他选项。不支持双指缩放(据说是向苹果让步),因此 Android 运行着荒谬的控件,就像上边第三张图片一样。谷歌将它显示在屏幕的中间,而不是明智地设置成比如一个水平的、底部对齐的缩放控件。最后一张图片显示浏览器的“窗口”界面,允许你打开多个网页并在它们之间更轻松地切换。

谷歌地图的图层选择,搜索界面,以及路线界面。

谷歌地图的图层选择,搜索界面,以及路线界面。 [Ron Amadeo供图]

谷歌地图仍然不能使用,但我们接触的小小 UI 却有了显著更新。你可以选择地图图层,虽然只有两种可以选择:卫星和交通。顶部对齐的搜索界面奇怪地隐藏了状态栏,而底部对齐的路线没有隐藏状态栏。路线的输入按钮被标有“Go”,而且搜索的输入按钮却被标有一个奇怪的弯曲的箭头。这样的例子不胜枚举,并演示了保守的安卓在最坏时候的情况:在同一个应用程序,外观和工作方式应该类似的两个功能,在实现上却完全相反。


Ron Amadeo / Ron 是 Ars Technica 的评论编缉,专注于安卓系统和谷歌产品。他总是在追寻新鲜事物,还喜欢拆解事物看看它们到底是怎么运作的。@RonAmadeo


via: http://arstechnica.com/gadgets/2014/06/building-android-a-40000-word-history-of-googles-mobile-os/2/

译者:cereuz 邮箱:cereuz 校对:alim0x/wxy

本文由 LCTT 原创翻译,Linux中国 荣誉推出

让我们跟着安卓从 0.5 版本到 7 的无尽迭代来看看它的发展历史。

这些年来历代安卓的主屏幕。

这些年来历代安卓的主屏幕 [图片提供:Ron Amadeo]

安卓已经以各种形式陪伴了我们六年以上。在这段时间内,我们已经看到了不同于任何已有开发周期的,绝对惊人的变化速度。当 Google 卷入智能手机的战场中时,它拿出了它的快速迭代、Web 风格的更新周期,把它们应用到了开发这个操作系统之中,而结果就是突击式的持续改进。近来,安卓项目甚至以前所未闻的六个月开发周期在运行,这可比它之前的开发周期慢。在安卓的第一年商业运作时,Google 每两个半月就会发布一个新版本。

Google 在 2007 年 11 月时对安卓最初的视频介绍:

同行业的其它公司和之相比,只能是以蜗牛的步伐在缓慢前进。微软每三到五年升级它的桌面操作系统,苹果对 OS X 和 iOS 以一年为一个更新周期。另外不是每个更新都是同等地位的。iOS 在七年内有一个主要的设计上的大变动,而最新的 Windows Phone 8 看起来和 Windows Phone 7 十分相似。但在安卓上,如果用户能看到今年的任何东西看起来和去年一样,那简直是中彩票了一样。比如 Play 商店,五年内有五次的重新设计。对安卓来说那更是家常便饭。

回头看看,安卓的存在是很模糊的。从其历史来看,现在它是个使用量巨大的操作系统。近十亿的设备销量,以及每天一百五十万左右的激活量——但 Google 是如何达到这种地步的?安卓现在如此水平的规模和成功,可能会让你觉得安卓从零开始到万众瞩目的英雄,覆盖到了方方面面。但事实上不是这样的。安卓在早期并不流行,以及直到安卓 4.0 屏幕截图还只能通过开发者工具实现。这两个因素意味着你无法轻易找到许多安卓早期版本的图片或信息。

对于早期版本的缺乏覆盖问题现在称作“安卓早期版本的消亡现象”。尽管像 Windows 1.0 这样的系统可以永远在你身边——只要找台旧电脑把它装上去就好了——安卓可以被认为是第一个基于云的操作系统。许多功能严重依赖 Google 的服务来实现。随着越来越少的人使用老版本的安卓,那些服务被逐渐关闭。当一个依赖云的应用其服务支持停止之后,它再也不能正常运作——应用崩溃并显示空白的屏幕,或直接无法启动。

正是由于这种“云腐烂”现象,安卓回顾展在几年内不可能出现。早期版本的安卓没有了云的支持会是一个不能正常工作的破碎的空壳。尽管可以简单地认为这是早期版本安卓渐渐消失的一种方法,但这就是正在发生的。就在写到这里的时候,正有无数的应用因为服务器支持被关闭而失去作用。例如早期的谷歌地图和安卓市场客户端,已经不能和 Google 服务器交互。它们会弹出错误消息并崩溃或者是显示一个空白的界面。有些应用甚至在前一个星期正常运行,然后下个星期就宣告死亡,因为就在我们写下这篇文章的时候谷歌正在积极地关闭服务器!

为了防止在滚滚历史里丢失掉更多关于安卓的过去,我们做了需要完成的工作。这里有 20+ 个版本的安卓,七台设备,以及无数的屏幕截图被集合到一起。这就是安卓编年史,从最早的公开版本到最新的 KitKat。


目录


Android 0.5, Milestone 3——第一个公开版本

在我们开始在实体硬件上研究安卓之前,我们要从很早,很早以前的安卓时光开始说起。尽管 1.0 是第一个运行在实体硬件上的版本,但在那之前其实还有若干个只随 SDK 发布的模拟器 beta 版本。这些模拟器只用于开发的目的,所以它们不含任何谷歌应用,甚至只是一些核心系统应用。但它们仍然是回顾安卓的发布前时光的最好渠道。

模拟器默认的qwerty布局并运行Milestone 3。

模拟器默认的 qwerty 布局并运行 Milestone 3 [Ron Amadeo供图]

在异想天开的糖果版本代号和与跨国食品公司跨界合作之前,第一个安卓的公开发布版本的标签是“m3-rc20a”——“m3”代表“Milestone 3(里程碑3)”。尽管谷歌可能不会公布版本号——这个版本甚至没有一个设置应用来查看——浏览器用户标识被识别为“Android 0.5”。

在 2007 年 11 月,谷歌收购安卓两年、iPhone 发布五个月之后,安卓正式发布,第一个模拟器正式释出。回到那时候看,这个系统才刚处于起步阶段。它很容易就被认为“只是个黑莓的山寨而已”。模拟器使用了一个 qwerty 布局的皮肤以及 320×240 的显示屏,是一台原型设备的复制品。这台设备由 HTC 制造,通过一些早期的安卓账户可以得知这台设备的代号似乎是“Sooner”。但是 Sooner 从未正式上市。

通过安卓早期开发账号得知,当苹果在 2007 年 1 月最终发布它革命性的智能手机后,谷歌不得不对安卓“从头来过”——包括放弃 Sooner。考虑到 Milestone 3 模拟器在苹果的 iPhone 后近一年才推出,设备界面看起来还是那么像黑莓的模型实在是令人惊奇的事情。尽管在 iPhone 发布后的开发任务毫无疑问地在优先保障下完成了,但模拟器仍然以被认为是“旧学院风”的界面发布。这使得它没能给人留下一个好的第一印象。

在早期阶段,安卓按键布局看起来并没有最终确定下来。尽管第一台商业安卓设备使用了“主屏幕”,“后退”,“菜单”以及“搜索”作为标准的按键套件,模拟器上有一个空白的标记为“X”的键,你可能会认为是那是搜索键应该在的地方。“Sooner”原型机看起来更奇怪——它在第四个键上有个星形标记。

从左到右:主屏幕,一个打开的通知,以及“应用”文件夹。

从左到右:主屏幕,一个打开的通知,以及“应用”文件夹 [Ron Amadeo供图]

在这里没有可以配置的主屏幕或小插件,仅仅只是简单的在底部有聚合图标的 dock,可以循环或是点击。尽管已经有一些特性支持触摸屏,Milestone 3 主要还是使用五向十字键——一个时至今日安卓仍然支持的不合时宜的设计。甚至早期的安卓都能够实现动画效果。图标在进入 dock 的中心窗口时会变大或缩小。

在这时候同样也还没有通知栏。通知图标显示在顶部状态栏(上面图片中的微笑标志),打开它的唯一方法是在主屏幕按下十字键的上键。你无法通过点击微笑的图标来打开它,也无法从除主屏幕以外的地方打开通知。当通知被打开的时候,状态栏扩展开些许,通知文本会显示在一个聊天气泡中。一旦你阅读完通知,你无法手动清除它——应用本身负责清除它的通知消息。

应用抽屉的职责由托盘左侧简单的“应用程序”文件夹负责。尽管有着不少标志性的功能,Milestone 3 模拟器应用图标还不是十分完善。只有“浏览器”,“联系人” ,以及“地图”是这里面真正的应用。奇怪的是,“最近通话”被提升为一个独立的图标。因为这仅仅只是个模拟器,像闹钟,日历,拨号,计算器,照相机,相册,以及设置这样的智能手机核心功能的图标统统没有。硬件原型倒是有其中的大部分,它还有一套谷歌应用出现并运行着。不幸的是我们没办法看到它们了。它们已经老到无论如何都连不上谷歌的服务器了。

Milestone 3的浏览器菜单系统,壁纸界面,以及音量控制。

Milestone 3 的浏览器菜单系统,壁纸界面,以及音量控制 [Ron Amadeo供图]

这套现在已经过时的菜单系统出现并运行在 Milestone 3上。点击实体菜单键会打开一个灰色带有蓝色梯度高亮的列表,通过实体键盘完成操作。在上面的截图中,你可以看到在浏览器中打开的菜单。进入二级菜单,像缩放菜单,一级菜单这些变成有些奇怪的透明状态。

令人惊喜的是,多任务及后台应用在 Milestone 3 上已经可以运作了。离开应用而不关闭它——应用会保存状态,甚至写入文本保存。这个特性直到 2010 年 iOS 推出 iOS 4 才能与其相比,这就真正显示出了这两个平台的不同。iOS 最初是作为一个封闭的平台而没有第三方应用,所以平台的健壮性并没有得到很大的关注。安卓是从头开始被构建成一个强大的应用软件平台,轻松开发应用是它创造出来背后的推动力之一。

在安卓之前,谷歌已经通过 WAP 网站J2ME 手机应用向移动端开始迁移,这使得它们强烈地意识到移动开发的难度。据 The Atlantic 报道,拉里.佩奇曾这么描述公司在移动端的努力“我们有超过 100 台的一系列手机,我们在每一台设备上都要构建一次我们的应用”。开发者们现在经常抱怨安卓的碎片化,但在安卓出现之前,问题要比现在糟糕很多。

谷歌的平台战略实际上胜出了,iOS最终在不久后开始慢慢加入这些围绕应用的特性——多任务,跨应用分享,以及应用切换。

当你在主屏幕按数字键弹出的拨号界面,来电,以及电话会议界面。

当你在主屏幕按数字键弹出的拨号界面,来电,以及电话会议界面 [Ron Amadeo供图]

尽管没有拨号图标,Milestone 3 模拟器还是有办法拨号。按键盘上的任意键会打开上图左侧的界面,这是拨号/联系人搜索混合界面。仅输入数字并点击绿色的实体拨号键来开始通话,输入字母会搜索联系人。但是联系人无法通过数字搜索。甚至直接点击一个号码也不会打开联系人。

来电被显示成一个几乎全屏的令人愉快的透明背景弹窗。一旦进入通话,背景会变成深灰色,Milestone 3 展现给用户一些令人惊奇的高级特性:静音,扬声器,通话保持,以及电话会议按钮。多方通话会显示成重叠,半透明的卡片状,用户有切换或者合并通话的选项可以选择。切换通话会触发一个漂亮的小卡片洗牌动画。

联系人列表,打开一个联系人,编缉联系人,以及最近通话界面。

联系人列表,打开一个联系人,编缉联系人,以及最近通话界面 [Ron Amadeo供图]

联系人是一个质朴的,黑色和蓝色的姓名列表。联系人卡片中有个联系人头像的位置但是没办法设置一张图像上去(至少在模拟器中不行)。这里唯一的装饰是每个联系人名字左侧的 XMPP 状态点。就传统来说,一个保持在线的 XMPP 连接是安卓的核心,它的深度集成从 Milestone 3 就已经开始了。安卓使用 XMPP 来驱动一个 24/7 在线的与谷歌服务器之间的连接,以驱动 Google Talk 的云到端消息推送,以及应用的安装和卸载信息。

浏览器的假Google首页,地址栏,浏览历史界面。

浏览器的假 Google首 页,地址栏,浏览历史界面 [Ron Amadeo供图]

浏览器运行 Webkit 419.3,它也被用在相同时代的像 Mac OS X 10.4 的 Safari 2上。浏览器主页并不是 Google.com,而是一个包含在安卓里的硬编码的 home.html 文件。它看起来就像是千年之前的 Google.com。浏览器的 OS X 遗留还可以辨认出来,用了顺滑的、Aqua 风格的搜索按钮来渲染浏览器按钮。

这个小小的黑莓风格的屏幕需要一个分离的地址栏,可以通过浏览器菜单里的“前往”选项打开。尽管自动补全不起作用,地址栏会在你输入的时候实时搜索你的浏览历史。右侧图片显示的是历史界面,它使用了略缩图来显示各个站点。当前的略缩图在其它两个缩略图之前,滑动它们会触发一个俯冲动画效果。但在早期阶段,浏览器不支持多标签或窗口——你可以看到当前站点,那就是全部了。

一个视频屏幕抓取导出的谷歌地图界面,方向界面,相册测试界面。

一个视频屏幕抓取导出的谷歌地图界面,方向界面,相册测试界面 [Ron Amadeo供图]

在开始的时候,谷歌认识到在移动端地图将会非常重要,甚至在 Milestone 5 模拟器中内置了地图客户端。那个版本的谷歌地图是我们遇到的第一个死于云腐烂的!这个客户端无法从谷歌的服务器上载入信息,所以地图显示为一片空白,灰色的网格。没有什么能够工作。

幸运的是,因为上面的第一张截图,我们能够从安卓启动视频中拼凑出准确的界面。旧的谷歌地图看起来完全是为非触摸设备准备的,实体键快捷方式列表排列在屏幕底部。这样在看地图时,或是在如果仅仅显示该点的地址的时候就不大清楚。

隐藏在菜单之后的是搜索选项,路线,以及卫星和交通图层。中间的截图是获取路径的 UI 之一,你可以选择一个联系人的地址作为起点或者终点。但地图缺乏任何种类的集成 GPS,你在哪都找不到“我的位置”这个按钮。

尽管没有合适的相册,不过在右边是相册的测试界面,隐藏在“API Demos”应用里。图片可以向左向右滚动,但无法以全屏的方式打开一张照片。同样它也没有照片管理选项。它本质上就是个图片滚动界面的测试视图。

时间设置和日历,有点字间距问题,以及以Ars为特色的垂直列表测试。

时间设置和日历,有点字间距问题,以及以 Ars Technica 为特色的垂直列表测试 [Ron Amadeo供图]

同样模拟器中也没有设置应用,但是通过 API Demos 我们可以看到最初的日期时间设置界面。这个示例暴露出很多安卓没来得及处理的问题:到处都有的字间距问题,分钟数字间巨大的间隔,以及日历中星期日间不均等的间隔。尽管时间设置允许你单独更改每个数字,但除非你将当前日期移出本月到前一个或下一个月,否则你无法改变月份或年份。

别忘了尽管这看起来像是一些被遗忘时代的恐龙级别遗留物,但这仅仅是六年前发布的。我们总趋向与适应科技的脚步。我们很容易将这样的东西看作是 20 年前的东西。比较一下 2007 年晚些时候这个时间段的桌面操作系统,微软尝试将 Windows Vista 售往全世界快要一年了,而苹果刚刚发布了 OS X 10.5 Leopard。

最后一个关于 Milestone 3 的细节:谷歌在 Milestone 3 模拟器中给了 Ars Technica 一个快捷方式。打开“API Demos”应用并打开"Views," "Focus,",然后"Vertical"显示一个 this very Website 的头条测试列表。

随Milestone 3,RC37a发布的更加现代,全触控风格的模拟器。

随 Milestone 3,RC37a 发布的更加现代、全触控风格的模拟器 [Ron Amadeo供图]

两个月后,2007 年 12 月,谷歌放出了一个 Milestone 3 的更新,带来了更大的 480×320 设备设置。这个更新的标签是“m3-rc37a”。软件看起来还是像黑莓一样,仅仅是带来了更多的屏幕分辨率支持。


Ron Amadeo / Ron 是 Ars Technica的评论编缉,专注于安卓系统和谷歌产品。他总是在追寻新鲜事物,还喜欢拆解事物看看它们到底是怎么运作的。@RonAmadeo


via: http://arstechnica.com/gadgets/2014/06/building-android-a-40000-word-history-of-googles-mobile-os/

译者:alim0x 校对:wxy

本文由 LCTT 原创翻译,Linux中国 荣誉推出

接纳你电脑上最有用的工具。

你应该在电影中见到过,尽管从没在自己电脑上调出来:一个空白屏幕,带有一些简单文字提示和一个光标,等着你去输入几个神秘的命令,就会听你的吩咐。

这就是命令行。它是基于字符的接口,它比现在人们都熟悉的主流操作系统(包括Windows到Mac OS X和Linux)上的窗口,图标和瓦片 tiles都要早。

命令行是一个使用你电脑基本功能的超级强大的工具。对于大多数人来说,它也是一个让人困惑的,难以理解的,看上去无关紧要的东西。但是其实不是这样的。

在你的命令控制下的电脑

输入字符指令再敲下回车来让电脑做点事情,和在移动设备的触摸界面上滑动点击比较,听起来像是退了一大步。即使是刚学走路的小孩都可以用iPad,对吧?不过,如果你知道怎么用的话,命令可以节省你的时间,减少烦恼。

如果你很认真想学习编程-或者想理解计算机技术-你完全有必要掌握命令行。

深入到命令行里,将教会你很多关于电脑如何工作以及管理信息的。你也许会发现有些平常使用鼠标操作的功能,当改为敲一两个命令后,实际上会更快。

更重要的是,你会更容易理解像Python那样的编程语言像Git那样的软件,需要有一点命令行基础。在熟悉了命令行以后,你就可以打破过去阻止你学习编程的障碍了。

所以在这里介绍一点关于命令行的快速的、基础的指导。它主要专注于Mac OS X的类Unix环境,只是因为这是我比较熟悉的。Linux用户应该已经很熟悉命令行了,不过新手也许还是会觉得这些小窍门有点用。如果你用的是Chromebook,Google对如何打开它自带的命令行工具已经给出了有用的指导,它和Mac或Linux系统有点类似。对于Windows用户,很不幸,受限于从MS-DOS衍生出的命令语言,它和Unix只有一点点交集,所以这篇指导对你没什么用;不过可以去看下dosprompt.info网站里的资料

如何开始

你需要做的第一件事是搞清楚如何进入命令行,通常这是通过一个叫“shell”的软件来做的。在任意一台运行OS X的Mac上,需要启动终端应用。你可以通过Finder来打开(它是在应用程序下的实用工具目录里),或者点击屏幕右上角的放大镜然后输入“terminal”,然后在下拉列表里选择。

你进来了,但是所有你看到的只是一个有输入空间的空白盒子。这就是命令行!让我们来更好地了解一下这个窗口。

输入pwd,它的意思是打印当前工作目录。在计算机语言里,“打印”什么和纸没一点关系。它实际上只是意味着吐点东西到屏幕上。这个命令运行的结果是让计算机返回你当前正处在的目录路径。(LCTT 译注,“打印”源于早期计算机的输出设备不是显示器,而是行式打印机,所以输出就是“打印”;在后期,有了显示器之后,在哑终端上操作远程主机时,输出才是“回显 echo”)

实际上,/Users/laurenorsini是我的主目录。高级提示:你可以使用波浪符(~)作为自己主目录的简写 - 它和/Users/你的用户名是一样的。比如,你可以像~/Downloads这样引用你的下载目录。(如果你仔细看前面的命令提示,你会发现那里有一个波浪符。这说明我当前正在自己的主目录下。)

我们肯定不希望我们的命令行试验把自己的主目录弄的一团糟,所以让我通过mkdir命令来创建一个新目录。这和在桌面操作系统里创建一个新目录是一样的。让我们把它叫做“experiments”:

现在我们有一个新目录了。如果使用图形界面的话,我们可以用自己的眼睛判断我们已经创建了一个新目录。当然,如果我打开Finder然后进入我的主目录(用一个小房子图标标记的)就会看到一个叫“experiments”的目录。我通过命令行实现的!(反过来:你可以在桌面系统里建立一个文件夹,然后在命令行下去查看。这只是同一套系统的两种不同表现方式。)

现在我需要通过cd(改变路径)命令改变路径进入到~/experiments目录中

我的命令提示是系统默认设定,所以它自动显示我当前的工作目录。但是如果你的看起来不一样的话,这样可以让你确定“experiments”是当前工作目录:再一次输入pwd。它应该会告诉你当前工作目录是“experiments”。

建立存档

在写代码的每一天里我都通过命令行创建和编辑文件。它比使用图形用户界面更快是因为我可以在编辑完后马上就在命令行里测试我的程序。如果我正好同时需要推送到GitHub的话,好吧,那就更方便了。

现在你有一个新目录(也可以叫做仓库或文件夹)在你电脑上用来折腾。让我们从创建一个包含“你好世界”这句话的文件开始吧。有很多种方式,在这里我用了echo命令。

哦不!我拼错“newfile”了。这经常会碰到。让我们用两个步骤来改正它。首先,我将创建一个拼写正确的文件...(LCTT 译注:完全不必创建新文件,直接 mv 即可,相当于改名。)

然后,我讲使用mv(移动)命令把拼写错误的就文件替换成我的新文件。通常都是这样,“mv 旧文件 新文件”。

关于mv要注意的:跟大多数命令一样,它是一个容易误导的强大命令。当我们“移动”newfil.txt到newfile.txt的时候,实际上会把第一个文件完全覆盖到第二个文件上。这样我写到newfile.txt里的内容将彻底消失,替换成我写到newfil.txt里的内容。

为了证明我的目录下只有一个文件,可以使用ls,清单命令,来获得目录下的所有文件清单。

看到了没?只有一个。然后如果我在图形界面下看下这个目录的话,也可以看到这个文件。

但是,它只是个空白文本文件(LCTT 译注,不是空白的,其内容是“Hello World”)。让我们用文本编辑器来输入点内容进去。在命令行下,我喜欢用nano编辑器,因为它很简单而且几乎在所有类型电脑上都可以使用。(LCTT 译注,作为 Linux 党,那肯定是要用 vi 的,不过 vi 对于初学者来说有一点点难。)

这会在你的命令行窗口中马上打开编辑屏幕。一些基本的命令都为你列出来了。

写下你想说的话,然后通过CTRL + X退出。在它问你是否保存的时候,当然键入"Y"。

你也许已经猜到了,也可以在操作系统中用鼠标找到newfile.txt文件看到这些改动。这里你可以用任意喜欢的文本编辑器打开编辑这个你创建的文件。

如果你想永远删除这个文件,可以用rm(移除)命令:

注意一下,rm命令非常强大!在黑客论坛里有个常用伎俩就是说服一个命令行新手输入rm -rf /,然后他就把自己整个电脑上的所有文件都删掉了。命令里的“/”意思是电脑的最高级根目录-所有一切都在它之下。千万不要输入那行命令!(LCTT 译注:希望你在看完这句话之前没有真的输入了 rm -rf / !!!)

延伸阅读

这只是无限可能的命令行的一个开始。你可以使用这个工具控制电脑的每一个方面,这也使得它强大的同时也很危险。保证在使用它们之前先看一下命令行提示,然后永远不要盲目输入任何陌生人推荐给你的语句。

我已经大概介绍了平时敲代码时常用的几个命令,但是有比这更多的理由去掌握命令行。如果你想更彻底地了解,也许可以试试:

命令行速成教程。一套免费的扩展课程,涵盖了命令行应用的基础。

命令行初学者启蒙。Lifehacker收藏的一些适合初学者的很有用的命令。

Mac OS X 命令行入门。在线教育网站Treehouse极尽详细地介绍了命令行的基础。

现在文章看完了,你就更容易理解我之前写的那些代码教程了,因为如果不敲几个命令根本没法完成。如果你准备好了,我建议你去看看ReadWrite的Git教程,它使用命令行来向你介绍协同编程。计算与你同在!

题图来自Jason Scott;其他屏幕截图由Lauren Orsini提供给ReadWrite


via: http://readwrite.com/2014/07/18/command-line-tutorial-intro

作者:Lauren Orsini 译者:zpl1025 校对:wxy

本文由 LCTT 原创翻译,Linux中国 荣誉推出

在软件开发者 Yitao Li (李逸韬) 的 GitHub 仓库中,几乎所有的项目都是在他的 Linux 机器上开发完成的。它们没有一个是必须特定需要 Linux 的,但李逸韬说他使用 Linux 来做“任何事情”。

文章中是称主人公为 Yitao Li,还是李逸韬?他似乎是美国人,“李逸韬”是看的他的个人主页上的名字。

举些例子:“编码/脚本设计,网页浏览,网站托管,任何云相关的,发送/接收 PGP 签名的邮件,调整防火墙规则,将 OpenWrt 镜像刷入路由器,运行某版本的 Linux kernel 的同时编译另一个版本,从事研究,完成功课(例如,用 Tex 输入数学公式),以及其他许多......” Li 在邮件里如是说。

在李逸韬的 GitHub 仓库里所有项目中他的最爱是一个学校项目,调用 libpthread 和 libfuse 库,使用 C++ 开发,用来理解和正确执行基于 PAXOS 的分布式加锁,键值对服务,最终实现一个分布式文件系统。他使用若干测试脚本分别在单核和多核的机器上对这个项目进行测试。

"可以借助正确地实现(或者至少大部分正确)PAXOS 协议,并且通过了所有测试,来学习关于分布式共识协议的知识,"他说,“当然一旦这完成了,他就可以获得一些炫耀的权利。除此之外,一个分布式文件系统在其他许多编程项目中也可以很有用。”

Li 是在 16 岁的时候第一次开始使用 Linux,或是者说大约 7.47 年之前,他说,通过使用网站 linuxfromscratch.org ,从 Scratch book 中获得的免费可下载的 Linux 中学习了大量知识。那么他为什么会使用 Linux?

"1. Linux 是黑客的天才工具,所以我没看到任何不用它的理由,"他写道,“2. 大脑的前额叶皮质(可能)在我16岁时正变得很发达。”

他现在为 eBay工作,主要进行 Java 编程但有时也使用 Hadoop, Pig, Zookeeper, Cassandra, MongoDB,以及其他一些需要 POSIX 兼容平台的软件来工作。他主要通过给 Wikipedia 页面和 Linux 相关的论坛做贡献来支持 Linux 社区,另外当然还成为了 Linux 基金会的个人会员。

他紧跟最新的 Linux 发展动态,最近还对 GCC 4.9 及之后版本新增的 “-fstack-protector-strong” 选项印象深刻。

"虽然这并不与我的任何项目直接相关,但它对于安全和性能问题十分重要。"他说,“这个选项比 ‘-fstack-protector-all’ 更高效的多,却在安全上几乎没有影响,同时比 ‘-fstack-protector’ 选项提供了更好的栈溢出防护覆盖。”

欢迎来到 Linux 基金会,Yitao !

了解更多关于成为 Linux 基金会个人会员的内容。基金会将为每位 6 月份期间的新个人会员捐赠 $25 给 Code.org。


Libby Clark


via: http://www.linux.com/news/featured-blogs/200-libby-clark/778559-the-people-who-support-linux-hacking-on-linux-since-age-16

译者:jabirus 校对:wxy

本文由 LCTT 原创翻译,Linux中国 荣誉推出

2014年8月25日,是Linux的第23个生日。1991年8月25日,一位21岁的赫尔辛基大学的学生发布了举世闻名的新闻组(Usenet post),标志着现在世界著名的Linux正式诞生。

23年以后的现在,Linux已经无处不在,不仅仅被安装于终端用户的桌面系统,智能手机和嵌入式系统,甚至也被龙头企业用于他们的关键系统,比如美国海军的核潜艇(US Navy's nuclear submarines)和联邦航空局的空中管制系统(FAA's air traffic control)。Linux进入了无处不在的云计算时代,在云计算平台方面仍然保持着它的优势。

今天,让我来告诉大家一些你们可能不知道的Linux趣事和Linux历史。如果有什么要补充的,请在评论中分享出来。在这篇文章里,我将会用“linux”、“kernel”和“Linux kernel”来表示同一个意思。

1.关于linux是否是一个开源的操作系统这种争论一直是无休无止的。事实上,“Linux”操作系统的核心组件参照的是Linux kernel(内核)。而反派认为Linux不是一个纯粹的操作系统,因为他们认为仅仅一个内核(kernel),并不是一个操作系统,自由软件的推崇者认为最大的操作系统应叫做“GNU/Linux”,把功劳归于应得的人。(比如:GNU project)。另一方面,一些Linux的开发者和程序员认为,Linux拥有成为一个操作系统的资格,因为它实现了POSIX标准

2.从openhub网站的统计来看,绝大部分(95%)的Linux是用C语言写的。第二(2.8%)受欢迎的是汇编语言。毫无疑问,C语言比C++ 的更受欢迎,也表明了Linus对C++的立场。下面是Linus编程语言的分类。

3.在全世界,Linux已经被13,036个贡献者创建和修改。当然,贡献最多的还是Linus Torvalds自己。从Linux创建至今,他提交了20,000次以上的代码。下图显示了总提交次数最多的前十位Linux贡献者。

4.Linux的代码行(SLOC)超过了1700万行。估计整个代码库的花费大概是5,526人年,或者是超过300M(1M=10*1000万亿)美元,基于模型的基本估算法(basic COCOMO model)。

5.企业并不是单纯的Linux消费者。他们的员工也在积极参与Linux的开发。下图显示了参与Linux内核开发的企业员工2013年提交次数总和的前十位。他们包括Linux商业版发行者(Red Hat,SUSE),芯片/嵌入式系统制造商(Intel,Texas Instrument,wolfson),非盈利性组织(Linaro)和其它的IT公司(IBM,Samsung,Google)。

6.Linux的官方吉祥物是一个非常可爱的小企鹅“Tux”。第一次提出并决定用小企鹅作为Linux吉祥物/标志这个想法的是Linus自己。为什么是小企鹅呢?因为Linus本人很喜欢企鹅,尽管他曾经被一只凶猛的企鹅咬伤过,还导致他得了一场病。

7.一个Linux“发行版”包括Linux内核、支持GNU的组件和库、和一些第三方的应用。根据distrowatch网站的报告,现在总共有286个活跃的Linux发行版。其中最老的一个版本叫Slackware,它是从1993年正式发布出来的一个可用的版本。

8.Kernel.org是一个Linux源码的主要仓库,曾经在2011年8月被一个匿名的攻击者攻陷,攻击者打算篡改kernel.org的服务器。为了加强Linux内核访问策略的安全性,Linux基金会最近在Linux内核的Git官方托管的仓库上开启了双重认证。

9.Linux在500强超级计算机中的优势还在增加。截至2014年6月,世界范围内运算速度最快的计算机97%都是运行在Linux上面的。

10.太空监视(spacewatch),是亚利桑那大学月球与行星实验室的一个研究项目,在GNU/Linux和它的创造者们出现之后,用他们名字命名了几颗小行星(小行星9793 Torvalds,小行星9882 Stallman小行星9885 Linux小行星9965 GNU),以表彰他们把开源操作系统用于他们的小行星调查活动。

11.纵观Linux内核发展的近代史,版本从2.6到3.0有一个很大的跳跃。这个重编的版本号3实际上并不是意味着Linux内核有什么重大的构建,但却标志着Linux 20周年的一个里程碑。

12.在2000年的时候,乔帮主还在苹果。他当时就尝试雇佣Linus Torvalds,让他放弃Linux的开发,转而为“Unix最大的用户群工作”,这个项目后面发展成了MAC OS X。当时,Linus拒绝了乔帮主的邀请。

13.Linux 内核的重启函数reboot()需要两个神奇的数字,而这第二个数字来自Linus Torvalds和他3个女儿的出生日期。

14.虽然全世界都有Linux的很多粉丝,但是也仍然存在很多对Linux的批评(主要是针对桌面系统),如缺乏硬件支持,缺乏标准化,由于很短的升级和发布周期导致系统的不稳定等等。2014年Linux内核小组在LinuxCon大会上,当Linus被问及Linux的未来将何去何从,他表示“I still want the desktop”(我仍然希望桌面化)。

如果你还知道一些关于Linux的趣事,请在评论中与我们分享。


via: http://xmodulo.com/2014/08/interesting-facts-linux.html

作者:Dan Nanni 译者:barney-ro 校对:Caroline

本文由 LCTT 原创翻译,Linux中国 荣誉推出

在过去的15年内,Linux桌面从一个还算凑合的边缘化解决方案集合发展为一个独特的创新来源和选择之一。它的标准特点中有许多是要么不适用于Windows系统,要么就只适合作为一个专有的扩展软件。因此,使用Linux愈发变得不仅是一个原则问题,也是一种偏好。

然而,尽管Linux桌面不停在进步,但是仍然存在差距。一些特点正在丢失,而一些已经丢失了,还有一些令人惊喜的附加功能可以轻易地提升桌面体验,而不用挑战用户的容忍度。

比如说,以下是7个有利于Linux桌面发展的改善建议:

7. 简单的Email加密技术

如今,各种Email阅读器从Alpine到Thunderbird再到Kmail,都带有Email加密技术。然而,关于它们的文档手册通常是不存在或者非常简陋。

但是,即使你了解加密理论,但是使用起来仍然很困难。这些控件通常分散在配置菜单和选项卡中,需要为所有你需要和想要的设置进行一次彻底的搜索才行。如果你未能进行适当的加密设置,通常你找不到任何有用的反馈。

易用性方面最接近的是 Enigmail ,它是一个带有面向初学者的设置向导的Thunderbird扩展。但是你一定要知道怎么用Enigmail,新的加密设置菜单埋藏在撰写窗口里一级菜单下,和其他选项混在一起,这让日常用户很迷惑。

不管是那种桌面环境,如你所知的,你应该对邮件加密,今天对安全和隐私的媒体不断报道让你知道加密有多重要。

6. 虚拟工作空间缩略图

不需要额外的显示器,虚拟工作空间提供了更多桌面空间。然而,尽管它们很实用,但是虚拟工作空间的管理并没有在过去十年发生改变。在大多数桌面上,你能通过每个工作空间上的pager程序(一个提供很少指示除了它的名字和数字的简单矩形框)来控制它们 -- 或者,在Ubuntu的Unity 环境中,可以指出哪个工作空间是当前激活的。

确实,GNOME和Cinnamon能提供出不错的视图,但是它们的实用性受限于它们需要显示屏大小的事实。而 KDE 写出内容列表则和主流的图形桌面不太协调。

一个比较不错的解决方案应该是鼠标悬停在足够大的缩略图上来获取正常的视图,这样就精确地查看每个工作空间上的东西了。

5. 一个合用的菜单

现代型桌面很久之前就已经舍弃了级联子菜单铺满整个桌面的经典型菜单了。如今,一般的电脑都有太多的应用程序以至于不能适应这样的模式。

糟糕的是,没有什么主要的替代品能与经典型菜单一样方便。把菜单根植于一个单一的窗口,其效果是不理想的,因为你要么必须截掉子菜单要么就用鼠标不断地调整窗口大小。

但是全屏幕菜单的产品还要差,这意味着你甚至要在开始工作之前就调整屏幕,并且哪个搜索框其实只在你已经知道什么应用程序可用的情况下才有用 -- 这种情况下你还不如直接用命令行。

坦白地说,我不知道拿什么来解决这个问题,OS X下的spinner racks吗?我可以肯定地说,所有现代型菜单产品在桌面上呈现出一个个精心构造的图标似乎更是一个合理的选择。

4. 一个专业的、实惠的视频编辑器

多年来,Linux已经慢慢地填充了软件生产力上的空白。然而即便如此,它仍然缺少价格合理的视频编辑软件。

问题不在于没有这样的自由软件。Maya 是动画产业的标准之一,但是问题在于这样的软件的售价达数千美金。

另一边,比如Pitivi或者是Blender这样的免费软件, 它们的功能性 -- 尽管它们的开发者足够的努力 -- 只能保证基本功能。虽然取得了进步,但还是和用户们所期望的相去甚远。

尽管我听说一些非主流的厂家使用的是原生态Linux视频编辑器,原因通常是因为他们抱怨其它编辑器不好,但其余的人更愿意减少麻烦,从而在其它操作系统上对视频进行编辑。

3. 一个文档处理器

有一个极端是,那些需要进行文字处理的用户,Google Docs就让他们满意了;而另一个极端是对于那些排版设计的专家来说,Scribus是唯一比较可行的应用。

这两种极端之间还有一层,是那些比如那些写作很长的文本的文件的出版商和作家。这类用户有些是由基于Windows的 Adobe FrameMaker 来服务, 有些则由基于Linux的LibreOffice Writer来服务。

不幸的是,这些用户显然不会优先考虑LibreOffice,Calligra Words, AbiWord或者是任何其它的办公套件。应该提供给用户的办公套件的特色功能包括:

  • 为每个文件建立引用书目数据库。
  • 表格的样式能和段落与字符保持一致。
  • 除了页眉和页脚,带有持续性内容的页面样式,在每次使用样式时都一样。
  • 交叉引用存储格式,以便不需要每次都手动创建。

无论是LibreOffice还是其它同类应用,提供这些特色功能与它们是否可用是并不相干的。但是没有它们,Linux桌面对于一群潜在的用户来说就是个不完善的东西。

2.彩色标题栏

浏览器的扩展软件向我们展示了彩色编码标签对于工作空间的作用。打开了八九个标签后,它的标题栏就看不全了,所以颜色通常是最快区分标签关系的方法。

同样的系统也能用到桌面上。更好的是,彩色编码也许可以按会话保存,允许用户同时打开某个任务所需的所有应用。到目前为止,我知道没有任何一个桌面有这个特点。

1. 图标栏

多年以来,Stardock公司一直销售着一个名叫 Fences 的扩展软件,它用来分类和组织桌面上的图标,你能用它给每个组取名并且可以把每个图标都放在一起。另外,你可以指定不同的文件类型自动加入到一个组里,并且按个人需要来隐藏和整理。

换句话说,fences让用户整天在桌面上干的事情自动有序地分组排列。然而,除了一两个小功能与KDE的文件夹视图类似之外,fences的功能仍然没有出现在Linux桌面上。这也许是因为开发人员把注意力放到移动设备上作为灵感来源,而使用fences无疑是传统工作站桌面的一大特征。

我个人的列表

我做了这种列表之后,让我震惊的是这些不多的改进都是普适性的,其中几项改进将会吸引大量特定的用户,只有一个是来自专有软件的移植,其中一个至少是修饰性的而不是功能性的。

这一观察表明,对于普通用户来说,Linux能添加的功能已经所剩无几了。作为一个通用的桌面,Linux从几年前到现在都很多元化,到今天,用户能从超过半打的主流桌面中选择出一个来使用。

当然这不意味着,一些专家就不会有其它意见。另外,没有人会关心不断变化的需求会不会使改进令人满意。但是它意味着这份充斥着改进建议的名单上的许多项目将会高度个人化。

所有这些都是为了抛砖引玉:你认为还有什么其它的对桌面有益的建议吗?


via: http://www.datamation.com/open-source/7-improvements-the-linux-desktop-needs-1.html

译者:ZTinoZ 校对:wxy

本文由 LCTT 原创翻译,Linux中国 荣誉推出