Subject: Summer of Code: LiveCD Installer
To: None <tech-install@netbsd.org>
From: Jon Voris <jvoris@cs.stevens.edu>
List: tech-install
Date: 04/30/2006 21:52:48
Hello all,
I'm a student who is interested in participating in this year's Summer
of Code with NetBSD. Many of the projects seem appealing, but I
particularly like the idea of creating an installer for LiveCDs. Here's
my first go at addressing the pertinent areas of the Proposal HowTo; any
feedback is welcome.
The Project:
Currently, individuals who are potentially interested in using NetBSD
must use separate CDs to test it out and install it. The goal of this
project would be to create a program that users could launch directly
from their LiveCDs to walk them through the installation process. This
would ultimately be provided to users in LiveCD ISOs as an "Install this
LiveCD to drive" option, but the main deliverable would be a GUI-based
installation utility suitable for inclusion during the LiveCD creation
process.
Here is a rough outline of a possible project schedule:
5/23-6/9: Familiarize myself with the ins and outs of sysinst and the
LiveCD creation process and determine the best way to integrate the
installation utility.
6/12-7/14:Create the installation utility without any automation; that
is, there would be no platform detection included, so the user would
have to manually select installation options.
7/17-8/21: Add platform and hardware detection to the process that would
pick proper defaults during installation.
I believe that I would be able to dedicate about 20 hours a week to this
project...would this allow for enough time to complete it?
OS installers themselves are nothing new - RedHat has Anaconda and
NetBSD installation CDs have sysinst - but there are very few
occurrences of LiveCD based installation utilities. AFAIK, Knoppix is
the only platform that provides an install option with its LiveCD, and
even this is very young (I checked the version on Knoppix 4.0; it's
v0.3.19.13 with a heavy development warning). So I believe this would
involve writing new code as opposed to a port or a rewrite. At the very
least, the flow of installation could be borrowed from the current
sysinst utility. I'm not familiar enough with sysinst to know if any of
its code could be used as well - any thoughts?
The Project and NetBSD:
The installer itself seems best suited as a system utility that could be
bundled along with the rest of the programs on a LiveCD. I don't know
exactly which interfaces this would use, however, because I'm not yet
sure what the best way to integrate this into the system is. I'm also
unsure of the current process for creating LiveCDs. The only link I've
found is marked as out-of-date
(http://www.reedmedia.net/misc/netbsd/live-cd.html). I'm also aware of
the mklivecd and cdrtools packages - could this tie in to those, or
should this be a more platform independent endeavor?
Beyond the NetBSD installation procedure, this project involves
knowledge of platform detection techniques that I would also have to
familiarize myself with.
Me:
I am a (very-soon-to-be) graduate student who is a long-time NetBSD
user, but this would be my first foray into NetBSD programming. I have
about 2 years experience writing financial software in Python and Java
and a strong C++ background. I'm also familiar with SVN. My interests
include applying AI concepts and security, and I am very interested in
getting involved in Open Source in general and NetBSD in particular. For
more about me check out my resume:
http://personal.stevens.edu/~jvoris/resume.htm
http://personal.stevens.edu/~jvoris/resume.pdf
Well, that's everything I can think of for the moment. I appreciate any
feedback anyone may have.
Jon Voris