Become a fan of Slashdot on Facebook

 



Forgot your password?
typodupeerror
×
Open Source Operating Systems Linux

Meet Linux's Little Brother Zephyr, a Tiny Open Source IoT RTOS (linuxgizmos.com) 130

DeviceGuru writes: The Linux Foundation has launched the Zephyr Project, to foster an open source, small footprint, modular, scalable, connected, real-time OS for IoT devices. The Zephyr Project's RTOS implements both a small footpoint microkernel and an even tinier nanokernel, and is the result of Wind River contributing its Rocket RTOS kernel to the Zephyr Project. (Wind's Rocket RTOS will now become a downstream commercial distribution based on Zephyr sources.) To get a sense of Zephyr's benefit, its nanokernel is said to be able to run in as little as 10KB of RAM on 32-bit microcontrollers, whereas a minimalistic Linux implementation like uClinux needs upwards of 200KB. The Linux Foundation hopes to see cross-project collaboration between the Zephyr and Linux communities. Technical details are at the Zephyr site.
This discussion has been archived. No new comments can be posted.

Meet Linux's Little Brother Zephyr, a Tiny Open Source IoT RTOS

Comments Filter:
  • by Anonymous Coward

    So, it's a tiny computer. What makes a device an IoT device? Does it just need to be a network connected device? Is a Raspberry Pi an IoT device? Is a smart phone? An IP phone? A smart TV? A desktop computer? A laptop? A netbook? A tablet? I need a solid definition so I wont be annoyed when I see "IoT".

    • Re:IoT (Score:5, Informative)

      by buchner.johannes ( 1139593 ) on Thursday February 18, 2016 @12:53PM (#51535287) Homepage Journal

      I guess the definition for IoT devices is something that is "a device not primarily used for computation that can be controlled/accessed through the Internet". For example a washing machine, a watch, a fridge, heat controllers, windows (the physical ones that you can open), smart meters.
      IoT then also refers to a time where these would become extremely commonplace, in the sense that many types of devices are connected to the internet in everyones home/work/public areas.

    • Re:IoT (Score:5, Funny)

      by Sax Russell 5449D29A ( 4449961 ) <sax.russell@protonmail.com> on Thursday February 18, 2016 @12:57PM (#51535307)

      What makes a device an IoT device?

      If it floats on a cloud, runs off the willpower of app developers and is a security and privacy nightmare. Then it's IoT.

    • Re: (Score:3, Insightful)

      by Anonymous Coward

      Don't know why some idiot modded you down. It's a legitimate question.

      IMHO it's pretty hard to define IoT in any way that doesn't include smartphones, unless the definition contains words like, "..but isn't a phone."

      Or maybe it's cost. If it costs over $50, then it's not a thing: it almost certainly has a more specific name, like "phone" or "tablet" so that it doesn't have to fall back to using its general class of "thing."

      (I used to think it might be defined by whether or not the device does any I/O direct

    • Any circuit that has it's I/O channel access abstracted via TCP/IP connections such that it's data is globally addressable.

      Or an id short of an idiot.
    • by drwho ( 4190 )

      IoT refers to an object that has no really good reason to be connected to the Internet, and a few reasons why it shouldn't, but will be anyhow. This is all in an attempt to use up all of the IPv6 IP address space.

    • More to the point, Zephyr is a new RTOS that's just like FreeRTOS, RTEMS, eCOS, EmbOS, uITRON, ThreadX, VxWorks (shudder), and others, but without the significant support ecosystem and established pedigree.

      Just one question: Why?

    • by Mouldy ( 1322581 )
      Define "computer".

      I wish someone could define it in a highly specific way rather than just using it as a umbrella term for so many distinct devices; desktop PCs, laptops, ultrabooks, Macs, calculators, phones, abaci, difference engines etc.

      "IoT" means Internet of Things. So like a "computer" is anything that can compute, "IoT" as a thing that has some connectivity to the Internet. So yes, all of the things you mentioned could fit into the definition of "IoT". Smart TV = probably is a thing with Intern
    • If it's a thing, and it connects to the Internet, it's part of the Internet of Things.

      Usually this is reserved for "things" whose primary purpose is not what you'd use a desktop computer for. A RasPi hooked up to a keyboard and monitor running LibreOffice? Not a thing. The same RasPi running headless to control your hot tub? Thing.

      It's the same blurry line that differentiates "embedded" and "non-embedded" systems. On one side you have devices that are clearly embedded, IoT devices. On the other side

  • by Anonymous Coward on Thursday February 18, 2016 @12:47PM (#51535253)

    I've been seeing piles and piles of new chips that come with integrated 32bit arm cores, flash, and ram. And they're dirt cheap. Nowadays it seems pretty much all non-trivial chips include an ARM core with enough storage and ram to run circles around any desktop computer found in the 80s or even early 90s.

    About 9 dollars shipped for a hacker-friendly breakout board based on the NRF51822.. And that's not just a processor. It's a Bluetooth 4.0 radio that supports bluetooth LE and all the other bells and whistles. 15kb ram, 256k flash, and whole mess of features to get data in and out. Seems right in the footprint for this little OS.

    Add bluetooth and a fairly powerful "micro" to any project for less than 10 bucks.

    http://www.ebay.com/itm/-/400970594571

    Development board for the above module:

    http://www.ebay.com/itm/-/400967553827

    Browse that seller of the above items and be amazed at the absolutely insane amount of dirt cheap hacker friendly electronics you can get shipped from china for just a few bucks. Granted specs may be exaggerated and you'll want to do a little poking and testing on your own.. But that's half the fun, isnt it? :)

    • electronics you can get shipped from china for just a few bucks

      I'd be willing to pay five times the asked price for items like these if they were manufactured in Europe.

    • Nowadays it seems pretty much all non-trivial chips include an ARM core with enough storage and ram to run circles around any desktop computer found in the 80s or even early 90s.

      In fact, ARM at 4MHz (reading ROM) or 8MHz (after copying ROM into RAM) was running circles around 80s desktops in 1987 - I used to emulate an IBM PC on an Acorn Archimedes [computinghistory.org.uk] at that time.

      • However the modern low power ARMs are Cortex-M series, which are very different from the more power hungry ARM from the 80s. Even the commonly used ARM7 is very high power in comparison to what is needed for an unattended battery powered sensor monitor.

    • Browse that seller of the above items and be amazed at the absolutely insane amount of dirt cheap hacker friendly electronics you can get shipped from china for just a few bucks.

      Now they throw the backdoors in for free!

    • A similar situation exists with WiFi - the ESP8266 [iot-playground.com]. These things can be bought for under $2 and include a 32-bit micro-controller with WiFi. Amazing.

    • The companies are jumping on the bandwagon. A couple years ago there were no good chips out there that met the needs of being battery powered for over a decade with low power wireless capabilities. Today there are a handful all in pre-release stages. There was a gap in the market and it's staring to be filled. The biggest snag for most is being low power, as in 1 microAmp or less sleep current, as that has not been a common feature request by customers until recently.

      15K RAM is too small in my view if y

  • by MouseTheLuckyDog ( 2752443 ) on Thursday February 18, 2016 @12:50PM (#51535271)

    Is systemD part of the OS?

  • Does 10K vs. 200K vs. 5MB actually matter? RAM is so cheap, so small, and so ubiquitous today.

    I appreciate that it doesn't need gigabytes of memory... but what does saving 190K of memory really get that wasn't possible before?

    • by asherh ( 149627 ) on Thursday February 18, 2016 @01:12PM (#51535437)

      IoT devices will typically only have a few kB of RAM, so yes, it does matter. As a data point, I'm working with an ARM Cortex-M0 processor at the moment and it has a grand total of 128kB program memory (flash, so you can't use it for read/write data storage) and 16kB RAM. This is an entirely typical processor for this sort of IoT application.

      • Why use an M0? Does it really save power? For many IoT applications it's a race-to-quiescent that matters. That is you wake up, do something simple and shut down. The longer it takes you to do something the longer one uses power. SO in the end it's how much energy the task takes not how fast you do it. And up to a point, faster systems often have better not worse energy performance per task. This is in part because ancilliary systems have to be power up too while the CPU is powered up and partly beca

        • Fast is sort of relative. The amount of state transitions in the chip determines most of the power, so running at a slower clock rate does not necessarily reduce power usage. All of the ultra low power chips I've seen have ways to turn off the clock to various modules or even power down entirely which solves a lot of that problem.

          Cortex-M0 also has less die space overall compared to a Cortex-M3/M4, fewer transistors, smaller pipeline, and so on. So what it loses slightly in speed it makes up for in power

    • by Anonymous Coward on Thursday February 18, 2016 @01:16PM (#51535473)

      Take a look at the specs on most microcontroller boards out there and you'll feel very differently about saving 190KB. In some cases that's more memory than the board comes with.

      * TI Tiva Launchpad - 32 KB - http://www.ti.com/tool/ek-tm4c123gxl
      * ST Discovery Board - 190 KB - http://www.st.com/web/catalog/tools/FM116/SC959/SS1532/PF252419
      * Olimex STM32E407 - 192 KB - https://www.olimex.com/Products/ARM/ST/STM32-E407/open-source-hardware
      * Arduino 101 - 24 KB - https://www.arduino.cc/en/Main/ArduinoBoard101
      * Intel Galileo - 512 KB - http://www.intel.com/newsroom/kits/quark/galileo/pdfs/Intel_Galileo_Datasheet.pdf

      I could go on, but you get the point.

      • Demo boards oftne use the higher end of the product line that has more RAM because it's more convenient for experimenting or evaluating. In actual production it's common to use the lower end of the line to save money or power.

      • 640KB ought to be enough for anyone - apocryphal Bill Gates circa 1981. :)

    • Ever wonder why your current computer seems to run as fast as one from a decade ago? Shouldn't everything load much faster and be more responsive?

    • It matters a lot depending on the type of embedded chip you are using. Unlike microprocessors, microcontrollers include the RAM on chip in the form of SRAM. This is to save money, power, or both. The PIC32MX795 microcontroller that I'm working on right now only has 512k of SRAM and it is the largest offering from PIC. On the small end PIC10s can have as little as 16 bytes! With tons of chips in-between. On that RAM you might need your OS, TCP/IP stack, USB Host stack, FAT filesystem stack, graphics stack, a
    • Microcontrollers usually have limited amounts of internal SRAM. Most are less than 200 kB.
    • RAM takes power! When the device is in very deep sleep mode, any RAM that is retained has to be periodically refreshed and more RAM means more current to do that.

      And this is just the OS remember, not a full system. The less that the OS uses the more the system and application can use. It is common for Cortex-M series processors to provide 16 or 32K RAM, where even taking up 10K for the OS use is sucking up a large amount.

      • The RAM doesn't have to be refreshed if it is SRAM, although it still needs power.

        • Sorry, it is "recharge" so I mispoke. And it is low leakage SRAM. The periodic recharge is not necessarily only for the SRAM but for all the components that are not completely powered down during a low power sleep mode (that is, voltage has not been cut). At least on the systems I've used, low power may be handled different on others.

  • Technical detail (Score:3, Interesting)

    by fustakrakich ( 1673220 ) on Thursday February 18, 2016 @12:59PM (#51535327) Journal

    How fast does it power up? This is one area of computers that makes absolutely no sense. If something can be stored, why can't it be stored in a ready-to-run state? Why aren't drivers on ROM inside each device? My radio comes on instantly, so should the damn computer. We're back to the days of having to wait for the TV to warm up, shouldn't be that way.

    • Drivers in ROM ? For what operating system, and version ?
      • Doesn't matter. All it should need is standard input. The ROM does the rest.

        • So it doesn't matter if the CPU is an ARM or x86, or what the environment looks like ? That's an impressive ROM.
          • The ROM is already matched to the CPU on the same board, or even on the same chip. Isn't that kinda what an SoC is? I'm not sure what you mean. Text/graphics to a printer or video to a monitor are the same regardless of the CPU. I only question the necessity of caching to RAM on every power up, it should just be nonvolatile with everything already there, instantly ready to run. ROM can store a fresh image if something breaks. Something is horribly wrong when my router, printer, computer, phone takes two min

  • In this day and age of net threats, who on earth is going to expose something to the internet, whereby all processes including the kernel run in a single memory address space (i.e. no concept of rings or protected mode)?
    It will be a potential security nightmare. I was quite impressed and excited until I saw that news about the memory map. :(
    We used an older version of vxWorks in my previous job that ran that same way, and just chasing bugs down (that crashed the system hard or even overwrote the onboard fla

    • by Anonymous Coward

      The current generation of ARM Cortex microcontrollers don't, as far as I know, include hardware a MMU. I agree that it'd be pretty awesome apply this sort of protection to embedded systems, but it seems that the hardware isn't ready for that yet, unless you achieve it in software using techniques such as static analysis, JIT, etc.

  • by monkeyxpress ( 4016725 ) on Thursday February 18, 2016 @01:09PM (#51535399)

    This is really an 'OS' in the loosest sense. The processors it targets (mostly ARM Cortex M) do not have a memory manager, so all these things really do is provide a basic multi-threading system, which is actually pretty trivial to implement on a micro-controller if you can be bothered. I mean, a decent embedded unicode handling library or buddy allocator is a more complicated endeavour, but not as media worthy as saying your wrote a whole 'OS'.

    For what it's worth, FreeRTOS has been providing a lightweight and portable kernel that basically does what this does for about a decade now. Like windriver, they also try to leverage the exposure they get from the free code to sell their commercial version.

    The interesting thing though is that embedded processing power is really jumping along at an incredible pace now. To be honest, I think in another five year anything that requires connectivity or has a screen will just be using a Linux derivative (or QNX). Memory and processors are becoming ridiculously cheap, and in many cases the few dollars saved by using a resourced constrained chip are not worth the effort of having to port a graphics library, driver etc etc.

    • What is the difference between this, FreeRTOS, ChibiOS or any of the other open source RTOSes already on the market?

      The biggest news here is that Wind River is opensourcing their RTOS.

  • by Lumpy ( 12016 ) on Thursday February 18, 2016 @01:44PM (#51535725) Homepage

    Running the application on the bare metal is just fine.

    Sorry but very rarely do you need a full blown OS. my weather station does not need an OS, it just needs it's program to run and loop over and over and over again running directly on the hardware.

    I can see things like Amazon Echo using an OS, but then it's processing power and capacity can easily run a full blown linux. no need for anything that is super tiny.

  • Feels like the license should have been in the summary. Whatever your opinions on copyleft in other areas, a GPLv3'd RTOS would be at a huge disadvantage adoption-wise. It'll be good to have an Apache licensed RTOS with some serious momentum behind it.

  • by Anonymous Coward

    Microware needs to start porting OS-9 to these sorts of things.

  • That the Linux name will be close to ukernel and nanokernel stuff. Also prof. Tannenbaum will.
    • What exactly does 'microkernel' or 'nanokernel' mean here? It's certainly not about #lines of code!
  • So, unified kernel/userspace. minimal error checking. Some error checkign available, but optional.

    The Internet of never updated, easily pwn3d things.

  • by drwho ( 4190 ) on Thursday February 18, 2016 @06:29PM (#51537981) Homepage Journal

    look in the 'about' page, in the 'export compliance' section: "(c) for use in connection with the design, development or production of nuclear, chemical or biological weapons, or rocket systems, space launch vehicles, or sounding rockets, or unmanned air vehicle systems."

    More reason to develop software ex-US, so crazy export compliance doesn't hobble you.

  • better alternatives (Score:4, Informative)

    by Gravis Zero ( 934156 ) on Thursday February 18, 2016 @08:23PM (#51538627)

    "The Zephyr Project's RTOS" is limited to x86 and ARMv7. x86 isn't for anything small and just using ARMv7 doesn't leave you with many options for chips.

    Contiki [wikipedia.org] and ChibiOS/RT [wikipedia.org] have already been ported to run on damn near anything and yes, only still only require 10KB of RAM.

  • small footprint, modular, scalable

    Those three things are mutually exclusive unless you change the definition so that it applies to basically anything on the planet.

    Modular is never small, scalable generally isn't either.

Beware of Programmers who carry screwdrivers. -- Leonard Brandwein

Working...