The FBFS live DVD
Important note !
The published live dvd image freezes when starting the gnome desktop environment if you run it on real hardware. It works, however if you try to run it from vmware player. I do not have enough time now to explore the issue so if you really want to try the FBFS scheduler with the X desktop environment, you need to follow the tutorial on the second half of this page and compile the FBFS into the kernel manually.
End of important note !
I have published on internet a bootable live dvd image of FreeBSD with the FBFS scheduler. So now you can easily try it:-) The FreeBSD image on this dvd contains an X environment. It is a slightly stripped down version of the GNOME desktop environment. The compressed image can be downloaded from here. Just download it, uncompress and burn the iso image.
I have created there a user with unprotected root access. The username is fbfs and the password is also fbfs.
This dvd image image contains a slightly lighter version of FreeBSD. I removed the locales and many gnome applications to make it lighter and thus easier for me to publish and for you to download.
The downloaded iso image is a live dvd, that means you can boot your computer from this image and run the supplied operating system without the need to install it on your disk. This makes it easy for you to try my new scheduler.
Manually compiling the FBFS
Firstly a quick warning. Here I write a quick guide how to compile the FBFS scheduler into the FreeBSD. Although I have tried to do my best, it is possible that the following procedure could make your system unstable or even unbootable. So use common sense, do not apply it to production systems:-) The scheduler is still under development.
Now I assume you are running the 8.2-RELEASE version of the FreeBSD operating system. It is the latest version available for download from the official FreeBSD web page. You can get it from here.
The first thing you need to do is to download the FreeBSD sources for the version RELENG_8_2. One possible way how to do it is using the csup utility. Make sure you have enough free space in the /usr filesystem and download this supfile. You should now edit this file and change the first line
to specify a host name that is near your geographic location. The list of available hosts is here. So after editing, the first line could look like this if you are from France.
Now execute the following command as root:
# csup src-supfile
where the src-supfile is the name of the downloaded supfile. This will download for you the required sources. Wait until the download ends, it will take a while.
Now you need to download the FBFS patch to the FreeBSD kernel from here. Download it to the /usr/src location. You should apply the patch with the following commands as root:
# cd /usr/src
# patch -p1 < fbfs_midterm.patch
where fbfs_midterm.patch is the name of the downloaded patch file.
The next thing you need to do is to configure your kernel to use the FBFS scheduler. Edit your kernel configuration file. (for example /usr/src/sys/i386/conf/GENERIC) Now locate this line:
options SCHED_ULE # ULE scheduler
and change it to this:
options SCHED_FBFS # FBFS scheduler
Now you need to compile and install the patched kernel. For this, you should read this carefully. To build and install the new kernel, you need to issue these commands as root (Replace the GENERIC with the kernel config file name that you use):
# cd /usr/src
# make buildkernel KERNCONF=GENERIC
# make installkernel KERNCONF=GENERIC
Now reboot and try the FBFS scheduler.
What is still missing
If you run my scheduler, you may notice that there is some functionality missing that you are used to. Now, there is no process cpu accounting information delivered to the user space. So when you run the top command, all processes will show 0% cpu utilization. The current FBFS implementation also lacks the cpuset functionality. I will add the implementation for these features next time.
Feedback is welcome
Any feedback is welcome:-)