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. 

Latest Videos FromTom's Hardware
Sunny Grimm
Contributing Writer

Sunny Grimm is a contributing writer for Tom's Hardware. He has been building and breaking computers since 2017, serving as the resident youngster at Tom's. From APUs to RGB, Sunny has a handle on all the latest tech news.

  • 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