Software, the unsung hero

This column is from The MagPi issue 48. You can download a PDF of the full issue for free or subscribe to receive the print edition in your mailbox or the digital edition on your tablet. All proceeds from the print and digital editions help the Raspberry Pi Foundation achieve its charitable goals. The MagPi 48

As Raspberry Pi enthusiasts, we tend to focus a lot on hardware. When a new or updated board is released, it garners a lot of attention and excitement. On one hand, that’s sensible because Raspberry Pi is a leader in pushing the boundaries of affordable hardware. On the other hand, it tends to overshadow the fact that strong software support makes an enormous contribution to Raspberry Pi’s success in education, hobby, and industrial markets.

Because of that, I want to take the opportunity this month to highlight how important software is for Raspberry Pi. Whether you’re using our computer as a desktop replacement, a project platform, or a learning tool, you depend on an enormous amount of software built on top of the hardware. From the foundation of the Linux kernel, all the way up to the graphical user interface of the application you’re using, you rely on the work of many people who have spent countless hours designing, developing, and testing software.

clean_desktop

The look and feel of the desktop environment in Raspbian serves as a good signal of the progress being made to the software made specifically for Raspberry Pi. I encourage you to compare the early versions of Raspbian’s desktop environment to what you get when you download Raspbian today. Many little tweaks are made with each release, and they’ve really built up to make a huge difference in the user experience.

Skin deep

And keep in mind that’s only considering the desktop interface of Raspbian. The improvements to the operating system under the hood go well beyond what you might notice on screen. For Raspberry Pi, there’s been updates for firmware, more functionality, and improved hardware drivers. All of this is in addition to the ongoing improvements to the Linux kernel for all supported platforms.

For those of us who are hobbyists, we have access to so many code libraries contributed by developers, so that we can create things easily with Raspberry Pi in a ton of different programming languages. As you probably know, the power of Raspberry Pi lies in its GPIO pins which make it perfect for physical computing projects, much like the ones you find in the pages of The MagPi. New Python libraries like GPIO Zero make it even easier than ever to explore physical computing. What used to take four lines of code is boiled down to just LED.blink(), for example.

etcher-500pxwide

Not all software that helps us was made to run on Raspberry Pi directly. Take, for instance, Etcher, a wonderful program from the team at Resin.io. Etcher is the easiest SD card flasher I have ever used, and takes a lot of guesswork out of flashing SD cards with Raspbian or any other operating system. Those of us who write tutorials are especially happy about this; since Etcher is cross-platform, you don’t need to have a separate set of instructions for people running Windows, Mac, and Linux. In addition, its well-designed graphical interface is a sight for sore eyes, especially for those of us who have been using command line tools for SD card flashing.

The list of amazing software that supports Raspberry Pi could go on for pages, but I only have limited space here. So I’ll leave you with my favourite point about Raspberry Pi’s strong software support. When you get a Raspberry Pi today and download Raspbian, you can rest assured that, because of the rapidly improving software support, it will only get better with age. You certainly can’t say that about everything you buy.

19 comments

JPW avatar

Totally agree: Raspbian has got significantly better over the years – sometimes in a small way, sometimes with giant leaps.

Well done all contributors !

Keep on Tweaking and Improving !

Russell Barnes avatar

Etcher is such a great find – having something that catches all possible OS cases makes such a massive difference to ease of use for beginners.

Richard Sierakowski avatar

The development of the Raspbian OS variant together with excellent software has been instrumental in the rapid and very successful progress of the Raspberry Pi ecosystem.

The really good thing about all this is that it can only get better:)

Richard

James Carroll avatar

I have noticed steady impovement in the OS for my raspberry pi computers. I thank all the developers who work to improve the experience for us isers. I recently replaced my old original B model with the pi3 board for my media center. Libreelec installed and works effortlessly on it as does the older B model that now hosts a camera module and runs motion pi. Amazing stuff.

Winkleink avatar

Scratch has been improved so much that even on an original model A or PiZero it is very usable.

I did a video earlier this year comparing July 2012 Raspbian/Scratch to January 2016 Raspboan/Scratch.
https://youtu.be/ThALBRLY9Rs

Huge leap in performance. This is the same as the original model B.
With the release of Pi3 for the same $35 you’re getting way more performance.

Well done to the Raspbian and applications teams.

Andrew avatar

There’s much to be said for the Open Source nature of the software too.

For example, even though I commend Microsoft’s Windows 10 IOT Core O.S. for RPi, the driver for PS3 Eye webcam on Windows is proprietary and X86 only.

Whereas the driver for Linux is open and immediately ported over to RPi on Arm. Allowing me to use it in a motion sensing R2D2 can sculpture and a Zoneminder security cam setup.

The doors that this flexible platform and software open are amazing.

Keep up the good work RPi!

Eric Olson avatar

Wikipedia lists more than 100 different single board computers

https://en.m.wikipedia.org/wiki/Comparison_of_single-board_computers

most based on ARM CPUs and many with Pi in their product names. Most of the SBCs run a Debian-like distribution similar to Raspbian. However, Raspbian currently runs on top of a new 4.x Linux kernel, whereas many of the distributions for the other SBCs run on top of a Linux 3.4.x kernel that was repurposed from Android. This makes a difference when it comes to reliability, USB device support, filesystem support and versatility of the hardware.

DavidS avatar

Great article about one of the two OSes that the RPi foundation assured us it would support and stand behind. The other Operating System that the RPi foundation gave huge assurances of support seems to have been left out in the cold, that is RISC OS.

If the people that wish to maintain OSes for the RPi spent just an hundredth as much time on RISC OS we would have a smaller ROM that is more efficient, faster and smaller applications, complete support for HTML5+ECMA script+HTML5 video in Netsurf on RISC OS, a version of GCC that is up to date and outputs RISC OS AIF, AOF, and Module formats as well as raw binaries.

Though instead it is only those few that have always been working on RISC OS 5 that continue to provide updates, some in the wrong dirrection (making some things larger less efficient and less RISC OS like).

I know it is difficult to be accepted in the ROOL developer group. It is still possible to write replacement modules and provide them from a secondary source, as well as applications and documentation.

Simon Long avatar

Speaking as one of the (very small) team of developers employed by Raspberry Pi to work on OS software, I do have to take issue with your claim that spending “a hundredth as much time on RISC OS” would lead to significant improvements in it.

I’ve now been working full-time on Raspbian for two years – 100 weeks, as near as makes no odds. I feel I have made substantial improvements to it in that time. But I can assure you that the total improvements I made in the first week (i.e. a hundredth of that time) amounted to pretty much nothing…

There is a learning curve before anyone can make any changes to an OS. Before you can even touch the code to start making improvements, you need to understand enough of how it works to ensure you aren’t going to break anything. You also need to understand what actually constitutes an improvement; what the priorities are; where the low-hanging fruit are that will make the biggest difference with the least effort. For someone who already knows and uses RISC OS, this may all be self-evident, but to someone who is approaching it from scratch, it takes significantly more time than you suggest even to work out what to do, never mind how best to do it, to build it, to test it, to integrate it and to release it.

In an ideal world, we’d have sufficient engineering resource to support every OS people were interested in; unfortunately, we are constrained as to what we can do with the resource available, and the simple fact is that Raspbian has substantially more users than RISC OS. Ergo, it is the OS that we spend the most time working on.

DavidS avatar

Fair enough on just looking at the employed team.

Though correct me if I am wrong:
There are many thousands of people making contributions to Raspbian specificaly on the RPi, if we look at the whole of the developers of Raspbian, its UI and applications specificaly as on the RPi that one week you mention would be closer to 5 thousand man weeks.

The learning curve for developing for RISC OS is relitively small. Assuming a Software Developer that has never used RISC OS you have about two days to learn to use RISC OS, then about 5 to 9 days to learn the quirks of the OS from a programming perspective, then you are coding. Maybe a little longer if you also have to learn ARM Assembly language (an extra 5 hours give or take).

It is not the giant beast of modern Linux

Simon Long avatar

While it is true that there are hundreds of individuals working on Raspberry Pi-based projects, there are actually comparatively few who contribute to the core of the Raspbian OS itself. And of those who do, most are completely independent of the Raspberry Pi Foundation – they are just independent developers who voluntarily spend their free time supporting the community (and we are very grateful to them for doing so). It is entirely up to them what they choose to work on; we have no influence over how they spend their time or what OS they want to work with.

It is perhaps a little unreasonable to blame us for the fact that other independent developers choose not to work on your preferred OS…

crumble avatar

Hi Simon,

I appreciate your work. Since your improvements the system feels much faster.

I know that the foundation cannot split their limited resources to keep multiple OS or distributions up to date. But I cannot understand why the foundation thinks that software improvements for the newer hardware has to be done in a new OS/distribution. Am I wrong that it must not be a big effort to compile some applications against existing libraries using NEON and add them with a neon extension to the existing distribution?

We will not get the full speed of the Pi3. But imagine how fantastic the the UX on a Pi 2 and 3 must be, if you compile the browser against the neon version of libjpeg.

If you agree, I will not mention that you are focusing on the wrong OS. On Amiga systems you simply need to replace a shared library ;-)

JPW avatar

Just out of interest : is there an official ‘wish-list’ for Raspbian, so that individuals in the Raspi Commnunity could choose to help with ? I’m sure lots of people would like to be able to say ‘I helped fix that bit!’

AndrewS avatar

I’m not sure if it counts as a “wish-list”, but there’s https://github.com/RPi-Distro/repo/issues

crumble avatar

I like to see native AROS on the Pi 3.
And maybe both of us like to see multi core support in our outdated systems.

I Have a dream ;) In 10 Years the foundation still exists and still uses the same GPU, so all patents are gone and they give us the whole hardware specification.

Let us pray that they will not change the GPU and add some kind of MMU to give us more memory. And hey, maybe they will switch to an Amiga based OS, because it can handle different memory types better than any other OS :)

1 avatar

Great Article…so true! I recently fried my Pi 3 and when I looked for a replacement, I decided to try out the Odroid C2 board. The lack of software support made the board trash in my opinion.

A lot of people are always looking for better clock speeds and more ram but it is so true that the software is half the battle if not more.

Most Pi clone boards have a kernel from the beginning of time and no support for interfacing the hardware. Yeah they have that SATA port, but using the GPIO is well nigh impossible. All kinds of bugs show up and the developers don’t fix them because they are too busy designing a new board with better specs(on paper at least).

I, for one, am back to using only Raspberry Pi boards because of the awesome software support! Thank y’all!

Lynn Fredricks avatar

I hope more vendors become interested in it is a platform. We created a version of our Valentina Server that runs on it. It includes our ultra fast, object-relational database Valentina DB, SQLite based server and our reports server. Academics can use it for free for academic / non-commercial projects.

On the commercial side, we’ve had a few developers who use the combined platform to host easily deployed, low powered servers for small business. Some real serious work is being done on this as a platform!

Silviu avatar

The Raspberry Pi’s with their software are more stable than other Intel computers, ARM computers… all other computers – even more stable than expensive servers.
That’s why it is gaining huge usage in… banks and stock trading.

Rick avatar

Guys,

In the last OS release you broke IPv6… fix it please!
And please follow the KISS rule!!!

Comments are closed