Linux has come a long way since Linus Torvalds developed and released it as an open source operating system (OS) 20 years ago. It is now used in almost every kind of computing environment: servers, routers, network switches, industrial control systems, automotive, and consumer electronics. And via Google's Android, it is one of the dominant OSes on mobile phones and tablet computers, both of which have replaced desktops as the mainstream personal computing platform.
Unlike commercial OSes, Linux remains an OS that is – and will remain—a work in progress, with its direction determined by those who use it. That is one of its strengths. But the nature of who will drive the changes is something that is still in the process of evolving, driven by a fundamental change in the way EEs and computer science students have been trained.
Ubiqutious education = ubiquitous use
An important factor in its growing influence and wide market penetration has been its near universal adoption in university engineering and computer science departments over the past 20 years. What makes it very attractive to instructors planning classes is that as an open source OS, Linux is free to developers not planning commercial products. But more importantly, said Davide Ricci, senior product manager, open source platforms at Wind River, is that unlike most commercial OSes, its code and structure is completely accessible.
In hardware classes, he said, it is used as an OS platform that can be adapted and pruned by the students to fit the application. In programming courses, because it is open and written in C, it can be used to illustrate programming code techniques and principles. In OS courses, its basic components can be examined, modified and experimented with to see what happens.
"I do not believe there is a software – or hardware—professional who emerged from institutions of technical training in the last several decades who has not had some experience with Linux," said Ricci.
This view is supported by Jason Kridner, software architecture manager, Sitara ARM processors, at Texas Instruments Inc., who said the company moved into the Linux community with distributions adapted for its CPU architectures to satisfy the growing number of developers whose first introduction to Linux – and OSes – was during their technical training.
"Many of our customers were taught Linux while they were in school," he said. Besides optimised Linux implementations for TI's devices, he said TI pioneered hackable, low-cost Linux development platforms that are being used to create new embedded applications that help to further extend the Linux kernel.
"We are starting to see that these low-cost Linux development platforms are now being used in schools, which is another reason why we believe that Linux training is so heavy at the university level."
The changing face – and voice—of Linux
Ricci said that over the years of Wind River's participation in the Linux kernel.org build process, he has seen the size and nature of the Linux community change fundamentally. Initially, much about the direction of Linux came from Linus Torvalds and a number of other individuals and companies who have been contributing to the building of the platform since its beginnings.
"Now, the new faces and voices of the Linux community are the many thousands of developers educated in the details of open-source software, including Linux in universities," said Ricci. "And they often devote some of their non-working hours to working with and thinking about new ways to use it. When they come to us and say there is something they do not like and want changed they often have very good technical reasons. So we listen closely."
Representative of this growing—and very international—developer community is 28-year-old Le Trung Thang who received his BS degree in Electronics Engineering at Ho Chi Minh National University in Vietnam and now works as a software developer in Singapore for a European electronics company.
Most of his work is dealing with software design and some hardware development when the job requires it, but he devotes much of his off time to embedded Linux development and programming. Working with the Red Hat Fedora distribution, he is actively involved in understanding the real time constraints of the Linux platform. In addition, he has joined an open source project to port the Android OS to the Olimex ARM9 board. The continuing work on both projects he publishes are on his online blog.
As a university student, he said, most of his classes and projects were hardware oriented, such as in the design of an RFID reader. "That was my first introduction to Linux. I saw that the devices that I was working with required the use of Embedded Linux," said Thang, "So I told myself I better study Linux." Giving impetus to his efforts was that the mobile smartphones he has been most impressed with were based on Android. So, in addition to doing development work on Fedora, he is beginning to do work with the Mobile Android Linux distribution.
Roadblocks ahead for Linux?
While he is enthusiastic about the future of Linux, Thang has some concerns, most relating to roadblocks the current OS architecture imposes on developers. Rather than keep his focus on the application he wants to develop, he is forced to get involved in implementation details. "There is a lot of work that could be done to make it more developer friendly," he said. "In the Windows OS development environment, it's very easy to install new software with a few mouse clicks. Compare that to almost any embedded Linux distribution which has a user interface that after all these years is still primarily command line based."
He said this makes it necessary to know a variety of details such as build commands, system configuration settings, make files and hardware implementation requirements. "While there is a lot of similarity between the distributions as it relates to some core commands," he said, "for the most part you have to relearn a lot of functions each time you change a distribution."
The concerns of developers such as Thang are being listened to and were a motivating factor behind the creation of the Yocto Project by the open source community, said Ricci of Wind River. "Yocto has as its goal the creation of tools and processes that will make possible development of Linux distributions that are independent of the underlying architecture upon which they run, allowing for some degree of standardisation," he said, "something that might not have happened without a major push from the many software developers using Linux."
When Torvalds created the Linux operating system and made it freely available in 1991, his goal was simple: an open source alternative to the dominant commercial OSes such as Unix and Microsoft Windows in the mainframe and desktop computer market. Since then its use has exploded in directions the 47 year old software developer—and the coterie of dedicated developers he leads at the Linux kernel.org project—could not have imagined possible.
One of those unanticipated new directions, no doubt, is in the nature of who will drive its development in the future. For many years, its evolution has been driven by those who were motivated by the belief in the importance of such an open source platforms.
That is now changing as these early pioneers are now being replaced – and outnumbered—by the thousands of EEs and software developers who were introduced to it in their university training and see it and the open source paradigm as additional – but not the only—means by which they can do their jobs.. Under this "new management," it will be interesting to see what new directions Linux will go and what new surprises it may have in store.