Automated kernel configuration and installation tool
This is my proposal for Summer of Code 2007 sent to Debian Org
Project Title
Synopsis
The intention of the project is to design and implement a
user-friendly tool used to configure a new kernel, control its
compilation process and install it in the operating system. The
functionality and way of working with the intended program is going to
resemble how APTITUDE works for applications.
The motivation for the project is that contemporary Linux distributions
contain either simple kernel configuration tools that do not give
enough power to the users or, on the contrary, tools that are too
difficult to use for newbies. The new piece of software is going to
fill the gap and provide users with a user-friendly and, at the same
time, powerful tool.
Benefits to Debian
Making Debian more usable and open to greater groups of users giving
them more control over kernel administration, thus bringing it closer
to perfection.
Deliverables
A program generating kernel configuration files based on user choices
made in the user interface similar to APTITUDE, allowing to edit those
files and then running and controlling kernel compilation and its
installation in the system.
Project Details
The software's functionality is going to be divided into a number of
modules. One of them is going to be a user interface based on NCURSES
with possibility to reimplement in other graphical environments. It is
going to provide the user with choices of modules, suggest including
proper kernel modules, disallow the user from making wrong choices. The
program can load an existing configuration file and edit an already
created configuration. Upgrading selected kernel modules is going to be
possible, including automatic module version conflict detection.
The implementation will provide for extending the program with support
for automatic download of proper kernel files from mirror servers.
Project Schedule
The complete design and implementation all the aspects of the project
is not going to possible in the three months timeframe. I could start
working on this project full-time from end of semester near end of
June. However, before that time preparations could take place including
collecting information and concept design.
Proposed milestones:
- Basic input (parsing) and output of configuration files - 1 week
- Data structures allowing for efficient storing, accessing and tracking relationships between modules - 4 weeks
- Graphical user interface, implementation based on code of APTITUDE - 4 weeks
- Tweaking, testing and bug-fixing - 3 weeks
Reply to: