Moves the files from Architecture to the Overview section of the Kernel Primer. Cross-references and figures were updated to reflect the new structure. Headings and content were changed as little as possible. These changes are needed to implement the proposed new structure of the documentation. Content was changed as created as little as possible. Change-Id: Id1f91ff6c8f858bfd48ad034594ba38531c7e1c4 Signed-off-by: Rodrigo Caballero <rodrigo.caballero.abraham@intel.com>
40 lines
1.6 KiB
ReStructuredText
40 lines
1.6 KiB
ReStructuredText
.. _overview:
|
|
|
|
Overview
|
|
########
|
|
|
|
The |codename| is composed of a microkernel operating on top of a nanokernel.
|
|
Device drivers must operate on top of either a microkernel or a nanokernel
|
|
and must be developed accordingly. Applications can be developed to operate
|
|
on top of a nanokernel, a microkernel or both.
|
|
|
|
The |codename| provides three scheduling or execution contexts. The
|
|
:abbr:`ISRs (Interrupt Service Routines)` are the execution context closest
|
|
to the hardware. They are followed by the fibers execution context. Finally,
|
|
the tasks comprise the third and last execution context.
|
|
|
|
ISRs can interrupt fibers and tasks. By default, it is possible to nest ISRs
|
|
but that option can be disabled. The main purpose of ISRs is to mark fibers
|
|
and tasks as runnable.
|
|
|
|
Fibers are typically used for device drivers and performance critical work.
|
|
They are cooperatively scheduled and each fiber possesses a priority. Fibers
|
|
run until they yield or call a blocking
|
|
:abbr:`API (Application Program Interface)`. Once a fiber is marked as not
|
|
runnable, the next highest priority fiber runs.
|
|
|
|
Tasks are used, primarily for data processing. A task is scheduled only when
|
|
no fibers are marked as runnable. Tasks can be preempted and the highest
|
|
priority task runs first. Tasks of equal priority use round-robin time-
|
|
slicing between them.
|
|
|
|
The following sections describe the general functionality and basic
|
|
characteristics of the nanokernel and the microkernel as well as the
|
|
principles behind the development of drivers and applications.
|
|
|
|
.. toctree::
|
|
:maxdepth: 1
|
|
|
|
overview_nanokernel
|
|
overview_microkernel
|
|
overview_apps |