Does Ubuntu contain Non-free kernel blobs and other non-free system components?

Stallman is correct. The Linux kernel includes several pieces of nonfree firmware for peripheral devices. This firmware is not stored on the device; it must be copied to the device every time it boots. Without the "blobs," the device can't be used. The advantage of downloading firmware to the device is that it allows updating the device by simply updating the firmware on the computer.

The problem with these "blobs" is that they are just that--a chunk of binary distributed by the manufacturer. The knowledge to run the devices is often kept proprietary. Richard Stallman and other free software advocates object to this because they are not provided the source code used to create the binaries. Most distributions, including the official Linux kernel, still ship these blobs because they vastly improve compatibility with devices (there's not an open alternative to them), and because it's "just" firmware.

(Side note: some people note that if you advocate for open firmware then you're only a couple steps away from advocating for open HDL diagrams for FPGAs, which would compromise companies' hardware intellectual property. However, note that firmware can still be malicious; for example, cellular modem firmware has unrestricted network access and pretty broad access to the system as well. That's one justification for the absolutist stance of "no non-free software.")

There are many distros that create "truly libre" Linux distributions. One of the more popular ones is called Trisquel. They're based on Ubuntu, and have a thorough deblobbing process. The FSF uses this distro when they want to hand out Live CDs. The one that I last heard of Stallman using is called GNewSense; it's based on Ubuntu and Debian. Anything that the FSF endorses will be totally blob-free.


Does Canonical include these to keep control of Ubuntu project?

I think this is demonstrably untrue. It is hardware that requires these blobs, and so it is the users who are in control of what hardware they purchase, not Canonical. If a user chooses to use only hardware that has free software drivers, then no blobs will be used.

Therefore it isn't anything to do with Canonical "keeping control", since users have the choice of using Ubuntu without using any binary blobs. This means that Canonical have no specific control in this area that they could exert anyway.

The blobs are only shipped for the convenience of users who have already made a non-free hardware choice.

(Disclosure: I work for Canonical. This answer reflects my own personal view; I cannot speak for my employer in this area.)


Check wikipedia:

In the context of open source software, a binary blob is a closed source binary-only driver without publicly available source code. The term usually refers to a closed-source kernel module loaded into the kernel of an open source operating system

What do these do what free software can't? Nothing in theory. But in practice a hardware company doesn't want to release an open-source driver for their hardware, because it would give hints to their rivals about the hardware design. So e.g. Nvidia and AMD doesn't release open-source drivers. No problem, you might say, the community does it, we have the nouveau and radeon open-source drivers. Yes, but we all know that those drivers have quite a few problems e.g. with power management and hardware acceleration and some others. Why? Because only the hardware manufacturer knows the correct design of their hardware, the community can only guess about how the hardware works internally. So the problem is that until the hardware specifications are closed and kept in secret the community can't make proper open-source alternatives.

Distros without such blobs? I don't know, but check out this and this page.