3b168d5db5
move ph-init to separate crate
2019-09-20 17:57:35 -04:00
e69cb5ba1a
new and improved kernel build
2019-09-20 17:55:12 -04:00
0f50387d1e
change source layout
2019-09-20 17:29:55 -04:00
5a1c62d473
extensive changes to how VMs are configured and launched
2019-09-20 16:26:28 -04:00
2568a30440
libcitadel is now a dependency
2019-09-20 16:25:47 -04:00
4fc4c05155
ph-init mostly rewritten
...
Is more complex now and reads various kernel command line options to
configure behavior.
* optionally set up tmpfs overlay over read-only rootfs
* find and mount rootfs
* mount /proc /sys /tmp /dev
* mount 9p home directory
* launch shell as root or as user
2019-09-20 16:10:30 -04:00
f71e3adb79
When printing warnings, label the warnings as coming from virtio_wl
2019-09-20 16:04:35 -04:00
626b6583db
Update bytes written when manually incrementing offset of virtio chain
2019-09-20 16:03:36 -04:00
98a1e9361e
Rewrite of 9p filesystem
...
Old version barely worked, but the new version works very well.
Supports two backend types. Exporting a tree from the host filesystem
is supported of course, and this is one backend. The second backend
is a synthetic filesystem on which directories can be created and then
files can be added to the directories. The files added to the filesystem
are either backed by a file on the host filesystem or a buffer of bytes
in memory.
2019-09-20 16:01:15 -04:00
1a587bb6cc
refactor configure and launch of VM to be much simpler and nicer
2019-09-12 16:31:38 -04:00
c8153e4f51
mount 9p home directory if it exists. optionally launch systemd
2019-09-12 16:26:35 -04:00
a32324381f
refactor to nicer api
2019-09-12 16:25:05 -04:00
9cc84e6116
oop, remove old code
2019-09-11 17:23:30 -04:00
7365bc5d38
update crates and add lazy_static for logging class
2019-09-11 16:32:21 -04:00
03c4d6aeac
export all the new classes
2019-09-11 16:31:48 -04:00
f397c7e2cb
Added error for disk image open failure
2019-09-11 16:30:47 -04:00
81df280b12
remove unused
2019-09-11 16:30:13 -04:00
1f7aadff12
Use MemoryManager rather than GuestRam
2019-09-11 16:29:26 -04:00
9bf3f84fae
virtio-wayland
2019-09-11 16:20:16 -04:00
023571e88d
virtio-blk device
2019-09-11 16:02:36 -04:00
e79502c271
A module for accessing disk image files (with virtio-blk)
2019-09-11 15:58:04 -04:00
9cca10a2c0
allow more flexible access to virtqueue chain
2019-09-11 15:55:38 -04:00
f893d5a316
allow direct access to ioevent and next chain of virtqueue
2019-09-11 15:54:32 -04:00
07d1c765d4
allow configuring size of virtio queues
2019-09-11 15:53:02 -04:00
90e1b26a11
Added a class which owns GuestRam and manages runtime memory allocations
2019-09-11 15:49:53 -04:00
ffefbd9283
added remove_memory_region() as complement of add_memory_region()
2019-09-11 15:32:54 -04:00
784544ae2b
derive some traits to be able to compare addresses
2019-09-11 15:28:37 -04:00
9b2e7b8837
Wrap create_memfd() system call and manage memfd file descriptors
2019-09-11 11:36:07 -04:00
f47eff5ef8
A wrapper for raw file descriptors
2019-09-11 11:31:17 -04:00
7dd2fed779
implement AsRawFd for EventFd and IoEventFd
2019-09-11 11:30:44 -04:00
1d7857199d
Wraps epoll system calls
2019-09-11 11:29:47 -04:00
26a34c3eae
A class which manages virtio device config area
2019-09-11 11:29:24 -04:00
b39bb0e937
If PG and LME are set, then LMA must also be set
2019-09-11 11:28:32 -04:00
3679bfd03a
bit vector implementation
2019-09-11 11:23:54 -04:00
245b48cf1e
Support ancillary data such as SCM_RIGHTS for unix domain sockets.
...
Needed to allow transfer of file descriptors across sockets.
2019-09-11 11:16:41 -04:00
5d19d1e2f3
Tracks allocations of ranges of memory.
2019-09-11 11:12:16 -04:00
d3e2076ea5
An error class which wraps errno results
2019-09-11 11:10:27 -04:00
1cef90bfff
A simple logger
2019-09-11 11:09:54 -04:00
74317be64b
Update to modern Rust syntax
2019-08-29 19:43:26 -04:00
7fa1bdadb9
Can't forget this...
2017-10-18 21:23:29 +00:00
02a17b5d5e
Removed unused import
2017-10-18 21:23:17 +00:00
adb43bf2ae
Master makefile builds everything
2017-10-18 21:09:06 +00:00
5a3bf75c36
Updated to search for kernel and init in the right place(s)
2017-10-18 21:08:33 +00:00
235627da93
not needed anymore
2017-10-18 21:08:01 +00:00
17be46827d
git ignore files
2017-10-18 21:07:21 +00:00
7a87547cc8
Fixed several broken things in makefile
2017-10-18 21:06:38 +00:00
eb6a99eb90
A better layout with both binaries in a single crate
2017-10-18 20:32:04 +00:00
0713cbce69
No longer needed
2017-10-18 19:14:05 +00:00
42070f7532
An init daemon written in rust to replace kernel/init/init.c
2017-10-18 19:09:14 +00:00
babd7c6585
Move crate into subdirectory
2017-10-18 19:05:41 +00:00