Wednesday, June 14, 2017

Guest post: Becoming a FreeDOS developer

Imre Leber was part of the FreeDOS Project for a long time. Imre shared this great story about getting started in FreeDOS and the contributions made over the years. I have included it below (with permission) as a guest post for this month's FreeDOS Blog Challenge. Thanks, Imre!

I started programming when I was fourteen years old. At the time, my family had just bought an entry level computer, an 80386SX-25 with 2MB of memory and a 40MB hard disk drive. Money was tight, so I was unable to upgrade until I was nineteen years old, so I just kept myself busy with the computer as it was. At the time, it ran DR-DOS. Now you should know that at the time computers were more for the tech savvy people. You couldn't do much with it, so apart from playing a few simple games like Wolfenstein 3D, if you had a computer you had it to know the ins and outs of it.

I think it was simplicity of the MS-DOS system that allowed me to be so knowledgeable about it. You could really understand its shortcomings and think of ways to improve on the basic concept. At the time, there was also a lot of information available about ways in which people had tried to extend the life of the system, lots and lots of small tricks that seemed very clever at the time.

So I got interested in finding some of my own clever tricks. The most clever of which would be building multitasking into the system. I thought about how cool it would be to have the source code to the system so you could really play with it. Then one day, I was at university studying computer science at the time, I stumbled upon a little thing called FreeDOS which intrigued me obviously.

I looked at the source code and discovered it had something they called the kernel and some other programs. As I was just starting out programming in C, I had been programming in QuickBasic 4.5 mainly, I skipped the kernel, but did manage to make some important changes to the diskcopy program. I decided to send it to the person listed who asked me to continue development on it. That is how I became a maintainer on the FreeDOS Project.

I played a lot with the code for diskcopy. I hacked in a lot of features which made the program very powerful, on par with some of the shareware offerings that existed prior. As the code became bloated, I started to look into some of the programs that didn't exist yet in FreeDOS and decided that I was going to implement defrag. Now, I had no idea how one would even write a defragmentation program, so I started out implementing the functionality that I did know how to implement which was the user interface. Which is why for a long time the program was known as an empty shell that didn't much do anything.

As a student of computer science, I also tried to do everything very structured, so I built a library to manipulate the FAT file system, which I called the FAT Transformation Engine. With this, I did eventually complete defrag and implemented chkdsk, but it all had taken so much time that people had gotten tired of me always promising things.

Then there were also the odd projects that seemed to need work like move, that I also on occasion worked on.

After some years working on FreeDOS, life had put too much strain on me to continue working on it. See, work for FreeDOS programmers wasn't exactly blooming, not to say there wasn't any work at all. I don't really regret working on FreeDOS for this, because it's a testament to how careless my childhood had been. Prior to graduating from university, I had never even thought about what I would do after school. This forced me to go back to school after, and because of that I simply dropped of the mailing list until so much time had passed I forgot about FreeDOS altogether.

Then I implemented a program called emulare which was an emulator for the Arduino micro-controller, which is when I really moved away from FreeDOS to do other things.

I loved my time being part of the FreeDOS Project. It was an amazing time. The term "open source" had just been coined and being part of it, through FreeDOS, made me feel like I was part of something bigger then myself. For years, it felt like we were going to revolutionize the world, like we were building something that would enable people to get out of poverty, to enable people to work on things they were passionate about and not depend on day to day earnings to survive.

We were also the last generation to create open source out of thin air; before us there was nothing. We still had to create everything ourselves. We had no compiler, no libraries, nothing but a willingness to succeed. After us there came a new generation of open source projects with more commercial and less ideological ideas. Haiku started in 2001 and was a clear departure from our way of thinking about what open source should be.

-Imre Leber

No comments:

Post a Comment