occlum/test
Tate, Hongliang Tian c8a921fd4b Refactor program loader to handle many loadable segments
The original implementation of program loader is written under the assumption
that there are only two loadable segments per ELF, one is code, and the other
is data. But this assumption is unnecessary and proves to be wrong for an ELF
on Alpine Linux, which has two extra read-only, loadable segments for security
hardening. This commit clears the obstacle towards running unmodified
executables from Alpine Linux.

In addition to getting rid of  the false assumption of two fixed loadable segments,
this commit improves the quality of the code related to program loading and
process initialization.
2019-11-07 13:19:09 +00:00
..
client Fix server_epoll test 2019-10-07 04:36:12 +00:00
cout Add c++ examples 2019-06-01 11:22:04 +08:00
cpuid Introduce GCC-base toolchain and use it by default 2019-09-06 13:02:45 +00:00
dev_null Add pipe throughput benchmark 2019-02-16 16:24:08 +08:00
device Add /dev/zero, /dev/random, /dev/urandom, and /dev/arandom 2019-07-19 12:30:15 +00:00
empty Support argc and argv for child process after spawn 2019-02-16 16:24:08 +08:00
env Introduce GCC-base toolchain and use it by default 2019-09-06 13:02:45 +00:00
file Harden SEFS with extra MAC and permission checks 2019-10-12 16:55:57 +00:00
fs_perms Harden SEFS with extra MAC and permission checks 2019-10-12 16:55:57 +00:00
getpid Support argc and argv for child process after spawn 2019-02-16 16:24:08 +08:00
hello_world Support argc and argv for child process after spawn 2019-02-16 16:24:08 +08:00
hostfs Add a command-line interface tool named occlum 2019-08-28 06:05:12 +00:00
include Add clock_gettimeofday 2019-07-18 10:51:12 +00:00
link Harden SEFS with extra MAC and permission checks 2019-10-12 16:55:57 +00:00
malloc Support argc and argv for child process after spawn 2019-02-16 16:24:08 +08:00
mkdir Harden SEFS with extra MAC and permission checks 2019-10-12 16:55:57 +00:00
mmap Harden SEFS with extra MAC and permission checks 2019-10-12 16:55:57 +00:00
pipe Add the integrity-only mode SEFS 2019-08-17 04:20:11 +00:00
pipe_throughput load program bin from SEFS 2019-03-29 14:20:25 +08:00
pthread Use mutex in Pthread test 2019-04-06 22:55:16 +08:00
rdtsc Handle cpuid and rdtsc instruction 2019-07-18 13:51:50 +08:00
readdir fix process cwd. fix open path 2019-03-29 14:20:25 +08:00
rlimit Add prlimit64, getrlimit, and setrlimit 2019-04-10 09:03:41 +08:00
sched Add the integrity-only mode SEFS 2019-08-17 04:20:11 +00:00
server Fix address-in-use error in server and server_epoll tests 2019-10-14 14:33:27 +08:00
server_epoll Fix address-in-use error in server and server_epoll tests 2019-10-14 14:33:27 +08:00
spawn Add the integrity-only mode SEFS 2019-08-17 04:20:11 +00:00
spawn_and_exit_latency load program bin from SEFS 2019-03-29 14:20:25 +08:00
time Add clock_gettimeofday 2019-07-18 10:51:12 +00:00
tls Enable Thread Local Storage (TLS) 2019-04-06 22:55:16 +08:00
truncate Harden SEFS with extra MAC and permission checks 2019-10-12 16:55:57 +00:00
uname Add uname 2019-04-10 09:03:41 +08:00
unix_socket Add the integrity-only mode SEFS 2019-08-17 04:20:11 +00:00
unix_socket_throughput Introduce GCC-base toolchain and use it by default 2019-09-06 13:02:45 +00:00
Enclave.xml Add a command-line interface tool named occlum 2019-08-28 06:05:12 +00:00
Makefile Harden SEFS with extra MAC and permission checks 2019-10-12 16:55:57 +00:00
Occlum.json Refactor program loader to handle many loadable segments 2019-11-07 13:19:09 +00:00
test_common.mk Introduce GCC-base toolchain and use it by default 2019-09-06 13:02:45 +00:00