> For the complete documentation index, see [llms.txt](https://notes.mikaelsamvelian.com/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://notes.mikaelsamvelian.com/linux-fundamentals/architecture.md).

# Architecture

<img src="https://1588585907-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MTwgToRvLjYdjfpAVgP%2Fuploads%2FwIK9HW7RgYv1MFL2bpA8%2Fimage.png?alt=media&amp;token=f1db5e2f-99fe-4db8-b71b-4f4c32bba3d4" alt="" data-size="original">

* The Linux kernel is monolithic in nature.
* System calls are used to interact with the Linux kernel space.
* Kernel code can only be executed in the kernel mode. Non-kernel code is executed in the user mode.
* Device drivers are used to communicate with the hardware devices.
