A microkernel-based hackable operating system.
alloc
crateRequires Linux on an Intel CPU with nested vmx enabled.
$ qemu-system-x86_64 -m 512 -cpu IvyBridge -serial mon:stdio -enable-kvm -cpu host,vmx -kernel linux-on-resea.qemu.elf
--lang html
servers/drivers/blk/ide
).$ qemu-system-x86_64 -m 512 -cpu IvyBridge,rdtscp -smp 4 -serial mon:stdio \
-netdev user,id=net1 -device virtio-net,netdev=net1,packed=on -cdrom build/resea.iso
...
shell> http-get http://httpbin.org/status/418
[virtio_net] received 64 bytes
[virtio_net] received 320 bytes
[virtio_net] received 64 bytes
[virtio_net] received 58 bytes
[tcpip] tcp: port=1000, seq=0000fa01, ack=00000001, len=0 [ SYN ACK ]
[virtio_net] received 54 bytes
[tcpip] tcp: port=1000, seq=0000fa02, ack=0000001d, len=0 [ ACK ]
[tcpip] tcp: received 0 bytes (seq=fa02)
[virtio_net] received 441 bytes
[virtio_net] received 54 bytes
[tcpip] tcp: port=1000, seq=0000fa02, ack=0000001d, len=387 [ ACK ]
[tcpip] tcp: received 387 bytes (seq=fa02)
[tcpip] tcp: port=1000, seq=0000fb85, ack=0000001d, len=0 [ FIN ACK ]
[tcpip] tcp: received 0 bytes (seq=fb85)
[shell]
-=[ teapot ]=-
_...._
.' _ _ `.
| ."` ^ `". _,
\_;`"---"`|//
| ;/
\_ _/
`"""`
servers/apps/webapi
) on Resea works in the cloud!qemu-system-x86_64 -m 512 -cpu IvyBridge,rdtscp -smp 4 -serial mon:stdio \
-netdev user,id=net1,hostfwd=tcp:127.0.0.1:1234-:80 \
-device virtio-net,netdev=net1,packed=on \
-cdrom build/resea.iso
<resea/cmdline.h>
.utils
.display
and ps2kbd
device drivers.In this and next release, I'm working on improving APIs and internal designs by introducing many breaking changes.
exec
, ipc
, listen
, map
, print
, and kdebug
..data
section, and page table structures are now allocated from the userland (through kpage
parameter in map
system call).log
command to print the kernel log.Download the attached iso file and run it on QEMU with the following options. This build runs a web server at localhost:1234.
qemu-system-x86_64 \
-serial mon:stdio -cpu IvyBridge,rdtscp \
-netdev user,id=net0,hostfwd=tcp:127.0.0.1:1234-:80 \
-device e1000,netdev=net0,mac=52:54:00:12:34:56 \
-cdrom resea.iso
$ qemu-system-x86_64 -cdrom resea.iso -m 512 -cpu IvyBridge,rdtscp -serial mon:stdio -no-reboot -netdev user,id=net0,hostfwd=tcp:127.0.0.1:1234-:80 -device e1000,netdev=net0
This is the first release including:
Use QEMU to try it out (Web API server listens on http://localhost:1234):
$ qemu-system-x86_64 -cdrom resea.iso -m 512 -cpu IvyBridge,rdtscp -serial mon:stdio -no-reboot -netdev user,id=net0,hostfwd=tcp:127.0.0.1:1234-:80 -device e1000,netdev=net0