Perf-V, Vivado and Linux

A few days ago I got a Perf-V board. In case you’re wondering what that is, the Perf-V is an FPGA development board, supposedly “designed for [the] RISC-V opensource community” by PerfXLab, a Beijing-based company that does some pretty interesting things in addition to this particular board.

PerfXLab does (rightfully) claim that you can use the board and the enclosed JTAG adapter with Vivado, but they aren’t very forthcoming on the details. Since a lot of RISC-V enthusiasts are software developers who have never touched Vivado, I figured I’d fill you in about the missing piece of the puzzle.

Continue reading “Perf-V, Vivado and Linux”

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”

Lessons From the apt Remote Code Execution Vulnerability

Well, it’s happened before, so it was bound to happen again: a remote code execution bug was found in APT. And it’s particularly interesting in the context of an age-old debate that has been dragging on in Debian-related circles about the use of HTTPS – a question that has been asked often enough that the answer has its own website now.

How bad was it? What is there to learn from this? And what does it tell us about the importance of HTTPS in package management security?

Continue reading “Lessons From the apt Remote Code Execution Vulnerability”

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…)

In Tech, Reasoning by Analogy is Bad

One of the easiest ways to “settle” a technical discussion is to resort to an analogy. It took me three minutes of browsing HN (why do I keep doing that to myself?) to find the first one today. When operating systems and computers are discussed, a car analogy is sure to pop up within minutes.

I want to argue that reasoning by analogy is bad when technology is involved. And, more generally, that analogies and “common sense” are bad things to rely on in matters of science and engineering.

Continue reading “In Tech, Reasoning by Analogy is Bad”

Computers, Programming and Free Information

I just read that the Max Planck Society discontinued its agreement with Elsevier and this sent me whirling back to a time when I was involved in research — and that was the time when I gained even more of an appreciation for the programming community.

Continue reading “Computers, Programming and Free Information”

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?”

DMA-based SPI on SHARC ADSP-21489

If you have resorted to Google after having uselessly pored over AD’s reference manuals, hoping to find at least a proper hint about how to approach this, if not a bit of code, it’s OK, you can stop now. It’s right here. Your quest is complete.

In the hope that no poor soul will have to bang his head against the desk trying to piece together the countless pieces of this puzzle, I did a quick write-up to show you how to do SPI communication with DMA on ADSP-21489. This should probably work (with obvious adaptation) on any DSP in the same family, and it should be easy to adapt if your DSP is the SPI slave, not the master, as below.

Continue reading “DMA-based SPI on SHARC ADSP-21489”