Linux can run on only 4MB of SRAM — Azure Sphere and SudoMaker's X1501 Pico show off the extremes of Linux's small-scale potential

SudoMaker's X1501 Pico SoM, pictured from its Hackaday page.
(Image credit: Reimu NotMoe, SudoMaker)

Linux, the discerning user's choice, is famous for its ability to scale down to a minuscule size. Here to prove it are two itty-bitty modules running Linux with only single-digit megabytes of RAM, displayed in a classic example of Twitter oneupmanship.

Microsoft's Azure Sphere modules are full microcomputers smaller than a desktop CPU, which contain only 4MB of SRAM right on the processor die and run Microsoft's own Unix-like Azure Sphere OS to power the Internet of Things (IoT). But SudoMaker's X1501 Pico SoM has a whole 8MB of RAM, a twice-as-fast processor, and is a complete SoM unit with I/O and interfacing at 1/3rd of the surface area of the Azure Sphere modules — and unlike Azure Sphere modules, the X1501 Pico can even run DOOM. 

Azure Sphere — Microsoft's IoT platform runs on Linux

Microsoft's Azure Sphere project is based on the MT3620 chip: a 22mm x 33mm MCU (microcomputer unit) with 4MB of SRAM — a faster, low-power variant of RAM that lives on the processor die and can retain memory bits as long as power is supplied (contrast with DRAM, which requires continually refreshing). The MCU gives only 256KB of this RAM to non-OS apps, and 1MB is used as flash memory shared between high-level and real-time applications. The MT3620 gets processing power from a 500MHz ARM Cortex CPU and holds 2.4/5 GHz WiFi connectivity, essential for its purpose of enabling the Internet of Things.

The MT3620 is solely designed for Microsoft's Azure Sphere platform, a system for communication and security features between internet-connected devices like appliances. This service connects parts of the Internet of Things together to maximize communication. Microsoft's example use case of Azure Sphere is for a manufacturer who sells internet-connected appliances; say the manufacturer sells WiFi-connected fridges and wants a system that remotely updates and monitors the health of its appliances. The MT3620 chip goes into the fridge and can interface with the Azure Sphere service, where it provides internet security for the fridge, ensuring no malicious actors can access the fridge's data, and can get firmware updates securely from the manufacturer or ping HQ if the fridge detects a malfunction. 

Qualms with the IoT and the silliness of having a fridge with WiFi aside, the MT3620 is a crazy bit of computing. It runs full-fat Linux on a mini-system only a little bigger than a silver dollar, with full network connectivity to boot. But with so little memory and such a hyper-specific purpose, it is unlikely that the MT3620 can be flashed with a custom kernel or leveraged for use outside of the Azure Sphere ecosystem. For any level of custom personal computing, you'll need to turn to our other featured project.

SudoMaker X1501 Pico SoM — the "smallest SoM that can run mainline Linux"

SudoMaker's upcoming X1501 Pico project is fairly different from the MT3620 chip, and perhaps more impressive. For one thing, it's got more power: an InGenic X1501 processor that runs at up to 1 GHz and a whole 8MB of RAM living on the processor package. The X1501Pico SoM is also different from the MT3620 because unlike Azure Sphere's MCU, X1501 Pico is a full system on module, so instead of needing to be integrated into a dishwasher to do its job, you can buy an X1501 Pico and have a full mini-computer ready to turn on, plug in a keyboard, and throw in your 800KB of user code (once it becomes commercially available, of course; SudoMaker has yet to begin its eventual crowdfunding project for the SoM). 

In the embedded tweet above, the X1501 Pico SoM can be seen running a heavily modified Linux 6.1 and operating well below its memory ceiling by the product's designer. @ReimuNotMoe, the designer in question, claims in the thread above that "yes it can play Bad Apple and Doom, run GBC emulators, PICO-8 (via FAKE8) etc."; we have yet to see proof of this claim on video but there is little reason to doubt these claims; rest assured that we will update the story with DOOM gameplay as soon as possible. 

The X1501 Pico SoM is by far the smallest SoM we've seen yet, and with claimed performance surpassing any of its competitors including the Raspberry Pi Pico, we're excited to see it cook once it releases. For now, we only have teasers on Twitter and its Hackaday page, but once its crowdfunding round starts imminently, we will see an exciting event after the market can get its grubby hands on the computer. 

Tom's Hardware are big fans of the Raspberry Pi Pico, so it will take a lot for this up-and-coming SoM to take it out of our hearts. Before it releases, you can see all of our featured projects with the Pi Pico here, and get excited for the future of tiny little computers. For another example of pushing hardware way past its limits with the help of Linux, be sure to check out how this hardware hacker ran GTA: Vice City on a TP-Link router.

Freelance News Writer
  • TerryLaze
    DOS can run on 128k doesn't mean it's good.
    Reply
  • CmdrShepard
    TerryLaze said:
    DOS can run on 128k doesn't mean it's good.
    That's not a fair comparison at all. DOS is single-user, and has no multitasking to speak of.

    On the other hand, Amiga OS could do most of what Linux OS does 3 decades ago in 512 KB of RAM so... yeah.
    Reply
  • TerryLaze
    CmdrShepard said:
    That's not a fair comparison at all. DOS is single-user, and has no multitasking to speak of.
    This linux isn't doing any of that either, I very much doubt it's multithreading either, although it might have some resident stuff but then again dos could also have stuff resident while running other stuff.
    he MT3620 is solely designed for Microsoft's Azure Sphere platform, a system for communication and security features between internet-connected devices like appliances. This service connects parts of the Internet of Things together to maximize communication.
    CmdrShepard said:
    On the other hand, Amiga OS could do most of what Linux OS does 3 decades ago in 512 KB of RAM so... yeah.
    256k actually since the first Amiga had to load the rom files from a disk and would use main system ram for that leaving only 256k free.
    Reply
  • bit_user
    CmdrShepard said:
    On the other hand, Amiga OS could do most of what Linux OS does 3 decades ago in 512 KB of RAM so... yeah.
    LOL, a Motorola 68000 with 512 kB of RAM was like a supercomputer, compared to the original machines UNIX was developed on & for!
    Reply
  • bit_user
    TerryLaze said:
    This linux isn't doing any of that either, I very much doubt it's multithreading either, although it might have some resident stuff but then again dos could also have stuff resident while running other stuff.
    There's no way they ripped out multitasking or multithreading from the Linux kernel. It's not remotely feasible and much easier to just write a new kernel from scratch.

    You realize Linux came into being back around 1990, right? I forget the minimum memory requirements, but I'm sure it wasn't more than a couple megs. Recently, people have even gotten it running on a Nintendo 64 with 8 MB of RAM!
    Reply
  • TerryLaze
    bit_user said:
    There's no way they ripped out multitasking or multithreading from the Linux kernel. It's not remotely feasible and much easier to just write a new kernel from scratch.

    You realize Linux came into being back around 1990, right? I forget the minimum memory requirements, but I'm sure it wasn't more than a couple megs. Recently, people have even gotten it running on a Nintendo 64 with 8 MB of RAM!
    My point is that an internet of things device isn't going to do any multitasking, if they left it in to waste space that's fine I guess but the multithreading/tasking /multi user is not going to do anything useful on such a device other than providing a huge target for hackers.
    Reply
  • bit_user
    TerryLaze said:
    My point is that an internet of things device isn't going to do any multitasking, if they left it in to waste space that's fine I guess but the multithreading/tasking /multi user is not going to do anything useful on such a device other than providing a huge target for hackers.
    In realtime/embedded applications, there are plenty of uses for multitasking. Furthermore, I was recently advising a Masters student on a project he did using a Raspberry Pi Pico, and the kinds of limitations he encountered for lack of a real OS kernel on that thing were pretty frustrating for him. It really limited the kinds of networking libraries and packages he could use in the software he was writing.

    As for the multi-user aspect, there's a benefit to having services run under different non-root accounts to limit the damage they can cause and the vulnerability they pose if compromised.
    Reply
  • TerryLaze
    bit_user said:
    In realtime/embedded applications, there are plenty of uses for multitasking. Furthermore, I was recently advising a Masters student on a project he did using a Raspberry Pi Pico, and the kinds of limitations he encountered for lack of a real OS kernel on that thing were pretty frustrating for him. It really limited the kinds of networking libraries and packages he could use in the software he was writing.

    As for the multi-user aspect, there's a benefit to having services run under different non-root accounts to limit the damage they can cause and the vulnerability they pose if compromised.
    You are assuming that these things will have root, or even any, access at all, usually they only get commands from a validated source like encoded over wifi, directly from the touch screen, or whatever.

    Also the whole reason for a tailor made linux is for it to have everything needed and not have anything useless, so a student having to search around for libraries is completely beside this conversation. Every version of this will have everything that that specific device will need.
    Reply
  • bit_user
    TerryLaze said:
    You are assuming that these things will have root, or even any, access at all, usually they only get commands from a validated source like encoded over wifi, directly from the touch screen, or whatever.
    It sounds to me like you're confusing the concept of user privileges with the notion of a command shell. Privileges have value outside the context of a commandline interface.

    TerryLaze said:
    Also the whole reason for a tailor made linux is for it to have everything needed and not have anything useless,
    Yes, and you do that by compiling the kernel with all the build-time options switched off that you don't need. Then, you package it with a minimal userspace. Believe me, I know this stuff. And one thing I know is that there's no kconfig option to compile out threading or multitasking. That stuff is so intrinsic to the design of the kernel that it wouldn't be Linux any more, if someone managed to rip it all out.

    TerryLaze said:
    so a student having to search around for libraries is completely beside this conversation.
    No, it's not. He couldn't use the networking code he wanted, because there wasn't a real OS kernel underneath. That's what you normally find with microcontroller-class machines, like Raspberry Pi Pico and Arduino. The cool thing about this machine is that it has a real OS kernel, so you can use whatever libraries & packages on it that will fit.
    Reply
  • TerryLaze
    bit_user said:
    Yes, and you do that by compiling the kernel with all the build-time options switched off that you don't need. Then, you package it with a minimal userspace. Believe me, I know this stuff. And one thing I know is that there's no kconfig option to compile out threading or multitasking. That stuff is so intrinsic to the design of the kernel that it wouldn't be Linux any more, if someone managed to rip it all out.
    So you think that MS took a full linux os with all of its garbage and bloat (compared to what a SoC needs) and compiled/customized that down to a SOC instead of writing a clean OS from the ground up?

    This is a linux in 17Mb and it just boots into a command prompt, no users and no nothing.
    http://tinycorelinux.net/downloads.html
    Reply