BSD Real-Time Operating System NuttX Makes Its 100th Release: NuttX 6.33 64
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."
Re:What makes an OS realtime? (Score:2, Insightful)
Re:What makes an OS realtime? (Score:4, 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.
Re:This isn't BSD! (Score:4, Insightful)
If Timothy wrote the headline, yes.
Yes, and it was a REAL real-time OS, not NuttX (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