test0 now successfully runs its beginning.
test0 SConscript has a dependency problem.
Issues to be investigated:
- vm_file and vnodes need to be merged fully in all functions.
- libposix shared page references need to be removed.
- Any references to VFS_TID, PAGER_TID need to be removed.
Changes:
It is now possible to use do_mmap() from within mm0.
- pager_new_virtual()/delete_virtual() return addresses that are
disjoint from find_unmapped_area() used by mmap() interface for
anonymous or not-fixed areas.
- find_unmapped_area() now uses task->map_start task->map_end instead
of task->start and task->end. task->start/end are still valid task
space addresses for mmap(), but finding a new address is limited to
map_start/map_end.
- We have both interfaces because mmap() is only useful for backed-files.
When the pager needs to access a user memory range for example, that is
not backed by a file and thus we need to use pager_new_virtual() instead
of mmap() for mapping.
It might be a good idea to simply use mmap() from inside the pager and prefault it
as a conventional way of mapping internal buffers. Will be investigated.
- This would open the way that all internal buffer mapping is
done in a standard way
- Standard syscalls would be possible to use from within the pager.
Now, bare containers get their files from conts/bare_src instead of conts/test.
test directory will be used for the next generation test programs.
Also bare_src is tracked by git now with a minor mod to .gitignore.
container packer picks up files with .elf extentions. Therefore intermediate
files must not have .elf extentions, since they're not meant to go to the final
executable.
modified: conts/posix/bootdesc/SConscript
modified: conts/posix/libposix/stat.c
A lot of hassles on standard c library, mock-up libc, and libposix
headers taken from uClibc clashing has been worked around.
Next:
- Linker scripts need fixing and adjusting.
- Bootdesc needs to be generated.
- Per-container compilation scripts need connecting.
Added a per-container container.h that inclues useful definitions.
Hello world now is in a separate file not to modify main too often.
hello world now prints container name and id.
new file: conts/test/SConstruct
new file: conts/test/container.c
new file: conts/test/include/linker.lds
new file: conts/test/include/test.h
new file: conts/test/main.c
new file: conts/test/src/test.c
modified: scripts/bare/bare_generator.py
By moving shelve retrieval details to configuration_retrieve()
into configuration.py, the top-level SConstruct can now get full
configuration object from shelve.
Created a config directory for configuration files.
Moved all absolute path variables to a projpaths.py file
All scripts can now universally learn absolute paths via projpaths.py
Moved the config_symbols class to the configuration.py file.
Moved libs to loader since they are only referred by the loader