Jasper Nuyens, founder of Linux Belgium and Embedded Linux trainer at High Tech Institute.
Just as Jasper Nuyens went deep into Linux in the mid-nineties, there was an initiative to reduce the footprint of the system. This 'Linux Router Project' was an effort to run a complete Linux-based router from a 1.4 megabyte floppy disk. Nuyens: 'This was done in order to use old PCs with a number of network cards as a server or router. It was a big challenge in which the Linux kernel compilation played a very important part. The tricks we had to pull out of our sleeves to make this work were actually a beginning of embedded Linux: a small system where you can add many applications.' The project lives on in current router projects such as OpenWRT and DD-WRT.
Due to his extensive experience, organisations call in Nuyens’ help 'if there are really difficult problems.' This ensures that he can delve more deeply into very special cases. Nuyens: 'That makes the job very interesting. It also ensures that our course stays up to date.'
Nuyens always adapts his training sessions to the latest developments. 'We now had about a hundred editions, whilst we are on version 65 of the course.' He cites an example of the embedded build-system Buildroot and OpenEmbedded / Yocto that became available in the new millennium. 'We also include that in our training. We always adjust the material to recent developments.'
The biggest Embedded Linux problems land on Jasper Nuyens desk.
What is it that makes embedded Linux training so successful?
'With Linux you have the source code of all the components, from the boot loader, kernel to the tens of thousands of applications that are available in user space. You can use everything and have a lot of choices. This means that you have to learn to see the wood through the trees. There are many possibilities. Many application behave a little different, but you can refine them. That is actually the core of our course: helping people find their way and make the best choices.'
You can also learn everything for yourself on Internet.
'Of course, it is not really rocket science. You can learn individual topics online. The embedded Linux course, however, brings all things together and provides the whole picture, from the ground up. Even people who have been immersing themselves in Embedded Linux for a long time do not always see how things fit together or how each of the different components interacts with the others. The training provides you with a jump start, a push in the embedded Linux world.'
Linux is not a real-time operating system. To what extent does this play a role in the choice for this OS for embedded systems?
'When people start using Embedded Linux, they usually think that real-time is an important requirement for their system. They often work with microcontrollers at a low clock speed. The timing restrictions can then impose real-time behaviour. Effectively, however, they often don’t need it. The current Systems On Chip sometimes run Linux with a gigahertz or more. As a result, real-time use of Linux is rarely required in practice.'
'There are also different levels with which you can work in real time on Linux. We go into that in our training. With the standard Linux kernel you have soft real-time possibilities. But you can also turn Linux a hard real-time operating system and there are also intermediate forms. The students learn to make these choices depending on their needs.'
To what extent do you go into the legal aspects of Open Source?
'We do not provide legal training, but we do make it clear what each of the different Open Source licenses mean and what their results are, including the patenting of software and hardware and trademark issues. Many software developers do not know enough about the consequences of having chosen Open Source. They need to be able to keep their management well informed about this and the few requirements imposed by Open Source licenses.'
'Some are so enthusiastic about the Open Source story that they do not want to say anything negative about it. But companies that use and implement open source software need to know exactly what they need to do. They also need to have objective information about the obligations and risks.'
Participants should preferably have experience with Linux and C programming experience, but is it essential?
'That's right. It is nice to have it. We receive two types of students. We have those who have a lot of experience in embedded, but have limited Linux knowledge. And we have those with Linux experience, even with a lot of Embedded Linux experience, who want to deepen their knowledge.'
'There is a very large difference in level between both profiles. The first group has hardly any experience on the command line. That is a big step for them. On their laptop they have a Linux 'command prompt' and on the embedded board they also have 'command prompt.' They cannot mix them up. If your embedded board enters the boot in boot mode, in the boot loader, then that is another prompt where you can type different kind of commands. The same occurs: you cannot mix them up.'
'People from the embedded world without Linux experience usually find it tougher. We find that both groups help each other. We start the course with information that is fairly basic for people who have already worked with Linux. However, it offers the necessary depth to discover new things, so that the more experienced embedded Linux people do not get bored. It is a case of balancing, but the group is sufficiently small to deal with that properly and answer questions from each participant.'
Eight participants is the maximum number.
'Yes, eight is our magic number, as we have gradually discovered. Because during the training everyone asks questions from their own perspective. The loose ends that they cannot immediately link to their existing knowledge. That is why we need a degree of interactivity. Students program their platform during the training and there are more advances optional exercises for those who are faster. It works well when they can immediately ask their questions and I can immediately look into them.'
'Linux also has a very steep learning curve. In the beginning, you have to assimilate a lot of information. We want to help everyone move forward to really make a real jump start.'
Is that always possible?
'We are actually doing pretty well there. The internal operation of the Linux kernel is the toughest part. That is not about how the programs work on the kernel, but about the kernel internally. That is a difficult part for people who already find the material tough. It adds an extra layer of complexity. If we notice that the whole group is slower, we will spend less time on it.'
'We also offer a separate course for kernel development. People who have to build device drivers can follow the kernel development course after this training. Following the Embedded Linux course first, is a requirement unless people are working with Linux at least 5 years.'
Which people are actually too early?
'Those who have only been working only with microcontrollers and have little knowledge of Linux. We make sure that they can work on the command line, that they can upgrade their board to a new software version that they have fully compiled themselves and that they can boot from the network, using the network file system as a root filesystem, and so on. That works without prior knowledge by letting them do a number of exercises, but all participants are helped with this if they have - in advance – learned working with the Linux command line.'
Will more experienced people get their money's worth?
'Absolutely. People with experience in Linux or embedded Linux won’t get bored. The more they know in advance, the more they will get out of it. We provide so much in-depth information and background information that they will always learn. We go wide and very deep.'
In his Embedded Linux training, participants start working with a Beaglebone Black platform.
This is a print with a Sitara system on chip from Texas Instruments. This American chip manufacturer founded the non-profit BeagleBone Foundation to provide Linux support for these platforms. 'It is primarily a showcase for the Sitara platform,' says Nuyens. 'But it also gives developers a practical step forwards. Everyone can play around with the technology for free. 'The entire BeagleBone design, the complete PCB layout with all its variants can be completely reused by the customers. By making minor changes to the reference design you can speed up the roll-out of new products by reducing possibly much long work on the software side.'
If desired, Nuyens also has other boards for the course available. It is possible to run the training on Freescale's i.MX 6 platform (nowadays NXP). 'This is also a popular platform in the Linux world. The i.MX6 family has single, double and quad core variants. The latter are more powerful for multimedia applications.' Other variants on which the embedded Linux training can take place are the ZedBoard from Avnet and Atmel's AVR32 platform. Training on these platforms by Nuyens usually runs on specific requests, typically delivered in-house at customer locations.
Also read the interview with Jasper Nuyens in Bits&Chips.
By the end of the training participants are asked to fill out an evaluation form. To the question: 'Would you recommend this training to others?' they responded with a 7.4 out of 10.