Reason not to use Linux?

I'm looking at OS choices for a 32bit embedded system with USB and BlueTooth. Right now our system has no OS at all but at some point we'll want one that makes it easy to extend with various peripherals (802.x, flash cards, IDE, etc.). The processor will be something like a low-end ARM, PPC, MIPS or similar (not chosen yet.) I'm looking at OS choices and Linux would fit the bill and I'm comfortable with it (no hard RT requirement we can't work around).

What are real alternatives to Linux these days? I'm aware of ecos and FreeRTOS on the lower end and, of course, there's the commercial vendors like WindRiver, etc And then there's WinCE. What would be some reasons not to choose Linux? I'm trying to make sure I don't just pick Linux because it's been working ok for me.

Thanks, Andrew

Reply to
andrew queisser
Loading thread data ...

If you're looking for a UNIX-like operating system then Linux is a very good choice - widely used by embedded systems vendors and available for the processors you mention.

One gotcha with Linux is the GPL wrt kernel drivers. Linking (either at compile-time or load-time (in the case of lkms) invokes the GPL in that you are required to make available the source code to your device drivers. If you're not using custom hardware, or you are but there's nothing super secret in the driver then this is a non-issue. Put a driver.tar.gz file on your website and you're covered.

If you can't release driver software for other reasons (third party legal restrictions or company secret cleverness reasons) then NetBSD might be the way to go. It too supports on many platforms and the license doesn't require disclosure of source.

I prefer the internals of NetBSD to the internals of Linux, but Linux is far more mainstream (Linksys and Tivo are brand-name users) and as such has more "cycles" on ARM, PPC, etc than NetBSD does. This means you'll not be the only one running into problems if they turn up, and you can get professional (paid for) support.

Good luck.


Reply to
Paul Marciano

Hi Andrew,

there are many aspects of a system that would dictate which OS may or may not be suitable for your project. Before making an OS decision, it is generally a good idea to have a shortlist of processors that would be suitable for the job. The choice of processor might be for many reasons...

Cost of the processor Heat dissipation Power Consumption Processing power On-Chip Devices On-Chip Ram and many more

Once the processor has been chosen for specific reasons that are related to your product, then you would tend to select an OS that exploited the features of that processor.

For example, if your product was battery powered then you would want to make sure that you had a 'fast' operating system that was able to control power management features of the processor.

If the product is going to remain powered up and operation for extended periods of time, then you may not care how long the OS takes to boot, but you may care how fragmented the memory becomes. If the product is power cycled on a regular basis, then you would want an OS that booted very quickly, but would not necessarily care whether the memory became fragmented or not.

Linux as a candidate, is slow, large, disk based (even if the disk is in RAM) and very complicated to configure for bespoke hardware. If you need to write your own device drivers then you are buying yourself a large chunk of engineering hours just to get that part working.

On the plus side, Linux is free and lots of programmers know how to write applications for it.

I would ask myself... If this system does not really have any real time requirement, then why not just use a PC?

If there are specific reasons why a PC running Linux would not do the job, then you need to ask yourself whether your needs will be met by embedding Linux into some other hardware or whether you will only achieve your goal with an RTOS.

Hope this helps.


Reply to

Check out uCLinux, definitely a nice suite, all freware, very low footprint and nice feature set. Works with Xilinx FPGAs on Microblaze and PPC.

Reply to

WinCE might be a good option due to:

- Quality of development tools

- GUI based interfaces for embedded systems

- Driver support

Another option in the Windows world would be Windows XP Embedded.

WindRiver has been used in the embedded world for a long time. It can be configured to work with a tiny footprint.

-- EventStudio System Designer 2.5 -

formatting link
Sequence Diagram Based Real-time and Embedded System Design Tool

Reply to


I couldn't agree more! Very sound advice. Take heed!

Regards, Mark

Reply to
Mark McDougall

I did not know that Windows XP Embedded ran on ARM, MIPS, PowerPC...

If you work with Linux you limit yourself to chips which has an MMU. If you work with ucLinux you can work with smaller devices without MMU.

If you require an MMU (Linux/WinCE) you also could lose some possibilities for integration The AT76C902 has ARM946 (without MMU) and an integrated WLAN MAC (implemented using an ARM7).

If you just want USB & Bluetooth, you could use an AT91SAM7S256. This has 256 kB Flash + 64 kB SRAM in a 64 pin package which should be plenty in this application. Since it does not have an external bus, It does not support Linux or uCLinux.

For growth, you can (pretty soon) use the AT91SAM7SE which has both internal flash and external bus (with Compactflash support) or move up to an AT91RM9200 which has most conceivable peripherals.

Choosing Linux would cut off the lower end of the price range. I think that if you use a small foot print RTOS you will have a much cheaper device for the low end jobs and can use a larger device in the same family

You could also decide that Linux and ucLinux are to be considered to be one operating system and use Linux when possible and otherwise uCLinux.

Feel free to contact me directly if you want more info on the AT91 series.

Best Regards,
Ulf Samuelsson
 Click to see the full signature
Reply to
Ulf Samuelsson


On an embedded platform the price is rarely zero because it restricts the design to have eneough resources to run it. If your app needs a few hundred K of flash and 10s of K of RAM then it will cost money to add what is needed for Linux. OTOH if you already have a few megs then you're probably already well enough resourced.


Reply to
Peter Dickerson

ElectronDepot website is not affiliated with any of the manufacturers or service providers discussed here. All logos and trade names are the property of their respective owners.