Ravindra BagaleCourses & study guides English

Linux Kernel Basics: Modules, /proc, /sys, Namespaces आणि cgroups (Containers कसे चालतात)

Kernel हा Linux चा गाभा. तो hardware शी बोलतो, processes चालवतो आणि त्यांना वेगळं ठेवतो. या chapter मधे kernel version बघाल, kernel modules (drivers) load आणि unload कराल, /proc आणि /sys मधला live kernel data वाचाल, आणि containers शक्य करणारे दोन features शिकाल: namespaces (process काय बघू शकतो) आणि cgroups (किती वापरू शकतो). यानंतर Docker आणि Kubernetes जादू वाटणार नाहीत.

या chapter मध्ये तुम्ही काय शिकाल

  • Kernel version आणि boot parameters तपासा
  • Modules list, load आणि blacklist
  • /proc आणि /sys मधे process आणि system data वाचा
  • unshare ने namespaces बनवा आणि nsenter ने आत जा
  • cgroups v2 आणि systemd ने CPU आणि memory limit
  • सगळं containers शी जोडा

1. रोजचं उदाहरण: co-working space

हे का लागतं?

Baner मधल्या co-working building ला एक manager (kernel). प्रत्येक company ला स्वतःची cabin: त्यांना फक्त स्वतःचा name board, Wi-Fi नाव आणि staff list दिसते (namespaces). Meter प्रत्येक cabin किती power आणि AC वापरते ते limit करतो (cgroups). नवा printer आला की manager त्याचा driver लावतो (module). Lobby मधला notice board सगळ्यांसाठी live stats दाखवतो (/proc).

हे काय आहे?

Manager = kernel. Printer driver = module. Lobby board = /proc आणि /sys. खासगी cabin view = namespaces. Power meter = cgroups. Cabin = container.

कसं करायचं (step by step)

Container कसा सुरू होतोRuntime kernel कडे नवे namespaces मागतो (pid, net, mnt, uts, ipc, user)Kernel cgroup बनवतो आणि CPU/memory limitsRoot filesystem (image layers) mountआत process PID 1 म्हणून सुरूत्याला फक्त स्वतःचं जग दिसतं
Container म्हणजे namespaces आणि cgroups असलेला साधा process.

2. Kernel version आणि boot options

हे का लागतं?

Bugs, drivers आणि features kernel version वर अवलंबून.

हे काय आहे?

uname -r चालू kernel; uname -a सगळं. /proc/cmdline boot parameters. Installed kernels: rpm -q kernel किंवा dpkg -l 'linux-image*'. grubby --info=ALL (RHEL) boot entries. नव्या kernel ला reboot हवा.

कसं करायचं (step by step)

  1. चालू kernel.
uname -r

Output:

6.1.112-124.190.amzn2023.x86_64

याचा अर्थ: Amazon Linux 2023.

  1. Boot parameters.
cat /proc/cmdline

Output:

BOOT_IMAGE=(hd0,gpt1)/vmlinuz-6.1.112 root=UUID=... ro console=ttyS0

याचा अर्थ: GRUB ने दिलेले.

  1. Boot option.
sudo grubby --update-kernel=ALL --args='mitigations=auto'

Output:

(no output)

याचा अर्थ: पुढच्या boot ला.

3. Kernel modules: lsmod आणि modinfo

हे का लागतं?

Disks, network cards आणि filesystems चे drivers गरजेनुसार load होणारे modules.

हे काय आहे?

lsmod loaded modules size आणि users सह. modinfo NAME description, version आणि parameters. Modules /lib/modules/$(uname -r) मधे. lspci -k device कोणता driver वापरतो.

कसं करायचं (step by step)

  1. Loaded.
lsmod | head -4

Output:

Module   Size  Used by
ena    151552  0
nvme    53248  2

याचा अर्थ: ENA network, NVMe disk.

  1. Details.
modinfo ena | head -4

Output:

filename: /lib/modules/6.1.../ena.ko.xz
description: Elastic Network Adapter (ENA)
version: 2.12.0g

याचा अर्थ: AWS network driver.

  1. Device driver.
lspci -k | grep -A2 -i ethernet

Output:

00:05.0 Ethernet controller: Amazon.com ENA
 Kernel driver in use: ena

याचा अर्थ: Confirms.

4. modprobe: load, unload, blacklist

हे का लागतं?

WireGuard, extra filesystem साठी module हवं, किंवा buggy driver थांबवायचा.

हे काय आहे?

modprobe NAME dependencies सह load; modprobe -r unload. Boot ला load: /etc/modules-load.d/NAME.conf. Options: /etc/modprobe.d/NAME.conf मधे 'options NAME key=val'. Blacklist: /etc/modprobe.d मधे 'blacklist NAME'. insmod/rmmod टाळा (dependency handling नाही).

कसं करायचं (step by step)

  1. Load.
sudo modprobe br_netfilter && lsmod | grep br_netfilter

Output:

br_netfilter 32768 0
bridge 315392 1 br_netfilter

याचा अर्थ: Kubernetes ला लागतं.

  1. Boot ला.
echo br_netfilter | sudo tee /etc/modules-load.d/k8s.conf

Output:

br_netfilter

याचा अर्थ: Persistent.

  1. Blacklist.
echo 'blacklist floppy' | sudo tee /etc/modprobe.d/no-floppy.conf

Output:

blacklist floppy

याचा अर्थ: परत load नाही.

  1. Unload.
sudo modprobe -r floppy

Output:

(no output)

याचा अर्थ: न वापरल्यास काढलं.

5. dmesg: kernel messages

हे का लागतं?

Hardware errors, OOM kills आणि driver problems आधी इथे.

हे काय आहे?

dmesg -T वाचता येणारा वेळ; -l err,warn level filter; -w live. journalctl -k journal मधून तेच, आणि -k -b -1 मागचा boot.

कसं करायचं (step by step)

  1. फक्त errors.
sudo dmesg -T -l err,warn | tail -3

Output:

[Sun Oct 25 20:10] EXT4-fs warning (device nvme1n1): ...

याचा अर्थ: Disk warning.

  1. मागचा boot.
journalctl -k -b -1 | tail -2

Output:

kernel: Out of memory: Killed process 912 (node)

याचा अर्थ: Crash का.

  1. Live.
sudo dmesg -w

Output:

[ 9912.1] usb 1-1: new device

याचा अर्थ: Plug करा आणि बघा.

6. /proc: live process आणि system data

हे का लागतं?

ps, top, free सारखी प्रत्येक tool /proc वाचते. तुम्ही थेट वाचू शकता.

हे काय आहे?

System files: /proc/cpuinfo, /proc/meminfo, /proc/loadavg, /proc/mounts, /proc/sys (tunables). प्रत्येक process /proc/PID: cmdline, environ, status (memory, state), fd/ (open files), limits, cwd, exe, ns/ (namespaces), cgroup.

कसं करायचं (step by step)

  1. CPU model.
grep -m1 'model name' /proc/cpuinfo

Output:

model name : Intel(R) Xeon(R) Platinum 8259CL

याचा अर्थ: Instance CPU.

  1. Process memory.
grep -E 'VmRSS|State' /proc/3011/status

Output:

State: S (sleeping)
VmRSS: 1983420 kB

याचा अर्थ: ~1.9 GB.

  1. कसा सुरू केला.
tr '\0' ' ' < /proc/3011/cmdline

Output:

java -Xmx2g -jar shop.jar

याचा अर्थ: पूर्ण command.

  1. Delete पण उघडी file.
sudo ls -l /proc/3011/fd | grep deleted

Output:

9 -> /var/log/shop.log (deleted)

याचा अर्थ: Restart पर्यंत जागा मोकळी नाही.

7. /sys: devices आणि kernel objects

हे का लागतं?

/sys devices, block queues आणि module parameters files म्हणून दाखवतो.

हे काय आहे?

/sys/block/DISK/queue/scheduler I/O scheduler. /sys/class/net/IF/ मधे speed आणि statistics. /sys/module/NAME/parameters module options. /sys/fs/cgroup cgroup tree. काही files मधे लिहिलं की behaviour live बदलतं.

कसं करायचं (step by step)

  1. I/O scheduler.
cat /sys/block/nvme0n1/queue/scheduler

Output:

[none] mq-deadline kyber

याचा अर्थ: NVMe साठी none.

  1. Interface counters.
cat /sys/class/net/ens5/statistics/rx_dropped

Output:

15422

याचा अर्थ: Drops.

  1. Module option.
cat /sys/module/nvme_core/parameters/io_timeout

Output:

4294967295

याचा अर्थ: EBS ला जास्त value.

8. Namespaces: process काय बघू शकतो

हे का लागतं?

Namespaces containers ना एकमेकांपासून आणि host पासून वेगळं ठेवतात.

हे काय आहे?

Types: pid (process IDs), net (interfaces, ports), mnt (mounts), uts (hostname), ipc, user (UID mapping), cgroup, time. lsns list करतो. ls -l /proc/PID/ns process चे namespaces. unshare नवे बनवतो; nsenter आत जातो; ip netns network namespaces.

Namespaceवेगळं करतोContainer वर परिणाम
pidProcess IDsApp PID 1
netNetwork stackस्वतःचा IP आणि ports
mntMountsस्वतःचा root filesystem
utsHostnameस्वतःचं hostname
userUser IDsआत root, बाहेर साधा

कसं करायचं (step by step)

  1. List.
sudo lsns -t net

Output:

NS         TYPE NPROCS PID  COMMAND
4026531840 net  210    1    /usr/lib/systemd/systemd
4026532301 net  2      8812 nginx: master

याचा अर्थ: container मधे nginx.

  1. नवं hostname जग.
sudo unshare --uts --fork bash -c 'hostname box-a; hostname'

Output:

box-a

याचा अर्थ: बाहेर hostname तसंच.

  1. नवं PID जग.
sudo unshare --pid --fork --mount-proc bash -c 'ps -e'

Output:

PID TTY TIME CMD
  1 pts/0 00:00:00 bash
  2 pts/0 00:00:00 ps

याचा अर्थ: Bash PID 1.

  1. Container च्या network मधे.
sudo nsenter -t 8812 -n ss -ltn

Output:

LISTEN 0 511 0.0.0.0:80

याचा अर्थ: Image मधे tools नसताना debug.

9. ip netns ने network namespaces

हे का लागतं?

Docker bridges आणि Kubernetes pods ना networking असंच मिळतं.

हे काय आहे?

ip netns add NAME एक बनवतो. veth pair म्हणजे virtual cable: एक टोक host मधे, एक namespace मधे. IPs द्या, links up, आणि ping. ip netns exec NAME CMD आत command.

कसं करायचं (step by step)

  1. बनवा.
sudo ip netns add red && sudo ip link add veth-h type veth peer name veth-r && sudo ip link set veth-r netns red

Output:

(no output)

याचा अर्थ: Cable लावली.

  1. Address.
sudo ip addr add 10.9.0.1/24 dev veth-h && sudo ip link set veth-h up && sudo ip netns exec red ip addr add 10.9.0.2/24 dev veth-r && sudo ip netns exec red ip link set veth-r up

Output:

(no output)

याचा अर्थ: दोन्ही टोकं up.

  1. Ping.
sudo ip netns exec red ping -c1 10.9.0.1

Output:

1 packets transmitted, 1 received

याचा अर्थ: चालतं.

10. cgroups v2: process किती वापरू शकतो

हे का लागतं?

Limits शिवाय एक बेफाम process सगळा CPU किंवा memory खाऊन server मारू शकतो.

हे काय आहे?

cgroup v2 म्हणजे /sys/fs/cgroup वर एक tree. तपासा: stat -fc %T /sys/fs/cgroup cgroup2fs दाखवतो. प्रत्येक group मधे files: memory.max, memory.current, cpu.max ('quota period', उदा. 50000 100000 = अर्धा CPU), pids.max, io.max. PID cgroup.procs मधे. memory.events OOM kills मोजतो.

कसं करायचं (step by step)

  1. Version.
stat -fc %T /sys/fs/cgroup

Output:

cgroup2fs

याचा अर्थ: v2.

  1. हाताने group.
sudo mkdir /sys/fs/cgroup/demo && echo 200M | sudo tee /sys/fs/cgroup/demo/memory.max && echo '50000 100000' | sudo tee /sys/fs/cgroup/demo/cpu.max

Output:

200M
50000 100000

याचा अर्थ: 200 MB, अर्धा CPU.

  1. Shell आत.
echo $$ | sudo tee /sys/fs/cgroup/demo/cgroup.procs

Output:

2241

याचा अर्थ: Children पण limited.

  1. कोणता cgroup?
cat /proc/3011/cgroup

Output:

0::/system.slice/shop-api.service

याचा अर्थ: systemd ने बनवला.

11. cgroups सोप्या पद्धतीने: systemd

हे का लागतं?

systemd आधीच प्रत्येक service cgroup मधे ठेवतो, म्हणून हाताने नाही तिथे limits.

हे काय आहे?

Unit किंवा drop-in मधे: MemoryMax=1G, CPUQuota=150%, TasksMax=500, IOWeight=. Live: systemctl set-property UNIT MemoryMax=1G. एकदा: systemd-run --scope -p MemoryMax=300M CMD. systemd-cgtop ने बघा; systemd-cgls tree.

कसं करायचं (step by step)

  1. Service limit.
sudo systemctl set-property shop-api.service MemoryMax=1G CPUQuota=150%

Output:

(no output)

याचा अर्थ: Drop-in मधे persist.

  1. एकदाचा job.
sudo systemd-run --scope -p MemoryMax=300M -p CPUQuota=50% tar czf /backup/www.tgz /var/www

Output:

Running scope as unit: run-r1b2.scope

याचा अर्थ: Backup hog करू शकत नाही.

  1. cgroup नुसार live top.
systemd-cgtop -n 1

Output:

Control Group             Tasks %CPU Memory
/system.slice/shop-api    88    140  980M

याचा अर्थ: Limit जवळ.

  1. Docker तेच वापरतो.
docker run -d --memory 512m --cpus 1.5 nginx

Output:

f3a1...

याचा अर्थ: cgroup limits.

12. सगळं एकत्र: शून्यातून container

हे का लागतं?

एकदा हाताने बघितलं की containers चं गूढ जातं.

हे काय आहे?

unshare (pid, mnt, uts, net), root filesystem (extract केलेलं image), chroot, आणि cgroup limit एकत्र. खरे runtimes (runc, containerd) हेच plus seccomp, capabilities आणि overlay filesystems करतात.

कसं करायचं (step by step)

  1. Root filesystem.
mkdir rootfs && docker export $(docker create alpine) | tar -x -C rootfs

Output:

(no output)

याचा अर्थ: Alpine files.

  1. Mini container.
sudo unshare --pid --uts --mount --net --fork chroot rootfs /bin/sh -c 'mount -t proc proc /proc; hostname mini; ps; hostname'

Output:

PID USER COMMAND
 1 root /bin/sh -c ...
mini

याचा अर्थ: स्वतःचे PIDs आणि नाव.

  1. Host वर container PID.
docker inspect -f '{{.State.Pid}}' web

Output:

8812

याचा अर्थ: फक्त host process.

13. अनेक industries मधली खरी उदाहरणं

हे का लागतं?

तेच Linux skill प्रत्येक प्रकारच्या company मध्ये लागतं. वेगवेगळ्या ठिकाणी पाहिलं की लक्षात राहतं.

हे काय आहे?

प्रत्येक row म्हणजे एक काल्पनिक team. कोण हे वापरतं आणि कसं ते दाखवते.

कसं करायचं (step by step)

Team आणि शहरते कसं वापरतातCommand
Aniket, Kubernetes platform, Punebr_netfilter आणि overlay loadmodprobe overlay
Sophie, CI service, ParisBuild jobs साठी systemd-run limitssystemd-run --scope -p MemoryMax=2G
Hiro, telecom, TokyoTest labs साठी network namespacesip netns add
Fatima, bank, Dohaन वापरलेला USB storage blacklistblacklist usb-storage
Carlos, video, Mexico CityEncoders साठी cgroup CPU capsCPUQuota=200%
Pooja, SaaS, BengaluruPods debug साठी nsenternsenter -t PID -n

14. नेहमीच्या errors आणि त्यांचे fixes

हे का लागतं?

हे errors सगळ्यांना येतात. कारण माहीत असलं की तास वाचतात.

हे काय आहे?

आधी नेमका message वाचा. मग खालच्या row शी जुळवा.

कसं करायचं (step by step)

दिसणारा errorका होतंFix कसा करायचा
modprobe: FATAL: Module wireguard not found in directory /lib/modules/...या kernel साठी module नाहीkernel-modules-extra किंवा matching package.
sudo dnf install -y kernel-modules-extra
modprobe: FATAL: Module nvme is in useDevice अजून वापरतोवापरातला driver unload नाही.
lsmod | grep nvme
Required key not availableSecure Boot unsigned module नाकारतोSigned modules किंवा key enroll.
mokutil --sb-state
unshare: unshare failed: Operation not permittedRoot नाही आणि user namespaces बंदsudo किंवा --user --map-root-user.
sysctl user.max_user_namespaces
tee: memory.max: No such fileParent मधे controller enable नाहीcgroup.subtree_control मधे +memory.
cat /sys/fs/cgroup/cgroup.subtree_control
Container OOMKilled (exit 137)memory.max ला लागलंLimit वाढवा किंवा leak fix.
cat /sys/fs/cgroup/system.slice/*/memory.events
Cannot open /proc/PID/...: No such fileProcess संपलाPID परत तपासा.
pgrep -f shop
Failed to set unit properties: Unit not loadedचुकीचं unit नाव.service सह पूर्ण नाव.
systemctl list-units --type=service | grep shop
rmdir: failed to remove 'demo': Device or resource busycgroup मधे अजून processesआधी हलवा किंवा kill.
cat /sys/fs/cgroup/demo/cgroup.procs
Disk full but du shows littleDelete केलेली file अजून उघडीHolder restart किंवा /proc मधून truncate.
sudo lsof +L1

15. Troubleshooting step by step

हे का लागतं?

Kernel-level issues: messages वाचा, मग योग्य file तपासा.

हे काय आहे?

वरून खाली जा. ज्या step ला problem दिसतो तिथे थांबा.

कसं करायचं (step by step)

  1. Kernel log
sudo dmesg -T -l err,warn
  1. Loaded drivers
lsmod
  1. Device आणि driver
lspci -k
  1. Process details
cat /proc/PID/status
  1. Namespaces
sudo lsns
  1. cgroup limits
systemctl show UNIT -p MemoryMax -p CPUQuotaPerSecUSec

16. Lab 1: Modules आणि /proc

हे का लागतं?

Boot ला module load आणि /proc मधून process details.

हे काय आहे?

पूर्ण hands-on lab. प्रत्येक step test Linux machine वर करा (EC2 instance, VM किंवा WSL).

कसं करायचं (step by step)

  1. Info.
modinfo overlay | head -3

Output:

description: Overlay filesystem
  1. Load.
sudo modprobe overlay && lsmod | grep overlay

Output:

overlay 151552 0
  1. Persist.
echo overlay | sudo tee /etc/modules-load.d/overlay.conf

Output:

overlay
  1. Process सुरू.
sleep 600 &

Output:

[1] 7001
  1. वाचा.
grep -E 'State|PPid' /proc/7001/status; ls -l /proc/7001/ns | head -3

Output:

State: S (sleeping)

17. Lab 2: Namespaces आणि cgroups

हे का लागतं?

वेगळं shell आणि memory-limited job.

हे काय आहे?

पूर्ण hands-on lab. प्रत्येक step test Linux machine वर करा (EC2 instance, VM किंवा WSL).

कसं करायचं (step by step)

  1. PID namespace.
sudo unshare --pid --fork --mount-proc bash -c 'ps -e'

Output:

1 bash
  1. UTS namespace.
sudo unshare --uts --fork bash -c 'hostname lab; hostname'

Output:

lab
  1. Limited job.
sudo systemd-run --scope -p MemoryMax=100M stress-ng --vm 1 --vm-bytes 300M --timeout 20s

Output:

Running scope ... killed
  1. Events.
journalctl -k | grep -i 'memory cgroup out of memory' | tail -1

Output:

Memory cgroup out of memory: Killed process
  1. Service limit.
sudo systemctl set-property sshd.service TasksMax=200 && systemctl show sshd -p TasksMax

Output:

TasksMax=200

Ravindra Bagale's Tip

To debug inside a container that has no tools, do not install anything in it. Find its host PID with docker inspect, then run host tools inside its namespaces with nsenter -t PID -n (network) or -m (mount). You keep the image clean and still see everything.

18. नेहमी विचारले जाणारे प्रश्न

प्र. Kernel module काय?

चालू kernel मधे load होणारा driver किंवा feature.

प्र. /proc disk वर आहे?

नाही, kernel live बनवतो.

प्र. modprobe vs insmod?

modprobe dependencies सांभाळतो; तोच वापरा.

प्र. Containers VMs आहेत?

नाही, त्याच kernel वर namespaces आणि cgroups असलेले processes.

प्र. cgroup v1 की v2?

Modern distros वर v2; एक unified tree.

प्र. Exit code 137?

SIGKILL ने killed, बहुतेक OOM.

प्र. Kernel live बदलू?

sysctl ने tunables; नव्या kernel ला reboot.

प्र. nsenter कशासाठी?

दुसऱ्या process च्या namespaces मधे command.

19. मुलाखत प्रश्न आणि उत्तरं

Beginner level

प्र. Kernel version?

uname -r.

प्र. Loaded modules?

lsmod.

प्र. /proc काय?

Live kernel आणि process data चा virtual filesystem.

प्र. Module load?

modprobe NAME.

Mid level level

प्र. Boot ला module?

/etc/modules-load.d/NAME.conf.

प्र. Service ची memory limit?

systemctl set-property UNIT MemoryMax=.

प्र. Namespaces list?

lsns.

प्र. Disk full, du कमी?

Delete केलेल्या उघड्या files; lsof +L1.

Senior level

प्र. Containers isolate कसे?

View साठी namespaces, resources साठी cgroups, plus seccomp आणि capabilities.

प्र. Distroless pod चं network debug?

PID शोधा, host tools सह nsenter -t PID -n.

प्र. cpu.max 50000 100000?

100 ms मधे 50 ms = अर्धा CPU.

प्र. Kubernetes ला br_netfilter का?

Bridged pod traffic iptables rules मधून जावं म्हणून.

घरी करून बघा

  1. तुमच्या machine वर lsns आणि cat /proc/self/cgroup चालवा आणि प्रत्येक line समजावा.
  2. systemd-run आणि 300M memory limit ने backup चालवा.

सराव Tasks

या scenario बद्दल

London Legal LLP हा लंडन मधला कायदा सेवा व्यवसाय आहे. Oliver Hughes त्यांचं IT व cloud काम पाहतात. त्यांचे पैसे GBP मध्ये मोजले जातात आणि AWS resources eu-west-2 Region मध्ये चालतात. खालच्या tasks मध्ये तुम्ही या lesson मध्ये शिकलेलं वापरून त्यांची खरी कामं करता. सगळी नावं, account IDs, IP addresses व numbers सरावासाठी काल्पनिक आहेत.

0 / 18

सोपं सगळी kernel info

का: BIZ मधले containers kernel features आहेत.

काय करायचं: Kernel नाव आणि machine hardware नाव.

कसं करायचं:
  1. हे काम करणारा Linux command शोधा.
  2. Task ला लागणारे options (उदा. -r, -h) जोडा.
  3. File नावं, folders किंवा users योग्य क्रमाने लिहा.
  4. System files/users बदलत असाल तर sudo वापरा. Check answer दाबा.

सोपं Module info

का: BIZ मधले containers kernel features आहेत.

काय करायचं: Module xfs ची माहिती.

कसं करायचं:
  1. हे काम करणारा Linux command शोधा.
  2. Task ला लागणारे options (उदा. -r, -h) जोडा.
  3. File नावं, folders किंवा users योग्य क्रमाने लिहा.
  4. System files/users बदलत असाल तर sudo वापरा. Check answer दाबा.

सोपं nvme loaded?

का: BIZ मधले containers kernel features आहेत.

काय करायचं: nvme_core सारखं module loaded आहे का.

कसं करायचं:
  1. हे काम करणारा Linux command शोधा.
  2. Task ला लागणारे options (उदा. -r, -h) जोडा.
  3. File नावं, folders किंवा users योग्य क्रमाने लिहा.
  4. System files/users बदलत असाल तर sudo वापरा. Check answer दाबा.

सोपं meminfo

का: BIZ मधले containers kernel features आहेत.

काय करायचं: /proc/meminfo च्या पहिल्या 5 lines head ने.

कसं करायचं:
  1. हे काम करणारा Linux command शोधा.
  2. Task ला लागणारे options (उदा. -r, -h) जोडा.
  3. File नावं, folders किंवा users योग्य क्रमाने लिहा.
  4. System files/users बदलत असाल तर sudo वापरा. Check answer दाबा.

सोपं PID namespaces

का: BIZ मधले containers kernel features आहेत.

काय करायचं: फक्त pid namespaces.

कसं करायचं:
  1. हे काम करणारा Linux command शोधा.
  2. Task ला लागणारे options (उदा. -r, -h) जोडा.
  3. File नावं, folders किंवा users योग्य क्रमाने लिहा.
  4. System files/users बदलत असाल तर sudo वापरा. Check answer दाबा.

सोपं netns list

का: BIZ मधले containers kernel features आहेत.

काय करायचं: Network namespaces list.

कसं करायचं:
  1. हे काम करणारा Linux command शोधा.
  2. Task ला लागणारे options (उदा. -r, -h) जोडा.
  3. File नावं, folders किंवा users योग्य क्रमाने लिहा.
  4. System files/users बदलत असाल तर sudo वापरा. Check answer दाबा.

सोपं cgroup version

का: BIZ मधले containers kernel features आहेत.

काय करायचं: /sys/fs/cgroup चा filesystem type.

कसं करायचं:
  1. हे काम करणारा Linux command शोधा.
  2. Task ला लागणारे options (उदा. -r, -h) जोडा.
  3. File नावं, folders किंवा users योग्य क्रमाने लिहा.
  4. System files/users बदलत असाल तर sudo वापरा. Check answer दाबा.

सोपं cgroup tree

का: BIZ मधले containers kernel features आहेत.

काय करायचं: system.slice चा systemd cgroup tree.

कसं करायचं:
  1. हे काम करणारा Linux command शोधा.
  2. Task ला लागणारे options (उदा. -r, -h) जोडा.
  3. File नावं, folders किंवा users योग्य क्रमाने लिहा.
  4. System files/users बदलत असाल तर sudo वापरा. Check answer दाबा.

मध्यम wireguard load

का: BIZ मधले containers kernel features आहेत.

काय करायचं: Module wireguard load.

कसं करायचं:
  1. हे काम करणारा Linux command शोधा.
  2. Task ला लागणारे options (उदा. -r, -h) जोडा.
  3. File नावं, folders किंवा users योग्य क्रमाने लिहा.
  4. System files/users बदलत असाल तर sudo वापरा. Check answer दाबा.

मध्यम Module unload

का: BIZ मधले containers kernel features आहेत.

काय करायचं: Module pcspkr unload.

कसं करायचं:
  1. हे काम करणारा Linux command शोधा.
  2. Task ला लागणारे options (उदा. -r, -h) जोडा.
  3. File नावं, folders किंवा users योग्य क्रमाने लिहा.
  4. System files/users बदलत असाल तर sudo वापरा. Check answer दाबा.

मध्यम Kernel errors

का: BIZ मधले containers kernel features आहेत.

काय करायचं: फक्त crit आणि err kernel messages, readable time.

कसं करायचं:
  1. हे काम करणारा Linux command शोधा.
  2. Task ला लागणारे options (उदा. -r, -h) जोडा.
  3. File नावं, folders किंवा users योग्य क्रमाने लिहा.
  4. System files/users बदलत असाल तर sudo वापरा. Check answer दाबा.

मध्यम मागचा boot kernel

का: BIZ मधले containers kernel features आहेत.

काय करायचं: दोन boots आधीचे kernel messages.

कसं करायचं:
  1. हे काम करणारा Linux command शोधा.
  2. Task ला लागणारे options (उदा. -r, -h) जोडा.
  3. File नावं, folders किंवा users योग्य क्रमाने लिहा.
  4. System files/users बदलत असाल तर sudo वापरा. Check answer दाबा.

मध्यम Process status

का: BIZ मधले containers kernel features आहेत.

काय करायचं: PID 1 चं /proc status.

कसं करायचं:
  1. हे काम करणारा Linux command शोधा.
  2. Task ला लागणारे options (उदा. -r, -h) जोडा.
  3. File नावं, folders किंवा users योग्य क्रमाने लिहा.
  4. System files/users बदलत असाल तर sudo वापरा. Check answer दाबा.

मध्यम नवं hostname

का: BIZ मधले containers kernel features आहेत.

काय करायचं: नव्या IPC namespace मधे bash (fork).

कसं करायचं:
  1. हे काम करणारा Linux command शोधा.
  2. Task ला लागणारे options (उदा. -r, -h) जोडा.
  3. File नावं, folders किंवा users योग्य क्रमाने लिहा.
  4. System files/users बदलत असाल तर sudo वापरा. Check answer दाबा.

मध्यम netns बनवा

का: BIZ मधले containers kernel features आहेत.

काय करायचं: blue नावाचा network namespace.

कसं करायचं:
  1. हे काम करणारा Linux command शोधा.
  2. Task ला लागणारे options (उदा. -r, -h) जोडा.
  3. File नावं, folders किंवा users योग्य क्रमाने लिहा.
  4. System files/users बदलत असाल तर sudo वापरा. Check answer दाबा.

मध्यम Tasks limit

का: BIZ मधले containers kernel features आहेत.

काय करायचं: nginx.service live 300 tasks limit.

कसं करायचं:
  1. हे काम करणारा Linux command शोधा.
  2. Task ला लागणारे options (उदा. -r, -h) जोडा.
  3. File नावं, folders किंवा users योग्य क्रमाने लिहा.
  4. System files/users बदलत असाल तर sudo वापरा. Check answer दाबा.

अवघड Mount ns मधे

का: BIZ मधले containers kernel features आहेत.

काय करायचं: PID 9100 च्या mount namespace मधे df -h.

कसं करायचं:
  1. हे काम करणारा Linux command शोधा.
  2. Task ला लागणारे options (उदा. -r, -h) जोडा.
  3. File नावं, folders किंवा users योग्य क्रमाने लिहा.
  4. System files/users बदलत असाल तर sudo वापरा. Check answer दाबा.

अवघड Limited one-off

का: BIZ मधले containers kernel features आहेत.

काय करायचं: big.log वर gzip -9 MemoryMax=200M scope मधे.

कसं करायचं:
  1. हे काम करणारा Linux command शोधा.
  2. Task ला लागणारे options (उदा. -r, -h) जोडा.
  3. File नावं, folders किंवा users योग्य क्रमाने लिहा.
  4. System files/users बदलत असाल तर sudo वापरा. Check answer दाबा.

थोडक्यात सांगायचं तर

  1. uname -r आणि /proc/cmdline kernel आणि boot options.
  2. lsmod, modinfo, modprobe drivers; options आणि blacklists साठी modprobe.d.
  3. /proc आणि /sys live kernel files.
  4. Namespaces process काय बघतो ते मर्यादित.
  5. cgroups तो काय वापरतो ते मर्यादित; systemd सहज set करतो.
  6. Container = process + namespaces + cgroups.

उजळणी, तुलना आणि मुलाखत cards

हा lesson काही मिनिटांत revise करा. Cards phone वर save करा किंवा PNG download करा. प्रत्येक card वरचा QR हा lesson उघडतो.

Kernel modules. Runtime ला load होणारे drivers. lsmod list, modinfo माहिती. modprobe deps सह load. एक load.
उजळणी card: Kernel modules · PNG download करा · Card page उघडा
4 steps मधे cgroups. CPU आणि memory limit. Containers हेच वापरतात. systemd प्रत्येक unit ला. Live view.
उजळणी card: 4 steps मधे cgroups · PNG download करा · Card page उघडा
namespaces vs cgroups. Process काय बघू शकतो. / किती वापरू शकतो.
तुलना: namespaces vs cgroups · PNG download करा · Card page उघडा
modprobe vs insmod. नावाने, dependencies सह. / फक्त एक .ko file.
तुलना: modprobe vs insmod · PNG download करा · Card page उघडा
/proc काय?. Kernel कडून virtual files. Live process आणि system info. Process limits.
मुलाखत card: /proc काय? · PNG download करा · Card page उघडा
Containers isolate कसे?. Namespaces: pid, net, mnt, uts. cgroups resources limit. List.
मुलाखत card: Containers isolate कसे? · PNG download करा · Card page उघडा
Process अचानक killed?. OOM killer, memory limit. Kernel log बघा. शोधा.
मुलाखत card: Process अचानक killed? · PNG download करा · Card page उघडा
cgroup v1 vs v2?. v2 मधे एकच tree. Modern distros v2. तपासा.
मुलाखत card: cgroup v1 vs v2? · PNG download करा · Card page उघडा

अजून cards: Ravi Sir's Cards.