Includes work in progress of minimal required ELF loader, with basic
memory management, and compartmentalization manager.
The main components are as follows:
compartment.c - source code for internal compartment functionality,
including loading a compartment, mapping, executing, and others.
Essentially an ELF loader, targetting static ELF executables
(currently hard-coded for executables pre-compiled to the loaded at
address 0x1000000 in memory);
mem_mng.c - utilities to do with memory management of compartments.
We intercept calls to malloc, realloc, and free in the loaded
compartments and redirect them to corresponding functions in this
file, to perform memory operations outside of the compartment;
manager.c - overarching wrapper, holding information about the
execution state, managing compartments, and other needed miscellaneous stuff.
In addition, a number of tests are provided to assess functionality.
The most current ones are lua_simple.c, which performs some basic lua
operations, and hello_world_comps.c, which creates a compartment from
a compiled variant of the aforementioned executable and attempts to
execute it.
As this is a work-in-progress, things are broken, and very in flux.
Includes work in progress of minimal required ELF loader, with basic memory management, and compartmentalization manager.
The main components are as follows:
compartment.c
- source code for internal compartment functionality, including loading a compartment, mapping, executing, and others. Essentially an ELF loader, targetting static ELF executables (currently hard-coded for executables pre-compiled to the loaded at address0x1000000
in memory);mem_mng.c
- utilities to do with memory management of compartments. We intercept calls tomalloc
,realloc
, andfree
in the loaded compartments and redirect them to corresponding functions in this file, to perform memory operations outside of the compartment;manager.c
- overarching wrapper, holding information about the execution state, managing compartments, and other needed miscellaneous stuff.In addition, a number of
tests
are provided to assess functionality. The most current ones arelua_simple.c
, which performs some basic lua operations, andhello_world_comps.c
, which creates a compartment from a compiled variant of the aforementioned executable and attempts to execute it.As this is a work-in-progress, things are broken, and very in flux.