[hacktree] DESIGN: More explanation of problem
- From: Colin Walters <walters src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [hacktree] DESIGN: More explanation of problem
- Date: Sun, 9 Oct 2011 22:53:11 +0000 (UTC)
commit 5a59c29371720d538cf27014b1c2f530532278e7
Author: Colin Walters <walters verbum org>
Date: Sun Oct 9 18:52:26 2011 -0400
DESIGN: More explanation of problem
Initial thoughts on booting details.
DESIGN | 52 ++++++++++++++++++++++++++++++++++++++++++++++++++++
1 files changed, 52 insertions(+), 0 deletions(-)
---
diff --git a/DESIGN b/DESIGN
index c17046a..17cc015 100644
--- a/DESIGN
+++ b/DESIGN
@@ -7,6 +7,56 @@ manages root filesystems. They both share an executable name
hacktree-build
hacktree-root-manager
+== Problem statement ==
+
+Hacking on the core operating system is painful. We want a system
+that matches these requirements:
+
+0) Does not disturb your existing OS
+1) Is not terribly slow to use
+2) Shares your $HOME - you have your data
+3) Allows easy rollback
+4) Ideally allows access to existing apps
+
+== Comparison with existing tools ==
+
+Virtualization:
+ Fails on points 1) and 2).
+
+Rebuilding OS packages:
+ Fails on points 0) and 3). Is also just very annoying.
+
+jhbuild + OS packages:
+ The state of the art in GNOME - but can only build non-root things -
+ this means you can't build NetworkManager, and thus are permanently
+ stuck on whatever the distro provides.
+
+== The core idea ==
+
+chroots are the original lightweight "virtualization". Let's use
+them. So basically, you install a mainstream distribution (say
+Debian). It has a root filesystem with a regular layout, /etc, /usr,
+/lib etc.
+
+Now, what we can do is have a system that installs chroots, like:
+
+/gnomeos/root-3.0-opt
+/gnomeos/root-3.2-opt
+
+These live in the same root filesystem as your regular distribution
+(Note though, the root partition should be reasonably sized, or
+ hopefully you've used just one big partition).
+
+We allow booting into these roots via a modified dracut - if you have
+this system installed, at boot time it shows a prompt like:
+
+[0] Default root
+[1] /gnomeos/root-3.0-opt
+[2] /gnomeos/root-3.2-opt
+
+If you pick [1] or [2], then instead of calling switch_root for /,
+it uses the selected root.
+
== The recipe set ==
A recipe is similar to Bitbake's format, except just have metadata -
@@ -116,6 +166,8 @@ we then diff?
If the script fails, we can roll back the update, or drop to a shell
if interactive.
+== Booting ==
+
== Local modifications ==
A key point of this whole endeavour is that we want developers to be
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]