By Paul Anderson
We have seen the power of open source and open standards transform much of the enterprise space, particularly in the server market. Before the success of open source in server space, there were really only two choices: Run an operating system and applications developed and maintained by a hardware manufacturer, or choose one of only a few commercial operating systems and applications that spanned different manufacturers. Hardware manufacturers optimized each operating system to best suit the hardware they sold, creating a lack of compatibility between hardware manufacturers. Alternatively, commercial enterprise operating systems typically were not optimized for each hardware platform, and as a result, did not perform well. Given these scenarios, a system architect, integrator, or developer, often had to make hard choices and compromises.
With the advent of open source operating systems and applications, the software landscape changed dramatically. After a slow start, there was a bloom of available operating systems and applications available. There was little standardization or compatibility between the different operating system, distribution, and application variants. It was nice to have a choice, but all of these options also created fragmentation. With time, open standards within the enterprise space developed, from carrier grade standards (CGL), to application environment standards (LSB), to standardized application stacks (LAMP). For a variety of reasons, there has not been a single distribution or package standard, but things are now similar enough that system architects, integrators, and developers have a fairly standardized environment and a rich ecosystem of hardware and software from which to choose.
Now consider the embedded community – the world of deeply embedded development has evolved in a much different manner.