Original Summer of Code Proposal

 
Project debian
Summary Improve the boot system
Text



Name		Carlos Villegas

Email		Carlos.Villegas@nuim.ie

Project Title	Improve the boot system

Synopsis	Speed up the boot process and make it dependency
		based.

Benefits to the Debian Community
	Faster booting times as well as an approach to handling
	program dependencies taking into account the current 
	discussions in Debian (1) as well as the progress in 
	other unix platforms. 

Deliverables
	Deliverable 1
		Analysis of state-of-the-art in boot process for 
		linux distributions and description of "hotspots"
		to speed up the process ordered by importance.
		Make webpage to show progress and publish 
		deliverables.
	Deliverable 2
		Describe implementation of first 5 "hot spots" 
		with results concentrating on the most promising.
		Present results of debian boot process changes 
		from woody to sid together with Ubuntu's unstable
		and FreeBSD.
	Deliverable 3
		Implementation of remaining "hot spots". Reorder
		"hotspots".
		Reorder "hotspots" by importance from previous 
		results and possibly add new ones.
	Deliverable 4
		Implementation of new boot process based on 
		results in an iterative way.
		Comparison with the current boot process and 
		other platforms.
		Identify bugs.
	Deliverable 5
		Make available script checking dependencies 
		(LSB-compliant) and publish web page for maintainers.
	Delivarable 6
		Final code and report published.

Project Details (2)
	Debian boot process can be faster. Distributions like 
	Ubuntu seem to be already on their way to faster booting 
	with Sun SMF self-heal services and parallel execution(3)
	and Fedora Project is implementing a new init system (4).
	Thus, the need to improve the current process has been 
	identified and different approaches are being taken to 
	solve it. Parallel processing is an option that has been 
	considered but the depedencies between the programs is 
	a constraint. With dependencies taken into account like 
	by making InitScripts LSB-compliant, parallel execution
	could be implemented in Debian. At the end of the day, a 
	60% faster booting time could be obtained according to 
	Petter Reinholdtsen, which would make a big difference 
	for high availability systems. This proposal has been 
	modified according to comments from Petter Reinholdtsen 
	and it will be further improved.
		
Project Schedule
		Project duration: 14 weeks (23 May-30 August)
	week 1-2
		Analysis of state-of-the-art in the boot process 
		(what are the other distributions doing).
		Identify potential "hot spots" and order them 
		considering which are the most promising 
		solutions.
		Define a metric (or maybe metrices) to use when 
		measuring the boot speed.(*)
		Prepare webpage.
		END OF WEEK 2 - Deliverable 1
	week 3-4
		Measure the boot time in debian distributions 
		from woody to sid.
		Analyse Ubuntu "unstable" boot process and 
		FreeBSD as they	consider dependencies.
		Adjust to feedback on selected approach and
		implement "hot spots".
		END OF WEEK 3 - Milestone 1 : First implemen-
		tation of promising "hot spots" for iteration.
		Modify implementation from previous experience
		Improve boot time aiming for 30% shorter time.
	week 4-8
		END OF WEEK 4 - Deliverable 2
		Implement remaining "hot spots". Reorder and
		possibly add "hot spots".
		Analyse how much more can the boot time be 
		decreased.
		Implement changes.
		END OF WEEK 6 - Milestone 2: Implementation 
		changes.
		Adapt code according to feedback and results.
		END OF WEEK 6 - Deliverable 3
		Publish first version of script that takes
		dependencies into account and checks
		LSB-compliance with guide for maintainers.
		END OF WEEK 8 - Deliverable 4
	week 9-11
		Contact maintainers of scripts that need to be 
		modified.
		Correct and adjust according to feedback and 
		previous results.
		Continue making improvements in an iterative way.
		Debug and consider different platforms.
		END OF WEEK 11 - Deliverable 5
	week 12-14
		Document the changes.
		Make bug reports to BTS and talk to package 
		maintainers and upstream about possible 
		bottlenecks discovered.
		END OF WEEK 12 	- Milestone 3: Final code
				- Deliverable 6

Bio	Currently pursuing a PhD  in control systems for vehicle 
	dynamics, I'm an old Windows user that switched to linux 
	completely when came across with the Debian distribution. 
	Even though I have a mechatronic engineering background, 
	I had been involved in C programming for real-time 
	applications with Linux (RTAI) as well as bash scripting 
	and I feel confident with my programming skills. I'm 
	aware of the diffences of bash with Bourne Shell for the 
	boot scripting and I am familiar with changing the boot 
	process and using bootchart for graphical information. 
	I am confident that with the selection of the proper 
	approach to change the boot process based on debian 
	developers experience and the work done by other 
	distributions, positive results for all debian 
	users will come out of this project.

References
1.-Initscripts discussion in Debian at 
lists.alioth.debian.org/pipermail/initscripts-ng-devel/.
2.-Project ideas from Petter Reinholdtsen at 
lists.alioth.debian.org/pipermail/pkg-sysvinit-devel/2006-January/000542.html.
3.-Ubuntu and SMF at 
www.calivia.com/blog/mike/solaris_smf_for_ubuntu_packages_on_opensolaris.
4.-Fedora Project's analysis of existing init system at 
fedoraproject.org/wiki/FCNewInit.


Feedback from developers
(*)-From comments made by Petter Reinholdtsen