<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: Kunal Ingale</title>
    <description>The latest articles on DEV Community by Kunal Ingale (@kunal_ingale_3a69cd23efef).</description>
    <link>https://dev.to/kunal_ingale_3a69cd23efef</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F3444143%2F7e48a9c3-f8c9-4a69-a9b6-5b9d0413589b.jpg</url>
      <title>DEV Community: Kunal Ingale</title>
      <link>https://dev.to/kunal_ingale_3a69cd23efef</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/kunal_ingale_3a69cd23efef"/>
    <language>en</language>
    <item>
      <title>Linux Architecture Explained: A Practical Guide for DevOps Beginners</title>
      <dc:creator>Kunal Ingale</dc:creator>
      <pubDate>Sat, 07 Nov 2026 10:22:46 +0000</pubDate>
      <link>https://dev.to/kunal_ingale_3a69cd23efef/linux-architecture-explained-a-practical-guide-for-devops-beginners-22p9</link>
      <guid>https://dev.to/kunal_ingale_3a69cd23efef/linux-architecture-explained-a-practical-guide-for-devops-beginners-22p9</guid>
      <description>&lt;p&gt;Understand how Linux is built, what each part does, and why it matters for DevOps and interviews.&lt;/p&gt;

&lt;p&gt;Why Learn Linux Architecture?&lt;br&gt;
Almost every server, cloud VM, container and CI/CD runner you will work with in DevOps runs Linux. Knowing the commands is useful, but knowing how Linux is structured helps you debug faster, answer interview questions with confidence, and understand tools like Docker and Kubernetes at a deeper level.&lt;br&gt;
This post walks through the architecture layer by layer, with the role and a real DevOps use case for each part.&lt;/p&gt;

&lt;p&gt;The Big Picture&lt;br&gt;
┌─────────────────────────────────────┐&lt;br&gt;
│  User Space: Apps, Shell, Utilities │&lt;br&gt;
├─────────────────────────────────────┤&lt;br&gt;
│  Libraries (glibc) / System Calls   │&lt;br&gt;
├─────────────────────────────────────┤&lt;br&gt;
│  Kernel Space: Linux Kernel         │&lt;br&gt;
├─────────────────────────────────────┤&lt;br&gt;
│  Hardware: CPU, RAM, Disk, NIC      │&lt;br&gt;
└─────────────────────────────────────┘&lt;/p&gt;

&lt;p&gt;Each layer talks only to the one next to it. Applications never touch hardware directly. They ask the kernel, and the kernel does the work.&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Hardware
The physical layer: CPU, RAM, disks and network cards. The kernel communicates with it through device drivers.&lt;/li&gt;
&lt;li&gt;The Kernel (The Core)&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Frjbl2g8qvum0kg1hlfgc.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Frjbl2g8qvum0kg1hlfgc.png" alt=" " width="800" height="467"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Kernel type: Linux is a monolithic kernel with loadable modules. All core services run in kernel space, and extra features (like drivers) can be loaded or unloaded at runtime without a reboot.&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;System Call Interface
This is the bridge between user space and kernel space. When a program wants to read a file or create a process, it makes a system call such as open(), read(), fork() or exec().
Tip: Use strace to watch the system calls a program makes. It is a great debugging tool.&lt;/li&gt;
&lt;li&gt;Libraries
Libraries like glibc give programs a standard API on top of system calls, so developers don't have to call the kernel directly.
If you ever see a "library not found" error, run ldd  to check which shared libraries it needs.&lt;/li&gt;
&lt;li&gt;The Shell
The shell (bash, zsh) is a command interpreter. It takes your input, passes it to the system and shows the result.
Use case: shell scripting for automation, such as cron jobs, backups and CI/CD pipeline steps.&lt;/li&gt;
&lt;li&gt;User Space Utilities and Applications
Everything you interact with day to day lives here:
• Core tools: ls, grep, awk, sed, systemctl, ssh
• Services: nginx, Docker, Jenkins and more&lt;/li&gt;
&lt;li&gt;The Boot Process and Init System
Here is what happens when a Linux machine starts:
BIOS/UEFI → Bootloader (GRUB) → Kernel → initramfs → systemd (PID 1) → Services
systemd is the first process (PID 1) and the parent of all others. It:
• Manages services with systemctl start/stop/enable
• Handles logging through journalctl
• Restarts failed services automatically via unit files
Knowing this flow is essential for troubleshooting boot failures.&lt;/li&gt;
&lt;li&gt;Filesystem Hierarchy Standard (FHS)
Linux organizes everything as files in a single tree starting at /.
Directory
Purpose
/etc
Configuration files
/var
Logs and variable data (/var/log)
/home
User data
/bin, /usr/bin
Commands and binaries
/proc, /sys
Virtual files exposing kernel and process info
/dev
Device files
/tmp
Temporary files
How This Connects to Containers
Docker and Kubernetes are built on two Linux kernel features:
• Namespaces provide isolation (PID, network, mount, user), so each container thinks it has its own system.
• cgroups limit resources such as CPU and memory per container.
Containers are not tiny virtual machines. They are regular processes that share the host kernel, isolated by namespaces and limited by cgroups.
Quick Interview Questions&lt;/li&gt;
&lt;li&gt;Kernel vs. shell? The kernel manages system resources. The shell is the interface that lets you talk to the kernel.&lt;/li&gt;
&lt;li&gt;User space vs. kernel space? User space is restricted. Kernel space has full hardware access. Programs cross between them using system calls.&lt;/li&gt;
&lt;li&gt;What is PID 1? systemd (or init on older systems). It is the parent of all processes and starts the services.&lt;/li&gt;
&lt;li&gt;Process vs. thread? A process has its own memory space. Threads share memory within the same process.&lt;/li&gt;
&lt;li&gt;What happens when you type ls? The shell parses the command, calls fork() to create a child process, then exec() to load the ls binary. The kernel runs it and the output goes to stdout.&lt;/li&gt;
&lt;li&gt;Monolithic vs. microkernel? Linux is monolithic: core services run in kernel space, with modules loaded dynamically. A microkernel keeps only minimal services in kernel space.&lt;/li&gt;
&lt;li&gt;How do containers work? Namespaces isolate, cgroups limit resources, and all containers share the host kernel.
Final Thoughts
You don't need to memorize every detail. Remember the flow: Hardware → Kernel → System Calls → Libraries → Shell and Applications. Once that picture is clear, topics like processes, networking, containers and troubleshooting all fall into place.
In the next posts, we can dive deeper into the Linux boot process, process management and file permissions.
Happy learning!&lt;/li&gt;
&lt;/ol&gt;

</description>
      <category>linux</category>
      <category>architecture</category>
      <category>devops</category>
    </item>
  </channel>
</rss>
