with or without iron binding
from the task "friendly"
This level (boot) is the base level in the UCM architecture, since the entire UCM system is built on the Linux kernel with the necessary architectural changes.
The main tasks performed by the kernel.
The kernel contains the drivers needed to interact with the hardware. Such as Audio, Binder (IPC), Display, Bluetooth, Camera, Keypad, Shared Memory, USB, WIFI.
Power Management - power management system. It provides various means by which an application can respond to the device's power states and keep necessary device components active.
The Linux Kernel provides memory and process management.
When running different applications, the kernel ensures that the memory space they use does not conflict or overwrite each other. It also checks that all applications get enough memory for their work, and at the same time makes sure that no application takes up too much space.
Each application in UCM runs in a separate process. The kernel, on the other hand, is responsible for managing these processes, namely for creating, suspending, stopping, or terminating processes, for running multiple processes simultaneously, exchanging data between processes, and running processes in the background. In addition, the kernel distributes work among the device's processors, which maximizes the performance of devices with multiple cores.
Hardware Abstraction Layer (HAL)
HAL provides communication between drivers and libraries. It consists of several library modules, each of which implements an interface for a specific hardware component (Bluetooth, Camera, etc.). And when the device hardware is accessed via the API, the module necessary for its operation is loaded.
Android Components We Use
Android Runtime (ART)
Java was chosen as the main language for UCM, as well as for Android, since it is one of the most popular programming languages. There are many developments and specialists for Java, and programs written in it are portable between operating systems.
But in order for the program to work in Java, a virtual machine is required - the Java Virtual Machine. Android uses the Android Runtime Virtual Machine (ART) and we use that too. This machine is specially optimized to work on mobile devices: low on memory, constantly uploading and downloading applications, etc.
Native C/C++ Libraries
A set of libraries written in C or C++ and used by various UCM components such as WebKit, Media Framework, OpenGL, SQLite.
Java API Framework (Application Framework)
A set of APIs written in Java that gives developers access to all the features of the UCM OS. These APIs form the building blocks needed to build applications, making it easy to reuse core, modular, system components and services such as:
Activity Manager - manages the application lifecycle and provides a common navigational callback stack.
Window Manager - manages windows and is an abstraction of the Surface Manager library.
Content Providers - allows an application to access data from other applications or share its own data, i.e. provides a mechanism for exchanging data between applications.
View System - contains the building blocks for creating the user interface of the application (lists, texts, buttons, etc.), and also manages the events of the user interface elements.
Package Manager - manages various kinds of information related to application packages currently installed on the device.
Telephony Manager - allows the application to use telephony features.
Resource Manager - Provides access to resources such as localized strings, bitmaps, graphics, and layouts.
Location Manager - the ability to determine the location.
Notification Manager - display notifications in the status bar.
The top level in the OS UCM architecture is built according to the tasks set and can not only look like IOS or Android, but also be friends with RUStore, Google Play, AppGallery, Apple and other app stores.