Slashdot is powered by your submissions, so send in your scoop

 



Forgot your password?
typodupeerror
×
Operating Systems Software Unix BSD

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."
This discussion has been archived. No new comments can be posted.

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

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

    I've seen some Z80 based software that implemented various bits of Unix-like functionality. Some of them appeared to be pretty impressive, but nothing like the list at the site. I would assume that the available functionality is going to vary by architecture given the constraints present on the low end.

    • Re:Ambitious (Score:5, Informative)

      by OzPeter ( 195038 ) on Thursday February 20, 2014 @05:10PM (#46299355)

      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 [wikipedia.org] 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 know very capable systems could be built on the hardware of the day, especially when assembly wizards were at work, and many people loved OS-9, but I had to balk at NFS. I quite agree about the bloat comment.

      • You beat to it, posting that. I miss my old CoCo
    • UZI: UNIX Z-80 IMPLEMENTATION [cpmclub.de]

      UZI is an implementation of the Unix kernel written for a Z-80 based computer. It implements almost all of the functionality of the 7th Edition Unix kernel. UZI was written to run on one specific collection of custom-built hardware, but since it can easily have device drivers added to it, and it does not use any memory management hardware, it should be possible to port it to numerous computers that current use the CP/M operating system. The source code is written mostly in C, and was compiled with The Code Works' Q/C compiler. UZI's code was written from scratch, and contains no AT&T code, so it is not subject to any of AT&T's copyright or licensing restrictions. Numerous 7th Edition programs have been ported to UZI with little or no difficulty, including the complete Bourne shell, ed, sed, dc, cpp, etc.

      UZI180 - Unix Z80 Implementation for the Z-180 (UZI180) [sourceforge.net]

    • by ColaMan ( 37550 )

      Well it certainly looks better than CP/M.
      You could always emulate your way out of trouble on the low end I suppose, but then you'd suffer a pretty hideous performance/memory hit.
      But even the 'low end' is pushing 20MHz these days.......

    • Comment removed based on user account deletion
  • Cool... anyone tried it on Raspberry Pi?

    • by paugq ( 443696 )

      There have been several threads on NuttX on the RPi and the "problem" is: what to do with so many resources? NuttX does not need 512 MB or RAM. It does not even need 512 *KB* of RAM! But yes, it's completely possible and there was a thread recently about using NuttX as a desktop operating system. Maybe not that crazy.

      • by Anonymous Coward

        Then the whole thing must be able to fit into L2 cache on modern processors, making it screaming fast.

        • Maybe, maybe not. There have been systems built in the past using all low-latency static memory and it made less of a difference than expected. Hard to say, maybe things would be different now. You would certainly want to test it, not just assume.

  • 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.

    • by OzPeter ( 195038 )

      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.

      You can get into all sorts of discussions about interrupts and responsiveness etc but the best definition I ever saw for a Real Time system was:

      It gets the work done in the time given

    • by cold fjord ( 826450 ) on Thursday February 20, 2014 @05:20PM (#46299469)
      • Why Do I Need It?

        Cause when it crashes (RTOS), it will crash "hard" and you instantly know you need to reboot it... (now).

        Where as a non-RTOS "crashes" the OS will still allow the mouse to move, disk churning, UI frozen, you will wait 10 seconds wondering WTF? and then wait +3 as you hold the power button to reboot it and then another 2 minutes for it to reboot and login.

        Basically you need a RTOS to save time from waiting.

    • by tiagosousa ( 1931172 ) on Thursday February 20, 2014 @05:22PM (#46299491) Homepage

      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.

    • by elfprince13 ( 1521333 ) on Thursday February 20, 2014 @05:30PM (#46299593) Homepage
      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]

    • Re: (Score:2, Insightful)

      by chuckugly ( 2030942 )
      It's a buzzword more than anything. A realtime system is one in which a late result is an incorrect result, so logically an RTOS would try to make assurances that late results due to factors outside the control of the application programmer won't happen. This is impossible to flatly guarantee; ultimately it's up to the system integrator to determine whether a given implementation adequately meets the timeliness demands and no RTOS is going to assure that. The good ones will get out of the way and help the i
      • > This is impossible to flatly guarantee ... no RTOS is going to assure that.

        Does that include a "trivial" RTOS, or are you speaking only of an RTOS of significantly complexity? It would seem that on an MCU, the very simplest OS, the "HelloWorld.asm" of operating systems, would absolutely run each of its functions in the exact same number of cycles, every single time. On a Z80, for example, INC always takes exactly one cycle, and ADD take two cycles, every time.

        On a Core processor it would be much less

        • > This is impossible to flatly guarantee ... no RTOS is going to assure that.

          Does that include a "trivial" RTOS, or are you speaking only of an RTOS of significantly complexity? It would seem that on an MCU, the very simplest OS, the "HelloWorld.asm" of operating systems, would absolutely run each of its functions in the exact same number of cycles, every single time.

          Barring a hardware failure or power failure or .... There are things(tm) that the (RT)OS just can't fix. Some fix/manage more than others but in the end it's up to the system integrator and customer to decide if a system is a suitable real time solution.

    • I think it's whether the scheduler can make guarantees about the time granted to a process. In a Desktop OS, the scheduler can arbitrarily decide not to give a process no new time slots.
      Or whatever Wikipedia says [wikipedia.org].

      • by Agripa ( 139780 )

        And on a lot of desktops, the code operating in System Management Mode can arbitrarily decide to interrupt anything.

    • by EMG at MU ( 1194965 ) on Thursday February 20, 2014 @05:35PM (#46299635)
      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.
    • by gman003 ( 1693318 ) on Thursday February 20, 2014 @07:18PM (#46300471)

      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.

    • Some years ago in motor racing's Formula 1 competitions, when computer-controllers were in their infancy, Ferrari ran into driver problems -- they kept burning up tires and/or crashing. As it was well-known at the time that Ferrari motors were more powerful than their competition, there was a lot of "expert" press and fanboy head-scratching.

      In the off-season, FIAT (Ferrari's parent company) bought Wind RIver RTS, which ran as 32-bit instead of 16, giving Ferraris more even (deeper bit depth) throttle respo

      • by Anonymous Coward

        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 wi

        • The culture of understanding operating system design and coding has eroded so much and slashdot mods are so random that there are none left who understand what real-time os programming is all about. That's why the parent is mod 0. Sadly this is just one of many topics that random slashdot mods know nothing about, and vote things down because they don't say PS-4 or Kinect or Supermodels or whatever. It's not the beginning of dumbing down slashdot and it's not the end, but it's definitely part of the proces

          • by qpqp ( 1969898 )
            Mod parent and GP up!

            we'll quit reading

            The community already moved to soylent.

          • Well, I have mod points and I do appreciate the GP. But you have to understand that AC posts start at 0 no matter how good they are, it can take time before someone with mod points happens to come across it to change that.
            Unfortunately my mouse slipped and I accidentally modded it 'Redundant' instead of 'Insightful', sorry about that. Hopefully this post will cancel that.
      • by gl4ss ( 559668 )

        look man, being 8 bit or 32bit in precision has damn all fucking nothing to do with being real time or not.

        however.. I have a computer analogy here.

        x86 running dos runs real time. thus, it'll run every time the same speed(ok ok hd might have return in inexactly the same time but still, you could just create a simple bat that set the time to 0:00:0 and ran the game, resulting in the game copy protection asking the same question every time...).

        being rtos is not about being faster, not about higher precision,

        • Now, think about what you're saying: that fineness of control means nothing in a racing car.

          Do you stand by that opnion?

    • by LoRdTAW ( 99712 )

      See my response here: http://slashdot.org/comments.pl?sid=4829197&cid=46333375 [slashdot.org]

      In a nutshell real time implies determinism, meaning it responds to interrupts or allows a task to run in a given amount of time in a guaranteed manner. E.g. if you needed to respond to an interrupt in less than 100us or a task MUST RUN every 10ms, an RTOS can guarantee that provided the hardware can handle the task at hand. in a timely manner.

      Some people call a near lag free video display from a camera to a monitor real time

  • by quantumphaze ( 1245466 ) on Thursday February 20, 2014 @06:32PM (#46300119)

    This looks interesting but I can't find any information on whether it can run an SSH server or HTTPS on their site or through google. Does anyone know if it would be possible to port something Dropbear SSH [ucc.asn.au] to NuttX (assuming the CPU can handle it)?
    They claim they have a POSIX-like system [nuttx.org], which Dropbear needs so it should be possible, but has anyone done it yet?

    • RTFM!

      From the FIRST PAGE of the web site under Networking.

      BSD compatible socket layer.

      Networking utilities (DHCP server and client, SMTP client, TELNET client, FTP server and client, TFTP client, HTTP server and client). Inheritable TELNET sessions (as “controlling terminal”).

      NFS Client. Client side support for a Network File System (NFS, version 3, UDP).

      A NuttX port of Jeff Poskanzer's THTTPD HTTP server integrated with NXFLAT to provide embedded CGI. UDP Network Discvory, XML RPC Server.

      • by Chryana ( 708485 )

        And I think you should avoid posting at all, ever, if you're going to be such an ass to answer a simple question. I thought the question was interesting because I was curious about the capabilities of this OS, yet not sufficiently to go find out this information. Well, thanks for nothing. Jerk.

        • In his defense, his username is Required Snark.
          • by Chryana ( 708485 )

            I did notice that detail before posting. I checked the definition of the word first, and I thought his comment was too insulting to be defined as snark. However, English is not my mother tongue, so I am willing to recognize that I could be wrong there. In any case, I really don't think this kind of comment is welcome on any public forum, yet it was modded up. I guess some people agree we should be kicking out the users who don't read the articles linked in Slashdot stories (right...), or they don't mind rec

  • This isn't BSD! (Score:5, Informative)

    by l2718 ( 514756 ) on Thursday February 20, 2014 @07:16PM (#46300459)

    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?

    • Re:This isn't BSD! (Score:4, Insightful)

      by Lawrence_Bird ( 67278 ) on Thursday February 20, 2014 @08:20PM (#46300875) Homepage

      If Timothy wrote the headline, yes.

    • by LWATCDR ( 28044 )

      I was wondering about that. It does look really interesting but it is not BSD Unix but that does not mean that it is not cool.

    • by hawk ( 1151 )

      No.

      It would be labeled GNU/RTOS, and everyone who objected would be accused of ignoring RMS' contribution . . . :)

      hawk

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

      No it would have said a GPL operating system.

      It just happens to be that in the base of BSD the OS and License have the same name.

    • I was wondering about this as well. Already, there is a BSD RTOS - it's the Minix microkernel w/ NetBSD userland. So BSD already has an RTOS.

      So this NuttX - is it a POSIX compliant or UNIX like OS? Or is it something totally different - like QNX, VxWorks, et al? Is it a microkernel based OS like QNX or Minix, or a monolithic OS, like HP-RT (Real time HP/UX for PA-RISC)? From the list of microcontrollers given - Z80, Atmel AVR, I'm getting the impression that it's a lot less than a UNIX

  • The summary doesn't give a good idea of the scope of the project. The lead developer is targeting chips with low pincount. He considers more powerful smartphone class ARM's like found on the Raspberry Pi and Beaglebone Black to be too powerful for his project to make sense, and recommends running linux: http://comments.gmane.org/gman... [gmane.org] That said, he offered to help if someone else wanted to do a port for some reason.

This restaurant was advertising breakfast any time. So I ordered french toast in the renaissance. - Steven Wright, comedian

Working...