Kernel
কার্নেল
OS-এর সেই অংশ যা সর্বোচ্চ privilege-এ (ring 0 / EL1) চলে — hardware multiplex করে, process isolate করে, আর syscall-এর মাধ্যমে abstraction সরবরাহ করে।
Kernel পুরো OS নয় — shell, libc, systemd, desktop environment কোনোটাই kernel নয়। Kernel হলো ঠিক সেই কোড যা privileged mode-এ চলে।
তিনটা কাজ:
| কাজ | মানে |
|---|---|
| Multiplexing | একটা CPU, একটা disk, একটা NIC — বহু process-এর মধ্যে ভাগ করা |
| Isolation | একজনের ভুল যেন অন্যজনকে না ছোঁয় |
| Abstraction | কাঁচা hardware-এর উপর process, file, socket, address space |
তিনটা স্থাপত্য:
- Monolithic — সব কিছু (driver, filesystem, network stack) ring 0-তে। দ্রুত, কিন্তু একটা buggy driver পুরো system নামাতে পারে। Linux।
- Microkernel — শুধু IPC, scheduling আর memory ring 0-তে; বাকি সব user space-এ। নিরাপদ, কিন্তু বেশি context switch। [[microkernel]], seL4, QNX।
- Hybrid — মাঝামাঝি। XNU (macOS), Windows NT।
Linux “monolithic” হলেও modular — driver runtime-এ load/unload
করা যায় (insmod, lsmod), কিন্তু load হলে সেগুলো kernel-এর
মতোই সম্পূর্ণ privilege পায়।
uname -r # kernel version
lsmod | head # লোড করা module