Virtually the best blog on the web!
Posts tagged GSoC
Google SoC List of Projects
Oct 26th
SoC End, Beginning of Another Cave Life :-)
Sep 1st
It was a great experience taking part in the Google summer of code program. I have learnt a lot and get to add the title kernel hacker to my name
For those who don’t follow my blog regularly, I worked on a log-structured file system for Linux that supports snapshots. All the details, documentation, code etc. are available on the sourceforge website.
Now, my prelims exams are coming up in next few weeks, and I have a ton of research stuff to do. I am supposed to present a research idea and support it with some preliminary experimental results. I am working on a fault-tolerant scheduler for large-scale systems, and will post a few details on my blog very soon. It’s time to move to an inner cave.
Cheers !
Snapshots: The Final Piece in the Puzzle
Aug 23rd
I have checked in a basic framework for maintaining snapshots in LFS, and this pretty much completes the SoC project as proposed (Woohoo !!!). I have sent a mail explaining the snapshot design to the logfs-devel list.
I was initially skeptical about the amount of work I could accomplish in two months, but everything pretty much went according to the plan. I have also done some preliminary performance tests, which can be seen here. A mail explaining the results can be read here
Cheers !
LFS Stable Version and Mailing List
Aug 11th
I have updated the stable version in CVS, with the latest and greatest of LFS. This stable version is pretty much a complete log structured file system minus the cleaner. I have a cleaner in the main trunk of the CVS, and if you are feeling lucky and adventurous try it out. It also requires no patches to the kernel, and should compile cleanly on 2.6.11. Follow the instructions on the LFS website for compiling and running LFS.
I have also created a mailing list for LFS development, and if you are interested in following the development, please subscribe here
Out of Input Data — System Halted
Jul 26th
I run my development kernel in VMWare, so whenever I make changes to the kernel, I have to copy the new bzImage to the host machine. Unfortunately, I have to reboot the host machine for grub to pick up the new kernel. I forgot to do this once and just scpd the bzImage to host machine and rebooted the virtual machine. Ha, I was greeted with above error message.
It’s pretty clear that the compressed kernel image is bad. Just for fun, I followed the source and this code appears in gunzip, which is called by decompress_kernel. This error occurs when data underrun happens. gunzip eventually calls error, which just halts the machine with a while(1) ; Another function that is called when all hell breaks loose is panic. These functions should be called only under fatal unrecoverable errors.
A good explanation of kernel booting on x86 is available here.
Bootstrapping LFS
Jun 29th
The tax-related stuff for the SoC project has been quite tough for a lot of people. You can tell from the incessant posting of mails on Summer-Accepted list that people are really confused about this stuff. I still am not 100% sure what tax form I should send, but after closely reading the IRS forms, I have decided to send W-8BEN form (I am an F1 student studying in US). Hope to get it done tomorrow morning.
Ok, on to more interesting stuff. I finally started coding today. Wrote a basic mklfs. It creates an LFS with a root directory and the necessary IFILE entries. After running mklfs, this is how the disk looks:
___________________________________________ | | | | | | | Super | summary | ifile | ifile | root | | block | | dblock| inode | inode | |_______|_________|_______|_______|_______|
More details about the structure of the disk can be found in the README file. The kernel module can mount this file system and print a few info messages.
LFS 0.0.1 released
Jun 29th
I was contacted by my mentor and I made a release for him to look at. The release contains a working version of logfs, but it is not consummable by public. Currently, one can create files and see their attributes by doing ls. The files are not written to the disk, but all the data structures in memory are updated accordingly.
The release is available from sourceforge. DO NOT use logfs tools unless you know what you are doing.
Creating development environment for the LFS project
Jun 28th
CVS setup
I requested a project on the sourceforge and the cvs is already setup. I uploaded a README file and some fs hacking code I have. The project page is http://sourceforge.net/projects/logfs.
Uploaded my public key for password-less, hassle-free logins.
Kernel hacking
I have done kernel coding before and it’s always a pain, if you don’t have a separate testing machine. So, I have setup VmWare to create a virtual machine that suits my needs. I have done this many times before and I think the following setup is the most I like. If you have any suggestions, feel free to comment. This is how I have done it.
- I have a kick-ass FC4 box and wanted to have FC3 on the testing OS. Don’t want to experiment with
gcc 4.0yet. - Create separate partitions that will host the testing OS and one small partition for LFS. In theory, you can install Linux on vmware virtual disks, but I never liked the setup for file system hacking.
- Install FC3 normally and don’t install the boot loader
- Copy appropriate vmlinuz and initrds to the host OS boot partition and update the grub.conf
- Configure VmWare to setup bridged networking. This will allow the guest OS to directly acess the network adapter.
- Boot the virtual machine and start the testing kernel. This is the only painful part, because if you choose the wrong option, bad things will happen.
- Run
yum update. This will bring the system up-to-date and will install a2.6.11kernel. - Install VmWare tools to get better resolution in the guest OS
- Setup the kernel sources for the current kernel. See my earlier post for details on this.
- Start hacking !!!