Become a fan of Slashdot on Facebook

 



Forgot your password?
typodupeerror
×
Technology

Open Source In Embedded Systems 131

coxjohnson writes: "Technology Review reports on the OS battle between Microsoft and Open Source for the lucrative embedded computing market. Since 99% of computers can be found in embedded applications, an Open Source victory in this sector could deal a major blow to Microsoft." Good informative overview of the competition for embedded OSes.
This discussion has been archived. No new comments can be posted.

Open Source In Embedded Systems

Comments Filter:
  • by Anonymous Coward
    It's so funny. Every day since '95, Windows haters everywhere have been drooling over that, and yet, in an act of penis envy, KDE and Gnome do it exactly the same way (well, without calling the button "Start", big change, ha).
  • by Anonymous Coward
    If you're serious about the embedded systems market, you need to support PowerPC, and support it well. Motorola's PowerPC line has quite a big chunk of the higher-end embedded systems market, and, as they seem to be focusing on that (to the detriment of Apple), I imaging PPC market share will only get bigger.

    Unfortunately, Linus is ignoring PPC [slashdot.org]. I know I've experienced stable-release kernel versions that wouldn't even compile on my PPC box. I don't see how the embedded systems market is going to take Linux seriously when Linus ignores anything but x86. Either Linus needs to wake up to PPC (I know somebody has given him a PPC box--why can't he test kernels on it?), or Linus needs to pass the torch.

  • by Anonymous Coward
    It's not a good day trolling until you get a Michael jab in.
  • (IANAESE)

    Aren't the software and hardware of an embedded system much more closely tied than that of a desktop computer? If so, wouldn't this make distributed, OSS-style development much more difficult? Each programmer would also need access to the hardware and the (proprietary?) devices used to alter the system's built-in code.

  • Then you own at the very least one PPC CPU already. the OBD 2 specification (on-board diagnostics v2) calls for a PPC platform, and ALL car manufacturers are using it. Automatic tranmission? there's another one. Digital dash? theres one more. Anti-lock brakes? there's at *LEAST* 2 more PPCs in that computer.

    I seriously doubt there is a PPC running my digital dash, transmission or even engine for that matter. The PowerPC is one fuck of a lot of power. I would believe that a 68HC-class 8-bitter were running the display, maybe another for the transmission and a 16-bit CPU running the engine timing and so on.

    Hell I would imagine that the ColdFire processor by Motorola would have enough juice to run the car, transmission and dash. But I digress -- DSPs would run the engine and brakes. Not a PPC.

  • You're not understanding the issue here. There are people contributing PPC patches and Linus is rejecting them. IIRC, he was saying the patches were too big. He wanted a number of smaller patches instead of one big patch.

    What makes the PPC guys think that they can get big patches by Linus when he rejects big patches from everyone else too? Does their shit smell better or something?

    If that's the only issue, I see nothing wrong. Linus is holding everyone to the same set of standards.


  • The article, equates open source with Linux
    and fails to mention BSDs, especially, in
    light of the arguments presented by Wind River
    Systems, the largest player in that market.
  • Web servers, NAS, obviously consoles such as XBox, kiosks, etc. where Microsoft will be able to play.

    It depends obviously on your application.

    But still even though the subheading of this article says 99% of computers are embedded... only 1% of those need an OS.

    Most embedded computers, such as those found in cars, airplanes, your toaster, etc. are nothing more than a lower power processor of some sort running some simple instructions that monitor for some event and then perform an action. They probably have only a few bytes of memory total and run at very low power.

    Out of curiousity, do you even know what POSIX is?

  • Don't you think you are confusing some things?

    Microsoft essentially will have two embedded OS systems to sell. Whistler/XP embedded, and WinCE.

    WinCE is intended for small devices with a simple GUI interface. So your point #2 conflicts with your later claim that we're talking about CE.

    This leaves Whistler/XP embedded, and there you are talking about situations where point #1 and #3 are quite relevant, whereas #2 is not.

    I see anti-Microsoft people do this a lot, where they take all the negatives of six different products and combine them to prove Microsoft sucks. Yet obviously, Microsoft produces six different products to target six different needs. You have to look at them from an appropriate vantage point, which I don't feel you are doing.
  • That must be counting all those computers that are emmedded in all these "PCs" I keep hearing about.

    Makes you wonder what that extra 1% is...

  • this would be a major blow. MS doesn't make a lot of money from embedded stuff yet, but it would like to. MS has been trying to crack the embedded market for a while now.
  • from the article:
    The multiplicity of options is splintering developer talent and making it more difficult to get devices to work together.


    Not true, IMFO. The multiplicity of options is essential to the industry because every product will be produced in large quantites. Every inneficency that costs money (needing more memory, faster processor, etc) gets magnified by tens of thousands to millions. Thus, the options are needed to find exactly the right tool for each job.

    Also, I cannot see this as the root of interoperability problems. That's what open protocols and file formats are for.

    The article does rightly outline many of the limitations for Linux in the embedded world. As I play pundit, I expect Linux to do better than WinCE because it is a better OS. But, it's still not the right tool for many jobs and I expect the traditional solutions to maintain 90% or more of the market.
  • From the article:

    Soon they will allow our home appliances to diagnose their own malfunctions, and will even call and order their own replacement parts before they fail.

    God, how many times have you seen this?

    The problem is, nothing is built in this way anymore. When was the last time you had anything fixed. Stuff isn't built to fix anymore. You can't even order replacement parts for most stuff; I called customer service the other day for an appliance I have that's broken, and they practically laughed at me when I said I wanted to buy some parts. When you can get them they cost more than a new unit.

    end rant

  • Any credible referances to back that up? There may have been a billion PC's produced since 1981, but surely perhaps 80% are landfill and pothole filler by now? So there's 1 PC per 6 people on earth?

    Anyway, there's avr-gcc for the Atmel line - tried an inexpensive STK200 ($70) and you have free gcc. Pretty cool.
  • How can a rational person attempt to compare the programming within a watch or toaster to that which resides in a computer system? Surely MIT is not suggesting that the two are equivalent!

    You don't understand embedded systems. They range from extremely cost-sensitive single chip processors to high-end workstations. Rack-mount PCs are very popular with the engineers that I know. They are cheaper than designing a custom controller and enable the use of off-the-shelf I/O boards and software.

  • -1 Flamebait, maybe but this is all 100% correct. I can reproduce the atm problem. The check cashing machine im sure is probably rebooted by now. but it was sitting at a bluescreen for atleast 3 days. Maybe Flamebait but truth hurts.

  • The main reason for this is that not many Linux hackers have PPC boxes. (Can't scratch an itch that you don't have.) And the reason they don't have the PPCs is that there just aren't any such boxes for sale, except for Macs or "server" boxes that cost many thousands of dollars.

    It's ultimately up to Motorola and IBM if they want to sell PPCs or not. If they do want to, then they need to start selling POP motherboards or something like that, which will increase developer interest and result in more OSes running on it, thereby making PPC a more viable choice to developers who haven't committed yet.

    But Motorola can't even fill the anemic chip demand that the Mac generates. Increasing the demand would just make them look even worse. As for IBM ... shit, I don't know what IBM's problem is. That's a company that seems to take a serious liking to watching superior technology collect dust.

    Anyway, PPC software is going to lag behind x86 (thereby reducing demand for the hardware) until the manufacturers decide to get off their asses and truly go for it. There's only so much that hackers can do. "If you build it, they will come."


    ---
  • You're suggesting that a Microwave is simple and elegant. Or that a toaster couldn't benefit from awareness of the environment.

    Well if that isn't a fine "Who is John Galt?"

    You wanna quote authors? I think T.S. Eliot put it best when he said "Our beginnings never know our ends".

    Let's tackle the toaster first (not a football reference). Let's say I get up in the morning in my groggy way and I walk to the kitchen while my wife is doing her hair in the loo and begin to make toast. As I depress the lever to allow the toast to descend into the toaster....

    1) my circuit breaker blows because the toaster is competing with my wife's hair dryer

    OR

    2) my house lets me know that the breaker box has informed the toaster that not enough energy is available to run at this time and prompts to leave the toaster's request in queue or disregard or override (screw her damn hair, it's too expensive anyways)

    Or better yet, how about an upgrade to my microwave that allows it to toast. What could be more elegant than reducing the number of devices that I have to interact with.

    I can envision smarter Microwaves that remember how long it took to cook this particular size of Potato last time (adjusted for current room temperature) and offers that as a default preference.

    These are (IMHO) more elegant solutions, but even with the simplest toaster your interaction is complex. It is counter-intuitive that you would put a piece of fermented baked wheat into a shiny silver box on your counter in order to improve it's texture and taste. These are really just things that you learned. So why can't I learn how to use an integrated environment to my benefit?

    Your disdain for this kind of progress is not the kind of thought that I read in the work of Ayn Rand and I think you do her a disservice by using her name.

    You don't like my toaster? That's fine. You go ahead and hunt ebay for your appliances and I'll remind myself not to invite you over. I agree that not all progress is beneficial, but there is no reason to impeed it and I have faith that the market will weed out the bad ideas.

    bnf

  • So how would this work in a world of per-user licenses of Microsoft software? I buy a car running embedded NT in the on-board computer systems, and if I let someone else drive it I have to pay Microsoft an additional license??

  • Cost of the os is really infinitesimal to the actual systems design though don't ya think? which brings me to...

    Not when you are rolling out tens of thousands of your devices. And the smaller/cheaper the device, the more the cost of the OS licence impacts the sale price. When you're trying to sell your devices for less than a few hundred bucks, the OS licensing will have a serious impact.
    And having the source code is quite valuable. I've spent enough time in embedded systems design to know that bugs in some of the well known embedded OSes are not as uncommon as one might think.

    We're talking about specialists though.

    No, we're talking about the embedded RT OS, not the applications running on that OS. These are two very different things. Your Embedded RT microwave applicataion would run on an Embedded RT OS. The developer of the OS wouldn't need to know jack about the application. Do you think the makers of VxWorks (WindRiver) know about microwave circuit design? Or cell phone applications? Or satellite propulsion systems? No. And they don't have to. And VxWorks is used in all of those. Those people know Embedded RT OS design. And that's all you need to know to design an Embedded RT OS. Unless, of course, you are developing an OS *specificly* for microwave applications. But this thread is clearly talking about general-purpose RT embedded OSes.

    Personally, no matter how good of a kernel programmer Alan Cox is, I don't want him poking around in my microwaves chips design, because he doesn't know the system. See my point there?

    But he doesn't *have* to know microwave chip design. The microwave code is just an application that would run on an embedded, real-time OS, whether it be Linux, or VxWorks, or whatever. The folks who know microwave chip design would write their application to run on the OS.

    We're not talking about opening up the code for the microwave chip *application*, just the Embedded OS it runs upon. The Alan Coxes of the world wouldn't be writing the application code, just the real-time OS. And quite frankly, I am reasonably cetrain that he and the rest of the kernel developers could create a much better real-time embedded OS that most of the current close-source alternatives.
  • In my experience Microsoft is the best embedded system I have delt with so far. When I threw my computer with Win-blows out of my second story apartment in a drunken rage, it "embedded" itself quite nicely into the ground. *BELCH*
  • MacOs X

    Suddenly, about one in ten desktop computers will be shipping with BSD. Not too shabby, IMHO.

  • Gee, you said it much better than I did.
  • There are things which do benefit from intelligence, especially things that control other things. IBM and Carrier are collaborating on an airconditioner which is controllable through HTTP and HTML forms. In a commercial environment, if there was a blackout and you switched to your emergency generators, the facilities manager could turn down noncritical airconditioners to conserve power. If you were going to be working late you could use your WAP phone to tell the air conditioner to turn on a few hours later. This seems frivolous, but if energy prices go high enough there'll be people in CA willing to pay the premium.

    I'll give you one appliance I have that is fairly intelligent. My thermostat has a PIC that adapts based on the way my house responds. I tell it to keep the house at 58 degrees all night, and then to bump it up to 68 at 7 am (it then turns it back down after 8:30 AM). Initially, it just turns on the heat at 7am, but gradually, it figures out how long it takes my house to go from 58-68; if that's 20 minutes it starts the heat at 6:40 AM. As the seasons progress, it continually adapts so that it always hits the mark when I ask it to. I love this because I like it to be cold when I sleep but have trouble getting out of bed unless it is warm.

    The problem is that it is painfully hard to program. I'm pretty good at this kind of stuff, but I don't look forward to figuring it out again when the battery goes dead. Think of the proliferation of bad interfaces; these are generally because some kind of complex behavior is required, but there isn't money or space for a decent UI and no computing power for connectivity to something with a reasonable UI. And, bad enough as the interface problems are on my thermostat, I'd like it to be even more complicated in behavior -- eventually I'd like a system that controlled heat and cold air to different rooms on individual schedules.

    I can give other examples. Many people have systems which control irrigation on a timer. These could well get smarter as the costs go down. Why water the grass after a rain storm, or better yet, why not cut down the watering if there is 50% chance of rain today, or if it is cloudy? You may need to water the grass more when the temperatures are high. Water is likely to become fabulously expensive in places over the next few decades.

    Of course, there's even MORE utility for this in an agricultural setting. I had a farmer recently ask me about web enabling some heating equipment he had for some high value crops.

    Generally speaking, the consumer part of this is just the tip of the iceberg. Commercial, industrial and agricultural environments abound with things that are already smart but difficult to use, or which really ought to be smarter. Why not have an elevator service which adapted to produce minimal wait times by prepositioning the cars based on statistical analysis? Or which automatically switched some cars into express mode? For all I know new elevators are already doing this; most likely you wouldn't notice.

    The degree of automation is almost incredible, and almost all of it utterly invisible to the casual observer.

    For example, there is one company that sells salmon to high end restaurants. It has strategically placed several facilities within less than a day's driving distance of probably 90% of their potential US clientele. The restaurant orders exactly the number of steaks or filets in precisely the portion size they want. Meanwhile, workers throw a continuous stream of fish onto a computerized assembly line, where laser scanners develop a 3D model of a fish. This goes into a sophisticated computer model which basically figures out how to cut the stream of fish into pieces that will fit all the needed orders with minimal wastage. Robotically controlled jets of super high pressure water cut the salmon, and each piece is then routed to the container destined for the ordering restaurant.

    You, as a diner, have no idea of the automation involved in the salmon steak your eating; even the chef doesn't know. All he knows is that he can order two dozen one pound salmon steaks at 10 AM and have the right number of steaks, accurate to within less than an ounce, ready for the dinner rush.

    Ultimately technology like this will allow us to enjoy a higher standard of living with less environmental impact. Go capital!

    Oh, and that toaster? I'd like to put my toast in at night and have it hot and ready for me after I wake up in the morning. If I didn't have to program another damned clock. It should also have a smoke detector and shutdown when my toast begins to burn.

  • The embedded market isn't what it used to be.

    Oh sure, you still have some devices that are to weak to run a heavy operating system like a Unix or a Windows, but nowadays many embedded devices have plenty of power for running these OSen.

    So Linux and Microsoft are competing for a growing market. And if your embedded device is powerful enough to run a Linux, then there are some very big advantages to running it instead of a VxWorks, especially in the areas of debugging and support.

  • The reason these things work so well is that they run 1 thing.
    At the very low end, I agree with you. But if you're only running one thread, then even VxWorks is overkill for your application.

    Now, if you have a system with multiple threads, and enough horsepower/memory, then a Unix or Windows kernel starts to look very attractive. The development and debugging environments for these OSen are a lot better than what's available for most of the traditional embedded OSen.

    And putting some version of the kernel into an embedded system is still pointless, even if it is open for everyone, as it is useless to all but embedded systems users.
    From the user's POV, I can see where it doesn't make a difference, but that doesn't mean that it's pointless.
    And why would any embedded systems company really /want/ an OS os?
    There are several:
    • Better development/debugging environments than the traditional embedded OSen (this applies to Windows as well as Linux).
    • Access to the source code w/o the high price. Don't underestimate this one. I can't tell you how many bugs I've found in some well-known embedded OSen.
    • Better code/support. There are more people looking at, fixing, & understanding Linux code than for most (any?) embedded OSen. The quality of the code tends to be higher.
    I think the only real victory is for zealots who think they are 'beating' MS.
    Just to clarify, I think Windows will also begin to displace the traditional embedded OSen. I don't think this is merely a victory for Linux.
  • Cost of the os is really infinitesimal to the actual systems design though don't ya think?
    Depends. For a startup company, the cost can be prohibitive. Remember, I'm talking about the cost of the source code, for which most companies charge significant amounts (equivalent to several full-time developers over a funding period). But for well-established companies, I agree, it's not an issue.
    We're talking about specialists though. Personally, no matter how good of a kernel programmer Alan Cox is, I don't want him poking around in my microwaves chips design, because he doesn't know the system. See my point there?
    Sorry, I don't.

    The good folks at Wind River don't know any more about microwave chips than Alan Cox. But both are specialists in OS design and development, and I would trust Alan Cox to fix my SMP issue as much as (or more than) I would the folks at Wind River.

  • this is probably repetitive the best thing about linux is that it allows companies to create devices without the pain of developing a whole system. it reduces the cost of the device to the consumer. the best example i feel is probably tivo.

  • Embedded does not imply schedulable, and schedulable does not imply real-time.

    Yes, there do exist some embedded systems that do not have real-time scheduling requirements. But many do, and a much much higher portions of embedded designs do than desktop boxen.

    Real-time may or may not have anything to do with time-of-day, instead it's about performing at the time of required event. That x-ray treatment machine must turn off its beam within so a so many milli or microseconds of being turned on, or you are toast (2pm, 3pm, doesn't really matter; as long as it's N mS +- TOL uS after turn-on). Or I'm sure you won't mind an occasional "temporary" blue screen, lengthly interrupt hander, unrecovered floating point exception, random garbage collection cycle, or indeteministic unbounded cache or TLB trash in the middle that causes your death.
  • Aren't the software and hardware of an embedded system much more closely tied than that of a desktop computer

    As someone who used to work in that field (I do programs that connect Oracle databases to XML files now), no. Many embedded systems (Hubble Space Telescope comes to mind) run on x86 CPUs. The main differences were that the UI often consisted of push buttons, lights, buzzers, and, if you were lucky, a five line LCD display. And they often had little RAM. Linux is a big win in that area.

  • Many posters are getting the two confused. Embedded OS's do not neccessarily have to be RTOS's.
  • Were you paying attention? The shortcomings of embedded devices fall into two bins:
    - not enough complexity
    - complexity is overexposed

    You cited a (bogus) example of the second kind. A toaster that I have to program is stupid. But imagine a toaster identical in interface to existing ones, except with a little camera that detects when toast/pop-tarts/whatever are about to burn and ejects before it happens. That's smart.

    Most of the negative posts here spring from a mental picture of {some applicance} with a laptop stuck on the side. A better model is {some appliance} that looks and works like current ones, but gets extra input from the environment and usage history, and uses those inputs to make better decisions.

    Successful embedded devices will have lots and lots of intelligence on the inside, and will look just like their predecessors on the outside.

    cheers,
    mike

  • The magic of modern semiconductor lithography is
    that the same area of silicon that contained
    a 4 bit CPU in 1980 can contain a x386 compatible
    PC and all motherboard functions plus network controller. At some point, as the chip circuit densities
    increase the packaging and
    bonding for the semiconductor become the
    dominant cost, not the chip area.

    So, as devices require more sophisticated networking
    and other features, it makes sense to use
    a controller with enough oomph for the job. Bumming instructions in assembly language is
    getting to be less and less necessary, and is
    actually a waste of developer's time, if the
    silicon is cheap enough.
  • I know this line has been said before, but apparently it needs to be repeated. The benefit of putting a more heavy duty, non proprietary OS in your appliances is the ability of them to interact.

    We've been told for awhile now that the kitchen of the future is going to adapt and mold itself to our whims in ways we can't yet imagine.

    Now granted I have yet to see any of these predictions bear fruit yet, but a necessary first step is going to appliances that can communicate, and what better way then giving them a full blown OS?

    The costs to this are minimal in the sense that the storage requirements for a mini-linux are small enough that they won't add to the cost of the product(apart from development time).

    So I'm going to accept, for the moment, that they have something like this mind instead of wildly bashing MIT.

    And if I may ask, how is it dangerous?
  • Well, consider the fact that in each PC there are at least two (in the keyboard and the hard drive) embedded processors and maybe more. (Modems and network adapters have embedded processors, that optical mouse that Microsoft sells has at least one processor in it, some video cards and some monitors have additional processors, and so on. Not to mention the fact that there may be more than one hard drive.) It's real easy for me to believe that PC's are a small minority.

    Add to that the fact that most every wired telephone, all of the wireless phones, all of the TV's, VCR's, stereos, remote controls, calculators, and so forth have embedded processors in them. It adds up, and quickly.

    The only problem I had with the story is the implication that embedded systems are a new thing. When I started doing embedded systems in 1991, most or all of the names that they mentioned as dominating the real-time OS market were already well established. The embedded systems themselves were the very first application envisioned for microprocessors. From my perspective, embedded systems aren't the next thing, they were the first thing. I guess the rest of the world is just now catching up.

  • You can apply what you know about the console market to other embedded systems. In some sense, the desktop is an anomoly among computers because it's so easy to get at its internals and muck around with it. It's the perfect playground for Open Source programs. But when you deploy ten thousand cell phone base stations, the last thing you want is a choice of linux distributions. You would much rather have exactly the same setup that people have tested and used day-in and day-out.

    It's great that it's somewhat easy to maintain a Linux web server, but embedded systems are different. If my grandmother's cell phone has a bug in it, she can't just call tech support and have them fix it. If your Xbox has some internal glitches in the hardware, you can't just swap out the defective piece and replace it with something that works.

    Embedded systems need to be supported by a corporation that is dedicated to system stability. Open Source may make a lot of cool software, but 90% of the stability comes from beta testers in the field. In the embedded systems, you need to find 99% of your bugs before it leaves the door. I'm not saying that Open Source projects couldn't handle this... Just that they've been found wanting in the past.

    -Ted
  • True, it depends on your application. I don't deny that. I also don't count the XBox, since that's a Microsoft embedded system. :) But it's a good point (as is the one about not needing an OS).

    But for the record, yes, I know what POSIX is. Or at least I believe I do -- I'm often wrong about just about everything. It's a set of (or, really, a set of sets of, since there are multiple POSIX standards) programming interfaces/APIs. They exist for many languages and purposes.

    I was referring to their various C standards for things like file I/O, networking, and threading. I know several of the above-mentioned OSes are compliant with the relevant POSIX standards, meaning that you can program large parts of them in C using the same calls you would on POSIX-compliant unix systems.

    I hope that made sense.

    -Puk

    p.s. Posting at 1 since I don't think anyone else cares about this.
  • I'm guessing that you don't come from an embedded background. I generally prefer development on UNIX-based systems, but there are a number of reasons to use an embedded MS OS. I'd say that the top two are:

    I'm not mainly from an embedded background, but I do have some history in embedded systems. But mostly I take this from the people I work with who are excellent embedded systems designers, and who cringe if you even joke about using a MS OS in our system. Mind you, as everyone has pointed out, it is very application dependent -- it just doesn't make sense for ours, while it does make sense for others.

    1. Tons of developers know the platforms. If you're an MS development shop, it's easier to do embedded development if you stick with the familiar.

    Fair enough. But very few desktop MS dev shops go towards embedded (afaik), and plenty of other embedded OSes support C compilers many of the POSIX standards for libraries, and so can be used by anyone with a unix programming history, and a lot of people with a Windows history. But true -- if you're doing an embedded system and have a history with MS, it may turn out to be the best choice.

    2. There are many choices of embedded platforms that license MS OSs. Just look at how many MSDOS-based embedded platforms there are:

    I actually didn't know about this. It's very interesting, and I'll have to explore it more. Are these use in computationally-intensive systems (set-top boxes, etc.), or mostly simpler/cheaper ones (microwaves, etc.)?

    As for embedded systems with a GUI, MS is actually the clear market-share winner. AT&T set-top boxes embed CE, as do devices from Hitachi, Samsung, Siemens, etc. How many embedded UNIX-based systems with a GUI do you know?

    I agreed with this. :) I was saying GUI was a valid reason to choose an MS OS.

    The good news is that Open Source looks like it's poised to open up market for embedded OS development.

    Fair enough.

    -Puk
  • by Puk ( 80503 ) on Friday April 13, 2001 @10:56AM (#293782)
    Unless my embedded system has a GUI (e.g.: a PDA), why would I _ever_ use a Microsoft operating system? There are plenty of other good choices out there, including (as mentioned above), but not limited to, VxWorks, OSE, various BSDs, some Linux distributions, LynxOS, and a whole bunch of others.

    Most of these are (by reputation) faster, more reliable, and more stable, with more embedded-type features such as real-time scheduling and cross-platform support.

    Unless I need a nice GUI on my system (and I'm pretty sure GUI-based embedded applications are only a small fraction of the embedded market), I might as well go with one of these. Whether Open Source or commercial win, I don't know, but MS doesn't even seem to be a contender.

    Oh, and regardless of open source, many of the commercial vendors (some mentioned above) support open standards such as POSIX, making even more interoperability possible. How about WinCE? Hmmm...

    -Puk
  • Regardless if the software running the enbedded system is open or not, what's really important is how well it works and how likely it is to crash. I can't simply reboot my toaster, and I shouldn't have to.

    I accept a certain about of instability in computer systems, there are many companies all working seperatly, and problems will happen. But for my vacuum, answering machine or lawn mower, I don't want to have to worry about crashes. I don't care what's in them, as long as it works, and works well.

    The Good Reverend
    I'm different, just like everybody else. [michris.com]
  • ", an Open Source victory in this sector could deal a major blow to Microsoft"

    Deal a major blow? Given that Microsoft has almost no share of this market to begin with, this is not dealing a blow.
  • by duplicate-nickname ( 87112 ) on Friday April 13, 2001 @10:54AM (#293785) Homepage
    They talk about how 99% of computers are embedded systems and then go on about Open Source vs. Windows in the embedded market. However, most of that 99% comes from things like car ECMs, security systems, microwaves, etc. These things run on small customized code and the OSS/Windows guys are not trying to compete in this market. They're shooting for the cell phones, PVRs, etc. That's probably closer to 5% of the market....maybe.

    ÕÕ

  • by Greyfox ( 87712 ) on Friday April 13, 2001 @11:43AM (#293786) Homepage Journal
    I did some work on an Embedded Linux system. We did have the RT issues, though we were looking at a couple of the RT solutions out there for Linux and thought one of them would work well enough for our needs. Interestingly, BIOS issues were a big concern. We had a choice of licensing a BIOS or rolling our own and we ended up deciding to roll our own. Other problems included getting drivers for the proprietary video card. The company we were dealing with apparently had one person working on development of the driver code and was constantly gating our devlopment. Apart from that, it was a pretty good platform and would have saved us a considerable chunk of change over licensing all the components at a few bucks per component per machine. Over a large run (1,000,000) of machines, that adds up fast.

    Of course, a couple of other lessions learned from that job are that you should hire developers who know the platform you're using. Moving a bunch of Win* programmers with no previous Linux experience over to a Linux platform seems to be a recipe for disaster. Also, a clueless manager can spell doom for a project. Well, we knew that from before, but I've never seen a project heading for destruction quite that fast before. It was actually kind of impressive in a morbid sort of way.

    Anyway, Linux can be a good choice of environment for at least some embedded projects and if it fits your needs it can save you a considerable amount of money in the process.

  • Regardless if the software running the enbedded system is open or not, what's really important is how well it works and how likely it is to crash.

    No that's not what's really important. While having a good product with those qualities is necessary you should remember the potential for embedded systems and what implications it has for every day life.

    Embedded systems will (probably) one day be just about everywhere. You'll be carrying a personal digital assistant which will be in continuous communication with a host of services such as traffic control, weather stations etc. across the transparent wireless network that encompasses modern life. I'm sure you've heard of such visions of the future.

    That all sounds fantastic and swell doesn't it? (despite the fact that it won't happen for awhile) But it raises a very important issue. Do you want a closed-source operating system to have control of every single facet of your existence? Do you want all of your personal data, all of your diary notes, family pictures, financial data, and location under the control and in the trust of a single company? Do you want to enter a world of transparent, ubiqitous computing not knowing what kind of backdoors or surveillance some corporate or government interest has built into your OS?

    There is no other way to guarantee security and peace of mind but to have an open source operating system behind the scenes (by security I mean protection from malicious interests who would seek to pry into your life like the government or the company who would be tempted to sell your data). Sure the law forbids the government from spying on it's people, but we all know that the government will bend the rules for the sake of national security. Any other view is naive.

    Your assertions of not caring what runs on your vacuum cleaner and lawn mower worry me for the reasons I've stated. Ya sure, your mower won't have network access(or will it? ;-), but the most popular operating system will essentially become standard and will also run on the systems holding your private and personal data. This kind of ubiqitous computing world can be served best by open source software so if Microsoft is making something good, then we have to make something even better. Any other option does not look good for privacy and freedom.

    -----
    "Goose... Geese... Moose... MOOSE!?!?!"
  • No, no, no. You're not understanding the issue here. There are people contributing PPC patches and Linus is rejecting them. IIRC, he was saying the patches were too big. He wanted a number of smaller patches instead of one big patch. It's not a matter of developers not having PPC boxes because they do. Right now, there are a set of PPC developers maintaining their own tree.

    -----
    "Goose... Geese... Moose... MOOSE!?!?!"
  • but power isn't always the issue. The reason these things work so well is that they run 1 thing. That's it. Someone else mentioned networking, it's a possibility, but that is possibly too forward thinking. With the changes being made, by the time a feasible netowrked (say) microwave is available, everything will have changed again.

    And putting some version of the kernel into an embedded system is still pointless, even if it is open for everyone, as it is useless to all but embedded systems users. And why would any embedded systems company really /want/ an OS os? Their money is really in 'we thought this up and can do it the best, don't buy it from joe compeitor'. The market isn't in a place to accept something like that at this point (IMHO).

    I think the only real victory is for zealots who think they are 'beating' MS.

  • I only have a couple disagreements at this point.

    Access to the source code w/o the high price. Don't underestimate this one. I can't tell you how many bugs I've found in some well-known embedded OSen.

    Cost of the os is really infinitesimal to the actual systems design though don't ya think? which brings me to...

    Better code/support. There are more people looking at, fixing, & understanding Linux code than for most (any?) embedded OSen. The quality of the code tends to be higher.

    We're talking about specialists though. Personally, no matter how good of a kernel programmer Alan Cox is, I don't want him poking around in my microwaves chips design, because he doesn't know the system. See my point there?

  • by TheReverand ( 95620 ) on Friday April 13, 2001 @10:49AM (#293791) Homepage
    As they have little market share. Linux is competing against other closed source embedded systems, most of which most of you have never heard of. Why? Because they go along and they work fine. Here's to hoping this proprietary stuff keeps going. My Microwave works great as it is. I don't want it to signal 11 on me.
  • by TheReverand ( 95620 ) on Friday April 13, 2001 @11:05AM (#293792) Homepage
    You see, the embedded market is already solid. It is not a fluid entity like say, DB and web servers. The proprietary manufacturers have stuff locked up. MS has little chance to be a big player. Linux has some being a Unix, but it will be a proprietary Linux that even if the code is open, is of no use to anyone else. These guys are coding in languages closer to assembler, not pearl.
  • The flaw in your reasoning it your assumption that open source software has to be developed differently from any other software. While this is certainly possible it is not a requirment. It is possible to develop software conventionally with thorough QC and release the source to the public. You can still accept or refuse patches from the public as you see fit.

  • Quick, what OS kernel powers...The power supply cycling for the burn-in ovens at the chip factory?

    Currently Nucleus but it'l be VxWorks in a few months here. But I only know beacause my employer designs and builds the control systems for one of the largest manufacturers of conveyorized furnaces.And btw our customer really wanted WinCE but our sw developers absolutley refused (they were pushing for RTLinux), VxWorks was a compromise.

  • Linus needs to pass the torch.

    It's a good analogy actually, with torches, as with open source, if someone needs some light, there is no need to pass them your torch, thay can just light their own off of the flame of yours.

    If you really really want PPC Linux, you can make the mods to run it yourself. If you want a Linux that compiles on everything out of the box, fork the kernel. If it's worth doing, it will be supported. If it isn't supported, it wasn't worth doing.

    Rich

  • Don't forget transparency. to boot Linux, all you really need is a filesystem, the kernel and something for it to run (init). I hate to think what spaghetti you need to get windows up on two (unsteady) feet. In Windows, the GUI is part of the OS and as you say, most embedded environments don't need a GUI (or at least nothing at win32 level).

    Microsoft *could* create an embedded OS but it really couldn't be anything like Windows as we know it. I mean, how can you fit Internet Explorer into 64k? (It is an essential part of an OS after all)

    Rich

  • You'd be surprised what the market penetration of Visual C++ is, and how much that will determine the choice of embedded OS.

    Yah, I'd be very surprised to see people trying to put that round peg in a square hole.


    blessings,

  • Me? I prefer to simply hit the power button and let Reiserfs fix everything next time I turn it back on.


    blessings,

  • not all inbedded systems will ever use an OS, some times (with HARD real time systems) the deadline has to be meet at all costs, and an OS would get in the way, and with some embedded systems, you don't fully need an OS, if I have a system that dose not have a hard disk, screen, keyboard, et al. maybe it would be better (in the sence of meeting the deadline) not to have an OS, maybe with soft realtime a OS is usefull but if my life depended on it, I opt for nether linux or ce. sorry to say it but that is how I view it.
  • Real-time means that there is a guarantee that a certain event will be handled in a certain amount of time. In other words, no (or very, very little) chance of starvation. Real-time doesn't have anything to do with "date and time-of-day".
  • Heh. That makes about the 4th definition of 'real-time OS' I've heard. :)
  • by MrResistor ( 120588 ) <peterahoff.gmail@com> on Friday April 13, 2001 @12:27PM (#293802) Homepage
    Linux has 4 big advantages over other embedded OS's:

    1. Open source. I know it's fairly obvious and has been mentioned before, but it really is a pain in the ass to get the proprietary embedded OS folks to take your project seriously. Basically you have to take what they give you and like it. Often there are workarounds, but that's more engineering time, usually for hardware, to fix a fairly simple software problem.

    2. Native developement. I haven't seen this mentioned by anyone else yet, but it is a definate advantage to be able to run the same OS on the system you write the code on as you are on the embedded system. It makes testing/debugging a lot easier.

    3. Licensing fees. At my last job we used Phar Lap, a unix variant embedded OS. We had to purchase a license for every single processor that running Phar Lap. These licenses came in the form of sheets of little stickers that we had to put somewhere on each board that had a processor running Phar Lap. The stickers were made from a conductive material. What a pain in the ass. On the other hand you could buy one copy of an embedded linux, or built your own embedded linux and use it as many times as you want. If you want stickers you can print up as many "Powered by YOURCOMPANYHERE Linux" stickers as you want real cheap.

    4. Support (or, do you know where your copy of windows 3.1 is?). How do support a legacy system that is running a proprietary closed source OS? Tis is a real problem for embedded systems as many of them need to be supported for 5, 10 years, or more. At the afore mentioned job we supported systems for 7 years and generally at that point one of the support techs would "retire", buy up any excess parts we had for that system, and we would refer any support inquiries to them and/or their consulting company. Finding replacement hardware was hard enough, even within the 7 year window, but try finding a copy of an OS that hasn't been sold for 5 or 10 years. Go ahead, try to buy a copy of windows 3.1, I dare you...

    Anyway, I spent a couple months trying to sell our engineers on linux (versus a combo of NT controlling Phar Lap or VxWorks) and some of them seemed to be interested, but of course I got laid off because of the tech slump, so I don't know if it's actually going somewhere.

  • If that is only 1% of the CPUs, then there must be 99 billion embedded CPUs.

    I have one PC, one TV,CD,Stereo,VCR,answering machine, microwave, clock radio, wristwatch, thermostat, modem, and at least 10 embedded systems in my car. I'm told that only 1 in 4 households (in the US, anyway) has a PC, so even in the US residential market, that's 1 PC and 80 embedded systems.

  • If they all use GPL Linux kernels, then we can ask for the source to all the OS's. Think of HOW EASY it will be to start a simple Digital Assistant company if you can grab tons of modified specifically for code, and you dont have to PAY for the changes since another company has done so.. thus charging LESS for it.

    In essense, people who come later in the business can charge cheaper prices.
  • Very well thought out. I think the biggest problem is that embedded devices are more defined and thus when someone puts a library it will save a lot of money.

    It is like drivers for devices. Once one is written, you can use it as a template for other very similar devices. Now if your job is selling the hardware, sure.. but if your job is selling the hardware and the HMI, would not taking an existing standard save you money? Of COURSE it will, and existing code will make that easier.

    Will you then release code you make to add on to it to now make it easier for your next competitor to come along?

    GPL means that the person who initialy invested PAYS the cost. Others can live off it.
  • Slight correction. It would be closer to correct to say that many embedded controllers have RT operating requirements, but by no means all do. Embedded controlers cover a huge range of conditions, everything from ABS controllers (where RT features are critical) to vending machines (where they're not). Embedded devices also include a number of things that are basically single purpose computers, like home firewall boxes, and Linux has some real potential there.

  • I can't speak for anyone else, but I don't need to click on the Foot button on my Gnome desktop to log out. It has a perfectly good dedicated logout button right there on the panel, and IIRC that's part of the default installation. Yes, logging out is also avaliable under the foot menu, but you don't need to go through the silly, backward thought of pushing the start button to stop the machine.

  • Not to sound mean, but I know what you're implying, and you're wrong. I hate Microsoft as much as the next guy, but you can't possibly think that they're going to absolutely prevent mp3s from being played on their soon-to-be flagship product, Windows XP. That article linked to from Slashdot the other day said nothing about disabling mp3s as a file format; it merely stated that Microsoft planned to limit the quality attainable when ripping into mp3 format using *Windows Media Player*.

  • We're talking about specialists though. Personally, no matter how good of a kernel programmer Alan Cox is, I don't want him poking around in my microwaves chips design, because he doesn't know the system. See my point there?

    If you haven't yet -- read kernel traffic [zork.net] if you get a chance. Much of this has been covered there and in detail.

    To summarize the comments there, Alan (or Linus, or Theo, or ...) doesn't have to know about the specifics of the chips in the microwave. I doubt any of them would care to know the specifics of most hardware unless they have it.

    Good code is highly portable; 'Bits are bits'.

    Sure, different chips will execute the same string of binary information differently, but the design in the original code -- if solid -- will be reflected in the binary when compiled for any target device. (Baring, of course, compiler bugs you'd have to deal with anyway.)

    Am I over-simplifying? No doubt. Yet, the design defects corrected in the non-hardware-specific code won't have to be fixed for each and every new piece of hardware.

    In many cases, defects found working with a specific piece of hardware might point to flaws in the general code.

    Very little programming is necessarily hardware-specific. Most code is either OS or interface not hardware.

  • I fail to see how my toaster can or indeed should interact with my other devices. In general, adding an extra, unneeded level of complexity to an already simple and elegant design is a bad idea.

    Also, a full-blown OS is not needed or wanted in this case; a much simpler embedded OS supporting perhaps a reasonable subset of ANSI C would be far preferable than a full-blown Windows or a Linux.

    It is dangerous in the sense that it hurts the consumer, and adds an extra level of failure that does not need to exist. At the moment, my microwave is far more reliable than my computer by virtue of its simplicity. I would like to see this continue in the future, especially if I ever need to buy a new microwave. I would also appreciate it if said microwave does not require a Pentium IV.
    ---
  • by Ayn Rand ( 153143 ) on Friday April 13, 2001 @11:02AM (#293811) Homepage
    How can a rational person attempt to compare the programming within a watch or toaster to that which resides in a computer system? Surely MIT is not suggesting that the two are equivalent!

    What would be the simple cost of upgrading all simple household appliances to run a heavyweight Operating System such as Windows or Linux, and why would there be any benefits to doing this? Indeed, what should a toaster do besides toast? Why should a watch concern itself with anything but the time of day?

    This is simply technology for the sake of technology: dangerous, and not in the best interests of the people that MIT claims to serve. It is not sane, rational, or in the best interests of mankind, and as such, is a shame to their long University tradition of developing and promoting new and useful technology.
    ---
  • If your using something large enough to require a OS, you either ...

    1. Don't have an embedded application

    2. Have over designed your product

    Let's take a look at how you would code up a PIC 16C74 [microchip.com] from Microchip [microchip.com].

    org 0x00
    goto START

    org 0x04
    goto INT_Vector

    org 0x20
    START
    ; Code to setup all your I/O states
    MAIN_LOOP
    ; code you execute in the main loop
    goto MAIN_LOOP

    INT_Vector
    ; code to save register states
    ; code to handle interrupt(s)
    ; usually time critical I/O and timing
    ; code to restore register states
    retfie ; return from interrupt

    I give you a complete embedded O/S. If you need more than this, please refer to rules 1 and 2.

    This chip with a FTDI [ftdi.co.uk] FT8U245AM [ftdi.co.uk] latched onto Port D gives you a complete embedded 20Mhz USB device (with linux drivers).

    You need an OS? That is the rumor that keeps Microsoft and Slashdot in the green.

    TastesLikeHerringFlavoredChicken
  • Your vacuum, lawn mower, toaster, etc, are probably not issues here. What might be an issue is large appliances: refrigerators, ovens, microwaves, automobiles, and while I agree that I dont want any of them crashing (espescially the antilock brakes on my car), the others can be recovered by unplugging the power, and restarting the system.

    This is actually not uncommon in today's market: small bugs occur, the customer unplugs it to take it to be repaired, it gets to the repair store and suddenly there is no problem. And before you start blaming embedded winNt, realize that most embedded devices today are VxWorks, QNX Neutrino, LynxOS, pSOS or VRTX, all of which are mostly stable, but DO occasionally encounter problems.

  • The article's author misrepresents the embedded market. Yes, a small part of the embedded market consists of PDAs and such, but is mostly industrial, medical, automotive, and defense.

    Wind River's VxWorks has roughly 40% of the embedded market. Over 50% of companies developing embedded products roll their own OSs. That leaves less than 10% for all the other embedded OSs around. All the embedded OSs mentioned in the article (QNX, VRTX, Win CE, LynuxWorks) together have less than 5% of the market.
  • How long did you have to STARE at that goatsex.se picture, to create such a creative piece of art like that.
  • That's funny because my computer is more reliable than any of those devices (toaster keeps popping up before the toast is done, my vacuum gets jammed, lawn mower needs a kick in the ass to start).
  • You're missing the point about the Microsoft advantage in my opinion. It doesn't always have to be about technology.

    Microsoft is a household name. Other than the geek community, who the hell has heard of LynxOS?

    Microsoft has thousands of developers to throw behind whatever they want.

    Microsoft is cash rich. Then can throw hundreds of millions of dollars at something and not have it financially affect the company in any way if it fails. I'm not sure about their cash reserves now (anti trust trial and stock markets collapse), but at one point they had many billions in cash just lying around.

  • For embedded comms apps, I've often used the OSE kernel. However, it doesn't matter how stable these OSes are most of the time. If the applications that run on them run out of control _and_ there's no way to clean up after them, you're stuffed. And in nearly 10 years of embedded comms experience, with most of those OSes, and more, I've never come across a good way of cleaning up apart from the power cycle...

    Name your (consumer) OS, and I'll name an app that can kill it. (Most of the time it will be Netscape, of course).

    Asbestos underpants donned.

    FP.

    --
  • Yup, now add a parameter to that - 'hardness'?
    Hard realtime means if you don't get it done in time, you may as well kill yourself, you've failed.
    Soft realtime means there's a time limit, but things will recover if you don't manage to make it.

    Hard realtime includes things like the transmission of telemetrics from sensors near nuclear tests, which basically will only exist for a thousandth of a second.
    If any type of QOS is an issue, then many comms apps are hard realtime too.

    FatPhil

    --
  • The GPL requires you to publish any changes to the Linux kernel that you make to it. For the embedded world, the kernel and the software that runs on the embedded system co-exist. Your software is considered by the GPL to be an extention of the kernel, so you must publish your software you wrote for your embedded application. Companies do not like to publish proprietary code because others can pick it up and use it... how would you like it if someone took all of your work and sold it for cheaper than you could? How do i know all of this? I am working on an embedded VPN/Firewall application using linux, and we have to jump hoops to not publish propriatary code that we bought from another company (you can not publish software that you bought from another company, when the code you bought is copywrighted). This is a pain in the butt I forsee alot of companies having problems with using linux as the promary os in their embedded system, since most companies are not that willing to publish their software (no i am not aginst the software movement, but i actually do contribute cheops-ng [sourceforge.net])
  • Linux is good but I think stuff like "devices that tell our antilock brakes when to unlock" will go to private firms or pre packaged stuff that's made specifically for it like LynxOS [lynuxworks.com]. It has been argued that linux is not made for the desktop, more servers. And while that can be debated I think this one is a little bit harder battle.
  • by Cardhore ( 216574 ) on Friday April 13, 2001 @12:56PM (#293828) Homepage Journal
    Good point. However, I don't hate Microsoft as much as the next guy, and in fact I am anticipating waiting for the release of Windows XP. I have planned to pay a reservation fee to get a copy held for me so that I can upgrade from OpenBSD. Why? Window Media Player has the coolest visualization effects, and by the time XP comes out I'm sure they'll be the best in existance.

    Curiously, though, there seems to be something fishy, a dark side, regarding Windows Media Player, aka WMP.

    WMP, the acronym, looks strangely like WhoMP, as in conquer and destroy.

    WMP is strangely a high quality product--indicative of an attempt to gain "market share" in the area of music file formats. (The reason I say "market share" is because, well, is there's a market here?)

    WMP has its own format while maintaining backwards compatibility.

    When I installed WinAmp, clippy politely informed me that Windows Media Player had all the features of WinAmp and more. Then he (or she) politely informed me that he (or she) could uninstall WinAmp for me. At first I didn't want to, but then it did that Japanese seizure-inducing thing, foreshadowing the coming events:

    When I set my computer's clock to 2002, WMP said "MP3 format has become obsolete. All your MP3 are downgrade to 56 kbps."

    When I set my computer's clock to 2003, windows said, "You are not using our flagship product!!! Please upgrade to XP; it's our flagship product!!! Make your time! Small print: you do not have to do this."

    Okay, this post is getting stupid, so I'm stopping now.

  • by Cardhore ( 216574 ) on Friday April 13, 2001 @10:56AM (#293829) Homepage Journal
    not to use Windows XP in embedded MP3 players.
  • "Since 99% of computers can be found in embedded applications, an Open Source victory in this sector could deal a major blow to Microsoft."

    No, not really. Did you even read the article before you posted this?

    From Technology Review: In what must be a humbling experience for the Great Software Monopoly in Redmond, WA, Microsoft's offerings constitute mere slivers of a pie chart along with such geeky names as VxWorks, QNX Neutrino, LynxOS, pSOS and VRTX.

    This could deal a minor blow to a tiny fraction of Microsoft's business at best.

  • a cpu, a few simple sensors, and my toast never burns and my frozen waffles come out just right. Try doing that with a simple thermocouple.

    You don't need any OS for that. You can do it with a PIC.

    Unless your watch is full of gears and springs, it has an OS.

    No it doesn't. Unless it is a very fancy nerd watch it likely doesn't even have a CPU, just an oscillator and a bunch of counters.

    Someone calling themself "Ayn Rand" from aynrand.org is scarcely in a position to pontificate upon what is sane and rational.

    C'mon, you can do better than this ad hominem response. The guy is right -- when you make things more complicated than they need to be you make them fail more. When you make them more capable you depend on them more. Thus, you end up depending more on stuff that is less dependable. What happens when the only user interface is through your kitchen master console (after all, everything intercommunicates so why spend a few bucks on buttons? Just ask printer manufacturers), and one day that interoperability fails? Then your toaster not only doesn't brown your toast right, it doesn't toast them at all; your fridge inexplicably shuts down and ruins all your food, none of the lights will come on, and the phone won't even work so you can call the service guy. Yeah, I really want a house that works like that.

  • I called customer service the other day for an appliance I have that's broken, and they practically laughed at me when I said I wanted to buy some parts. When you can get them they cost more than a new unit.

    Yeah, it's sad. The flipside of this is that with a little planning ahead you can often get spare parts for free -- just wait for someone else to toss their exact duplicate of your gizmo in the trash, and fish it out for a "parts spare." It's surprising how often I've been able to do this.

  • I would love to have a toaster with a display and some kind of input. Let it know what's in the slots and exactly how I want them done. This does imply some kind of embedded OS.

    No it doesn't. As I said, you could do it with a PIC. Have you ever done any embedded programming?

    Is there any other kind of watch worth wearing?

    Actually I have been given to understand by non-geek but well-connected friends that, if you ever intend to do anything in the world, the Geek Watch is exactly what you don't want to be wearing. I have progressed through the years (under tutelage from the boss and female unit) from the Digital Wonder to the Citizen Pseudo-Digial Wonder to, finally, the Classic Seiko (the new ones aren't as good, the cognescenti know) which doesn't have a second hand. Yeah, it's a pain when I have to time a wait loop, I keep a stopwatch in the desk for that. You deal with it. Fashion costs.

    Nah, it's not ad hominem. Every Ayn Rand footkisser I've ever met has been a lunatic of some kind, usually with an undeservered superiority complex.

    Your problem with the type then. You were still wrong.

    " The guy is right -- when you make things more complicated than they need to be you make them fail more." Sorry, that's just not true any more. Unless you're Microsoft, of course. (ObMS Bash)

    OBMS or not, you're wrong. I work with embedded stuff day in and out. It's still true that the more complicated you make the plumbing, the easier it is to muck up the works. Modern automobiles fail in much more frustrating and interesting ways than Model T's did -- I should know, since I have some relatives who run an auto shop. They are slowly being driven out of business by the equivalent of MCSE's -- equivalent in every way, including paper over experience and inability to deal with real failures.

    If you pay attention to the details, you can indeed have a complex and highly reliable system. But nobody is paying attention to those details. Microsoft? HAHAHAHAHA They have never met a detail they liked since 1974. Anybody else? The Linux folx, yes, they like details, but their system isn't realtime and is very, very bloated re: embedded systems. Look, I'd love it as much as anybody if this fairy tale could be made real, but it can't and it isn't and it's really stupid to hope for it. In embedded systems, it's you and the metal. If you think otherwise, you will fail.

  • Well, except for a few rare exceptions, such as the cellphones and PDA's mentioned -- and these really aren't "embedded" apps once they reach this level of complexity; rather, they have become extensions of the multifunctional "desktop." So yeah, they'll need an OS.

    But the car, fridge, and toaster do not need an OS and aren't getting one soon. Embedded is most of what I do, and it is mostly done to the bare metal in minimal hardware. Even when it is bloated (as when a 6-level interrupt system has been coded in C++ on a 80186) it's a charming kind of backward bloat, harkening to the 1980's. It takes 256 whole K, isn't that cu-ute.

    Most embedded apps are realtime, mission critical, single-tasking (or pseudo-multitaskable), and lack user interfaces. Until recently the dominant chip in car applications was the 8048. When you are building in the quantities, with the price structure, and with the requirements of embedded, it usually makes sense to code the whole thing from the bare metal up in C and assembler.

    We are beginning to see a few devices that don't really need OS's showing up with OS-like kernels, and they are notoriously slow and unreliable. They don't compete well against more traditionally created firmware, which runs circles around them even on inferior hardware. At least this is the case in the scale industry; I don't see why it would be different anywhere else. Even PC104 hasn't really taken off, despite a few companies that have invested in it. When you are building mission-critical stuff or in quantities of millions, it makes sense to do it from the ground up. In the first hand you have the chance to make sure it's right, and in the second you save money. Yes, Virginia, it does make a difference whether you need 512K RAMS instead of 256's. And the ability to live with that extra wait state can make the difference between a product that ships now and one that never does.

    There simply is no room for a general-purpose OS in such an environment. We've seen them (QNX, etc.) already where they are appropriate, and that niche isn't going to change. Meanwhile, neither Linux nor anything ever created by Microsoft since 1974 is really suitable for an embedded platform.

  • After using assorted Linux distributions, FreeBSD [freebsd.org], OpenBSD [openbsd.org], NetBSD [netbsd.org], Solaris [sun.com], and other operating systems for the past few years, I've started tinkering with RTOS' (Real Time Operating Systems) such as QNX [qnx.com], dabbled with ChorusOS [sun.com] for a month or two, and have looked into a few others (Nucleus [accelerate...nology.com], ThreadX [ghs.com]).

    Some RTOS' can be used, for a typical production server running http, mail, etc, often faster and more productive than most other OS', and I'm sure there has to be advocates of RTOS' with a comment or two. There are benefits to making a switch or are RTOS' a high tech OS solely geared for companies needing higher computing standards, but I can see many here trying to advocate Linux, Linux, and oh yea Linux, and I'm sure there are those who will mod unfairly [slashdot.org]. whatever

    Don't get them confused, a lot of THESE OS's are not free to download, and they're not the same as using redcrap, or dumbian progeny. The article itself though didn't mention that some of these are pricey OS' it seems like they just jumped on another "Oh ... OpenSource" for attention.

    Is our soldiers forthcoming homecoming? [antioffline.com]
  • what a surprise [netcraft.com] theres not one Linux machine on that list =\

    You post this so much its just stupid, you offer nothing to back up your claims, instead you talk out of your anus. Could it be you tried to use a BSD and you were too much of a fucking clueless script kiddie to get a connection?

    Hint: get a life

  • Yes. Wouldn't it make more sense as a company to build your own little OS from the ground up to run that microwave rather than rely on a multi-tasking OS (linux or ms) which may not like certain requests from your users? What I'm saying, is that most 'embedded' devices, like the ECM on my car, should *NOT* be running 'MS Win2k-Embedded!' for fear of it blue-screening on me in the middle of the desert! (Linux crashes aren't as flashy, which is why I used the 'BSOD' example.)
  • There are nearly a billion PCs in the world.

    If that is only 1% of the CPUs, then there must be 99 billion embedded CPUs.

    If that's the case, why isn't the SOX [yahoo.com] doing better?

    --Blair
  • Um...

    Embedded does not imply schedulable, and schedulable does not imply real-time.

    Embedded means you normally don't use a general-purpose human interface on it (your PDA don't count, it's just a small personal computer).

    Schedulable (what most people call real-time, so much so that it's a linguistic shift I'm willing to tolerate) means it will perform its requirement before a deadline.

    Real-time means it is schedulable using the date and time-of-day.

    I now leave you to the flame war that will ensue. If it digresses enough, we can talk about editors, political wings, and whether the lack of a salary cap is ruining baseball or making it greater.

    --Blair
  • You'd be surprised what the market penetration of Visual C++ is, and how much that will determine the choice of embedded OS.

    --Blair
  • Ah, the flame war begins.

    No.

    Real-time is "within one second". Schedulable is "within 400 million clocks".

    The question comes when you ask "how many seconds is 400 million clocks?"

    or

    "Can I re-point this buffer descriptor between subsequent 100Base-FX packet-received interrupts on a Motorola PowerQUICC 8260 CPM?" Then your schedulable had better be real-time.

    Think internal vs. external events. Throwing the baseball to yourself on the run vs. throwing it to Rickey Henderson on the run. You don't need to know how fast you're going. You do need to know how fast Rickey's going.

    The difference between the two is everything.

    --Blair
  • Oh, there could easily be 10 billion embedded CPUs. Maybe even 20. But not 99. Not 16 for every homo sapiens on this mostly backward-ass rural bumfuck of a planet. No way, San Jose.

    --Blair
  • enkeller wrote, "You're missing the point about the Microsoft advantage in my opinion ... Microsoft is a household name."

    Remember the topic. We're talking about embedded systems here. Sure, a PDA might say "Made for Windows CE" on it, but that's a tiny fraction of the market. Quick, what OS kernel powers the antilock brakes in your car? Your fancy calculator watch? The power supply cycling for the burn-in ovens at the chip factory? Your synthesizer keyboard? Your multi-line caller-ID 100-number-memory desk phone? Your MP3 player?

    How many makers of that kind of device are going to pay an extra license fee just to put Microsoft's logo on the box? Who cares what OS is inside, as long as it works? (And I hope nobody ever puts Microsoft Windows CE inside a car engine or breaks, or "Windows crashed" will have a whole new meaning)

  • Sheldon wrote, "Don't you think you are confusing some things?"

    No. But perhaps I didn't explain it well enough for you to understand.

    "Microsoft essentially will have two embedded OS systems to sell. Whistler/XP embedded, and WinCE."

    True, but if you actually read my message, I'm referring mostly to the vast majority of devices that have no use for a fancy GUI, so we're talking about WinCE here. From my point-of-view, an embedded system is just a component of the product-- and a relatively invisible one at that. Everyone knows there's some kind of pump moving refrigerant around in your fridge, but nobody really cares what make or model it is. Unless the GUI is the focal point of the device (as in a new-generation cellphone or a PDA), why put in WinXP/embedded and have the higher cost, slower boot time, increased memory, and so forth?

    "WinCE is intended for small devices with a simple GUI interface. So your point #2 conflicts with your later claim that we're talking about CE."

    No conflict at all. I said that the GUI is a big part of the selling point of Windows. If you're using a non-GUI environment, this advantage evaporates. Where's the conflict in that?

    "I see anti-Microsoft people do this a lot, where they take all the negatives of six different products and combine them to prove Microsoft sucks."

    I see blindly pro-Microsoft people do this a lot, where they don't bother to read the arguments to even determine whether the writer is pro or con. I didn't say that Microsoft sucks. I said that the factors that make Microsoft Windows a success on the desktop don't contribute to making it a success as an embedded system.

    There are some Microsoft products I really like. I think VB is a fantastic UI prototyping tool, faster than any other I've used. Microsoft Word (when you turn off the "we know what you really wanted" features) may be the greatest word processor of all time. But I find their business tactics reprehensible and I think Windows is not sufficiently stable to be my operating system of choice. Does this make me an anti-Microsoft person? If so, it makes me one with a well-considered opinion based on over 20 years of experience working with the company and its products.

  • by CyberDawg ( 318613 ) on Friday April 13, 2001 @10:53AM (#293864) Homepage

    What are Microsoft's big advantages for desktop computering, and how do they apply to embedded computing?

    1. Lots of applications: Who cares, in an embedded environment? Typically, the actual code that's running is all custom.
    2. Cool easy-to-learn GUI: There is no GUI in many (most?) embedded environments. A few pushbuttons and possibly a small display. No advantage for Microsoft here.
    3. Widespread deployment (compatibility): There's nothing to be compatible with in an embedded device except possibly network standards, in which Linux is more standards-compliant anyway.

    Add in overall OS stability (Linux beats Windows by a mile) and the ability to customize the kernel to fit your particular embedded application, and I don't see the fit of WinCE in any non-GUI embedded environment. Linux, OTOH, is a great match. I wish I'd had it when I was doing embedded realtime code and had to roll my own mini-OS.

  • Open source skeptic: Greg Rose of LynuxWorks questions the suitability of Linux in the embedded world.

    This comes from a company that ships BlueCat Linux and touts the compatibility of LynuxWorks with the Linux APIs. I guess they don't quite get it, and the market will likely punish them for it in the long run. Lynx may or may not be better for real-time applications right now than real-time Linux, but in the long run, there will be open source real-time operating systems: the long-term economic incentive for companies to create and share that kind of software are simply too overwhelming for any proprietary software vendor like LynuxWorks to compete.

    Of course, they can try to hedge their bets by shipping BlueCat Linux, but as long as they also have a proprietary product, there will be conflicts of interest within their company: whenever they enhance their free software, they cut into the market position of the proprietary stuff. This seems worse to me than committing to one or the other business model and focussing all their resources on that.

    Note that I'm not saying that there is anything wrong with them trying to sell proprietary systems; I simply think they won't be competitive in the long run.

  • I'm guessing that you don't come from an embedded background. I generally prefer development on UNIX-based systems, but there are a number of reasons to use an embedded MS OS. I'd say that the top two are:

    1. Tons of developers know the platforms. If you're an MS development shop, it's easier to do embedded development if you stick with the familiar.
    2. There are many choices of embedded platforms that license MS OSs. Just look at how many MSDOS-based embedded platforms there are: http://www.google.com/search?q=embedded+microsoft+ dos [google.com].

    As for embedded systems with a GUI, MS is actually the clear market-share winner. AT&T set-top boxes embed CE, as do devices from Hitachi, Samsung, Siemens, etc. How many embedded UNIX-based systems with a GUI do you know?

    The good news is that Open Source looks like it's poised to open up market for embedded OS development.

    Invisible Agent
  • Hmmm... FSMLabs [fsmlabs.com], and rtlinux [rtlinux.org] aren't even mentioned? Doh! These guys from New Mexico Tech [nmt.edu] are pioneers. Cort [fsmlabs.com] is the man. Whoo.

    --

Our OS who art in CPU, UNIX be thy name. Thy programs run, thy syscalls done, In kernel as it is in user!

Working...