Want to read Slashdot from your mobile device? Point it at m.slashdot.org and keep reading!

 



Forgot your password?
typodupeerror
×
Linux Software

Living in a Linux Embedded World 146

krow writes: "Embedded.com is running an article where the author is making some assumptions of Linux's use in the embedded markets based on the opinion of one consultant and the fact that Lineo had to lay off some people this year. It's still interesting reading though for some insight into a different world for Linux and there is a nice reference in the comments to the interview of Victor Yodaiken of RTLinux fame by by Kevin Fu on the ACM site."
This discussion has been archived. No new comments can be posted.

Living in a Linux Embedded World

Comments Filter:
  • Tivo (Score:2, Interesting)

    by Anonymous Coward
    Linux is making slow progress into an area already claimed by DIY'ers and WindRiver. The massive market acceptance of devices like Tivo is a real feather in Embedded Linux's hat.

    The fact that other companies are failing is simply a factor of business, not anything necessarily having to do with the viability of Linux as an embedded platform.
    • I agree that Tivo, and for that matter Axis's stuff make for pretty compelling stuff, but there are caveats that are verry hard to ignore as well.

      Take for instance Axis's camera servers. Ok, we have what looks like a pretty compelling argument here gor the power of Linux (or actually ucLinux, but the 100lx processors do the real thing), what with straming video and all, but when you actually look at it, you see it's not just linux at work there. The processor is a joy to behold and that does help, and most of the video grunt work is done from an offboard mjpeg processor chip.

      Linux works beautifully on this platform, because it was designed for it, and maximo kudos for the Axis lads for a real nice distro.

      None the less, linux has some big problems with latencies. It's not tooo bad, on the etrax dev mailing list the other day, there was some talk of latencies, and *from memory* I think the 1ms figure was bandied about as achievable.

      But for a lot of stuff, it's just too much at once with linux. There really is nothing like ripping out the old forth compiler chain and having exact hard realtime control over latencies and the like

      It all depends on the app. I would not trust a cardiac pacemaker to linux, but I wouldn't want to make a mp3 player on VX-Works. It really depends on the app, and that all boils down to timing.
  • Kada (Score:5, Interesting)

    by Apreche ( 239272 ) on Wednesday December 05, 2001 @03:33PM (#2661098) Homepage Journal

    It's a pretty strange coincidence. Today I had to get information about a company for Professional Communications class. I went to the library, picked up an IT trade magazine, and went to the section about emerging companies in the new year. There is apparently a company called Kada Systems [kadasystems.com]. That has created an extremely small JVM that can run very powerful applications on very small portable devices. Take that and your tiny linux kernel, and you're set.

  • Of course not (Score:5, Informative)

    by bluGill ( 862 ) on Wednesday December 05, 2001 @03:34PM (#2661104)

    Most embedded componants that I know of use an in house OS. Where I work we bought vxWorks, but we are seriously considering replacing it with something cheaper. Not linux, something we write in house. It turns out that most real time systems cannot afford the overhead of a OS. Sure we need something to deal with hardware, and schedualing, and if you have networking it is nice to have sockets are similear. In the end though, a OS gets in the way more then helps.

    In our particular case we have a lot of code to jump out of interupt context and then back in every 15 seconds. That really hurts performance. (Yes, we often want to spend more then 15 seconds processing interupts, with out hardware it turns out to be a good idea, though I don't want to give away why) Of course the OS clocks get all screwed up when we do that.

    • You wrote, that you need to spend 15 seconds in Interrupt service routines with linux concept of bottom halves (are the x86 only) this should not be a Problem.
      • Embedded systems REQUIRE that you minimize time in ISR's. You're asking for trouble if you don't

        BTW, we're using vxWorks & C++ on PPC. Very good platform for development. We're looking at RT/Linux but are reluctant to make the jump.

        A good threaded model should negate (abstract) the role of the RTOS.
        • Accually we do it differently. Because there is overhead in jumping to a ISR, once we get an interupt, we disable interupts, keep polling for more data until there is none for a while. Since we only deal with one data stream per processor, this isn't very hard to program, and allows us to get a lot of throuput.

          Remember, for our application it turns out to work good, in general you are right, the less time in an ISR the better.

    • Re:Of course not (Score:2, Informative)

      by sadr ( 88903 )
      In my experience (over 10 years of developing Real Time code on medium to large projects), it's almost never a win to write a home-brew RTOS (or try to do without an RTOS completely).

      Except for very simple applications which can run as a single threaded application with interrupt handlers to perform processing, an RTOS is almost always essential. In fact, an RTOS with a correctly partitioned and architected application can be significantly more efficient than a single threaded application that has to periodically poll hardware or status variables. You don't want your protocol stack running in your interrupt handler, and polling to see if there's more data for the protocol stack is very inefficient compared to a context switch in an RTOS when data is actually available.

      VxWorks may be overkill or may not be customizable to do what you want, but there are lighter solutions such as Nucleus, eCos (which is open source), RTEMS (BSD license), etc. These solutions are available for relatively small amounts of money. And this cost is a real win compared to the cost to develop and debug thousands of lines of "homebrew OS". And there's much more to the price of building an RTOS than just the developer time. Slipping a product by 3 or 6 months can cause the project to fail completely.

      Even the ever-popular "write a homebrew abstraction layer" over a commercial RTOS is almost always a waste. It just introduces overhead, prevents the application from making full use of the underlying RTOS, and almost never makes porting to a new underlying RTOS much simpler.
      In the meantime, it really sounds like your application has some serious architectural issues. If you're spending 15 seconds in your ISR, none of your other tasks (or lower priority interrupts) get to run. That's hardly "real time".

      The more typical solution is to grab the data from the hardware and send it to a (high priority?) task to process. I find it very difficult to believe that running a single ISR for 15 seconds is optimum. On most systems I've worked on, that would trigger a hardware watchdog time-out.

      Basically, it doesn't sound like you've got an competant, experienced embedded developer working on your project. You might consider finding someone to provide consulting services, or hiring someone with more background in the area.

    • It turns out that most real time systems cannot afford the overhead of a OS. Sure we need something to deal with hardware, and schedualing, and if you have networking it is nice to have sockets are similear. In the end though, a OS gets in the way more then helps

      I've just started to poke my head into it, but eCos [redhat.com] (an embedded linux based OS) is a nice place to start when designing your in house OS.

      From the linked page:

      eCos provides engineers with maximum control, flexibility and understanding over all aspects of their embedded solution. eCos is highly customizable and adaptable, and can be easily configured using the eCos graphical configuration tool to meet application-specific requirements

      It's used as the base for dadio OS (on my hipzip [iomega.com] MP3 player) and it looks like a nice little package with lots of tools for developers.

      Proprietary does seem like the way to go, (After all, keeping things small is important, and it is likely that there will not be a general solution that meets your specific needs exactly) but it is also nice to work from a proven base OS instead of starting from scratch.
    • Do wxWorks interrupt handlers disable all interrupts? How odd. QNX interrupt handlers only disable the interrupt that was invoked (hardware permitting) precisely so that higher-priority interrupts can still be delivered.

      Of course, I don't know why you're not just using the interrupt handler to wake up a thread which does the real handling, like a lot of real-time systems encourage. Presumably you have a good reason which you could tell me but then you'd have to kill me.

  • by GGardner ( 97375 ) on Wednesday December 05, 2001 @03:35PM (#2661114)
    I know of a bunch of products which use embedded Linux (and several which use *BSD). However, none of these are laying out big bucks to any embedded Linux company, like Lineo or Montavista. Right now, hackers (good sense) are choosing embedded Linux because they are familiar with it, they can fiddle with the kernel, etc. They just download a linux (usually PPC based) distribution, and go from there.

    The people who need the hand-holding which Lineo, etc. are trying to sell, those people are too conservative to choose Linux, they just go with the Microsoft of the embedded word, Wind River.

  • Long Cycles (Score:5, Insightful)

    by nate1138 ( 325593 ) on Wednesday December 05, 2001 @03:37PM (#2661123)
    Part of the issue may be that embedded systems have pretty long development cycles, compared to typical software apps of similar size and complexity. If your PC application doesn't work, you simply issue a new revision with fixes. Embedded systems are much more difficult to upgrade. I'm not talking about PDA's here, I'm talking about your set top boxes, industrial systems, data collection, etc. These systems cannot be easily patched. As a result, embedded linux development efforts take much more time to certify than those using RTOS's that have been around for years. Also, it is true that linux doesn't have a native method for doing hard-real-time events, there are add-ons, and it isn't the fault of linux developers, such a thing simply isn't needed for desktop and server OS's, but for running an industrial robot, a 10ms delay can be disastrous.
  • by dfeldman ( 541102 ) on Wednesday December 05, 2001 @03:41PM (#2661144) Homepage
    I used to work closely with a development team that made the transition from a proprietary (and, may I add, unmaintainable and unreliable) embedded OS to Linux. Though some of the concerns in the article did come up, especially speed and size issues, those didn't hurt us much. After all, we could afford a better processor and more memory with the money we saved on royalties and maintenance expenses - these were substantial.

    Unfortunately, if the many features of Linux and the transition from assembler to C didn't hurt us, the licensing did. Things went very smoothly until we needed to make some big changes to the kernel to accomodate a newer version of our hardware. At that point, there was a schism in the group: some of the developers wanted to change the kernel and release the product without source (the "who would find out?" crowd) and the rest of us knew that Linux was not going to fit our needs anymore unless we wanted to give our work away to competitors.

    Well, the "who would find out?" crowd won the first round, and because of release deadlines we "slipped" the kernel changes into the next version of the product. And nobody knew. Except one of us told the legal department about what happened and they became very agitated.

    Now our software runs on embedded NetBSD. It wasn't quite as robust as embedded Linux but it works well and we really can't complain. Transitioning to a new OS took a lot of effort but it was a necessary evil. After all, we couldn't risk getting sued out of existence to save a little money.

    But the question I draw from this is: why not relax the GPL restrictions a bit for embedded applications? It seems like this area of the market will never be dominated by Linux until companies can stop fretting about licensing problems and start concentrating on coding instead.

    df

    • Why relax them? So you can steal someone elses hard work and good intentions and not give back to the community that gave it to you in the first place? Licensing problems aren't why you don't see embedded linux in the marketplace more. Greed is. You may say that, "that is what capitalism is all about," and to you I say, "that's not what Linux is about so stop trying to shoe horn it into a mold it doesn't fit in."
    • But the question I draw from this is: why not relax the GPL restrictions a bit for embedded applications? It seems like this area of the market will never be dominated by Linux until companies can stop fretting about licensing problems and start concentrating on coding instead.

      Because this is what you have to pay for using GPL software. You get Linux for free, so if you have to change it to fit your product, you have to distribute the changes, now you are even with the developers. I don't understand people who want to take something for nothing and use it for their own commercial advantage, they really don't appreciate the work that went into Linux. If you don't like the license then don't use it. I think even considering to use it without distributing the changes is sleazy.
    • by Christopher B. Brown ( 1267 ) <cbbrowne@gmail.com> on Wednesday December 05, 2001 @04:01PM (#2661227) Homepage
      It sounds as thought licensing constraints legitimately mandated that you guys move to NetBSD.

      I don't see a big problem with that, nay, I'd think it a good thing for there to be some diversity of licenses, OSes, and approaches.

      Supposing there turned out to be some horrible situation where NetBSD turned out to have killer bugs for particular purposes, it's a good thing to have some alternatives. Or vice-versa, and the potential causes can remain "n'importe quoi."

      I don't see any reason why it is forcibly necessary for Linux to be "dominating" the area, either. I would think dominance would lead to all sorts of Bad Results as it denied the availability of choice.

      And as for licensing, if you're going to use Linux, that certainly has some implications on being mandated to release source code. If you reject that mandate (and there's some "ethic" behind it; the authors are unlikely to let go of this), then Linux obviously isn't going to be the right choice. Which makes it fortunate that the market wasn't dominated by Linux, as if it were, you wouldn't have had other choices like NetBSD.

    • by nathanh ( 1214 ) on Wednesday December 05, 2001 @04:07PM (#2661256) Homepage
      But the question I draw from this is: why not relax the GPL restrictions a bit for embedded applications? It seems like this area of the market will never be dominated by Linux until companies can stop fretting about licensing problems and start concentrating on coding instead.

      Because if your company is the sort that takes the hard work of others, uses it for free, makes a profit they would otherwise not have, and does not contribute back the changes made, then your company is NOT the sort of company that the Linux developers want to be using Linux.

      Linux does not exist to make your company richer. Linux does not exist to give your company a head start on other companies. Linux exists to help make free software pervasive and available for everyone. Your company is counter productive to the goals of Linux.

      "If the price of your friendship is the loss of my freedom, then I don't want your friendship."

      • by linuxlover ( 40375 ) on Wednesday December 05, 2001 @05:11PM (#2661588) Homepage
        This is exactly the issue I am considering aswell.

        Lets say our company invents a device and plans to sell the device with Linux loaded terminal with Linux device driver. The hardware+software is our IP and we can't give it away. please don't lecture me of how everything should be free...etc. I know that, and I also like a roof above my head. Letting people download my driver for free from a FTP server doesn't quite pay my bills.

        So the solution:
        we need to have something like FSF or Linux Fund. If I want to keep my driver closed source say for 1 year then I pay a license fee for them (it can be a one time thing or royality based). The 'foundation' distributes the money as it see fit, funding developers, funding new projects..etc. After a year, I have 2 options
        - release the source to kernel main tree and make it open. Now it doesn't matter as competitors can't abuse my work to overtake me.
        - continue with closed source for another year and keep paying (may be revised) licese fee / royality.

        This has best of both worlds
        - I get to use a stable well maintained software (in this case Kernel). so I don't have to re-invent the wheel inhouse everytime.
        - I keep my IP intact for a short period and at the same tiem paying for other developers efforts.

        any one know any similar licences like this?

        LinuxLover
        • That's not a good solution. Linus chose GPL, so GPL it is.

          There are a couple of choices:

          1) Write Your driver as a module. Then You can release binary only.

          2) Release the driver code. You're selling a box with software preloaded, not software. If competitors can whip up the same piece of hardware cheaper than You, then You have a problem, but that's not a problem with the software licensing.

          I don't really believe that an embedded linux solution would really depend on the development of kernel code - or at least not the kernel code that can't be written as a module.

          Now, I assure You that I do respect IP. I'm working on embedded solutions, too, and the customers have their rights regarding the IP. However, if they choose Linux and want to modify the kernel, they can either write a module or release the code. And they know it. They also know that they depend actually on selling the boxes and not the software - the software enables the box to function. The kernel mods are released - as are new kernel APIs and so on. Then, using those APIs proprietary software can be written.
        • Lets say our company invents a device and plans to sell the device with Linux loaded terminal with Linux device driver. The hardware+software is our IP...

          No! Linux is NOT your companies IP. Combining Linux with hardware doesn't make Linux your IP either. Linux is owned by the developers that wrote it. They're giving you an unlimited royalty free license to use it but you have to agree to their terms, and one of those terms is that you share with others just as they shared with you.

          please don't lecture me of how everything should be free...etc. I know that, and I also like a roof above my head.

          Then perhaps you can go earn a living to pay for that roof over your head? What you're proposing is to take the hard work of others and reap the rewards. The GPL was designed exactly to stop this sort of parasitic behaviour. Linux was licensed under the GPL because the authors have at least some empathy with the ideals expressed by the GPL. If you don't like those ideals then DON'T BASE YOUR PRODUCT ON LINUX.

          After a year, I have 2 options (1) release the source to kernel main tree and make it open. Now it doesn't matter as competitors can't abuse my work to overtake me. (2) continue with closed source for another year and keep paying (may be revised) licese fee / royality.

          This is similar to the Alladin License. But although this license might suit you better, it isn't what the Linux developers wanted. The Linux developers wrote Linux to further their own goals, not yours.

          If you don't like the rules then don't play the game. Complaining that you can't get your free lunch and sell it too won't garner you any sympathy.

          • I was expecting this sort of reply along the lines of 'LInux is GPL, I like it that way, so don't use it for your evil corporate profit...blah...blah'. Congratulations, you made the list.

            For the record,
            - I do earn my living (a comfortable one I might add) working for a small proprietary software company...so boo me! (so does Linus and countless other contributers)
            - I love & use free software. I have contributed back aswell

            I _DIDNOT_ criticize Linux for being GPL. I was looking for a system where
            - developers who contributed get something back (in code form or other)
            - if code contribution is not possible, then contributes get compensated in some way.
            I was looking for first hand experience of any license or any organization like the above existed.

            Right now I can use Linux as a development platform. But it is not suited as a 'delivery platform' b/c of GPL (assuming my project involves modifying kernel heavily).

            SOme one poited out about binary only modules. That may be a good compromise. But I thought under GPL
            "if your software (say the module) would not function without a GPL component (linux kernel) then the source code for the software should be distributed aswell"
            did I read that wrong?

            Again please don't flame me about GPL and 'free as in beer' concepts. I know them all, and I respect them. I am looking for suggestions, not whinings.

            thanks
            LinuxLover
            • I was looking for first hand experience of any license or any organization like the above existed.

              And I gave you one: the Aladdin License.

              I was expecting this sort of reply along the lines of 'LInux is GPL, I like it that way, so don't use it for your evil corporate profit...blah...blah'.

              If you expected this sort of reply then perhaps the problem is with what you wrote, rather than with the people who responded in the expected way.

    • by mcrbids ( 148650 ) on Wednesday December 05, 2001 @04:08PM (#2661262) Journal
      Embedded BSD is not as stable as Linux?

      Perhaps it's because all the companies that made extensions to BSD did not make their changes public?

      It's this issue, the very issue you raise, that makes Linux the long-term sensible choice. You benefit from the work of other companies, and they benefit from your efforts as well.

      Notice that your changes to the BSD kernel are not available to other indivuals and companies. Thus, your efforts do not contribute to the stability of BSD for embedded applications.

      The "Share and share alike" philosophy of Linux is the heart of the Linux movement, and your suggestion to "ease up" would represent the very death knell of its forward momentum.

      It's really a question of "Pick your poison". Which flavor do you prefer? You can either A) leverage the efforts of others and let them leverage off of yours, or B) Go your own route.

      Either route has its advantages and disadvantages - but don't complain when you can't have it both ways!

      -Ben
    • Honestly do you really think anybody is hot for your changes in the linux kernel? Your competition? Really not.

      I'm now working privatly quite some time on some free software apps. My experience on how many people are really interested in the code were depressing.

      Put your modification on a ftp server, or ask them in the user manual to request it per email. After all your competition first has to buy a product from you, than has to tell you that it did so, and than request the source changes, and than has to find them usefull at all.

      Okay if two competiting companies run linux on the same processor type I can imagine that you want to give away your changes at the last moment as possible. But as long they run a different os or a different cpu only, they will find your patch worth nothing. Giving it to puplic will not hit your competiting advantage.

      Getting it in the torvalds kernel is a task itself, and you must be really after it if you want to see a patch in there. If you're just selling a device and a patch with it, there is in reality no way it will find it's way in linus' kernel
    • A better question (Score:5, Interesting)

      by AstroJetson ( 21336 ) <.gmizell. .at. .carpe-noctum.net.> on Wednesday December 05, 2001 @04:32PM (#2661367) Homepage
      Why didn't your company want to release the kernel mods back to the community? It's not like they were gonna make any money off them - they get paid for the embedded app, not the OS it runs on. I could understand if you were giving away something proprietary, but it doesn't seem to me that releasing those changes would have hurt your company one little bit. In fact, if you had released them, someone else might have come along and improved on your improvements.
      • A good example would be modifications to the protocol stack, for implementing a proprietary protocol or algorithm. This makes the kernel modifications part of the application.
        Remember that this is an _embedded_ system, which is usually _not_ the same as taking a desktop OS and slapping some user-space application on it.
        Frankly, as an embedded developer, I do not see the great value of using Linux over *BSD in embedded space (unless you use some hardware that no BSD supports); the license alone is an enormous turn-off for any company that needs to modify the kernel (see above) and does not want its competitors to get a glimpse into its code. And in any case, if you need true real-time, you'd be MUCH better off with LynxOS or somesuch rather than some half-baked Linux-RTOS microkernel solution; you'd be getting better POSIX compliance, and TRUE REAL TIME, from an experienced company.
        And as far as real-time is concerned, Solaris and IRIX have had true realtime capabilities (for userspace processes too) for years. Linux is still a toy OS compared to commercial offerings in embedded (and, dare I say it, server) space.
    • It was your legal department that dropped the ball.

      first, your changes, what your company wrote, like the modules for the linux kernel you needed were not required to be released, TVIO did this and they released everything BUT what they did. Now of you guys just changed a driver a bit and were worried that your competition would instantly take your idea and make billions is plain stupid. your competitors are not greedily watching you for a slip to run with, they are quite busy themselves. if you made a drastic and innovative change to the kernel then cool, dont release your innovative code, why? because you DONT HAVE TO unless your innovation was not really an innovation but a change to someone else's GPL'd code. otherwise release the minor changes and be a good open source citizen.
    • I'm not sure what the problem is. If you're making your money selling custom hardware, then the driver code shouldn't matter that much (since it can't be used without the HW anyway). The only time a problem would arise is if you somehow put the entire (reverse-engineerable) footprint & logic within the kernel portion itself, which is simply poor design practice. You should be able to write a relatively generic kernel section to support specific chips, and/or a generic interface that's tapped into by your non-kernel based application code. Then you release the kernel changes, knowing that they're useless to your competitors without your custom app. code.
  • He's Right (Score:5, Insightful)

    by DrStrange ( 72008 ) on Wednesday December 05, 2001 @03:46PM (#2661162)
    Sorry to anyone who believes Linux is THE choice for everything, its not. As a real time embedded developer who has done some work on Linux device drivers I have yet to suggest Linux as an option when the OS choice has come up. I agree with the author when he cringes at some of the commentary in the Linux source code, I'm supposed to stake my name and my company's name on an OS with comments like: "/* This is a hack..." in the kernel? And say we do go with Linux and a problem with the OS comes up what should we do? Post to the linux-kernel mailing list and hope it gets fixed? Assign one of our developers to fix it? We don't hire OS programmers for the very reason that we buy our OS, we're DSP engineers. Most companies won't go with Linux because of the fact if something breaks they can't submit a bug report and withhold payment until it gets fixed.

    I'm an avid Linux user at home but for fault-intolerant real time systems, I would feel a bit uneasy recommending Linux for an embedded system just yet. Once I go 6 months without a story on /. where a major fault has been introduced or missed in the Linux kernel I may rethink my opinion but until then I'll be suggesting that we buy our RTOS.
    • The idea on FreeSoftware here is that you've the complete sourcecode, so if there is a bug, find it yourself, may sound hard but thats the way it is. See it from the otherside as company your not dependent (and your deadlines) on an another company and hope it fixes the bug (against ignoring your requests/problems, what happened to me in the past when we used a closed source OS as basis. They gave up the product line, fired their complete develoment team, and your product line suddendly has to die with it, and thus so also my department I worked at that times died as a long termed net result.)
    • ...in the commercial OS as well- you just don't get to see those. And the who'll fix it argument, well, I've seen both sides- the closed source route DOES NOT insure things will get fixed.
    • Re:He's Right (Score:4, Insightful)

      by Spy Hunter ( 317220 ) on Wednesday December 05, 2001 @04:19PM (#2661304) Journal
      I'm supposed to stake my name and my company's name on an OS with comments like: "/* This is a hack..." in the kernel?

      Just because you've never seen the [insert proprietary OS here] source code doesn't mean that it is any better than Linux's. The fact that you can see the hacks is actually a *benefit* of Linux.

      • Or you could buy one of the commercial RTOS's that provide source, such as ThreadX or Nucleus.

        Those are small and very clean, in my experience.
      • Ummm, just about every commercial RTOS I've worked with gives you the source code, kinda important to doing embedded development to have that.
    • by GGardner ( 97375 ) on Wednesday December 05, 2001 @04:20PM (#2661307)
      What do you think that commercial code doesn't have comments like this? Or, worse yet, that commercial code doesn't have comments like this because it doesn't need them?

      There was a famous comment in the SunOS proc.h header file that said something like /* Please forgive me for this hack */ And I've seen plenty of commercial code that should have had comments like that, but didn't, which is a whole other kettle of fish.

    • I'm supposed to stake my name and my company's name on an OS with comments like: "/* This is a hack..." in the kernel?

      As opposed to a kernel that still has those issues, but you don't see them because you don't have the source code? All code has its less than pristine spots. At least with Linux, those places are documented and more likely to be changed by the large cadre of people working on the code. Your "sense of well-being via obliviousness" stance might be personally satisfying, but it does not, in and of itself, guarantee a better system.

      If you want to bash Linux as an RTOS, there are a lot of other more appropriate technical factors to bash it with. Your aforementioned statement is not one of them.

      • I was not trying to as you say "bash Linux as an RTOS", just explaning my reasoning why I don't recommend it in any products I work on. As for not having the source code, every commercial RTOS I have worked with gives us the source code. Embedded systems rely on the stability of their OS far more than other commercial software, if the system I currently work on fails my customer has to put someone in a truck and drive somewhere and that ticks them off something fierce. So I need a good feeling about the OS I choose from the get-go. As for things getting fixed because there's a large cadre of people working on it, there is no guarantee that it will get fixed. When meeting deadlines with large sums of hard money on the line, I need to be able to call someone and say "fix this or you don't get paid". Again I'm not trying to flame on Linux, just trying to advance my opinion on a very Linux biased website.
    • Two questions:

      First, have you seen 'hacks' in other source code? If so, were they labeled as such? If not... Well damn. That's impressive.

      Second, how responsive are other OS developers for making changes in their source?

      (Not trying to flame. I realize it can be taken that way. I really want to know if things are THAT different.)
    • So, does your binary-only OS come with comments embedded in the executables?

      If not, how can you possibly know that there's not lines like:

      /* I hope they never really want to try this */

      In the source?

      >Most companies won't go with Linux because of the fact if something breaks they can't submit a bug report and withhold payment until it gets fixed.

      Yeah, I'd like to see a company withhold payment from a software company till a bug is fixed.

      I'd still not have paid for Windows 95 yet if this were possible.

      >We don't hire OS programmers for the very reason that we buy our OS, we're DSP engineers.

      Here's a quick question:

      How much do you spend to "rent" your OS? Is it less than getting a programmer part-time to fixup the Linux kernel to your specs?

      Just wondering.

      >Once I go 6 months without a story on /. where a major fault has been introduced or missed in the Linux kernel I may rethink my opinion but until then I'll be suggesting that we buy our RTOS.

      When I go 6 months without a vendor lieing to me that their software is A-OK I'll start purchasing more closed-source software.
      • Once I go 6 months without a story on /. where a major fault has been introduced or missed in the Linux kernel I may rethink my opinion but until then I'll be suggesting that we buy our RTOS.

        When I go 6 months without a vendor lieing to me that their software is A-OK I'll start purchasing more closed-source software.

        I think you've hit the nail on the head there - that quote is definitely sigworthy.

        Of course, you could have the worst of both worlds - use a popular embedded Linux vendor's product, but when you want the source they give you the runaround and a month later I still haven't gotten it. I'd name names, but since I work for another arm of the same far-flung conglomerate that they do, I'm afraid that I can't.

        My advice on embedded linux: use it if it meets your technical requirements, but get the source up front when you get the binaries, and verify that the source really does produce the binaries. Don't wait 'til crunch time to find out that getting the source isn't as easy as you would have thought.

    • Ever look at the source code for windows CE?

      #include
      /* This is a hack */
      main ()
      {
    • I'm supposed to stake my name and my company's name on an OS with comments like: "/* This is a hack..." in the kernel?

      I'd worry more about comments like these...

      /* printf("Welcome to Windows 3.1\n"); */
      /* printf("Welcome to Windows 95\n"); */
      /* printf("Welcome to Windows 98\n"); */
      printf("Welcome to Windows 2000\n");
    • I guess it all makes sense to me now.

      The reason Linux (and other OSS software) has so much trouble being accepted is that it forces you to face reality.

      So comments like /* this is a hack */ scare you... Apparently not being able to see the source makes you feel better. "If I don't know about it, it doesn't exist." Of course when the code is right there, it's harder to pretend the code must be perfect.

      Or submitting a bug report and - snicker - witholding payment until it gets fixed. As if any proprietary vendor would ever let themselves get roped into a contract where customers could not pay if the software had bugs. That's pure fantasy on your part -- and yet I've heard the same argument repeated as to why they wouldn't choose Linux. But since Linux doesn't let you pretend that you can hold someone accountable it gets rejected.

      In a way, it's the same with the whole UI problem. People will tell me how easy to use Windows is, and I'll sit next to them and listen to them cursing as it does things they don't expect. But Windows keeps telling you it's easy to use, so they can pretend it really is. Linux doesn't try to trick you that way, so they can't let themselves be tricked.

      Okay, that was starting to get off topic, but it is related I think. Stop fooling yourself -- if something works for you, then fine, but don't prop up the system with self-delusion.
  • Converse question (Score:4, Insightful)

    by BillyGoatThree ( 324006 ) on Wednesday December 05, 2001 @03:52PM (#2661193)
    I've looking for a new job. My current job is Linux-related and I'd like something similar. So I search for "Linux".

    Let me tell you, about 80% of the Linux jobs out there are asking for embedded experience as well. If Linux is hot anywhere, it's in the embedded market.

    Now, it may just be that embedded is hot and, because I'm not searching for it, I never see the non-Linux ads. That doesn't change the fact that nearly the only Linux ads I see are for embedded stuff.
  • by Catiline ( 186878 ) <akrumbach@gmail.com> on Wednesday December 05, 2001 @03:52PM (#2661194) Homepage Journal
    <b><i>But to conclude or suggest that the product is inferior for starters because is not sending the commercial competitors to the pawn shop...thats bunch of malarkey.</i></b>

    I'm a platform agnostic. Sure, I'll ask people "why are you running Windows?", but I don't then immediatly plug Linux as the grand solution.

    New users -and casual users- need Windows (or a Mac) so they don't have to worry about the details of configuring the system. Learning exactly how PnP works isn't something they are interested in. As long as the only thing they use the computer for is simple tasks -write letters or surf the net- Linux isn't for them.

    And on the embedded scale, much the same applies. I use a Handspring Visor; all because I want a OS on my handheld that <i>gets out of my way</i>. The OS needs to pull up whatever app I need- be it the calendar or notepad or whatever- and then dissapear- because the more memory / processor / battery power needed, the more it costs, and the less I want it.

    No system can be applied everywhere in the computing world and be the best solution everywhere. Linux has its' issues dealing with new users and embedded systems; this is not a flaw. Where Microsoft has failed is trying to write a system that can be used everywhere. It won't work; IMHO it <i>can't</i> work. Let's not drive Linux down that same road.
    • New users -and casual users- need Windows (or a Mac) so they don't have to worry about the details of configuring the system. Learning exactly how PnP works isn't something they are interested in. As long as the only thing they use the computer for is simple tasks -write letters or surf the net- Linux isn't for them.

      As long as they have to maintain it themselfs. But beeing an expert you're normally usually target for maintaing your friends computer. Recently a relative, who was totally unaware of computers asked me to indroduce him to it. And against all window users advice, I installed linux for him (with KDE), yes I installed everything for him as he is a complete new comer. (would be the same with windows). I showed him how to start the machine, how to shutdown, how to write emails, how to use konquerer to surf, how to use sysgard to kill hanged ups, etc. etc. Sure he hasn't seen a bash, and I didn't show it to him, but actually he does not need it. Do you think the KDE desktop is any harder to use as a windows desktop? Really not even a bit harder anywhere? And in contrast to windows if he calls me having a problem, I just have to tell him to go online, and can ssh into his machine looking what's going on.
  • First, I'm not an embedded systems programmer.

    But why the big fuss over Linux? As the article (or maybe a comment afterwards) mentioned, to get one of the RTOS distros/modifications costs money. So the licensing is a wash.

    Except for some specific platforms, it's hardly optimized. So there is a great deal of vendor specific work to be done. So, marginal time savings, if any.

    You aren't going to run Samba/Apache/LICQ on an embedded device, so the software availability doesn't really matter.

    Now, the comment from the guy from Intel seemed to make sense: in certain areas on certain hardware, Linux is a good thing. Unfortunately, this article is largely a waste, as it ignores the breadth of embedded systems, and attempts to paint the entire Embedded Linux effort with one stroke. Were the author to say that one processor with one OS were the end-all/be-all of embedded systems, he'd get laughed out of a job (one would hope).

    Saying that one OS has no/little place in embedded is merely the other side of this ludicrous coin. (BTW, again, I know next to nothing about embedded systems. If I can pick up on these glaring flaws, why should anyone give this article the time of day?)
    • There is a problem with running any variant of UN*X with a real-time system: the fact that it is possible for any process to be interrupted for an arbitrary and unpredictable amount of time. You can play games by using nice with negative values to reduce the probability of this happening, but you can't be 100% sure.

      Of course, "real-time" is poorly defined, and "embedded" is even worse. Nevertheless, in practice, these fuzzy blobs seem to go together. Embedded systems tend to need to be real-time, either because they are in an application that absolutely demands it (engine computer, perhaps) or the hardware on which they are running is so wimpy that time irregularities people wouldn't notice on much faster systems would be a big problem.

      Probably, big chunks of Linux, suitably hacked, would form a good basis for a variety of embedded devices. The kernel is already small, and it would be smaller. However, just taking the kernel per se and building an embedded application on top of it is a bit like the tail wagging the dog.

      • There is a problem with running any variant of UN*X with a real-time system

        Actually, I believe Solaris has kernel extensions which can be used to garuntee a process a minimum amount of runtime. But I could be wrong.

        I agree with most of your comment, though. Although "real-time" has a very good definition (A real-time problem is any problem in which the time taken to arrive at the answer is part of its correctness) people abuse the definition horribly. Embedded has no agreed on meaning.

        This reminds me a bit of the previous slashdot article on "XP-embedded". That's the product I think Linux has a chance to beat. High reliability, fat budget systems--embedded but not really real time.

        Oh--and I am an embedded developer. I love Linux. But 60us interrupt latency on a 800 MHz CPU* just ins't acceptable for a hard real-time system. If it means a compression artifact in my Tivo, no problem. If it means 60 kb of data loss from my Gigabit ethernet card, that's not cool. If it means none of my avionics systems respond for that long, it's out of here!

        *The guy says "Pentium" which is probably incorrect--I don't think they ever clocked those old chips that high. Not a very good author.

        • It's nice to read a good definition of real-time on Slashdot.

          Here's my old-fashioned list of the characteristics of an embedded system:

          System has a dedicated function (not general purpose)
          Real-time
          Code executes only out of ROM
          Scarse resources
          Code rarely updated
          Can be implemented in non-assembly langauge only if you're lucky
          Can use an OS only if you're very lucky

          The use of desktop operating systems like Linux or Windows wouldn't be appropriate for embedded systems given this list. Of course, the list is too restrictive for today.

          I think the new definition of embedded SW is really "any software not running on an established hardware platform". This robs from the term "embedded" any unique characteristic, so I think there isn't much value left in the word.
          • Good list. Here's how I would modify it for todays world:

            System has a dedicated function (not general purpose)
            Real-time capabilities for some systems
            Scarse resources (relative to general purpose systems)
            Code rarely updated
            Code stored on ROM, Flash, etc., not disk based.

            The parts about assembly language and operating systems I think are now obsolete. Resources are still scare, but there are plenty to write in C and have a small operating system to do scheduling and memory management.
        • Actually, I believe Solaris has kernel extensions which can be used to garuntee a process a minimum amount of runtime. But I could be wrong.

          I don't know that I'm not wrong either, so I asked the local Solaris guru. He said that later versions of Solaris provide prioctl, which is somewhat better than nice, but that he hadn't heard of any kernel extensions that provided guarantees or any way to make such guarantees to the process. I looked at the description of prioctl in his book, and while it contains some hand-waving about "real-time" processes, it falls short of making any guarantees.

          Although "real-time" has a very good definition (A real-time problem is any problem in which the time taken to arrive at the answer is part of its correctness) people abuse the definition horribly.

          That's a good definition, provided that it is clear we are talking about wall clock time. Unfortunately, it's a bit like the definition of "gender" (a grammatical marker in the sense that person and number are markers); nobody really pays much attention to it.

    • Actually dude, you probably can. I managed with some serious strain to get Samba sorta-running on the Etrax100lx. Not stable enough to deploy, but for an afternoon curiosity hack I was pleasantly surprised, and I'm sure it's nothing that can't be fixed.

      The thing with embeded linux is there are low overhead versions of many of the nice bits in linux. Boa for web serving does much , including php! , that Apache does, busybox provides a near complete unix toolkit, samba does infact work with soem massaging.

      None the less I agree that the article was a little narrow. Linux is clearly inappropriate for some ultra precise RT work, but it's a winner for a lot of consumer stuff like hand helds and the like.

      VX-works is really a winner for .. say .. routers and the like, but linux does rock for that geeky mp3 playing dishwasher you always wanted.
  • maybe RTEMS (Score:3, Informative)

    by e4liberty ( 537089 ) on Wednesday December 05, 2001 @04:02PM (#2661231)

    My embedded projects usually don't need virtual memory or processes, just memory protection and threads. So Linux is overkill as well as being too slow.

    On the other hand, the driver sources, the libm and libc, have all been useful starting points for either roll your own, or extending another RTOS.

    If this sounds appealing, and you need an RTOS, look at RTEMS [rtems.com] an open source RTOS with many ports.

  • by Zero__Kelvin ( 151819 ) on Wednesday December 05, 2001 @04:06PM (#2661253) Homepage

    Like so many things in the computer world, there is a need for education in the Real-Time embedded arena. When I was at the Embedded Systems Conference - Boston 2001, Red Hat's CTO gave a presentation on Embedded Linux, and touted RTLinux as the up and coming 'official' Real Time approach. In a later discussion with him, we agreed what everyone seems be missing here ...

    Most embedded systems are *NOT* hard real time systems. For those that are, there it the RTLinux wrapper that runs Linux as one of it's (lower priority) processes. Yet the people writing for sites like this have no clue and spread FUD, which the unfortunate reader often mistakes as factual.

    Will Embedded Linux ever be popular? It all depends on if the Embedded Systems Engineers ever get properly educated as to what it can do, and how. The only real drawback is footprint size. If you need your embedded application to be small and run on 8-bit Microcontrollers, then Embedded Linux clearly isn't for you. However, for the vast majority of serious applications, Moore's law continues to make Embedded Linux a more and more viable solution if the Engineers start addressing the learning curve. Of course, first, they have to know that such an effort is worthwhile. With FUD like this article spreads, it will unfortunately be longer until people get it. No big surprise here. Almost everyhting worth while gets early adopters, goes on hiatus, and then comes back as the new latest and greatest thing that everyone always new was going to fly. You gotta love the cycles of life!
  • How many designs and implementations did you go through before settling on the current one?

    VY: The current version is the result of three total re-writes and there is a new version in the works. The number of minor revisions is much larger than three.


    Heh... In a sense, this is a nice retort to the interview with the former Microsoft PH manager, whose interview was recently published on Slashdot. Sure, rewriting from scratch is a mistake. Whatever.
  • by sterno ( 16320 ) on Wednesday December 05, 2001 @04:17PM (#2661300) Homepage
    Is anybody else here getting a little tired of the very stale "Linux is doomed" mantra? Linux gets tried out in a new environment, and surprise, it isn't immediately successful. So then a bunch of writers publish articles about Linux being doomed in whatever arena it was tried in.

    Linux is doomed in the enterprise...
    Linux is doomed on the desktop...
    Linux is doomed in the embedded device market...

    How long have all of these other RTOS's been in use and development? How long has Linux been an option it this field? A company that is making good money developing under an RTOS they've been using for years and know every quirk of isn't going to switch to Linux overnight just because it's cool. In the long run Linux may provide some advantages that will give it a better market share, but to suggest it is doomed because it hasn't been an overnight success is ludicrous.

    The funny thing is that Linux can't ever be doomed because it will never go away. If Microsoft is blown up tomorrow by a government backed anti-trust commando squad, Windows will cease to be. But Linux, being GPL'd will continue to go merrily along no matter how many people conduct bad business ventures around it. I'll believe embedded Linux and enterprise Linux and desktop Linux are doomed when Linux goes out of business. Oh wait, it can't :)
  • It's Overkill (Score:2, Insightful)

    by jsfetzik ( 40515 )
    For the majority of embedded applications Linux is more then is needed. Sure something like Tivo profits from a 'full blown' OS, but most embedded situations don't need this. For most all that is really need is a fast task switcher and a couple of communication stacks.
  • by Syberghost ( 10557 ) <syberghost@@@syberghost...com> on Wednesday December 05, 2001 @04:49PM (#2661455)
    Hey, didn't Dell lay some people off? Gee, Windows must be dying.

    Didn't @Home go bankrupt? The Internet must be dying.

    FedEx has a hiring freeze; oh, no, people must be using the Post Office more!
    • FedEx has a hiring freeze; oh, no, people must be using the Post Office more!

      Really? they've a hiring freeze? I just saw the ads saying that FedEx will look for competent people everywhere in the world and hire them. Damn, I was beginning to believe them....
  • QNX [qnx.com] is much more appropriate for embedded work. It has protected-mode real-time tasks with latency guarantees. It has scheduling machinery for processes that need N milliseconds every M milliseconds, like multimedia handlers. And it has fast interprocess communication that's not a bolt-on to UNIX. And it's a real ROMable microkernel.

    I can't see running Linux on anything that doesn't have a hard drive.

    • by Anonymous Coward
      It all depends on what you're building. The projects I've been doing lately have something close to a real PC inside - because they actually need a big disk, a real TCP/IP stack with real network support, (QNX has issues with sockets, among other things) etc. So we run linux, and our clever method of dealing with hard-real-time is delegation. You need tight timing? Delegate that to a PIC or something. The PIC takes care of sync work and shares data with the PC-like system asynchronously over some flavor of serial bus (rs232, usb, ethernet, ...)
    • by Svartalf ( 2997 ) on Wednesday December 05, 2001 @05:47PM (#2661818) Homepage
      Linux will fit into spaces as small as a floppy and do very useful embedded tasks while being that trimmed down. You might also want to note that many embedded applications aren't needing rate monotonic scheduling, etc. like QNX offers (which is what you're referring to)- a substantial amount of embedded systems need a stable OS that provides some network and maybe some file support. QNX does this well, but at a rather large per-unit price for most embedded systems. Linux also does it well and offers NO costs other than providing source code for extentions to the kernel, etc.- and in many cases you don't need to alter the kernel or provide drivers as people have already done that for you.

      No, I'm not saying Linux is a panacea for embedded system designs, but QNX isn't the ultimate answer either. For things that QNX is a good candidate for, choose it, or the open sourced RTEMS (Which does a very good job of the realtime things). For everything else, why spend the cash on something that you'll never use even 10% of the functionality of?
    • It has protected-mode real-time tasks with latency guarantees.

      So does an implementation of realtime linux:

      http://os.inf.tu-dresden.de/drops
      http://os.inf.tu-dresden.de/fiasco
      http://os.inf.tu-dresden.de/LinuxOnL4

      It has scheduling machinery for processes that need N milliseconds every M milliseconds, like multimedia handlers.

      So does the DWCS scheduler for Linux Systems:

      http://www.cc.gatech.edu/~west/dwcs.html [gatech.edu]

      And it has fast interprocess communication that's not a bolt-on to UNIX.

      Huh?

      And it's a real ROMable microkernel.
      Huh? The Linux kernel is also ROMable. If you want a microkernel (something I think is a bit wasteful in something like an embedded system), go back up to that fiasco link I put up on top.
  • Success story (Score:5, Interesting)

    by Snafoo ( 38566 ) on Wednesday December 05, 2001 @06:06PM (#2661967) Homepage
    I'm a junior engineer at a small company producing (a fairly killer, IMO) embedded-linux (ix86 atm, but that could change next release) device. Although the RT side of things is not my schtick -- I'm writing some custom web software and working on our in-house embedded-linux distro --- I *do* know that our RT guy is the biggest linux fanatic I know. He seems to have no problems using the RT stuff that's freely available for the linux kernel, and kernel-versus-license-wise, we're simply going to release the stuff we need to keep proprietary (FPGA drivers and firmware-adjustment/config stuff) as kernel module(s).

    In fact, RT guy *regularly* slams anything that doesn't have adequate RT support, so I am left to assume that he deems to have a set of RT capabilities which is more than adequate. :)

    We're a small company, and running (like everyone else) under some rather tight fiscal constraints.
    AFAIK, linux is what is currently saving our collective bacon -- if we're going to compete with the economies of scale of the big boys (not to mention their 'Deep Pocket Error Correction Algorithm') we can't afford to license some proprietary OS or development environment and pass that cost on to our customers. We have to be clever; therefore, we use Linux.

    (Aside: I wish I could provide more details, but really, I'm more of a CS geek. My ideal level of abstraction is somewhere just south of lisp and north of Java. Assembly makes me go *bew*bew*bew*bew* (imgine index finger oscillating in front of lip). )
    • In fact, RT guy *regularly* slams anything that doesn't have adequate RT support, so I am left to assume that he deems to have a set of RT capabilities which is more than adequate. :)


      I recently attended a talk in which a NIST (National Institute of Science and Technology) guy spoke about his criteria for evaluating a realtime OS. He basically said that he's tested and evaluated every realtime OS under the sun and to him, RTAI (another realtime linux variant similar to the RT-Linux implementation Yodaiken worked on) is one of the best real-time OS's one can get on intel hardware. The worst-case numbers just about proved this to him. Really it was quite an interesting talk.. a lot of fancy statistical gymnastics goes into evaluating a realtime OS, and RTAI came out ahead.

  • by Hendersa ( 103381 ) <{gro.sulucci} {ta} {asredneh}> on Wednesday December 05, 2001 @06:31PM (#2662125) Homepage
    Reading Mr. Ganssle's view in the article on utilizing Linux as an embedded OS has really suprised me. I'm afraid that I'll have to disagree with his opinion on the issue simply because I actually have hands-on experience utilizing Linux within the embedded space. I've found that the Linux OS is a natural match to embedded platforms because the kernel and POSIX APIs of the OS can be customized in an intelligent manner to meet the size and processing requirements of a number of projects.

    Most engineers that are shopping for an embedded OS want an "out of the box" solution for their embedded device. They want to simply be able to pay X number of dollars and get an OS so that they can quickly move on with their embedded software development. "Generic" embedded OSs, such as WinCE, are indeed a quick fix to that problem. Those same "generic" solutions also lock your project into continous OS licensing costs for the lifecycle of the project, a kernel that can't be touched for optimization (at least, not without paying a hefty fee to the OS manufacturer), and often require larger system resources to compensate for being generic.

    Linux offers a unique alternative to these three problems. By leveraging against the open source development of the Linux kernel and the GNU POSIX APIs and OS structure, licensing costs for the OS can be considerably less per device (if you pay any licensing costs at all), simply because the licensing isn't priced to recover the hundreds of thousands of man hours put into developing Linux and the GNU toolchain. This can potentially turn a software cost of tens of dollars per unit into a few dollars per unit. When dealing with high volumes of product, this savings can be quite considerable.

    The Linux kernel can most certainly be optimized. Whether your organization optimizes the kernel itself (and you will have the kernel source code, thanks to the GPL) or if you pay another organization to do it, you won't find yourself staring at a kernel that is a black box. And make no mistake... you will need to optimize the kernel in some manner for your embedded platform. Many companies choose to leverage their savings on OS licensing costs towards kernel customization costs (i.e. spend less money on the OS and spend more making it BETTER). Also, if you are using Linux as an OS, you aren't left "holding the bag" if your embedded OS manufacturer goes out of business. Switching OSs can be an extremely costly process because it precipitates a porting processes of the embedded software as well.

    A generic Linux kernel straight out of a RedHat distribution will, as Mr. Ganssle has stated, require too many resources of an embedded device. That is why customization work is needed. The core of the kernel (memory management, process management, etc.) needs to be customized, and other portions of the kernel can be removed entirely in order to perform the needed optimizations. You certainly wouldn't want to put Windows 2000 on a simple embedded device... the required hardware resources would most likely be inflated in order to support the OS. In the same way, you wouldn't use a generic Linux kernel.

    The Linux embedded space is poised to explode in the near future, and I'm glad to see it happening. The Linux kernel lends itself well to customization, and the GNU toolchain offers a low-to-no cost alternative to expensive development tools, such as Tornado (VxWorks) or Microsoft Visual Studio. All in all, it looks like a bright future for the penguin.
  • The assumption that all development is in the corporate realm is most evident in this sort of article. Companies come and companies go, but the development of free software and hardware on which it can run goes on with or without corporate backing.

    We have a project to develop free hardware designs to which free software is being ported, with no corporate backing. For an example of an embedded controller to which Linux is being ported, look here:

    http://freeio.org/library/toast.htm
  • by Doppler00 ( 534739 ) on Wednesday December 05, 2001 @06:52PM (#2662258) Homepage Journal
    Are there any companies that specifically design embedded Linux development kits for college courses? If any company is interested in becoming successful selling embedded products they should produce low cost versions of their products that can be used in electronic engineering courses. Documentation is also very important. Without good documentation it's difficult to convince people to learn how to use your product.

  • What many people are overlooking is that embedded systems are not necessarily small...they're just embedded.

    The project I'm with at work is a phone switch. We've got dual boards, each with dual 100Mb ethernet, quad serial, fiberchannel, a 450MHz G3 cpu, and a gig of RAM. They run linux.

    We looked at QNX, but they would make the required changes to their memory mapping to support our app. We considered Montavista, but decided that we didn't need what they were offering. The kernel mods that have original ideas (intellectual property type stuff) are segregated into a loadable module so that it doesn't need to be GPL'd. All the other incidental stuff will of course be made available to our clients as required.

    The biggest advantage of using linux is the sheer user base. Except for the really far-out stuff, almost any normal issue has already been dealt with by someone and its just a matter of looking it up.

    While the companies that specialize in embedded linux may not be rolling in the dough, that doesn't mean that there isn't a lot of work being done. It may be that companies have simply decided that they can hire a programmer (or a team of them) for less than they could licence a product from another company.
  • we will know the secrets of everything.

    The car is just a variation on the DVD player which is just a variation on the space shuttle.

    Do you think power tools and space shuttles will find much in common to talk about?

  • A success story (Score:2, Informative)

    by BigDaddy ( 28409 )
    The author seems intent of finding someone or some group that is successfully leveraging Linux in the embeded market. Why doesn't he check out LynuxWorks [lynuxworks.com]?
    You may remember these guys from LynxOS. This RTOS (in true defintion of the term -- not in the LinuxRT version) runs on countless embeded platforms. Ever setup a JetDirect card on an HP printer? That's LynxOS.
    Well, these guys are doing a lot with Linux now. I attended a talk about two years ago, right before their product BlueCat [lynuxworks.com] (strikingly similar to RedHat, eh?) came out. My information may be out of date, but some of the stuff the guys talked about was very cool. An embeded tool-chain. Boot loaders. And most interesting source (and later binary) compatability with LynxOS (by which I mean that LynxOS would run Linux source). To quote from the web page: BlueCat Linux applications can be migrated to the LynxOS platform with no loss of functionality and with minimal effort or delay. LynuxWorks development tools support both operating systems so there are no new tools to purchase and no new learning curves. This all means that customers can develop using BlueCat Linux and then quickly migrate and deploy applications to LynxOS when real-time needs emerge. Anyway, as I said, my info maybe out of date, but these guys shouldn't be overlooked. Oh, and for all who are wondering, I am in no way connected to this company.
  • PalmOS is embedded, but not realtime. Most folks don't need it.

    Me, I'll take a cheap 386-class processor in a handheld, 32 megs ram, some flash, and I'll slap Linux on it. I'd love to compile gcc on battery power and have it not be on a laptop.

A morsel of genuine history is a thing so rare as to be always valuable. -- Thomas Jefferson

Working...