You know the movie…Bill Murray plays a weatherman covering Groundhog Day, and finds himself stuck in a time loop. He is forced to relive the same day over and over until he eventually finds redemption and is able to move on with his life. I sometimes find that many in the embedded open source software world are also stuck in a time loop. Back in 1983, I was a young open source developer working on the Berkeley Software Distribution. My task at the time was to make it run on a Digital Corporation PDP-11/84. I remember spending day after day hand assembling boot code and toggling it into the machine so I could load data from a tape drive. This task didn’t take merely days; it amounted to weeks of work. I eventually was able to get the system to boot in a basic mode, and spent the rest of my summer writing drivers and making the machine usable. Fast forward to 1993, and I was an embedded medical device developer doing the same basic work, but this time on a Motorola 68000 series processor. I spent months getting an operating system up to the point where I could begin my application development. About a decade later, I was directing a team of engineers to get open source software up and running on a variety of different embedded processors.
Back in the "old days," just getting to a boot prompt on a new piece of hardware was a difficult and a necessary step in developing an embedded device. Now, thanks to the advent of Linux, many reference boards come with some sort of basic functioning operating system. However, the work is hardly done for those who are trying to develop and deploy an embedded device.