For over a dozen years, Linux has been my primary operating system for professional software development. I remember when it wasn’t as mainstream as it is now.
In my early years just after college, Linux didn’t occupy a big place in the computing world. It was something of a novelty, seen by many as a “better Unix.” Unix, of course, was known by many as a command line operating system, even though there were plenty of graphic user interfaces for it; I used one as a co-op, when I really grew to enjoy it (and also learned it primarily from the excellent book Teach Yourself Unix in 24 Hours – boy, just thinking of that book series is a trip back in time!)
I knew of Linux, but that was the extent of it. I knew that it was “free” – free at the point of consumption – and that the source code was freely available and could be modified, which seemed interesting. I also knew that the cost – nothing, in terms of dollars – was becoming more of an allure, to the point where industry leaders like Microsoft and Wind River (the latter of which was my employer for a time) were aware of it posing a threat to them. But it wasn’t until 2004 that I got introduced to it.
I was at a small consulting firm at the time, and jumped right into a Linux project. Right away I was dealing with the kernel, at a time when the 2.6 kernel was just catching on and, as such, many still had software running the 2.4 kernel. At the time, Linux had started to catch on in embedded systems to the point where some would re-host their systems from a commercial real-time operating system (RTOS) like VxWorks to a Linux-based system. I spent some time there looking at all of the considerations involved in doing so, which was a great learning experience for me at the time.
I wanted to jump in further, so I bought a refurbished Dell laptop and put Fedora on it. I would routinely bring both that and my main (Windows) laptop to the office, and probably used the newer one more. I had long liked Unix systems, so I was instantly at home and familiar with many of the tools, and the improved graphical user interface from any I had previously used made life easy. In fact, whereas I couldn’t imagine someone not in engineering using Unix, I could certainly see them using a Linux distribution.
It’s not exactly a case of “the rest, as they say, is history,” but it certainly set the stage for what has happened since then. Later that year, I remember attending the Embedded Systems Conference, and Linux was kind of the headline story. It had become so big in the embedded space, it was all over the conference sessions, many of the speakers talked about it, and many vendors in the exhibit area had products running it. A year later, LinuxWorld came to Boston, which I was ecstatic about (and then bummed a couple of years later when we learned it would not come back to Boston after 2006).
Now it’s hard to imagine not working in Linux, especially for anything embedded. It’s far from a novelty, and the kernel is well past 2.6 – for a while, it looked like it may be 2.6 for an eternity. I remember porting projects from 2.4 to 2.6, which wasn’t trivial given changes with makefiles in addition to some drivers and other subsystems changing up structures entirely. Every job I have had since then has been based around Linux development in some way, shape or form.
Linux has now been around for more than a quarter of a century. It has spawned LAMP – Linux, Apache, MySQL, Perl/PHP/Python. It has effectively extended the life of Unix – I remember late in my college years, one professor was talking about operating systems and asked, somewhat rhetorically, “How much of the world is Unix?” Indirectly, it led to git, a software configuration management tool Linux creator Linus Torvalds developed that is in the same vein as ClearCase, SVN and its predecessor, CVS. The Linux kernel uses git, and it appears to be growing in its usage.
Linux also did much to really spawn the free and open source software (FOSS) industry. Free software has been around for a long time – I have used a lot of freeware over the years, even something as simple as a text editor that was better than the old school Windows Notepad – but Linux seemed to be a game-changer there. GNU tools seemed to get some new life from it and Eclipse came later with a couple of Linux champions among their initial consortium and became a leading IDE. The WordPress platform, which Hoopville uses, is based off two pillars of LAMP in MySQL and PHP.
It’s pretty safe to say Linux is quite mainstream, and it’s had quite an influence – both on engineering and on computing in general. I not only watched it happen, but have actively participated and continue to.