Qualcomm Interview Question
Country: India
Interview Type: In-Person
A kernel is the lowest level of easily replaceable software that interfaces with the hardware in your computer. It is responsible for interfacing all of your applications that are running in “user mode” down to the physical hardware, and allowing processes, known as servers, to get information from each other using inter-process communication (IPC).
going by the definition of process and thread, the kernel itself doesn't qualify to be one, processes are associated with task_struct and have virtual memories of its own, kernel has many subsystem which remains dormant and run at the behest of user space process, the entire kernel maps itself in the kernel part of the VM, then there are many kernel threads which are associated with a task_struct and can be scheduled, and there are handlers which are not running in process context and they do not have a task_struct of itself. Therefor a 1 line answer is not possible.
That is not a correct answer. Read up on concepts of kernel threads and micro kernels. Further a good portion of the kernel executes on behalf of a process during system calls and is not even a "thread".
This is the correct answer, linux kernel is a single process executing on a single address space. It is not a micro kernel, its a monolithic kernel.
it is correct, linux kernel is a single process and a monolithic kernel, but with moduled approach, also the kernel process itself can get preempted
Even though Linux is monolithic, it is not considered a process. Brave Heart was right. The first process (and the mother of all processes) is init, which is called by the end of kernel execution. After that, it is idle (not really idle actually as its scheduler executes normal processes in round lobin), waiting for anti system call to be called or interrupts to be serviced.
All processes must have a PID (process Id), while the kernel doesn't.
Linux Kernel is a passive component of the OS. It does not execute, neither it is a process/thread. It itself has many subsystem and could be called with system cal API/Interrupt that helps in executing the user space process in system space for more privileged access, either to I/O or any subsystem.
- Ruinderjit Singh December 02, 2012