Slashdot Mirror


BSD Real-Time Operating System NuttX Makes Its 100th Release: NuttX 6.33

paugq writes "NuttX is a real-time operating system (RTOS) with an emphasis on standards compliance and small footprint. Scalable from 8-bit to 32-bit microcontroller environments, the primary governing standards in NuttX are POSIX and ANSI standards. Additional standard APIs from Unix and other common RTOS's (such as VxWorks) are adopted for functionality not available under these standards, or for functionality that is not appropriate for deeply-embedded environments. NuttX was first released in 2007 by Gregory Nutt under the permissive BSD license, and today the 100th release was made: NuttX 6.33. Supported platforms include ARM, Atmel AVR, x86, Z80 and others."

9 of 64 comments (clear)

  1. Re:Ambitious by OzPeter · · Score: 4, Informative

    Seems like a pretty ambitious project to run on a Z80. Good thing this isn't April 1st.

    Git off my lawn you young whippersnapper.

    I was running OS-9 on a Tandy Colour Computer (6809E, 2MHz) back in the late '80s. A full preemptive multi-tasking multi-user unix like system in a tiny little box. I even had a GUI running on it (well for about 1/2 an hour as it was too frisking slow!). Its amazing what you can do if you avoid bloat.

    --
    I am Slashdot. Are you Slashdot as well?
  2. Re:What makes an OS realtime? by cold+fjord · · Score: 4, Informative
    --
    much of left-wing thought is a kind of playing with fire by people who don't even know that fire is hot - George Orwell
  3. Re:What makes an OS realtime? by tiagosousa · · Score: 4, Informative

    Had a friend ask me this once. I honestly couldn't come up with an answer. You look at the nuts and bolts of O/S's both realtime and non realtime, and it's basically all the same stuff, with more emphasis given to lower transaction times. Is it just a buzzword? Not trying to troll, but if someone has a definitive answer I'd love to hear it.

    Realtime simply means that certain operations are guaranteed to complete in a given timeframe. This is harder than it appears.

  4. Re:What makes an OS realtime? by elfprince13 · · Score: 4, Informative
    Did you bother looking it up?

    A real-time operating system (RTOS) is an operating system (OS) intended to serve real-time application requests. It must be able to process data as it comes in, typically without buffering delays. Processing time requirements (including any OS delay) are measured in tenths of seconds or shorter. A key characteristic of an RTOS is the level of its consistency concerning the amount of time it takes to accept and complete an application's task; the variability is jitter.[1] A hard real-time operating system has less jitter than a soft real-time operating system. The chief design goal is not high throughput, but rather a guarantee of a soft or hard performance category. An RTOS that can usually or generally meet a deadline is a soft real-time OS, but if it can meet a deadline deterministically it is a hard real-time OS.[2] An RTOS has an advanced algorithm for scheduling. Scheduler flexibility enables a wider, computer-system orchestration of process priorities, but a real-time OS is more frequently dedicated to a narrow set of applications. Key factors in a real-time OS are minimal interrupt latency and minimal thread switching latency; a real-time OS is valued more for how quickly or how predictably it can respond than for the amount of work it can perform in a given period of time.[3]

  5. Re:What makes an OS realtime? by EMG+at+MU · · Score: 3, Informative

    A hard real time system has to be deterministic. Operations have to happen exactly at the right times, and take exactly the same amount of time every time. Nothing can go on inside the OS that could delay or slow down the vital operations of the embedded device.
    That being said you can have a real time os and do things that will make your system not deterministic. Unless specially designed (ethercat ect...), filesystems and network communication are typically non deterministic.

    I suppose another thing I associate with real time is concept of a watch-dog. If you have a task that monitors some A2D and it absolutely has to run every 10ms in order for the system to function properly, you want your watch-dog to trip if your task doesn't run within some window.

  6. This isn't BSD! by l2718 · · Score: 4, Informative

    The headline creates the impression that this is a real-time adaptation of BSD (the "Berkeley Software Distribution", that is, BSD Unix). In fact, this OS is an original development; it is merely licensed under the terms that BSD is licensed under.

    Would the headline have said "A GNU real-time OS" if it was licensed under the GPL, the license of the GNU operating system?

    1. Re:This isn't BSD! by Lawrence_Bird · · Score: 3, Insightful

      If Timothy wrote the headline, yes.

  7. Re:What makes an OS realtime? by gman003 · · Score: 3, Insightful

    General gist:
    A realtime OS is designed to handle a system that needs to operate in real time, generally one operating some sort of machinery. As such, the scheduler can offer certain guarantees - interrupts will be processed within a certain time limit, processes will get a certain amount of CPU time, and so on. A regular OS scheduler does not offer these guarantees, because they can come with performance limitations in peak scenarios.

    Or to put it another way, a realtime OS aims for lowest maximum latency, a regular OS aims for lowest average latency, or potentially even highest average bandwidth.

    Imagine an airplane (it's like a car analogy with wings). You have some sensor and a control surface, and every millisecond that sensor reads an input and that needs to affect the control surface in a very simple way. A regular OS scheduler does not guarantee that some other process won't have hold over the CPU for 2ms, while a realtime scheduler can be told to give you that guarantee, and even told how to prioritize tasks if the CPU is overutilized. In a plane, or other machinery, that guarantee can be very important because if things don't happen when they need to happen, things break.

  8. Yes, and it was a REAL real-time OS, not NuttX by Anonymous Coward · · Score: 3, Insightful

    Real real-time OSs have various elements that are REQUIRED for real-time:

    - Masked interrupts (you can PREVENT hardware interrupts from actuating code, instead scheduling future software handlers)
    - Determnisitic interrupts (so that you can tell WHEN the clock will force action, not "generally" when clock "will or will later" react)
    - Codepath timings (so you know how long it takes to execute X, and X won't change during the life of the system).

    BSD-based systems are knocking on the door of being usable. It will be a while before these "We're true to our 1970s
    Unix codebase and we don't play well with others copyleft" systems can catch up to the 20th century, the 21st century,
    and real-time software-design and OS requirements.

    I love watching ants build anthills. They are so proud of their work. They make great molten-lead art.
    Just like BSD being used for anything other than pretending it's almost as good as linux, neither of
    which are good for real time OSs.

    M