Linux requires at least 32 bit machine words, and it always has. Linux was originally written for Intel 80386.
Linux requires a hardware MMU to support virtual memory. There are patches that can make a no-MMU kernel, but it drastically changes the experience to do so.


This is not true. Both ISO C++ and ISO C have have features that are not available in the other language. Therefore, there is no subset or superset relationship.
I would tweak this recommendation. If you want to start with C, consider writing C-style code into .cc or .cpp files, and compile as C++. You will therefore be learning “C++ with functions only” as opposed to “C with classes.”