# Brief Introduction
MXOS (MCU based Internet Connectivity Operating System) is a microcontroller-based Internet access operating system and an ideal software platform for developing IoT devices.
MXOS includes a real-time operating system kernel for IoT devices, making it ideal for running on resource-constrained micro-controllers. MXOS includes the underlying chip driver, wireless network protocol, RF control technology, and application framework. In addition, MXOS also includes network communication protocol stack, security algorithms and protocols, hardware abstraction layer, programming tools and other software features necessary to develop IoT. package. It provides abstraction of the MCU platform, so that MXOS-based application development does not need to care about the implementation of MCU specific component functions, and quickly build IoT device software through various programming components provided in MXOS.
Simply to say, MXOS is an open source software system under the intelligent hardware. It has advanced dynamic power management technology, which can be flexibly applied to a wide range of MCUs. It has a complete cloud access framework and application examples, and supports multiple cloud-like platforms. Reliable and easy for secondary development.
The key features of MXOS are as follows ：
- Support multiple network protocol stacks: Bluetooth® low energy-Bluetooth, Wi-Fi, and continue to increase;
- Multiple RTOS kernels are optional and provide a standard HAL layer;
- Supports the Cortex-M architecture family of microcontrollers, providing an MCU platform-level abstraction-HAL hardware abstraction layer interface that enables applications to be seamlessly ported across MCU platforms;
- Fully automatic and efficient power management;
- Supports IPv4/IPv6 TCPIP protocol stack with built-in commercial transport layer security protocol TLS protocol;
- Based on a large number of cloud access protocols developed by MXOS, enabling device data to reach the cloud quickly;
- A large number of sample programs and instructions for developers to get started quickly;
- Provide code management and maintenance scripting tool - MXOS Cube, providing complete development workflow management, version maintenance, collaborative development, compilation, download and debugging;
- Provides an integrated development environment based on Eclipse - MXOSder IDE, which is highly scalable to improve development efficiency;
- Develop highly customized compilation systems for componentization for fast software integration;
- Provide complete equipment mass production technology, such as: boot program, mass production programming, production test program, etc.
In simple terms, MXOS itself includes: interface, framework, core functions and non-core functions.
MXOS defines two standard API interfaces:
- The low-level hardware abstraction layer HAL API facilitates the porting of operating systems and applications on different hardware platforms.
- Interface functions for upper-level applications MXOS API, through which these applications implement the various system functions provided by MXOS.
Through these two standard API interfaces, the MXOS system is independent of different hardware devices, and the applications on MXOS can remain independent. Developed in accordance with the definition of these interfaces to ensure system and application compatibility.
The application framework in MXOS is some of the development paradigms we have summarized from the application. Developers develop under the framework and can quickly implement the application requirements in a standardized way.
- Application layer framework: Basic and required functional frameworks have been implemented without any code coding. Of course, developers can also implement a special running process by setting and directly calling the API.
- Hardware Configuration Framework: When the hardware device connection method is changed (such as pin modification), the connection parameters can be quickly and easily modified in the board level configuration.
- Cloud Service Access Framework: The Cloud Access Protocol component also provides a simple and effective application framework for applications. Applications need only implement and application-related parts to quickly implement application functions.
The MXOS system includes core features that provide the essential features of embedded devices for IoT development. include:
- Real-time multi-threaded kernel;
- network communication protocol stack;
- Wi-Fi network interface management;
- Secure encryption algorithms and protocols;
- Wireless network management;
- File system;
- MXOS system services and frameworks (core data storage, notification systems, local discovery, Wi-Fi distribution network, local configuration, command line interface, etc.);
- MCU platform hardware driver.
Non-core features provide additional support for applications that simplify development. These features include:
Service: The long-running function code on MXOS can implement specific application functions by itself, for example, HTTP server, HomeKit server, DHCP server, DNS server, local configuration server (some services have been integrated in MXOS due to versatility) Core functions) and so on.
Communication protocol: Standard-compliant network communication protocols, such as MQTT protocol, SNTP protocol, HTTP and HTTPS protocols, WebSocket, Ali intelligent cloud access protocol, and commonly used cloud access protocols, these functions can be called in applications or services. To implement data interaction with the peer network device.
Tools: These software modules implement some common software object processing and algorithms, such as Json tools, which can implement Json data packet construction and parsing. String tools can implement various common processing of string content. URL tools can be used for protocols. URL address. The purpose of these tools is to simplify the development of the application. Some unimportant non-core features will be gradually stripped from MXOS OS in the future, providing independent components that are selectively added by developers.
In addition to the above main features, MXOS has some features that make it a major advantage over other platforms, such as: Ease of use: MXOS itself has been born out of MXCHIPfor more than 10 years of IoT terminal equipment development experience, not only provides a basic software platform, but provides a large number of software toolkits, and is presented in open source, with the version The upgrades continue to expand, and new software packages are available on the developer platform to share.
Low Comsumption: Optimized for embedded platforms, the tight combination of software and hardware greatly reduces the power consumption of the device. The processor and the wireless network device cooperate with each other, each has an independent low power mode, and wakes up the other party to complete the necessary data processing when necessary.
Security: Security is the guarantee of IoT availability. Insecure network communication not only causes privacy leakage of various users, but also causes network attacks on user devices, damages devices, and ultimately destroys the entire IoT service system. MXOS is built-in. Commonly used network security algorithms and security protocols, and optimized on embedded devices with limited performance. Through these functions, network communication security and confidentiality can be ensured, and applications can smoothly access various secure cloud services.
Close connection with cloud services: MXOS itself is the basic software platform for implementing IoT terminal devices, and the purpose is to facilitate the access of products to the Internet of Things. Therefore, MXOS itself provides a variety of cloud service interaction methods, which can easily access common cloud platforms at home and abroad, such as Fog Cloud, Wisdom Cloud, Ali Smart Cloud, WeChat, Amazon, Azure, etc.
Wireless networks and tools: MXOS's network connection is wireless, ensuring the mobility of end devices and making them easier to deploy. The current wireless form that MXOS mainly supports is Wi-Fi. The Wi-Fi communication module with Qingke Information can easily add wireless network functions to embedded devices and access the Internet through routers. In order to facilitate users to set wireless network parameters, MXOS can provide the industry's most comprehensive wireless network configuration solution, supporting EasyLink, AirKiss, Soft AP, WiFi WAC, and can also cooperate with WeChat, Ali Xiaozhi, EasyLink, etc. on the same MXOS firmware. Network Configuration. In addition, MXOS also supports low-power Bluetooth communication, and the EMW3239 module can be interconnected with other Bluetooth devices to implement IoT gateway applications.
Mass production tools: MXOS-based intelligent IoT products have entered a large number of households, and in the process accumulated a large number of production testing experience, these experiences are also integrated in MXOS. MXOS's built-in test mode can be used in conjunction with the production test system of Qingke Information to produce reliable, traceable intelligent hardware products.
In addition, MXOS's own code has been verified by a large number of products, and various problems exposed in mass production have been solved one by one. It can be said that the MXOS system is an excellent system solution that can help developers achieve product batches.
The MXOS system is also constantly evolving, and we work with developers to continuously integrate new technologies and functions. At the same time, we will focus more on the core functions of the MXOS system to provide you with a more professional and reliable base platform. Architecturally, MXOS-based software is more modular and more automated through new technologies. We will increase the development of new embedded device development methods, provide a unified integrated development environment, debug tools, and import the development language of the Internet industry to further simplify development. At the same time, the development platform of MXOS software is vigorously developed, enabling developers to develop, manage and share various software modules on the platform.