# LiteOS Cortex-A - [Introduction](#section11660541593) - [Directory Structure](#section161941989596) - [Constraints](#section119744591305) - [Usage](#section741617511812) - [Preparations](#section1579912573329) - [Source Code Acquisition](#section11443189655) - [Compilation and Building](#section2081013992812) - [Repositories Involved](#section1371113476307) ## Introduction The OpenHarmony LiteOS Cortex-A is a new-generation kernel developed based on the Huawei LiteOS kernel. Huawei LiteOS is a lightweight operating system \(OS\) built for the Internet of Things \(IoT\) field. With the rapid development of the IoT industry, OpenHarmony LiteOS Cortex-A brings small-sized, low-power, and high-performance experience and builds a unified and open ecosystem for developers. In addition, it provides rich kernel mechanisms, more comprehensive Portable Operating System Interface \(POSIX\), and a unified driver framework, Hardware Driver Foundation \(HDF\), which offers unified access for device developers and friendly development experience for application developers. [Figure1](#fig27311582210) shows the architecture of the OpenHarmony LiteOS Cortex-A kernel. **Figure 1** Architecture of the OpenHarmony LiteOS Cortex-A kernel ![](figures/architecture-of-the-openharmony-liteos-cortex-a-kernel.png "architecture-of-the-openharmony-liteos-cortex-a-kernel") ## Directory Structure ``` /kernel/liteos_a ├── apps # User-space init and shell application programs ├── arch # System architecture, such as ARM │ └── arm # Code for ARM architecture ├── bsd # Code of the driver and adaptation layer module related to the FreeBSD, such as the USB module ├── compat # Kernel API compatibility │ └── posix # POSIX APIs ├── drivers # Kernel driver │ └── char # Character device │ ├── mem # Driver for accessing physical input/output (I/O) devices │ ├── quickstart # APIs for quick start of the system │ ├── random # Driver for random number generators │ └── video # Framework of the framebuffer driver ├── fs # File system module, which mainly derives from the NuttX open-source project │ ├── fat # FAT file system │ ├── jffs2 # JFFS2 file system │ ├── include # Header files exposed externally │ ├── nfs # NFS file system │ ├── proc # proc file system │ ├── ramfs # RAMFS file system │ └── vfs # VFS layer ├── kernel # Kernel modules including the process, memory, and IPC modules │ ├── base # Basic kernel modules including the scheduling and memory modules │ ├── common # Common components used by the kernel │ ├── extended # Extended kernel modules including the dynamic loading, vDSO, and LiteIPC modules │ ├── include # Header files exposed externally │ └── user # Init process loading ├── lib # Kernel library ├── net # Network module, which mainly derives from the lwIP open-source project ├── platform # Code for supporting different systems on a chip (SOCs), such as Hi3516D V300 │ ├── hw # Logic code related to clocks and interupts │ ├── include # Header files exposed externally │ └── uart # Logic code related to the serial port ├── platform # Code for supporting different systems on a chip (SOCs), such as Hi3516D V300 ├── security # Code related to security features, including process permission management and virtual ID mapping management ├── syscall # System calling └── tools # Building tools as well as related configuration and code ``` ## Constraints - Programming languages: C and C++ - Applicable development boards: Hi3518E V300 and Hi3516D V300 - Hi3518E V300 uses the JFFS2 file system by default, and Hi3516D V300 uses the FAT file system by default. ## Usage OpenHarmony LiteOS Cortex-A supports the [Hi3518E V300](https://gitee.com/openharmony/docs/blob/master/docs-en/quick-start/introduction-to-the-hi3518-development-board.md) and [Hi3516D V300](https://gitee.com/openharmony/docs/blob/master/docs-en/quick-start/introduction-to-the-hi3516-development-board.md). You can develop and run your applications based on both development boards. ### Preparations You need to set up the compilation environment on Linux. - For Hi3518E V300, see [Setting Up the Hi3518 Development Environment](https://gitee.com/openharmony/docs/blob/master/docs-en/quick-start/setting-up-the-hi3518-development-environment.md). - For Hi3516D V300, see [Setting Up the Hi3516 Development Environment](https://gitee.com/openharmony/docs/blob/master/docs-en/quick-start/setting-up-the-hi3516-development-environment.md). ### Source Code Acquisition Download and decompress a set of source code on a Linux server to acquire the [source code](https://repo.huaweicloud.com/harmonyos/os/1.0/code-1.0.tar.gz). For more acquisition methods, see [Source Code Acquisition](https://gitee.com/openharmony/docs/blob/master/docs-en/get-code/source-code-acquisition.md). ### Compilation and Building For details about how to develop the first application, see: - [Developing the First Example Program Running on Hi3518](https://gitee.com/openharmony/docs/blob/master/docs-en/quick-start/developing-the-first-example-program-running-on-hi3518.md) - [Developing the First Example Program Running on Hi3516](https://gitee.com/openharmony/docs/blob/master/docs-en/quick-start/developing-the-first-example-program-running-on-hi3516.md) ## Repositories Involved [drivers\_liteos](https://gitee.com/openharmony/drivers_liteos) **[kernel\_liteos\_a](https://gitee.com/openharmony/kernel_liteos_a)**