1.1 Nuttx system architecture
The Nuttx operating system software architecture is as follows:
Ø There is a strict and standard interface between the application program and the kernel. This interface is POSIX interface;
Ø The user lib library is in the libs/ directory. In this directory, it contains libraries based on shared logic for the kernel and applications, such as libc, libm (math), libnx (graphics), etc.;
Ø The kernel is organized into modules, and functional modules are organized into directories, such as nuttx/audio/, binfmt/, crypto/, drivers/, fs/, graphics/, video/, wireless/, etc.;
Ø User-oriented kernel lib:
1) sched/provides OS services to users;
2) syscall/ provides a system call interface in PROTECTED and KERNEL modes;
3) mm/ provides memory management functions;
4) fs/vfs/ provides a POSIX-based file interface;
5) net/sockets/ provides a BSD-based socket interface;
Ø OS internal lib:
1) arch/provides specific architecture support;
2) boards/provide specific board support;