[Cerowrt-devel] So how far behind is the embedded router world,still?

dpreed at deepplum.com dpreed at deepplum.com
Thu Jul 26 09:13:47 EDT 2018

Embedded Linux is still a mess.

I've been putting some serious (hacking) effort into RISC-V, using the near desktop class HiFive Unleashed board. The vendor (SiFive) and the RISC-V guys use buildroot! There is a coreboot project, but nothing for the actual hardware exists... Just a lashup for a qemu emulator of a vanilla system.

No reason for lede really ... There is no standard network adapter for its bus other than a GigE device.

But this got me thinking about lede, Android, Yocto, Linaro. What a godawful mess this world that *Linus doesn't care about* is in.

Now the Linux kernel is OK. It can be made simple. But from the call to init() onwards, Linux and BSD just suck. Baling wire and chewing gum. Even initramfs is unmaintanable between releases.

Part of this is package mania. Nothing is shrink wrapped. Everything needs re testing, by every vendor, every time. And it usually breaks.

Part of this is binaries tied to a particular instance of hardware. Blobs. Why do they exist? To divide the OEMs among themselves and waste time and effort, mostly. They do reduce the cost of supporting driver tweakers who don't understand how the hardware works, or build support that makes the vendor unable to improve it's product, but maybe there's a better way ... Create an Open Source Community?

And then there are the buses/controllers. I blame Linux for blessing PCI .. an overcomplex and downright weird Wintel abortion. With patents all over the place, meaning one can't clone it without creating sales for Intel processors.

But Linux's original sin is that it was created solely for x86 environment. Yeah people have pushed it, but design decisions in the IO world around it have followed the path of least resistance. That is, letting Intel Corporation (with its buddy AMD) control Linux design and implementation.

Is it time for a new OS framework that can solve the embedded industry's problems of huge waste and obsolescence? Not black sheep Linaro. They get little respect. Outside the Linux Foundation's Party Secretariat's dominance.

RISC-V suggests to me that an open hardware world can be better than Intel-world. The proposed interconnect, called TileLink, exists, and has a simple working version on the board I'm playing with. It is scalable and flexible like modern PCI, but has no lock-in and legacy. The ISA is, of course, clean and extensible.

So can an industrial strength OS, not based on the Linux spaghetti, be made to replace Linux. Its network stack would be Internet v6 (v4 optional) and it would have IO done in isolated address spaces, communicating via mapped pages with devices and other processes. It would have the ability to launch POSIX processes, but keep all that out of the kernel address space, so you could just avoid all that on devices like storage and network appliances and IoT.

Maybe one could even start with a Linux kernel, but only that. Init() would be entirely different, and only a subset would be used. The ABI would be extended for simpler user space coding of device, network, ... logic that directly operates the hardware and presents simple queue based (rings?) IPC.

Why not now?

-----Original Message-----
From: "Mikael Abrahamsson" <swmike at swm.pp.se>
Sent: Thu, Jul 26, 2018 at 4:53 am
To: "Dave Taht" <dave.taht at gmail.com>
Cc: "Dave Taht" <dave.taht at gmail.com>, cerowrt-devel at lists.bufferbloat.net
Subject: Re: [Cerowrt-devel] So how far behind is the embedded router world,still?

On Wed, 25 Jul 2018, Dave Taht wrote:

> There are still a few companies alive in this space (openrg being one 
> that I know nothing about), but...

There is no single answer to this. Lots of the home routing SoC space is 
now converging on 4.4, but BCM decided to go for 4.1. They came from 3.2, 
3.4 and perhaps 3.10. When I talk to staff at SoC vendors, they seem to 
live in a world where you take a linux kernel that's announced as LTS (in 
the best of worlds), work on that for 1-2 years during which you release 
an SDK, which then the device manufacturers will take and start putting 
their solutions on, which takes another 1-2 years before it reaches 
customers. So already there is significant latency.

This doesn't mean there are not devices out there today, newly installed, 
that have really ancient kernels (as you have discovered). This is 
especially true for cheaper and simpler devices that are very cost 

There is movement in the right direction, but revving kernels on older 
platforms is still hard, as in all of IoT space, due to lack of revenue 
from older platforms. Main model is still to sell a device and then there 
is no further income, so no money to continously develop the device.

Mikael Abrahamsson    email: swmike at swm.pp.se
Cerowrt-devel mailing list
Cerowrt-devel at lists.bufferbloat.net

More information about the Cerowrt-devel mailing list