Sistem Linux terdiri dari tiga bagian kode penting:
Kernel:
Bertanggung jawab memelihara semua abstraksi
penting dari sistem operasi,
termasuk hal seperti proses-
proses dan memori virtual.
Perpustakaan sistem:
menentukan kumpulan fungsi standar
dimana aplikasi dapat berinteraksi dengan kernel, dan
mengimplementasi hampir semua fungsi sistem operasi yang
tidak memerlukan hak penuh atas kernel.
Utilitas Sistem:
adalah program yang melakukan pekerjaan
manajemen secara individu dan khusus.
Walau pun berbagai sistem operasi modern telah
mengadopsi sebuah arsitektur
message-passing buat kernel internal mereka,
Linux memakai model historis UNIX: kernel diciptakan
sebagai biner yang tunggal dan monolitis. Alasan
utama adalah untuk meningkatkan performa: Karena
semua struktur data dan kode kernel disimpan dalam
satu
address space,
alih konteks tidak
diperlukan ketika sebuah proses memanggil sebuah
fungsi sistem operasi atau ketika interupsi perangkat
keras dikirim. Tidak hanya scheduling inti dan kode
memori virtual menempati
address space ini; semua kode kernel, termasuk
semua
device drivers,
sistem berkas, dan kode jaringan, hadir dalam satu
address space yang
sama.
Kernel Linux membentuk inti dari sistem operasi
Linux. Dia menyediakan semua fungsi yang diperlukan
untuk menjalankan proses, dan disediakan servis
sistem untuk memberikan pengaturan dan proteksi akses
ke sumber daya (resource) perangkat keras. Kernel
mengimplementasi semua fitur yang diperlukan supaya
dapat bekerja sebagai sistem operasi. Namun, jika
sendiri, sistem operasi yang disediakan oleh kernel
Linux sama sekali tidak mirip dengan sistem UNIX. Dia
tidak memiliki banyak fitur ekstra UNIX, dan fitur
yang disediakan tidak selalu dalam format yang
diharapkan oleh aplikasi UNIX. Interface dari sistem
operasi yang terlihat oleh aplikasi yang sedang
berjalan tidak dipelihara secara langsung oleh
kernel. Melainkan, aplikasi membuat panggilan
(calls)
ke perpustakaan sistem, yang kemudian memanggil
servis sistem operasi yang dibutuhkan.