1# LiteOS Cortex-A<a name="EN-US_TOPIC_0000001096612501"></a> 2 3- [Introduction](#section11660541593) 4- [Directory Structure](#section161941989596) 5- [Constraints](#section119744591305) 6- [Usage](#section741617511812) 7 - [Preparations](#section1579912573329) 8 - [Source Code Acquisition](#section11443189655) 9 - [Compilation and Building](#section2081013992812) 10 11- [Repositories Involved](#section1371113476307) 12 13## Introduction<a name="section11660541593"></a> 14 15The 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. [Figure 1](#fig27311582210) shows the architecture of the OpenHarmony LiteOS Cortex-A kernel. 16 17**Figure 1** Architecture of the OpenHarmony LiteOS Cortex-A kernel<a name="fig27311582210"></a> 18![](figures/architecture-of-the-openharmony-liteos-cortex-a-kernel.png "architecture-of-the-openharmony-liteos-cortex-a-kernel") 19 20## Directory Structure<a name="section161941989596"></a> 21 22``` 23/kernel/liteos_a 24├── apps # User-space init and shell application programs 25├── arch # System architecture, such as ARM 26│ └── arm # Code for ARM architecture 27├── bsd # Code of the driver and adaptation layer module related to the FreeBSD, such as the USB module 28├── compat # Kernel API compatibility 29│ └── posix # POSIX APIs 30├── drivers # Kernel drivers 31│ └── char # Character device 32│ ├── mem # Driver for accessing physical input/output (I/O) devices 33│ ├── quickstart # APIs for quick start of the system 34│ ├── random # Driver for random number generators 35│ └── video # Framework of the framebuffer driver 36├── fs # File system module, which mainly derives from the NuttX open-source project 37│ ├── fat # FAT file system 38│ ├── jffs2 # JFFS2 file system 39│ ├── include # Header files exposed externally 40│ ├── nfs # NFS file system 41│ ├── proc # proc file system 42│ ├── ramfs # RAMFS file system 43│ └── vfs # VFS layer 44├── kernel # Kernel modules including the process, memory, and IPC modules 45│ ├── base # Basic kernel modules including the scheduling and memory modules 46│ ├── common # Common components used by the kernel 47│ ├── extended # Extended kernel modules including the dynamic loading, vDSO, and LiteIPC modules 48│ ├── include # Header files exposed externally 49│ └── user # Init process loading 50├── lib # Kernel library 51├── net # Network module, which mainly derives from the lwIP open-source project 52├── platform # Code for supporting different systems on a chip (SOCs), such as Hi3516D V300 53│ ├── hw # Logic code related to clocks and interrupts 54│ ├── include # Header files exposed externally 55│ └── uart # Logic code related to the serial port 56├── platform # Code for supporting different systems on a chip (SOCs), such as Hi3516D V300 57├── security # Code related to security features, including process permission management and virtual ID mapping management 58├── syscall # System calling 59└── tools # Building tools as well as related configuration and code 60``` 61 62## Constraints<a name="section119744591305"></a> 63 64- Programming languages: C and C++ 65- Applicable development boards: Hi3516D V300 66- Hi3516D V300 uses the FAT file system by default. 67 68## Usage<a name="section741617511812"></a> 69 70OpenHarmony LiteOS Cortex-A supports the [Hi3516D V300](https://gitee.com/openharmony/docs/blob/master/en/device-dev/quick-start/quickstart-lite-introduction-hi3516.md). You can develop and run your applications based on this development board. 71 72### Preparations<a name="section1579912573329"></a> 73 74You need to set up the compilation environment on Linux. 75 76- [Setting Up Ubuntu Development Environment](https://gitee.com/openharmony/docs/blob/master/en/device-dev/quick-start/quickstart-lite-env-setup.md) 77- For Hi3516D V300, see [Setting Up the Hi3516 Development Environment](https://gitee.com/openharmony/docs/blob/master/en/device-dev/quick-start/quickstart-lite-steps-hi3516-setting.md). 78 79### Source Code Acquisition<a name="section11443189655"></a> 80 81Download and decompress a set of source code on a Linux server to acquire the [source code](https://gitee.com/openharmony/docs/blob/master/en/device-dev/get-code/sourcecode-acquire.md). 82 83### Compilation and Building<a name="section2081013992812"></a> 84 85For details about how to develop the first application, see: 86 87- [Developing the First Example Program Running on Hi3516](https://gitee.com/openharmony/docs/blob/master/en/device-dev/quick-start/quickstart-lite-steps-hi3516-running.md) 88 89## Repositories Involved<a name="section1371113476307"></a> 90 91[Kernel subsystem](https://gitee.com/openharmony/docs/blob/master/en/readme/kernel.md) 92 93[drivers\_liteos](https://gitee.com/openharmony/drivers_liteos/blob/master/README.md) 94 95[kernel\_liteos\_a](https://gitee.com/openharmony/kernel_liteos_a/blob/master/README.md) 96 97