blob: 84f57d88e0fcaa73bbaf104bf5dd83b400da6d8a [file] [log] [blame]
.. _system_fundamentals:
System Fundamentals
###################
An :dfn:`application image` is a binary that controls the operation
of a hardware system, or of a simulated system running under QEMU.
Each application image contains both the application's code and the Zephyr
kernel code needed to support it. They are compiled as a single,
fully-linked binary.
Once an application image has been loaded onto a target system, the image takes control
of the system, initializes it, and runs forever as the system's sole application.
Both application code and kernel code execute as privileged code within a single
shared address space.
An :dfn:`application` is a set of user-supplied files that the Zephyr build
system processes to generate an application image. The application consists of
application-specific code, a collection of kernel configuration settings, and at
least one Makefile. The application's kernel configuration settings enable the build
system to create a kernel tailor-made to meet the needs of the application
and to make the best use of the system's resources.
The Zephyr Kernel supports a variety of target systems, known as *boards*;
each :dfn:`board` has its own set of hardware devices and capabilities. One or more
*board configurations* are defined for a given board; each
:dfn:`board configuration` indicates how the devices that may be present on the
board are to be used by the kernel. The board and board configuration concepts
make it possible to develop a single application that can be used by a set of related
target systems, or even target systems based on different CPU architectures.