Let's say I compile a C program. it's gets translated into bytecode,
now what happens to that bytecode, does it immediately run on the
processor, or does it get processed by the kernel first and then runs
on processor after the kernel has manipulated it and handled the
memory allocation & etc....
The kernel is the core of an operating system. In a traditional design, it is responsible for memory management, I/O, interrupt handling, and various other things. In order to implement its functionality, the C library must call kernel functions. This is all managed by the compiler itself,though,it might internally communicate with the kernel. Hence,there is a major-role of compiler.
The compiled code can be in the form of object code or binary executables, i.e., program.obj
on ancient Windows OS and a.out
on ancient *nix machines, or an executable file as in current Windows OS, Linux, etc.
The source code during compilation is converted into generated code(executables) for target machine which is to be run directly on system(processor) using registers and memory and KERNEL
then plays major role...
Also, is a kernel considered as a virtual machine?
Also, your kernel is a major component of real machine! So,how it could be itself a virtual machine?
So,clear answer--- NO
!