Couple statements, couple answers.
I don't understand everything.
If I'm wrong, correct me, but don't be mean about it.
You weren't senior in your first steps either.
Some of these are guarranteed wrong,
because I want to taunt out the correct answer.
Statements:
S1. Assembly works 1 on 1 with the CPU. It's as "least as possible overhead" as possible that is still currently in active use.
Everything that has to do with usable lowest level and is still "cool" to use is Assembly. Operating systems, operating system installations, rescue CD, boot systems and lowest level (partitioning etc.) applications are made in Assembly in order to not make people insane by typing 1's and 0's. Assembly's so-called OP codes work in ratio 1 to 1 in binary, and is often pretended that Assembly is just language of processor. "You just don't go lower than that".
S2. Assembly has no security flaws.
As "hacking" (software cracking) requires a lot of working hardware and software. It's like trying to cut atom (Assembly written program) with an axe (software written in other languages on different machine). Assembly has no possible corruption as it has no networking access, it doesn't have faulty delimiters, it doesn't care about social engineering and the only actual way to make Assembly program behave like it shouldn't, is to directly and physically overwrite the data or intercept within processor itself. And if you try to intercept calls by wrong memory to wrong sector, you'll most likely crash system than actually achieve your result. Making at least 99% of wanna be "hackers" (includes script kiddies up to ones with legendary titles) to find better pray. On top of that, it's harder to correctly corrupt couple megabytes of assembly without knowing what each piece of code is meant for.
S3. Compilation of C++ to Assembly is exactly same as writing in pure Assembly.
That's a tough one. According to this site. It is possible to convert C++ code into Assembly and in actual case, it is possible to actually see what part corresponds to what. Meaning that securely written C++ code, using securely written compiler, results in (mentioned in point 2) unshakable Assembly/binary system.
Questions:
Q1. How did people not turn insane when C/C++/Assembly was not a thing?
I'm not old enough to recall these times. But before there was C and C++ and Assembly. You had to write binary, how possibly did you keep up with 10.000 lines of code consisting only of 1's and 0's?
Q2. Wouldn't eliminating security flaws one by one make for safer fundament?
I know that there is no such thing as unbreakable software. But wouldn't fixing stuff from ground up immensly improve security overall? After all, it's all about the fundamental security flaws. When it comes to system vulnerabilities. There's only 3 ways, through human (social engineering), through programmed mistake (impossible to avoid at this point) and underlying software. If we fixed underlying software, the higher languages wouldn't have that many leaks as result of upstream bugs and errors.
That's it. Please don't be an a++hat, just trying to understand stuff.