- India leads the 7 match series 4-0. Dhoni’s Dashers do it again.
- Poker has become the new favourite game here at Civilization.inc
- If a team loses the match due to losing the toss, can you use the phrase “Gone for a toss” ?
I am busy writing my statement of purpose these days, since the University application deadlines are fast approaching. I have been doing what’s often called the “bicycling-down-the-memory-lane” process, trying to think of specific events that have made me who I am today. Why did I choose Computer Science, why NITK Surathkal, Why IBM Linux Technology Center, and now why a PhD? These are some of the questions I am trying to answer in my statement of purpose. But the one question that deserves a blog post is Why and How Linux ?
In my high school, I did one year of BASIC programming in eight grade. That was all the knowledge of computers I had back then. To me, they were some kind of expensive luxury items which not everyone could afford. I started subscribing to Readers Digest in my 1st PUC. The first copy I received had this person called “Linus Torvalds” on it’s cover. RD was running an interview of Linus, and caption I think was “The man who came so close to Microsoft and gave it all away”. My first impression was that Linus was some kind of Sabeer Bhatia who invented some cool program and gave it away to Microsoft. I read the interview to realize that Linux was not just another piece of code, it was whole operating system. And Linus didn’t sell it to Microsoft, he just made it available for everyone! My thoughts after reading the interview was “Pretty cool. must be some kind of saint!”. But secretly, I began nurturing the hope of contributing to Linux one of these days.
I used Linux for the first time during my first year at NITK Surathkal. The Central Computer Center (CCC) had Linux machines and one had to use Mozilla browser to browse the internet. Frankly speaking, I found it a bit weird from the usual Window ’98 that I used to see in cyber cafe’s. But eventually I got a hang of it. I also found out about a club called the “Web Club, which comprised of students who helped maintain the Institute website and had a thing for Linux. I wanted to be a part of this club.
I had lost respect for all the technical clubs at NITK, except the Webclub. Rest of the clubs, in my opinion were empty nothings which only gave students a reason to socialize but did nothing productive. However, to be a part of the WebClub, one had to clear the interview. I appeared for the interview. But I didn’t make it. Probably the seniors didn’t think I was good enough. Whatever it was, I felt dejected. I wasn’t going to be a part of the Elite group which used Linux.
But wait a minute! Wasn’t the whole purpose of Linux and Open Source to let people use what they wanted to? If so, what was stopping me from installing it and using it on my machine? So, I asked Katti, who was a member of the Webclub, to lend me RedHat 9 CDs. The install process was different from that of Windows, and it took a bit longer. I had to allocate twice my RAM size for something known as the SWAP space. But then, I had enough space on my hard-drive. When I rebooted the machine, it booted perfectly fine. There was a wallpaper which had the image of a Hot air baloon landing on some alien planet. There were a few interesting games. And there was XMMS. But it wouldn’t play mp3s! So, I ran back to CCC and googled around to see if there was a solution. I found that it was a known problem with a tried and tested solution. I came back armed with an RPM that would teach XMMS to play mp3s. And it did! So, now I could listen to music while I was playing those stupid games.
Around the same time, I got hold of a CD which had some great technical e-books. One of them said something like Linux Unleashed. In a few days, I was able to get my way around using the terminal. I learnt to create files and directories, show the directory listing and many more. I thought that this was more powerful than the DOS command-line which I had used in my BASIC days. A few days later, I got hold of another book called the Advanced Bash Scripting Guide. Now I could write my own scripts. It was fun trying to solve some Data structures and Algorithms problems with BASH!
My Linux machine could do everything. Well, almost. It couldn’t play video files. Atleast not yet. And I badly wanted to have it fixed, since I didn’t want to switch back to Windows whenever someone barged into my room with the latest movie CD that they wanted to watch. Thus, I made another trip to CCC. Google told me that MPlayer plays pretty much anything on the planet. So I downloaded the source and went through the README file. Then, I compiled it. Installed it. Ran it from the terminal. It worked! My Linux machine could now play Videos too!!
Every summer, I used to extern at the NMAM Institute of technology, Nitte. The projects that I worked on there, required Linux. For example, when I was working on the Video scene change detection algorithm, I used the mplayer code as a reference. Also, after my 5th semester, when I was all impressed by the Intel386 features that we learnt, I wanted to write an operating system of my own. Yeah, this was one among the crazy things a 20 year old geek usually dreams of doing. I first wrote a simple boot-loader from scratch, and then wrote a very tiny real mode operating system which would say “Hello World!”. Again, I Open source tools for this.
My first experience with the Linux kernel was during my B.E Project. I was collaborating with IBM’s Linux Technology Center working on Server Power Management. One of the things that I did was to hack the scheduler and the cpufreq code such that I could drive the processor frequency change from the scheduler. It was an experimental patch which I never submitted, since it was quite buggy, and cpufreq used to hang once in a while. But that experience taught me my way around the source code, and I also learnt the workings of the cpufreq subsystem, which would come handy later on. What was more, my system was now running a custom-compiled kernel! Pretty cool!
While undergoing this experience, it dawned upon me that if there’s anyone who can contribute actively to open source and keep it’s spirit alive without any hidden agenda, it is the student community. We, as students learn theories about the various pieces that make a computer a really useful tool. So, what better playground can we get to try-out some of these theories other than an open source project, which comes with a strong technical community, code-review by peers, and real functional code?!
The one thing I found wanting during my B.Tech was a local technical community around open source. I discovered that most of the students in college were bright. But they were a bit lazy as well. They would not bother to check out something, unless there was a need to or there was somebody who could show them the way. Most of them needed some kind of guidance, but didn’t know whom to contact. There was very little interactions between Seniors and juniors and that too it was limited to the members of the Technical Clubs.And I didn’t think WebClub was doing enough here. In my opinion restricting the knowledge to a closed-group of people was not the best models for Open Source. True, they used to conduct Tuxride once a year, but an annual festival is not good enough to sustain interest in Open Source. Students soon get bored when they don’t have a active community. The best thing about Open Source is the principle of sharing knowledge. And Web Club wasn’t actively doing that. Hence, I decided to go ahead with OPEN.
OPen source Enthusiasts Network (OPEN) aimed to fill in the gaps that WebClub couldn’t. Webclub was a registered club, and the convenor reported to the Dean. It got some share of the annual funds. So there was a chain of command and an agenda. We didn’t want that. We only wanted a couple of professors who could help us get the necessary permissions and the infrastructure to get started with and a bunch of enthusiastic volunteers who can help out with the logistics. As the name suggested, the club was open for anyone and everyone who wanted anything to do with OPEN Source. Whether it was help with installing Linux on their machines, or help to get started with a new open source project or to join an existing one. The club organized tutorials and talks on various open source projects. It helped people came up project ideas that it shared those ideas with the other folks. More importantly, it provided a platform to share the knowledge and keep the discussions going. Personally, I had a great time running around printing the posters and organizing the talks. It also introduced me to a enthusiastic bunch of juniors who otherwise, I probably woudn’t have met!
Probably the next time I take a “geeky vacation“, it will have something to do with OPEN 🙂
After college, I took up a job at IBM’s Linux Technology Center. Since then I have been working on the Linux Kernel. I would rate the journey from that Readers Digest interview to my first patch as a really exciting one. When I look back, I sometimes can’t help wondering, what I am working on today, once began as a pass-time activity. And what’s more, I am still having fun working on it!