Skip to content

seL4 specific OS utility library -- implements threads, processes, virtual memory, elf loading etc.

Notifications You must be signed in to change notification settings

benesch/libsel4utils

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

61 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

libsel4utils

libsel4utils provides OS-like utilities for building benchmarks and applications on seL4. Although the library attempts to be policy agnostic, some decisions must be made.

This library is intended to be used to quickly get tests, benchmarks and prototypes off the ground with minimal effort. It can also be used as a reference for 'how-to' implement OS mechanisms on seL4.

Utilities provided by this library:

* threads
* processes
* elf loading
* virtual memory management
* stack switching
* debugging tools

No allocator is provided, although any allocator that implements the seL4 vka interface can be used (we recommend libsel4allocman).

Dependencies

libsel4utils depends on libsel4vka, libsel4vspace, libutils, libelf, libcpio, libsel4.

Repository overview

include/sel4utils:

* client_server_vspace.h -- a virtual address space that proxies calls between two different 
                            vspaces
* elf.h -- elf loading.
* mapping.h -- page mapping.
* process.h -- process creation, deletion.
* profile.h -- profiling.
* sel4_debug.h -- for printing seL4 error codes.
* stack.h -- switch to a newly allocated stack. 
* thread.h -- threads (kernel threads) creation, deletion.
* util.h -- includes utilities from libutils.
* vspace.h -- virtual memory management (implements vspace interface)
* vspace_internal.h -- virtual memory management internals, for hacking the above.

arch_include/sel4utils:

* util.h -- utils to assist in writing arch independent code.

Configuration options

  • SEL4UTILS_STACK_SIZE -- the default stack size to use for processes and threads.
  • SEL4UTILS_CSPACE_SIZE_BITS -- the default cspace size for new processes (threads use the current cspace).

License

The files in this repository are release under standard open source licenses. Please see individual file headers and the LICENSE_BSD2.txt file for details.

About

seL4 specific OS utility library -- implements threads, processes, virtual memory, elf loading etc.

Resources

Stars

Watchers

Forks

Packages

No packages published

Languages

  • C 92.0%
  • C++ 7.6%
  • Makefile 0.4%