So I have been learning assembly and I understand the process of source.s -> assembler -> source.o -> linker -> executable. But I have been wondering, if there are no other object files I need to execute my program.
Why can't I just run the object file?
For example: something as simple as
global _start
section .text
_start:
mov rax, 1
mov rbx, 0
int 0x80
still requires linking even though the object file should in theory contain all the code needed to run.