What is Huawei Harmony OS 2.0 trying to do? I think the point is, what is the IoT (Internet of Things) operating system? As for the topic itself, it can be said that most of the online answers are misunderstood. For example, most reports refer to the embedded system which runs on a device and Harmony OS as the “Internet of Things” operating system. I'm afraid that's not right.
At least in this news, it is wrong. There is a significant difference.
If we say that the computer operating system is helping users use their computers through software, then the embedded system is to solve the networking and computing problems of IoT devices themselves. Harmony OS’s design idea is to solve what users can do and how to do it through software.
I will briefly introduce the difference between these two systems and what Harmony OS 2.0 has done with this idea.
1. Embedded System for IoT is not equal to Harmony
First of all, there is something everyone should be aware of. In the age of IoT, electronic devices are emerging in large numbers, and the terminals are presenting isomerization. This brings about several phenomena:
One is the growth rate of the connection between the devices is much greater than the device itself. (For example, a smartwatch can connect to wifi and multiple Bluetooth devices simultaneously.)
The other one is, device’s own hardware and connection protocols are becoming more diversified, and it can even be said to be fragmented. (For example, the storage space of IoT devices may range from tens of Kilobytes for low-power terminals to hundreds of megabytes of vehicle terminals, ranging from a low-performance MCU to powerful server chips.)
As we all know, the significance of the operating system is to abstract the basic functions of the hardware of the device and provide a unified interface for various application software, thereby isolating and shielding complex hardware scheduling operations. It allows various applications to manipulate the hardware without having to deal with the hardware.
In the Internet of Things, new problems have appeared in the hardware itself, which is a new opportunity and a new challenge for operating systems. To address the connectivity, fragmentation, and security of these devices themselves, quite a few embedded operating systems have been created, such as the Lite OS of Huawei, Mbed OS of ARM, FreeRTOS, and the extended safeRTOS, Amazon RTOS, etc.
The notable features of the embedded system of IoT are:
The hardware drivers can be separated from the operating system kernel.
Because of IoT devices' heterogeneous and fragmented characteristics, different devices have different firmware and drivers. They need to separate the driver from the operating system kernel so that the operating system kernel can be a more scalable and reusable resource.
The operating system can be configured and tailored.
As I said before, the hardware configuration of IoT terminals has storage space ranging from tens of kilobytes to hundreds of megabytes. Therefore, the same operating system needs to be tailored or dynamically configured to adapt to low-end or high-end complex requirements simultaneously.
Ensure collaboration and interoperability between devices.
There will be more and more tasks for each device to work with each other in the Internet of Things environment. The operating system needs to guarantee the communication function between the instruments of the Internet of Things.
Ensure the security and credibility of IoT devices.
The IoT device itself stores more sensitive data, so the access authentication requirements for the device are higher.
Under this kind of thinking, although this type of operating system solves the hardware operation, mutual calling, and networking problems of IoT devices, it does not consider what and how users can use these systems to facilitate IoT devices connected to the Internet.
From the users’ point of view, the calling process for such an IoT device system is generally like this:
The users need to use their APP or IoT device background management (such as the cloud manager), invoke the IoT interface on the device, and then access the hardware device through the system on the IoT device. This often involves the mutual calls between the mobile operating system and the Internet of Things device system. The APP here is just an Internet of Things device background management. The linkage between any Internet of Things device will be very complicated.
2. What has Harmony improved in its design ideas?
The connection between devices is no longer an application layer function but is encapsulated and isolated through middleware.
On the surface, Harmony OS 2.0 isolates the connection of IoT devices through the “distributed soft-bus, thus avoiding connection management on mobile systems so that you can see at the press conference the mutual call Harmony mobile phone and Internet of Things devices is very convenient.
But from an operating system perspective, connection encapsulation isolation brings more than just the convenience of connection management. It means that “connectivity” descends from the application layer to the hardware layer, becoming the fundamental capability of a fragmented operating system.
On the one hand, the cross-platform operating system resource calls do not need to cross layers. This means that cross-system data interaction does not need to be connected and validated by the user. Hence, the operating system can call across devices while ensuring the quality of the connection. At this time, hardware device/computing system/storage system between the two devices is interoperable, so two or more shared hardware/storage devices can implement—"super terminal,” such as the synchronization of the cross-device camera, file synchronization, and even possible future CPU/GPU cross-platform calls.
On the other hand, it also represents that developers themselves don’t need to focus too much on the complex debugging of IoT connectivity. They need to focus on functional logic and interface logic. This will significantly reduce the development cost of the IoT application because each application system previously required to be developed and debug from the most basic application functions to the device connection, resulting in poor adaptability of the application system. Developers only need to rely on the API provided by the Harmony system to avoid the complex debugging connection and complete the adaptation and development of multiple devices.
It is conceivable that there will be many applications that multiple IoT devices will implement in the future, and these applications will be far more effective than simply stacking them together. These effects need to be relatively high development costs so that it is difficult to achieve.
In this case, the ability:
1. Avoid cross-system calls altogether so that IoT software and many IoT hardware devices can be genuinely decoupled through the operating system.
2. Facing utterly different scenarios, provide essential services (atomic service card) to all IoT devices through an operating system.
3. Application development only needs to focus on functional logic, which significantly improves the development efficiency of multiple IoT device applications.
If we think deeply about it when all the devices are connected, will the application services on the device have priority? Of course, the current Harmony system should be the core to providing services, and the human attention device is the primary device.
As I said at the beginning, compared to the existing Internet of Thing system, it only solves the fundamental problems of massive connection of Internet of Things devices and device fragmentation so that IoT devices can interconnect; as an operating system, more consideration should be given to how easy it is for users and developers to use or invoke these devices to complete the effect of 1=1 greater than 2.