POK. An ARINC653-compliant operating system released under the BSD licence. Julien Delange, European Space Agency

Similar documents
ARINC653 toolset: Ocarina, Cheddar and POK

Model-Based Engineering for the Development of ARINC653 Architectures

POK, an ARINC653-compliant operating system released under the BSD license

Model-Based Engineering for the Development of ARINC653 Architectures

ARINC653 annex: examples

Involved subjects in this presentation Security and safety in real-time embedded systems Architectural description, AADL Partitioned architectures

POK User Guide. POK Team

ARINC653 AADL Annex. Software Engineering Institute Carnegie Mellon University Pittsburgh, PA Julien Delange 07/08/2013

ARINC653 and AADL. Julien Delange Laurent Pautet

Generating high-integrity systems with AADL and Ocarina. Jérôme Hugues, ISAE/DMIA

ARINC653 AADL Annex Update

RAMSES. Refinement of AADL Models for the Synthesis of Embedded Systems. Etienne Borde

Learn AADL concepts in a pleasant way

AUTOBEST: A United AUTOSAR-OS And ARINC 653 Kernel. Alexander Züpke, Marc Bommert, Daniel Lohmann

Green Hills Software, Inc.

PDP 4PS : Periodic Delayed Protocol for Partitioned Systems

Commercial Real-time Operating Systems An Introduction. Swaminathan Sivasubramanian Dependable Computing & Networking Laboratory

Institut Supérieur de l Aéronautique et de l Espace Ocarina: update and future directions

AADL committee, Valencia October 2 nd, Pierre Dissaux (Ellidiss) Maxime Perrotin (ESA)

Workshop 1: Specification for SystemC-AADL interoperability

AADL : about code generation

Virtualización. Apolinar González Alfons Crespo

AUTOBEST: A microkernel-based system (not only) for automotive applications. Marc Bommert, Alexander Züpke, Robert Kaiser.

Automatic Selection of Feasibility Tests With the Use of AADL Design Patterns

The Ocarina Tool Suite. Thomas Vergnaud

From MDD back to basic: Building DRE systems

PJFS (Partitioning, Journaling File System): For Embedded Systems. Ada-Europe 6-June-2006 Greg Gicca

REAL-TIME OPERATING SYSTEMS SHORT OVERVIEW

Real-Time Systems Hermann Härtig Real-Time Operating Systems Brief Overview

Real-Time Systems. Real-Time Operating Systems

STRAST. UPMSat-2 On-board computers. Grupo de Sistemas de Tiempo Real y Arquitectura de Servicios Telemáticos Universidad Politécnica de Madrid.

LINUX AND REALTIME 1

Pattern-Based Analysis of an Embedded Real-Time System Architecture

The TASTE MBE development toolchain - update & case-studies

Model Editing & Processing Tools. AADL Committee, San Diego February 4th, Pierre Dissaux. Ellidiss. Technologies w w w. e l l i d i s s.

CHAPTER 1: OPERATING SYSTEM FUNDAMENTALS

Using the MPU with an RTOS to Enhance System Safety and Security

(MCQZ-CS604 Operating Systems)

Introduction to OpenOnload Building Application Transparency and Protocol Conformance into Application Acceleration Middleware

Sandboxing. CS-576 Systems Security Instructor: Georgios Portokalidis Spring 2018

Operating System Kernels

EECS 571 Principles of Real-Time Embedded Systems. Lecture Note #10: More on Scheduling and Introduction of Real-Time OS

MaRTE OS: Overview and Linux Version

Profiling and Debugging OpenCL Applications with ARM Development Tools. October 2014

Implementing Scheduling Algorithms. Real-Time and Embedded Systems (M) Lecture 9

AADL Generative Implementation Annex

BRDS ( , WS 2017) Ulrich Schmid

PROCESS CONCEPTS. Process Concept Relationship to a Program What is a Process? Process Lifecycle Process Management Inter-Process Communication 2.

AADL performance analysis with Cheddar : a review

Executable AADL. Real Time Simulation of AADL Models. Pierre Dissaux 1, Olivier Marc 2.

The Xenomai Project. The Open Group Conference Paris, April Open Source Engineering

Title: Configuration and Scheduling tools for TSP systems based on XtratuM.

Computer Systems II. Memory Management" Subdividing memory to accommodate many processes. A program is loaded in main memory to be executed

Page 1. Analogy: Problems: Operating Systems Lecture 7. Operating Systems Lecture 7

CSE 410: Systems Programming

Operating Systems (ECS 150) Spring 2011

To cite this document

Operating System Structure

Operating Systems. IV. Memory Management

AADL to build DRE systems, experiments with Ocarina. Jérôme Hugues, ENST

Faculty of Computer Science, Operating Systems Group. The L4Re Microkernel. Adam Lackorzynski. July 2017

10 th AUTOSAR Open Conference

Transitioning from Spread 3.17.x to Spread 4.0

Xen and the Art of Virtualization

A Time-Composable Operating System for the Patmos Processor

REAL TIME OPERATING SYSTEM PROGRAMMING-I: VxWorks

System-level co-modeling AADL and Simulink specifications using Polychrony (and Syndex)

OPERATING SYSTEM CONCEPTS UNDERSTAND!!! IMPLEMENT!!! ANALYZE!!!

Advanced CUDA Optimization 1. Introduction

Frequently Asked Questions about Real-Time

Concurrent & Distributed Systems Supervision Exercises

UML&AADL 11 An Implementation of the Behavior Annex in the AADL-toolset OSATE2

A Component Model and Software Architecture for CPS

Project Report. Using the AADL to support the ASSERT modeling process

1993 Paper 3 Question 6

0x1A Great Papers in Computer Security

Model Based Development of Embedded Control Software

Today s topic: Real Time Programming with Ada

Modeling Software with SystemC 3.0

Outline Background Jaluna-1 Presentation Jaluna-2 Presentation Overview Use Cases Architecture Features Copyright Jaluna SA. All rights reserved

AADL Inspector Tutorial. ACVI Workshop, Valencia September 29th, Pierre Dissaux. Ellidiss. Technologies w w w. e l l i d i s s.

Embedded Systems. 6. Real-Time Operating Systems

The MPI Message-passing Standard Practical use and implementation (I) SPD Course 2/03/2010 Massimo Coppola

Operating Systems Overview. Chapter 2

REAL TIME OPERATING SYSTEM PROGRAMMING-II: II: Windows CE, OSEK and Real time Linux. Lesson-13: RT Linux

Real-Time Operating Systems (Working Draft) What is an Operating System (OS)?

Real Safe Times in the Jailhouse Hypervisor Unrestricted Siemens AG All rights reserved

Implementing Task Schedulers (1) Real-Time and Embedded Systems (M) Lecture 10

OS Structure. Kevin Webb Swarthmore College January 25, Relevant xkcd:

This is an author-deposited version published in: Eprints ID: 10292

Operating System Structure

TDDD07 Real-time Systems Lecture 10: Wrapping up & Real-time operating systems

What are some common categories of system calls? What are common ways of structuring an OS? What are the principles behind OS design and

A Real-Time Component Framework: Experience with CCM and ARINC-653

Copyright 2018 Adventium Labs. 1

LINUX INTERNALS & NETWORKING Weekend Workshop

24-vm.txt Mon Nov 21 22:13: Notes on Virtual Machines , Fall 2011 Carnegie Mellon University Randal E. Bryant.

Re-architecting Virtualization in Heterogeneous Multicore Systems

AO4AADL Compiler. Sihem Loukil. June 2011

Deterministic Futexes Revisited

Transcription:

POK An ARINC653-compliant operating system released under the BSD licence Julien Delange, European Space Agency <julien.delange@esa.int> Laurent Lec, MakeMeReach <lec.laurent@gmail.com>

Introduction

Problems Safety-critical systems must grant: isolation; code analysis; automatic system configuration.

Approach POK was designed to provide: AADL models a configuration and validation tool (1); an analysis framework (2); time and space isolation (3). Configuration Specifications validation (1) Code generator Plate-forme (POK) Implementation (2) (3)

1 The POK execution platform

Cipher algorithms Maths functions Kernel interface Time isolation Fault Handling Tasking Space isolation Time Management Device drivers code libc POSIX ARINC653 Intra-partition communications Inter-partitions communication Memory Management Hardware Abstraction Layer Partition Level (libpok) Kernel level Services of kernel and partitions

Kernel services Hardware abstraction layer Memory management Time management Fault handling Time isolation Space isolation Inter-partition communication

Partition services Kernel interface Tasking (threads, locking primitives ) Libc, POSIX, ARINC653, maths libraries Device drivers Cipher algorithms Intra-partition communication C and Ada support

Time isolation Partitions are allocated time slices. POK offers both partition (RR) and threads scheduling (FIFO, RMS, EDF, LLF). Data is flushed at major time frame and is available for the next cycle.

Space isolation Partitions are located in their own memory segment, with the help of the MMU. Each segment has its properties (address, size, location) defined at configuration time, which cannot be changed at run time. Attention is paid to context-switching: all data is either hidden or flushed.

Device drivers Device drivers are running in dedicated partitions. They must be granted access to hardware by the kernel. Partitions can share a device without sharing data (data isolation).

Configuration flexibility Some parts of the code must or may not be included (device drivers, tasking primitives, etc.). The more precise the code: the smaller the memory footprint; the faster the execution. This requires «#ifdef beaconing» that is, luckily, completely handled as we ll see later.

2 Partitioned system modeling

System design Specifications are written in a real (ie. not C or plain text file) modeling language: AADL. These models can be checked against security policies. Most of the code for the system is automatically generated from these models; no written code but what the partitions are exactly doing.

What AADL can do Define what the system is made of (processor, virtual processor, process, memory, thread, data, subprogram). Change their properties (size, permissions, scheduling options ). Detect syntax and semantic errors. Enforce specifications requirements.

AADL design example Graphical representation

3 Code generation

Generation of the system Code is generated from models. Automated, just run make! POK takes care of the deployment of the system (compile binaries, install them on a device, can run an emulator, attach a debugger )

/*****************************************************/ /* This file was automatically generated by Ocarina */ /* Do NOT hand-modify this file, as your */ /* changes will be lost when you re-run Ocarina */ /*****************************************************/ #define POK_GENERATED_CODE 1 #define POK_NEEDS_CONSOLE 1 #define POK_NEEDS_LIBC_STDIO 1 #define POK_CONFIG_NB_THREADS 3... From AADL to C

4 Demonstration

Conclusion

To put it in a nutshell POK is a developing environment for safety-critical hardware which provides: numerous kernel and partition ready-to-use services (communication primitives, libc, ARINC and POSIX APIs, fault handling ); static analysis on AADL models to check for potential errors and verify the design of the system; automatic code generation and deployment from the AADL models and the already provided POK environment.

How to create your own system? 1. Write the specifications of the system in AADL. 2. Write the C code your partitions should run. 3. $ make run

Contact Information, sources, documentation: http://pok.safety-critical.net/ General questions: pok@lists.tuxfamily.org Technical mailing-list: pok-devel@lists.tuxfamily.org