For more than 10 years, Codethink has been providing genius to some of the world’s most relevant technological organisations. Our specialists have supported and helped our clients in many open source projects, especially in Automotive, Finance, Medical and IoT industries.
One of these specialists is Ben Dooks, Senior Engineer and Open Source Consultant with more than 15 years’ experience contributing to Linux Kernel. Dooks joined Codethink 8 years ago, and since then he's been involved in a range of projects involving the Linux kernel, such as the MEG project, amongst others.
His knowledge and interest in the Linux kernel led him to test and research RISC-V, a shared enthusiasm in the company. There are currently many conversations around the open-source microcontroller, and of course, we could not miss the chance to ask our 'Kernel Guru' about RISC-V.
Interviewer: How did you start working with the Linux kernel?
Ben Dooks: In my previous job, I was working heavily with Samsung ARM SoC, and it turned out I got involved in writing a lot of that software support that went into the next kernel (around the 3.x development version). It turned out that we were better than Samsung doing this, so we ended up picking work for other companies that also wanted newer kernels for their devices. We wrote a lot of the support for this Samsung SoCs because that's what we need it to support our customers, and it turned into working with Samsung to improve their support of upstream kernels.
I: Which has been your most interesting project with Linux?
BD: The most interesting stuff I've done with Codethink it would be the MEG project because that wasn't just Linux kernel. That was actually designing interfaces and custom hardware.
I: Could you explain what RISC-V is?
BD: RISC-V is a computer architecture like Intel's x86 and ARM's 32 and 64 bit designs. It can be thought of as a language that the computer's hardware understands and how it interprets the 1s and 0s in memory.
I: What are the differences between Intel, ARM and RISC-V?
BD: While companies like Intel share the information about how these things work, so you can create some instructions that the Intel chip will understand, you can't implement your own Intel chip, unless you have a licence from Intel. Anyone trying to implement their own systems based on these proprietary specifications has to license the intellectual property or risk legal action.
What RISC-V is saying, is "'The design specifications are open for you to use. As long as you follow the specification, then everything should just work". No commercial licence is required.
Now, still, some companies sell their own proprietary version of RISC-V, but they are not allowed to sue you if you come along and make your own. So you can say 'I can make my own chip that did things with this specification, I can tell people, and I don't owe anybody royalties'.
I: How do you see the future of RISC-V?
BD: What I'm interested in this RISC-V is the number of companies that are going 'ah, this is all open, and we don't have to pay to use it, we'll try making products around it. The market for RISC-V is going to grow, and we would like to be ready for that. From recent developments, it looks like more big tech companies will be using RISC-V in various forms. People are actually starting to take notice, so it's interesting to see what happens. Codethink as experts in open-source can help with the emerging open software for RISC-V.
I: What are you expecting from RISC-V?
BD: RISC-V is emerging in areas where other architectures like Intel or ARM have been traditionally established. I would like to see some more open processor designs that people can play around with. I think RISC-V is at that point, because people understand how to use it and all the necessary support is just there ready for people to use.
I: What would you like to achieve with RISC-V?
BD: At the moment, I don't really have anything [to achieve]. I would want to to see what happens. We really shouldn't have to worry about the architecture that my software is running on. So for me, I'm agnostic to that debate about RISC-V vs other architectures. It's all about what the hardware can do for you, and that's not just the core processor architecture, there is all other stuff around that core that makes whatever-task-you-want usable, it's what makes systems interesting. It's a difficult one to answer.
Related blog posts:
More about York Instruments and MEG project: Codethink helps York Instruments to deliver world-beating medical brain-scanner
Written by Ben Dooks and Kejia Hu: Investigating kernel user-space access
- RISC-V: Codethink's first research about the open instruction set
- Meet the Codethings: Safety-critical systems and the benefits of STPA with Shaun Mooney
- Why Project Managers are essential in an effective software consultancy
- FOSDEM 2021: Devroom for Safety and Open Source
- Here we go 2021: 4 open source events for software engineers and project leaders
- Xmas Greetings from Codethink
- Call for Papers: FOSDEM 2021 Dev Room Safety and Open Source Software
- Building the abseil-hello Bazel project for a different architecture using a dynamically generated toolchain
- Advent of Code: programming puzzle challenges
- Improving performance on Interrogizer with the stm32
- Introducing Interrogizer: providing affordable troubleshooting
- Improving software security through input validation
- More time on top: My latest work improving Topplot
- Cycling around the world
- Orchestrating applications by (ab)using Ansible's Network XML Parser
- My experience of the MIT STAMP workshop 2020
- Red Hat announces new Flatpak Runtime for RHEL
- How to keep your staff healthy in lockdown
- Bloodlight: A Medical PPG Testbed
- Bringing Lorry into the 2020s
- How to use Tracecompass to analyse kernel traces from LTTng
- Fixing Rust's test suite on RISC-V
- The challenges behind electric vehicle infrastructure
- Investigating kernel user-space access
- Consuming BuildStream projects in Bazel: the bazelize plugin
- Improving RISC-V Linux support in Rust
- Creating a Build toolkit using the Remote Execution API
- Trusting software in a pandemic
- The Case For Open Source Software In The Medical Industry
- My experiences moving to remote working
- Impact of COVID-19 on the Medical Devices Industry
- COVID-19 (Coronavirus) and Codethink
- Codethink develops Open Source drivers for Microsoft Azure Sphere MediaTek MT3620
- Codethink partners with Wirepas
- Testing Bazel's Remote Execution API
- Passing the age of retirement: our work with Fortran and its compilers
- Sharing technical knowledge at Codethink
- Using the REAPI for Distributed Builds
- An Introduction to Remote Execution and Distributed Builds
- Gluing hardware and software: Board Support Packages (BSPs)
- Engineering's jack of all trades: an intro to FPGAs
- Bust out your pendrives: Debian 10 is out!
- Why you should attend local open source meet-ups
- Acceptance, strife, and progress in the LGBTIQ+ and open source communities
- Codethink helps York Instruments to deliver world-beating medical brain-scanner
- Codethink open sources part of staff onboarding - 'How To Git Going In FOSS'
- Getting into open source
- How to put GitOps to work for your software delivery
- Open Source Safety Requirements Analysis for Autonomous Vehicles based on STPA
- Codethink engineers develop custom debug solution for customer project
- Codethink contributes to CIP Super Long Term Kernel maintenance
- Codethink creates custom USB 3 switch to support customer's CI/CD pipeline requirements
- Codethink unlocks data analysis potential for British Cycling
- MIT Doctor delivers Manchester masterclass on innovative safety methodology
- Balance for Better: Women in Technology Codethink Interviews
- Introducing BuildGrid
- Configuring Linux to stabilise latency
- GUADEC 2018 Talks
- Hypervisor Not Required
- Full archive