Using the Raspberry Pi for Learning Linux Administration
When people look to start learning Linux, invariably they mean that they are interested in learning Linux System Administration and Engineering, and one of the most common responses that they hear is to run out and buy a Raspberry Pi or similar embedded single board computer device. Why is this? What do people believe that this will accomplish?
Similarly, in the past, it used to be a common reaction to, instead of telling someone to learn with a server, they would send them to install a Linux desktop as if doing so was similar to and relevant to learning server administration. Of course there is overlap, but very little.
Desktop and embedded systems like the Raspberry Pi are used in different ways and for different purposes and generally managed much different than enterprise Linux servers. There can be overlaps, of course, desktops can be managed by server tools, embedded devices can be made to make servers, but at the end of the day, the fundamental rule is that to learn X you do X, you don't do Y just because it is close to X.
What you want to learn Linux for server administration are:
- A system that is as close to an enterprise production deployment as possible. Any variation from this at least slightly diminishes the value of the experience.
- Has a few barriers to education of the chosen subject as possible. Time should not be spent unnecessarily learning other skills or topics that are not supportive to the desired topic.
Using a Raspberry Pi, or a desktop installation, fails at both of these aspects. What actually happens is that time has to be spend learning RP hardware, learning fringe distros, learning new interface concepts, waiting on hardware to arrive, exploring new CPU architectures, discovering limits, trying to match educational material to the dissimilar real world hardware and so forth.
Why Raspberry Pi or any alternative embedded systems are not good for learning Linux System Administration (at least as a beginning) include:
- It is an unnecessary hardware investment.
- Embedded hardware is not like server hardware, even AARM64 servers.
- The enterprise Linux distros are not universally available on the RP
- Production learning should be on VM platforms, which are theoretically possible on RP but not realistically possible.
- Normal access to a variety of storage options are not reasonably possible.
- Production Linux use would expect both a range of configurations and varying configurations of VMs which is not possible with embedded devices. Exploring systems with dozens of threading engines and large amount of RAM is not possible and making many VMs on a single device.
- Available software is often not available on embedded devices.
- Many services and products are too "large" to be run on an embedded device.
- Time is spent learning the embedded hardware instead of learning Linux.
- New learners will easily struggle to separate what is an aspect of the hardware and what is an aspect of Linux.
- Behaviours of enterprise hardware and hypervisors will not be learned in reference to the OS, including drivers
In this day and age when virutalization that matches that used in the enterprise is universally available to learnings at home, there is no valid reason for investing in "gadgets" for learning Linux, if the goal is server administration. Of course if the goal is to learn embedded systems or just to play with the RP, then by all means. But staying focused on the real goals and doing things that aid in that goal rather than distracting from it is important.