Download POK User Guide

Transcript
Chapter 7
Architecture
7.1
Directories hierarchy
The project is organized with a hierarchy of several directories:
• examples: sample code that uses pok and libpok. Code of examples is mostly
generated from AADL models by Ocarina.
• kernel: code of the kernel that provides time and space partitioning services.
• libpok: code of libpok, the runtime of each partition. It contains libc, POSIX
and arinc653 compliant abstraction layers.
• misc: misc files, such as makefiles, various tools to compile POK and so on.
7.2
”Schyzophrenic” architecture
POK can be used as an executive (i.e a kernel that contains different tasks but does
not provide partitioning functionnalities) or a partitioned architecture (a kernel isolates
tasks in so-called partitions in terms of space and time).
Moreover, it was designed to support several API and services. But you can finely
tune the kernel to avoid unused services, reduce memory footprint and ease certification/verification efforts.
Next sections discusses the different architectures that can be used.
7.2.1
Partitioned architecture
The partitioned architecture pattern can be used with POK. In that case, the kernel
will execute several partitions on top of the POK kernel and provide time and space
partitioning across partitions.
Each partition contains their memory allocators, their runtime and ressources (the
so-called libpok part). Partitions can have different scheduling algorithms to schedule
their tasks.
39