Black boxes belong to the CPU path, blue boxes to the VM path.

Which forms are bytesbinary. Not plain text; a text editor shows garbage
machine code = native code (broad sense)
object code.o, addresses not filled in
executableELF, Mach-O, PE, addresses filled in
machine code from a JITruns straight from memory, never saved as a file
bytecode file.pyc, .class. Binary, but not machine code
Who handles memorymanaged / unmanaged. Unrelated to the forms; a separate axis
unmanagedC, C++. Compiled straight to machine code; the program calls malloc and free itself
managedC#, Java. Runs on a VM with a GC. Machine code from the JIT is still called managed
native codeTwo meanings: a synonym for machine code, or a synonym for unmanaged
Native AOT C#Machine code (native in the first sense), but has a GC, so managed (not native in the second sense)

In .NET, "assembly" also means the .dll or .exe file itself. It holds CIL and metadata, not assembly language.