If you are a beginning programmer, writing an operating system and Python interpreter are gigantically huge baby steps!
Not that I want to discourage you.
If you want to go cross-platform then you want to make most of your bootloader, operating system and whatever else in a high level language that can be used on different processor architectures. That is why the Linux operating system and many others are written in C. If you write it in assembler then you have to write it all again for each different processor architecture.
You will probably need some assembler code for very processor specific code. But that can be kept to a minimum.
There are tons of architectures out there.
ARM, as used on the Pi, mobile phones, embedded systems etc. In both 32 bit and 64 bit variants. Very different.
x86, as used in PC's and Macs. Again in 32 bit and 64 bit variants. Again each very different.
RISC V. A new open instruction set standard that is on the rise.
Then there are the good old war horses, Motorola 68000, MIPS, Spark, IBM Power etc, etc.
Anyway, as a start, I think it's a great idea to get familiar with assembler. Even if you end up not writing most of your code in assembler it teaches an appreciation of what is going on "under the hood" in your computer. I suggest you check the sticky threads in bare metal form here: viewforum.php?f=72
and then have a look through the rest of it.
Memory in C++ is a leaky abstraction .