Virtual kernel progress update
Matthew Dillon
dillon at apollo.backplane.com
Sat Jan 6 12:23:36 PST 2007
There are still a ton of things that I have to get working, but the
VKERNEL now boots through to the point where it tries to vmfork() the
init process.
test28# ./kernel.debug -m 64m
Copyright (c) 2003, 2004, 2005, 2006, 2007 The DragonFly Project.
Copyright (c) 1992-2003 The FreeBSD Project.
Copyright (c) 1979, 1980, 1983, 1986, 1988, 1989, 1991, 1992, 1993, 1994
The Regents of the University of California. All rights reserved.
DragonFly 1.7.0-DEVELOPMENT #179: Sat Jan 6 11:55:07 PST 2007
root at test28.backplane.com:/usr/obj/usr/src/sys/VKERNEL
real memory = 67108864 (65536K bytes)
avail memory = 62578688 (61112K bytes)
Segmentation fault (core dumped)
I got the virtual kernel's page table (for its KVM) working. The big
ticket items left to do are as follows. My goal is to be able to boot
the virtual kernel through to a login: prompt on the console by the time
we release in one week.
* Adding TLS info to the vmspace context, since just about any program
we might want to run needs TLS support.
* Adding FP support, same reason.
* Root filesystem support (it will be synchronous to begin with, i.e.
not the fastest thing in the world. It will just use read() and
write() to a root filesystem image file for now).
* We need a clock 'interrupt' to provide ticks to the virtual kernel.
* Integrate exception handling, trap handling, and VMSPACE context
switching. <<< this is the hardest bit.
The virtual kernel will not be truely useful until sometime after the
release, probably about a month assuming I can get someone to build the
pseudo network interface for me :-). Making it truely useful requires:
* Root filesystem support has to use DIRECTIO.
* Root filesystem I/O has to be made asynchronous.
* A Pseudo network interface has to be designed and built (so you can
login to the virtual kernel in some way other then the console).
* Optimized page table invalidations. At the moment they are ultra slow
due to having to remove cached PTEs from the real kernel's page tables.
-Matt
More information about the Kernel
mailing list