Switch branches/tags
wl18xx-r5-20120103 wl18xx-internal-2012-05-21 wl18xx-20120203 wl18xx-20120202 wl18xx-2012-07-08 wl18xx-2012-07-08-2 wl18xx-2012-04-04 wl18xx-2012-03-23 wl18xx-2012-03-22 wl18xx-2012-03-21 wl18xx-2012-03-20 wl18xx-2012-03-02 wl18xx-2012-02-28 wl18xx-2012-02-27 wl18xx-2012-02-22 wl18xx-2012-02-21 wl18xx-2012-02-15 wl18xx-2012-02-14 wl18xx-2012-02-09 wl18xx-2012-02-08 wl18xx-2012-02-07 wl18xx-2011-12-16 wl18xx-2011-12-15 wl18xx-2011-12-15-2 wl18xx-2011-12-14 wl18xx-2011-12-13 wl18xx-2011-12-08-pre-rebase wl18xx-2011-12-02 wl18xx-2011-12-02-3 wl18xx-2011-12-02-2 wl18xx-2011-12-01 wl18xx-2011-11-30 wl18xx-2011-11-29 wl18xx-2011-11-29-2 wl18xx-2011-11-22 wl18xx-2011-11-21 wl18xx-2011-11-19-blaze wl18xx-2011-11-17-blaze wl18xx-2011-11-14-blaze wl18xx-2011-11-14-2-blaze wl18xx-2011-11-04-blaze wl18xx-2011-10-11 wl18xx-02-20 upstreaming-2013-03-25 upstreaming-2013-03-07 upstreaming-2013-03-05 upstream-3.4 testing-2011-12-12 r8.a6.06_38 r8.a3.09-build_51 r8.a3.09-build_50 r8.a3.09-build_49 r8.a3.09-build_48 r8.a3.09-build_47 r8.a3.09-build_45 r8.a3.09-build_44 r8.a3.09-build_43 r8.a3.09-build_42 r8.a3.09-build_41 r8.a3.09-build_39 r8.a3.09-build_38 r8.a3.09-build_37 r8.a3.09-build_36 r8.a3.09-build_35 r8.a3.09-build_30 r8.a3.09-build_29 r8.a3.09-build_28 r8.a3.09-build_27 r8.a3.09-build_25 r8.a3.09-build_24 r8.a3.09-build_23 r8.a3.09-build_22 r8.a3.09-build_21 r8.a3.09-build_20 r8.a3.09-build_19 r8.a3.08-build_18 r8.a3.08-build_16 r8.a3.08-build_14 r8.a3.08-build_13 r8.a3.08-build_12 r8.a3.08-build_11 r8.a3.08-build_10 r8.a3.05-build_7 r8.a3.05-build_6 r8.a3.05-build_5 r8.a3.05-build_4 r8.a3.05-build_3 r8.a3.05-build_1 r8.a2.09 r8.a2.08 r8.a2.08-candidate r8.a2.07 r8.a2.07-build_146 r8.a2.07-build_141 r8.a2.07-build_140 r8.a2.07-build_139 r8.a2.07-build_136 r8.a2.06 r8.a2.05 r8.a2.04
Nothing to show
Find file History
Pull request Compare This branch is 389 commits ahead, 99791 commits behind mc_internal_310.
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
..
Failed to load latest commit information.
x86
Kconfig
Makefile
README
core.c
hypercalls.c
interrupts_and_traps.c
lg.h
lguest_device.c
lguest_user.c
page_tables.c
segments.c

README

Welcome, friend reader, to lguest.

Lguest is an adventure, with you, the reader, as Hero.  I can't think of many
5000-line projects which offer both such capability and glimpses of future
potential; it is an exciting time to be delving into the source!

But be warned; this is an arduous journey of several hours or more!  And as we
know, all true Heroes are driven by a Noble Goal.  Thus I offer a Beer (or
equivalent) to anyone I meet who has completed this documentation.

So get comfortable and keep your wits about you (both quick and humorous).
Along your way to the Noble Goal, you will also gain masterly insight into
lguest, and hypervisors and x86 virtualization in general.

Our Quest is in seven parts: (best read with C highlighting turned on)

I) Preparation
	- In which our potential hero is flown quickly over the landscape for a
	  taste of its scope.  Suitable for the armchair coders and other such
	  persons of faint constitution.

II) Guest
	- Where we encounter the first tantalising wisps of code, and come to
	  understand the details of the life of a Guest kernel.

III) Drivers
	- Whereby the Guest finds its voice and become useful, and our
	  understanding of the Guest is completed.

IV) Launcher
	- Where we trace back to the creation of the Guest, and thus begin our
	  understanding of the Host.

V) Host
	- Where we master the Host code, through a long and tortuous journey.
	  Indeed, it is here that our hero is tested in the Bit of Despair.

VI) Switcher
	- Where our understanding of the intertwined nature of Guests and Hosts
	  is completed.

VII) Mastery
	- Where our fully fledged hero grapples with the Great Question:
	  "What next?"

make Preparation!
Rusty Russell.