The reality of the embedded systems world is that there are a relatively small number of companies that make the silicon and there are a relatively small number of Outside Equipment Manufacturers (OEMs) who buy the majority of the silicon for use in their embedded systems products. The rest of the market consists of a large number of small-volume players who build interesting stuff, but they do not drive the volumes necessary to mandate new chip designs or software solutions.
Between the semiconductor vendors and the OEMs there are hundreds of little software companies, all of whom are selling their wares. For example, there are over 120 commercially supported Real Time Operating Systems (RTOSes) in the market today. Not one of these RTOSes has more than a 6% market share, according to IDC. It's like the Unix world ten years ago, only twenty times more fragmented! This fragmentation leads to all the classic degenerative cases of free market economics: redundancy, incompatibility, price gouging, etc. What the semiconductor vendors and the OEMs wanted were standards that would accelerate TTM (time to money), and the commercial RTOS vendors were either taking too much time, costing too much money, or both.
In the embedded systems market we were the rising star: we were growing twice as fast as the leader in our market, and we were keeping our top four competitors to single-digit growth. Yet we were not treated like, nor did we act like, true market leaders. In 1995, after many conversations with our key customers about what did and did not work in their embedded systems world, we began to understand that our GNUPro compilers and debuggers could only go so far in addressing their problems. What customers needed was a silicon abstraction layer—a layer of software that sat underneath the standard C library or a real-time POSIX API. There was a new opportunity to expand our product offering in a non-trivial way.
We sharpened our pencils and took note of the obvious: 120+ commercial RTOSes and 1000+ in-house RTOSes meant that at the technical level nobody had yet built a sufficiently configurable RTOS to achieve "one size fits all," and from a business perspective we noted that run-time royalties were killing margins, so the RTOS had to be royalty-free. In other words, to consolidate the market around our solution, we needed to create a completely new, world-class technology, and we needed to give it away. Management kicked the idea around for a year before finally acting on it.
Once we did decide to go forward with this strategy, our management team continued to wrestle with the question "How is it going to make money?" Even as we continued to consolidate the market around GNUPro, it was not obvious to the team how we could repeat that model for an embedded operating system.
We did the smart thing that any business does when faced with a completely inconsistent problem: we made assumptions. Assuming we would figure out how to make money, we asked ourselves what were the N other things we needed to do in order to solve our customers' problems and become #1 in the market? (1) We needed to develop this whizzy new configuration technology, (2) we needed to build the rest of the system so that people would have something to configure, and (3) we needed to do all of this before the market opportunity evaporated. Software development costs money, and product-oriented software development on a timetable costs lots of money.
When we started Cygnus, we had all assumed that the VCs would never understand what we did, and if they did, it would not be until five or more years down the road, when there was nothing useful they could do for us. Happily, we were wrong on both counts.
Our first outside board member, Philippe Courtot, wasted no time in introducing me to leading VCs in early 1992. I was very open with each of them about our model, technology, and goals for the future, and I was equally open about the fact that we had designed Cygnus to be self-funding and hence did not need their money. Indeed, the fact that we could increase profitability a percentage point per year while growing the company at 80% per year was a pretty good indication (as far as I was concerned) that we were maturing the business nicely. Roger McNamee, a leading software industry analyst for the VC community, said it best when he said "I am both amazed and surprised by your business model. I am amazed at how well it is working, but the more I think about it, the more surprised I am that I didn't think of it first!"
While it was gratifying to think that we had aced the problem and didn't need outside funding, the reality was that by 1996, we had created so much opportunity beyond our self-funding GNUPro business that we needed a new plan and new partners.
We found two investors, Greylock Management and August Capital, who understood what we did and how we did it, understood what we could do with the right guidance and discipline, and had access to enough capital to execute our plan. They invested $6.25M, the largest private placement for a software company in the first half of 1997, and the execution began in earnest.
I DO NOT LIKE THEM, SAM-I-AM. I DO NOT LIKE GREEN EGGS AND HAM.
While the technical team ramped up, the business people continued to thrash on how the money was going to work, because at first we did not see the connection between the architecture of eCos and the business model we could use to commercialize it. On the technical front, we knew that the configurability of the system was key to delivering a "one size fits all" architecture. On the business front, we knew that a "one size fits all" was key to creating a unifying and beneficial standard for embedded systems development. But we still could not figure out who was going to pay for this benefit. The two sides worked on their problem independently for a year and a half. R&D costs mounted. Unable to reconcile the Open Source paradox, many managers didn't make it.
When the technical people were finally able to demonstrate what they first envisioned, it became clear to the business people what we were actually creating: the world's first Open Source architecture. To me, it was as exciting as the first time I looked at GCC.
Open Source is all well and good for the hacker, and the way that Open Source can create standards is great for the end user, but there's a gap between what hackers can do with open-source software and what regular users can do. We wanted eCos to be a product that could be embraced by the mainstream embedded developer, not just the hacker community. Our idea was to empower users with high-level tools that could configure, customize, and perform basic validation of eCos in an automated fashion, replacing the manual steps that in-house RTOS developers perform today. By making the high-level tools control eCos at the source-code level, and by architecting the source code so that it could be managed via these tools, we made it possible for end users to work virtually at the source-code level, without ever needing to read or write a line of C or C++ code. The proof of our success is that eCos can be scaled from 700 bytes (bare minimum silicon abstraction layer) to over 50 Kbytes (full-featured RTOS with Internet stack and filesystem)!
Once we realized that Open Source was not just a feature, but the technical enabler of eCos, and once we proved to ourselves that with this feature, we had a 10x performance advantage over our competition (10x space savings over object-level configurability and 10x-100x programmer efficiency over source-available, but not source-architected RTOSes), we packaged solutions to deliver that performance advantage to the market, and the preliminary response from the market has been extremely positive.
When one considers the past impossibilities of our GNU-based business, one can only imagine the possibilities that eCos will create for Cygnus Solutions and the world.