Arm Education Media’s Publishing Editor Michael Shuff (MS) interviews senior academics, Wim Vanderbauwhede (WV), and Jeremy Singer (JS), about their new book that teaches undergraduate students the foundations of Linux OS on the Raspberry Pi. They talk about the advantages to future developers among many other things.
Dr. Wim Vanderbauwhede is a Professor in Computer Science at the School of Computing Science, University of Glasgow. He has been teaching and researching operating systems for over a decade. His research focuses on high-level programming, compilation, and architectures for heterogeneous many-core systems and FPGAs with a special interest in power-efficient computing and scientific High-Performance Computing. He is the author of the book, High-Performance Computing Using FPGAs. He received his Ph.D. in Electrotechnical Engineering with Specialization in Physics from the University of Gent, Belgium in 1996. Before moving into academic research, Dr. Vanderbauwhede worked as an ASIC Design Engineer and Senior Technology R&D Engineer for Alcatel Microelectronics.
Dr. Jeremy Singer is a Senior Lecturer in Systems at the School of Computing Science, University of Glasgow. His main research theme involves programming language runtimes, with particular interests in garbage collection and manycore parallelism. He leads the Federated Raspberry Pi Micro-Infrastructure Testbed (FRµIT) team, investigating next-generation edge compute platforms. He received his Ph.D. from the University of Cambridge Computer Laboratory in 2006. Singer and Vanderbauwhede also collaborated in the design of the FutureLearn ‘Functional Programming in Haskell’ massive open online course.
MS: Wim and Jeremy, as you say in your new textbook, Operating Systems Foundations with Linux on the Raspberry Pi: Linux is ‘a state-of-the-art, flexible, and powerful operating system, which is used in various systems from small IoT devices to the most powerful supercomputers.’ Do you both think that Linux represents a significant part of the future of Operating Systems for a whole range of technologies?
WV: For the near future probably yes, as it is now mature and has proven capabilities over a wide range of platforms and applications. For the longer term, a more genuinely distributed OS might be more suitable, but there is no clear contender for this role today.
MS: What do you see as being the important reasons for its rise to its present position as market-leader?
WV: Because it is open and free, it has engaged developers over a wide range of industry sectors and in academia. The development model that is led to a lot of innovation in the kernel, resulting in an OS that is at the same time both flexible and high-performant.
JS: There is a long tradition of university students learning about Operating System concepts through open-source frameworks – going back as far as the Berkeley Software Distribution or Tanenbaum’s Minix. We want to use Linux for the same purpose – introducing Operating System Foundations to the next generation of learners by investigating a relevant and modern source code base.
MS: On the hardware side, Arm currently has around 95% of the smartphone and tablet processor market. This is as well as being used in most Internet of Things (IoT) devices such as webcams, wireless routers, etc. and embedded devices in general. Is Linux now the ‘OS of choice’ for small devices, and what are the main advantages of running Linux on Raspberry Pi’s Arm 64-bit quad-core Cortex-A53 processor?
WV: Effectively, Linux is the OS of choice for mobile phones since the Android platform uses the Linux kernel. For other “small devices” such as the Raspberry Pi and similar Single Board Computers, definitely yes. The exceptions are for very resource constrained platforms (for example, Arm Cortex-M based) where Linux is not suitable because of its minimum memory requirements; and for specialized hard real-time applications. This is, I think, mostly because it is not widely enough known that Linux has hard real-time support, and some commercial RTOSes are still strongly embedded.
MS: Linux was one of the first open-source technologies; however, many programmers have contributed and added software that is completely open-source for any user. Is this the principal reason for its success, or are there other factors (technology, market, and so on) that we should consider?
WV: The open-source aspect is, in my opinion, the key reason for its success. This is what made it flexible, highly compatible, and also led to excellent stability and performance.
On the other hand, the choice of distributions might be a drawback as there are probably too many of them. And although Linux is much faster and easier to install than it was said ten years ago, the very fact that it has to run on such a wide variety of hardware still complicates the installation.
As for security, at least Linux reacts quickly to fix vulnerabilities, but it is not a secure-by-design or provably Secure OS, so for applications with high-security requirements it might not be the best choice.
MS: Linux has strong support for network functionality. Client and server systems can be easily set up on any computer running Linux. It can also perform tasks such as network backups faster and more reliably than alternative systems. Is this of importance for emerging IoT systems and does it help explain why established OS players are developing their own Linux products – or are there other reasons for embracing open source?
WV: In particular, the ease of setting up a minimal Linux system with network connectivity is a great appeal. Linux becoming the dominant server OS and a change towards a more open culture is happening globally. Also, the cloud ecosystem for Linux is well developed, and it would probably be quite a considerable investment for any software company to build something similar. It is not clear what they would gain by it.
MS: Considering the importance of the Internet of Things (IoT), many think OS providers are looking to utilize technology that has proven itself in the field, as Linux has done. What are the implications for students of software and hardware, and why is it now ‘cool’ to develop systems around the Linux kernel for so many devices?
JS: You are right – Linux adoption is constantly accelerating. We are confident that developers with Linux expertise will be highly employable for decades to come.
We believe current projections that there will be tens of billions of IoT devices deployed in the next year or two. While most of these will not be Raspberry Pi boards, it is still the case that many IoT nodes run Linux on Arm. It is a solid, well-supported platform with a growing set of developer toolchains and resources – now including our new textbook!
MS: Given that the biggest IoT technology players are moving towards an architecture in which intelligence is pushed from the cloud to the edge, localizing certain kinds of analysis and decision-making, do you think Linux is the OS of choice for running IoT Edge devices? One that can be deployed on devices as small as a Raspberry Pi, or as large as an industrial server?
WV: I think it is. Linux is the de facto server OS, so developers try to deploy it on any edge platform that can support it because it provides a familiar system. There is a lot of activity ongoing to push deep learning to the edge and to develop deep learning solutions for resource-constrained platforms.
JS: Of course, Linux is only part of the software stack. Docker or similar container technologies are required for service deployment and orchestration. Higher-level application frameworks like Apache Spark are used to abstract compute resource. The versatility and scalability of Linux make it an ideal ‘lowest common denominator’ for such edge/cloud distributed infrastructure.
As part of our research project at Glasgow, we have been building micro-datacenters using Raspberry Pi clusters. We use Alpine Linux as the per-node OS image, with some custom mods. You can see a picture of one of these micro-datacenters on the front cover of our textbook – the hardware is photogenic!
MS: A colleague said to me today: “However much I learn about Linux, there is always the feeling in the back of my mind that I could, and probably should learn more about how it works.” Could your book, Operating Systems Foundations with Linux on the Raspberry Pi, be the catalyst to encourage students of Computing Science and Electronic Engineering to understand the potential for Linux OS? And with that thought in mind … Which advice would you give undergraduates to help them gain a practical view of the Linux system?
JS: The Linux kernel is a massive and complex source code base, with over 20 million lines of code. No one individual (with the possible exception of Linus Torvalds himself) could understand everything about Linux. There is always more to learn – indeed, we discovered some new things while we were writing this textbook.
We have approached the Operating Systems Foundations book from a practical perspective. We want to encourage students to ‘get their hands dirty’ and do some meaningful development work, whether that is writing kernel modules, measuring system performance, or playing with system calls from Python scripts. The Raspberry Pi platform is ideal for this kind of hands-on investigation of Operating Systems. The best way to learn about Linux is to dive deep into the code.
MS: Thanks Wim and Jeremy for sharing views on the advantages to future developers of learning Linux OS.
The print version of the textbook is available VIA Amazon and other online booksellers.
Buy print version
We also publish more resources in the subject area including: