The Compatibility Struggle Looming Over the Horizon

It’s been nearly 20 years since Rob Pike’s infamously won the “Best at saying what we’re all thinking” prize with his talk about how systems software research is irrelevant. And, while systems software research is doing slightly (though not glamorously) better than in 2000, it’s still mostly circling the drain.

That being said, it’s not a field that’s devoid of challenges. But I think the main challenge of the next 10-15 years is going to be even less glamorous than we like to think.

I think the main challenge of the next 15 years will be to keep existing software and, more importantly, existing programming models, up and running.

Continue reading “The Compatibility Struggle Looming Over the Horizon”

Disk Space Isn’t Meaningless

It’s impossible to discuss Electron without the topic of space being brought up, and once that happens, you have to survive the talk about how storage is cheap today and space just doesn’t matter anymore.

Here is why I think all that is bogus — for bonus points, without any unironic use of the terms “engineering”, “real programmers” and “web developers”

(more…)

How Relevant are C Portability Pitfalls?

An article about C Portability Lessons for Weird Machines has been making the headlines on the Interwebs lately. It’s full of interesting examples, though none of them are from machines relevant to the last two decades of high-end computing.

I think these lessons are still relevant today, though, and that you should still pay attention to them, and that you  should still write “proper” code. Here is why.

Continue reading “How Relevant are C Portability Pitfalls?”

Why is Azure Such a Big Deal for Linux?

We are nearing the twenty-year anniversary of the Halloween documents, and in this context, I find myself routinely answering the same question: why is Azure so important for Linux and Microsoft? Why is it such a big deal?What’s this EEE that old people keep talking about?

Continue reading “Why is Azure Such a Big Deal for Linux?”

Design for Debuggability

There is a part of writing a Linux BSP that I dread profoundly, and it’s among the most trivial ones. Specifically, I’m talking about that part where you’ve written a new device driver, or modified something in an old one, or you just need to configure it. You’ve added the right incantation in the device tree, you boot, and nothing happens. The module isn’t probed, or your changes are silently ignored.

Continue reading “Design for Debuggability”

RISC-V: You Should Be Looking Into It Today

If you’d have told me five years ago that soon enough I will be able to drop a Cortex M IP in my design, at no price at all, there is a good chance that I would have said something snarky about optimism and how harsh reality actually is.

And yet here we are. Arm just started giving Cortex M IP cores away.

Continue reading “RISC-V: You Should Be Looking Into It Today”