智能设备包括很多类,有大有小,例如机器人、无人飞行器、IoT物联网设备、智能家居设备、可穿戴设备等等。这些智能设备上的计算中枢和服务器、桌面、平板、手机有着很多不同,各自有各自的特点。在服务器、桌面、手机上,操作系统是成熟的市场,新的操作系统难以获得机会。针对整个智能设备,这个题目有些大,而且也一直觉得,不同类型的东西它对应的操作系统也不见得就可以统一起来。所以这里只拎出其中的一小部分,只叙述可穿戴类设备的操作系统。
可穿戴设备形态包括很多种,例如:手环、手表、眼镜、虚拟现实头盔、体温计、衣服、袜、鞋、帽、戒指、项链、心率带、耳机等。这其中从计算的角度有复杂的也有简单的,简单的如温度计,复杂的如眼镜、虚拟现实头盔等,从目前的应用看,首先它不是一个独立的设备,而一定是一个联网的设备,这个网主要的一个是手机,因为手机太普及,是一个很好的通讯桥梁。
在可穿戴设备中需要考虑的计算问题包括:
功耗问题
联网问题
人机交互
数据采集
体积问题
可穿戴设备操作系统考虑的主要问题是其中的软件问题,所以我们把关注点更多地放在和软件相关的部分,体积不在考虑之列(但体积问题又会极大地限制电池的容量,这样反过来制约了功耗)。按传统说法,操作系统是计算资源管理者,广义来说,操作系统更应该考虑用户的友好性(或者说应用的友好性)。
功耗问题
首先功耗问题关键在于硬件,只有硬件层面的功耗降低,才有可能降低整体功耗,增加设备的使用时间。从电路来说,电路的功耗等于:电压x电流。要想降低功耗,可以降低电压,也可以降低电流。假定电压恒定,我们绘制一幅电流按照时间变化的图,可以得出功耗时:从起点到终点,电流图上的面积。(如果电压也变化怎么办?好吧,绘制一个三维图,然后计算其中的体积)
功耗电流时序图
设备运行时,一般不会让它持续的全力工作(笔记本也有风扇转和不转的时候),这其中包括了CPU、RAM、闪存、传感器、外设、无线通信等。理想的状态是,当这些资源不使用,能够停掉,进入睡眠低耗电模式。这些硬件资源的工作电流(激活工作时及休眠省电时)决定了整机的耗电量。需要注意的是,硬件功耗情况,也和它待机时的底电流密切相关,因为休眠时间可能占据整个时间的90%,休眠低电流是1mA还是100uA,这个差别将直接导致待机时间相差十倍。理想的功耗电流时序图是,大多数时候是待机状态,电流为0uA,工作时电流上升,但最好是仅仅上升成一个非常细的尖峰,时间段一定要短,这样面积也相应的小!
对于操作系统来说,它需要恰到好处的关闭不再使用的硬件,包括CPU/RAM/外设等等。另外也需要着重考虑的是,应用本身的耗电情况。例如微信,5分钟醒来接收一次消息和30秒就收一次消息是完全不一样的。如何有效管理应用的耗电情况是一个十分值得探索的话题。
联网问题
可穿戴设备上低功耗蓝牙(BLE,或Bluetooth Smart)比较流行,因为它能够在连接时保持非常低的电流,激活再行收发数据也非常迅速。不过BLE如果在传输数据量比较大时,就比较尴尬了,目前它的数据传输速度非常有限(有所得必有所失嘛)。其他的连接技术还有,2G/3G、Wi-Fi等,Wi-Fi会比较耗电。这些是数据传输的问题,对于操作系统来说,更需要提供的是设备、手机和云的数据交互便捷性。这部分,JSON作为数据交互消息格式有很强的适应性,不管在手机还是在云端都能够很方便地剥离出其中的有效数据,同时即使是人眼来查看这些数据也具备良好的可读性。
人机交互
有一点很明确的是,可穿戴设备不是PC桌面(办公方式的大屏幕)、手机(便携方式的小屏幕),因为体积的关系,能够提供的只能算微屏幕,或者投影方式(眼镜)。从交互上说,必然是另外一种人机交互方式,不是键盘(Server),不是鼠标(Desktop),也不是手指(Phone)。所以想让Linux用于Desktop,Windows用于Phone,Android用于Wear都有很大挑战性,原有的应用程序并不能够无缝迁移。智能设备操作系统需要新的交互方式,或类似于科幻片中的3D手势交互,或直接的语音智能交互,或脑电波方式的人机思维交互等等,而不再局限于屏幕!也非常有可能,你随身携带的可穿戴设备就是你的交互输入端。