Early on in the development process of an embedded system, there comes a time when a decision must made concerning the OS. Does one build, buy, or borrow? For those original equipment manufacturers (OEMs) fortunate enough to have a working embedded operating system already nailed down from a previous product, the decision is easy. Borrow that and maybe do a little custom tailoring if it doesn't quite fit the new product.
Other OEMs will have the time and talent pool to create their own custom OS from scratch. This approach can certainly be the most rewarding. However, it is also the most tedious and time consuming approach, and the skills involved are often well outside their core competencies. While some knowledge of operating system details is crucial, especially as embedded devices such as PDAs and smart phones assume a greater role, OEMs are more concerned with the function of their particular device.
For those without an existing embedded OS or the ability to build their own, the most reasonable approach is to buy a readymade embedded operating system. Buying your OS does have drawbacks. A readymade OS will always be built with a broader audience in mind than your specific device. Also, one has got to be careful to avoid having the OS vendor's branding all over the embedded system.
However there are also major advantages to running a readymade embedded OS. For one thing it's easy. All you have to do is hand over the money and the bulk of the work is done for you. Many embedded OS builders come in a componentized format that allows you to add only the features you need for your particular device. A word of advice here, do start out with the bare minimum and add only the things you do need. The desire to add everything and then pare out what doesn't get used is a frequent mistake.
One other word of advice, no matter what type of embedded OS you're using, start testing it on the actual hardware as soon as you can. Desktop emulators are great and they can help you configure the system quickly, but they're going to have a lot more horsepower than your actual device will. The drop in horse power will mean at least a hit to performance and might cause the device to hang or malfunction. You want to find out about those problems early, with as much time to overcome bottlenecks as possible.