Open Source In Embedded Systems
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.
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).
Unfortunately, Linus is ignoring PPC. 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.
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.
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.
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
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.
Mea navis aericumbens anguillis abundat
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??
MacOs X
Suddenly, about one in ten desktop computers will be shipping with BSD. Not too shabby, IMHO.
Post may contain irony: discontinue use if experiencing mood swings, nausea or elevated blood pressure.
Gee, you said it much better than I did.
Post may contain irony: discontinue use if experiencing mood swings, nausea or elevated blood pressure.
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.
Post may contain irony: discontinue use if experiencing mood swings, nausea or elevated blood pressure.
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.
I'm a leaf on the wind. Watch how I soar.
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.
From the user's POV, I can see where it doesn't make a difference, but that doesn't mean that it's pointless. 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.
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.I'm a leaf on the wind. Watch how I soar.
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.
I'm a leaf on the wind. Watch how I soar.
Many posters are getting the two confused. Embedded OS's do not neccessarily have to be RTOS's.
Best Slashdot Co
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?
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
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
", 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.
ÕÕ
ÕÕ
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.
I'm trying to teach myself to set people on fire with my mind... Is it hot in here?
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.
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?
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.
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.
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.
"Prefiero morir de pie que vivir siempre arrodillado!"
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
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.
Under capitalism man exploits man. Under communism it's the other way around.
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.
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.
---
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. 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.
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.
Got friends?
not to use Windows XP in embedded MP3 players.
Got friends?
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.
+5:offtopic,but anti-American
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.
Brackets contain world's first nanosig, highly magnified:[.]
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.
Brackets contain world's first nanosig, highly magnified:[.]
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.
Brackets contain world's first nanosig, highly magnified:[.]
After using assorted Linux distributions, FreeBSD, OpenBSD, NetBSD, Solaris, and other operating systems for the past few years, I've started tinkering with RTOS' (Real Time Operating Systems) such as QNX, dabbled with ChorusOS for a month or two, and have looked into a few others (Nucleus, ThreadX).
... OpenSource" for attention.
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. 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
Is our soldiers forthcoming homecoming?
360 degrees of Karma
what a surprise 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
360 degrees of Karma
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 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
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
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.
What are Microsoft's big advantages for desktop computering, and how do they apply to embedded computing?
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.
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:
+ dos.
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
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
Invisible Agent
This post is a mirror; when a monkey stares in, no hacker gazes out.
--