云端操作系统 + AI人工智能,这个组合好熟悉!难不成电影云端情人(英文原名 her)的时代要开始了吗?
先不说是否真能与计算机谈一场柏拉图式恋爱,操作系统迎合你的喜好而自动学习的功能虽不成熟,但早已在各大系统与装置里面加入了!微软这次的大动作满有意思的,这几年在装置端的失败,看看是否可以借由这次破釜沈舟来重返荣耀!
微软在3月底发布了一则惊世骇俗的重大新闻,就是预计在2018年度裁撤Windows的营运部门,并把事业重心放置云端事务上,这个政策取决于互联网时代的来临,举凡像是亚马逊、Google以及微软自家的云端服务,已经可以有等同个人计算机里Windows操作系统服务,像是我们最常使用到的Office系列,今年(2018年)也找来了目前最火的Youtuber业配王HowHow代言(频道影片)。
这样的政策面虽然对工程师来说是一个不小的冲击,但对云端服务来说,等同是一个重大个宣判,告诉各位投资者及客户,云端服务的红海战争,已经正式开打。
而这次的裁撤却也促生了微软两个新生部门,一个是体验和装置(Experiences & Devices)部门,以及云端与 AI 平台(Cloud + AI Platform)部门。体验和设备部门之后的核心业务会负责Windows 和 Office 软件开发工作,并负责生产如 Surface 、Xbox及其他微软开发的硬件装置。而云端与 AI 平台部门,则如出其名,将以提供云端服务的企业服务为核心,包括 Azure 云端服务以及各种分布式计算解决方案等。
这样政策也宣判过去在微软透过以Windows及Windows CE为嵌入式装置的操作系统,未来也将全数移转到以Linux为核心的Windows,作为日后物联网(Internet of Things, IoT)战争厮杀的重大筹码,但这个举动的意向为何呢?微软的下一步策略又是什么?
我想这必须先从“嵌入式装置”(Embedded System)说明开始提起,我们都知道嵌入式装置是物联网的应用及解决方案之一,过去英国电机工程师协会的定义为“控制、监视或辅助设备、器具(机器)或其他工厂运作的装置”,并具备下列特征:
1、仅执行特定功能,故和家庭计算机或Server上就有很大的区别
2、透过微电脑与周边软硬件来架构核心
3、稳定、全自动操作循环
像是早期的Mp3播放器,到现在的智能家电、蓝牙喇叭,其实都是嵌入式装置的广泛应用,而这中间不可或缺的,就是实时多任务处理核心 (real-time multi-tasking kernel),和具备实时多任务作业的操作系统,来完成这些装置上CPU、内存的管理和分配,以及和其他装置的联系等,但在核心及操作系统的选择上,同样是intel芯片Window与Linux相比可说相当吃亏。
Windows本身在嵌入式装置上有操作系统的解决方案(如精简版Windows 的 WindowsCE 或是 Windows 10),但设计复杂,程序肥大等特性,逐渐已经在市场和性能反应上落后Linux不少;而在开源及自由软件运动的协助下,Linux核心发布多次版本,来针对I/O、进度、系统甚至是TCP/IP上作出了各种优化,但因Window是商用软件的考虑,除了原始码非开放外,无法轻易做到个别硬件的订制化开发更是一大痛点,加上在架构上过为复杂,一但更改核心设计更可能影响到其他商用软件的支持。
这也是我们很少看到Windows补丁程序发布的原因之一,更别提外界人士(或小区)自发性的优化提案,被微软公司接受的案例。
辉哥补充:
这是相当致命的一样因素,早年在ODM场嵌入式装置的开发中,尤其是ARM芯片(常见于手机、平板中)正火热的那几年,卖一台赚四台,利润比卖衣服还高。客户永远有新想法,市场火热,零件装置不断出新。如果无法在短时间解决装置兼容性的问题,老板、客户方面的压力马上出现。
如果主机是Linux装置,Sample Code Driver通常很快就会在社群出现,或是你可以找到很多参考书籍与网络文章讨论,对于因市场热络而被公司补充新人来说碰到完全不能解决的情况相对少很多。
如果是WindowsCE主机,几乎查不到信息,只能等厂商发Sample Code出来,如果没有Smaple Code或是有Bug。除了自己解之外(对新手来说几乎完全不可能),那就只能让业务对厂商施加压力。
更不用说在这树莓派(Raspberry Pi)开发版已经连高中生都可以轻易把玩开发的年代,还在想办法移植驱动程序到WindowsCE? 人家自走车搭配人脸辨识系统都不知道甩你几条街了?
而我们都知道Linux是自由软件运动以及GNU计划跃进的代表角色,过去GNU计划里开发的软件,都只能依赖在Unix作执行,而Linux出现后,许多软件也可以接续使用Linux为主要操作系统来进行开发,因此也越来越多的团队参与Linux作为开发测试平台的计划,来符合更多如学术上的个别硬件、或是针对其他目的作出的订制开发。演变迄今Linux kernel 目前已经具备小而巧,支持度广(不管是平台还是软件)的代名词。
正因为自由软件计划的特性,比起封闭的商用软件,更容易招揽开发者的投入,仅管他现在背负者GPL这个令人疑虑的条例,但仍无法消弥程序开发者优化Linux的热情,哪怕只要提高处理效能的1%,这些跃进都有可能让你在软件界名留青史。而这样的特性,更适合应用在物联网上针对互联网解决方案的嵌入式装置上作应用。
综合上述优缺点,这也是现在Linux成为了嵌入式装置应用的主要考虑之一,?了让Linux可以成功导入嵌入式装置,更促使了嵌入式Linux(Embedded Linux)的诞生,目前也广泛的运用在智能手机、PDA及媒体播放器上,像Android 系统就是利用Linux 核心的一个非常著名的嵌入式实例。
苹果计算机的MacOS 系统内涵的核心也是由类Unix核心改出来的(与Linux相当接近),所以兼容度相当高,也导致于现在多数的Linux与网站开发工程师选用Macbook Pro笔电当作开发工具(全世界80%以上的网站都是在Linux操作系统下架设网站(操作系统免费商业使用),无论是使用PHP, Java, Ruby On Rails还是其他的程序语言架设,微软拥有的C#除外)
所以Windows将开发重心移到Linux下作发展,似乎也奠定了Linux在物联网时代的角色定位,当然这并不是一步险棋,而是宣告微软业务类型未来会进行的重大转变,当微软不在是一个纯软件供货商时,他的下一步的战略又是什么呢?
过去一年,微软公司分享许多未来他们在智能云端(intelligent cloud)及智能边缘(intelligent edge)的看法与布局,智能云端即是提供更多强而有力的计算辅助,结合AI给企业更多面向的运用,而智能边缘则是物联网的下一步,边缘是指在物联网中最终端的接收装置(或可称边缘装置),透过装置的更细小化,作出像是感知器上的应用,例如空气质量监测、雨水搜集及人脸辨识等,都是未来边缘装置的应用之一,来取代过去传统的嵌入式装置,达到体积精小化、任务单一化的目的。这样的政策走向,也告知着云端运算以及多任务运算核心的重要,而Linux更是其中运作的关键角色。
所以从时代的演进,微软已经从过去的软件公司,演进成行动、云端和AI公司,并将整体的开发资源投入在云端服务上,似乎也告诉广大消费者,物联网的红海战正式开打,随着时代的演进,面对越来越微型化的嵌入式装置(或边缘装置)如何有效的导入Linux,对C语言的熟悉和开发经验,都是应用Linux其他套件所需的重要课题。总之未来的趋势无人可挡,具备Linux的基底,绝对是让自己跃身为物联网要角的不二法门。