• Home
  • About
    • Organization Structure
    • Organizing Committee
    • Privacy Policy
  • Membership
    • Apply for Membership
    • Membership Info
    • Our Members
  • Summits
    • 2024 Summit
    • 2022 Summit
    • 2020 Summit
    • 2019 Summit
    • 2018 Summit
  • Resources
    • About seL4®
    • seL4® Foundation
    • TCCoE Repository
    • Existing Platforms and Capabilities
  • Training
  • Contact
⟵ Environment Setup
table of contents
Exercise-1 ⟶

seL4 Level-1 Tutorials - Exercise #0: TCCoE Repository

Objective
Get familiar with the TCCoE code repository for seL4.
Background
This course is an introduction to seL4 development. There has been a steep learning curve for developers coming into seL4 and the purpose of this course is to make it more accessible. It includes information such as creating a project from scratch, doing proper linking to the seL4 kernel, and supporting projects and toolchain.
The course uses the Trusted-Computing Center of Excellence (TCCoE) code repository structure for seL4. The repository contains controlled versions of the seL4 kernel, projects, and toolchains.
The course focuses on creating a practical example of seL4 by the learner and is expected to last around 4 hours. Of course, the seL4 Whitepaper and seL4 Reference Manual can be studied further for deeper understanding of the concepts.
The tutorials follow the simple-template distro structure in the repository as shown in the Figure below.
The folder structure is designed for organizational purposes. The scripts of importance are:
  • version: selects which TCCoE seL4 version to use (e.g. 1.0).
  • Settings.cmake: a cache file for cmake build tool which allows all binaries and projects under the distro folder to find and link to seL4 version that was selected.
  • CMakeLists.txt: specific to each project. Defines the main entry point after dropping from kernelspace to userspace. Also defines the exact libraries needed for the specific project to work.
Steps
  • Download level-1-tutorials-with-kernel.zip into the Ubuntu machine.
  • Extract level-1-tutorials-with-kernel.zip into /home/$USER/sel4-files
$ unzip level-1-tutorials-with-kernel.zip -d /home/$USER/sel4-files $ cd /home/$USER/sel4-files
Note: Do not extract the archive in a Windows environment at all because it will change some of the configuration done internally.
Common commands that you will use in the exercises:
$ cd /home/$USER/sel4-files $ container # if you set your environment using our provided guide $ cd level-1-tutorials $ ./version 1.0 $ ./init-build exercise-N x86 [--solution] # optionally initialize with solution provided $ cd application/build/exercise-N $ ninja $ simulate [-g '-vga std'] # optional arguments for exercises that need GUI ## To exit Qemu simulation: Ctrl + A ⟶ X
For clean-up, use the following:
$ ./clean_all # clean any build files and version links $ ./clean exercise-N # clean specific exercise build files
⟵ Environment Setup
table of contents
Exercise-1 ⟶
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.