• Home
  • About
    • Organizing Committee
    • Privacy Policy
  • Membership
    • Apply for Membership
    • Membership Info
    • Our Members
  • Summits
    • 2025 Summit
    • 2024 Summit
    • 2022 Summit
    • 2020 Summit
    • 2019 Summit
    • 2018 Summit
  • Resources
    • About seL4®
    • seL4® Foundation
    • TCCoE Repository
    • Existing Platforms and Capabilities
  • Training
  • Contact
Table of Contents
SEl4 iNTRODUCTION ⟶

seL4 Level-1 Tutorials

Summary
Getting started with seL4 development can be a bit of a challenging task for newcomers. These exercises aim to ease the procedure and make it accessible to anyone. The exercises were originally developed for the seL4 2020 Summit to work directly using the seL4 Foundation repositories, but have been updated since to work within the CoE seL4 repository framework and version control. This page also serves as a guide to using this repository.
Objectives
  • Learn how to use CoE seL4 repository and distros.
  • Learn how to start an empty project.
  • Build projects and run them through simulation.
  • Create and manage capabilities in seL4.
  • Manage memory and allocation in seL4.
  • Create and manage threads and processes.
  • Learn interprocess communication (IPC).
  • Manage and use I/O devices.
  • Create an I/O driver.
  • Use all the knowledge to build a game of pong.
Requirements
  • seL4-ready machine. Can be set up using environment guide.
  • CoE seL4 version 1.0 and tutorials files. Both can be downloaded from here.
Exercises
Exercise
Title
Description
Exercise-0
Environment Configuration
Download tutorial files and configure them in the development machine.
Exercise-1
Hello World!
Learn about cmake, ninja, and the build environment.
Exercise-2
Capabilities
Initialize and manage seL4 capabilities.
Exercise-3
Allocation
Set up allocation objects and use them.
Exercise-4
Basic Threads
Initialize a basic thread without IPCBuffer.
Exercise-5
Processes
Initialize a process from an ELF binary.
Exercise-6
IPC
Interprocess Communication and IPCBuffers in seL4.
Exercise-7
I/O Timer
Initialize and use a timer using the seL4 I/O interface.
Exercise-8
I/O Keyboard
Initialize keyboard and override default keyboard driver implementation.
Exercise-9
I/O Display
Initialize display drivers using VGA std (also available for ARM using framebuffers!).
Exercise-10
Game of Pong!
Put everything learned from exercises 0-9 together to make an interactive game of pong.
Table of contents
SEl4 iNTRODUCTION ⟶
seL4 is a trademark of LF Projects, LLC. Trusted Computing Center of Excellence™ is a tradename of The Computing Center of Excellence, Inc. Copyright © 2022 The Computing Center of Excellence, Inc.

We use cookies to enable essential functionality on our website, and analyze website traffic. By clicking Accept you consent to our use of cookies. Read about how we use cookies.

Your Cookie Settings

We use cookies to enable essential functionality on our website, and analyze website traffic. Read about how we use cookies.

Cookie Categories
Essential

These cookies are strictly necessary to provide you with services available through our websites. You cannot refuse these cookies without impacting how our websites function. You can block or delete them by changing your browser settings, as described under the heading "Managing cookies" in the Privacy and Cookies Policy.

Analytics

These cookies collect information that is used in aggregate form to help us understand how our websites are being used or how effective our marketing campaigns are.