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.
41 lines
770 B
JSON
41 lines
770 B
JSON
{
|
|
"vm": {
|
|
"user_space_size": "128MB"
|
|
},
|
|
"process": {
|
|
"default_stack_size": "4MB",
|
|
"default_heap_size": "8MB",
|
|
"default_mmap_size": "32MB"
|
|
},
|
|
"env": [
|
|
"OCCLUM=yes",
|
|
"TEST=true"
|
|
],
|
|
"entry_points": [
|
|
"/bin"
|
|
],
|
|
"mount": [
|
|
{
|
|
"target": "/",
|
|
"type": "sefs",
|
|
"source": "./image",
|
|
"options": {
|
|
"integrity_only": true
|
|
}
|
|
},
|
|
{
|
|
"target": "/root",
|
|
"type": "sefs"
|
|
},
|
|
{
|
|
"target": "/host",
|
|
"type": "hostfs",
|
|
"source": "."
|
|
},
|
|
{
|
|
"target": "/tmp",
|
|
"type": "ramfs"
|
|
}
|
|
]
|
|
}
|