Machine code is the Processor Specific Binary Representation of the Instructions that a program is translated into; lowest level instructions from the processor architecture's instruction set.
The operating system is the agent responsible for passing the (((Binary))) instructions to the processor through the hardware architecture.
the most abstract translation made by translators is, therefore supposed to be the Binary instructions.
The assembler takes in the Assembly code that has instructions with one-to-one correspondence to the processor's architecture instructions ( that have binary representations ), and yields the Object Code.
The yield of the linker is nothing more linked Object Files, no translation happens at this stage. The load module is Object Code. I.e.: The loaded code by OS to RAM is the Object Code (which is not the binary representation of the instructions).
Question 1: Are the binary representations saved in the OS?
Question 2: What's the translator of the object code into binary representations? is it the OS (or the language runtime installed on it, if any)? Do all languages implementations have an installed runtime to do this if it's the runtime's job? Does an earlier agent than the OS do this job?
Question 3: Is the loaded code to the RAM really the object code not the binary representation? or does the loader translate the object code to its binary representation.