<?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: Md. Mahmudul Hasan Mabud</title>
    <description>The latest articles on DEV Community by Md. Mahmudul Hasan Mabud (@mahmudul626).</description>
    <link>https://dev.to/mahmudul626</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.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F3750662%2Ffd538a05-fb47-40d8-93f3-2c4455538add.jpg</url>
      <title>DEV Community: Md. Mahmudul Hasan Mabud</title>
      <link>https://dev.to/mahmudul626</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/mahmudul626"/>
    <language>en</language>
    <item>
      <title>Installing SysLens: A Lightweight Linux System Information Tool</title>
      <dc:creator>Md. Mahmudul Hasan Mabud</dc:creator>
      <pubDate>Mon, 09 Mar 2026 18:57:53 +0000</pubDate>
      <link>https://dev.to/mahmudul626/installing-syslens-a-lightweight-linux-system-information-tool-4f9h</link>
      <guid>https://dev.to/mahmudul626/installing-syslens-a-lightweight-linux-system-information-tool-4f9h</guid>
      <description>&lt;p&gt;If you are a Linux enthusiast or a developer, you know the importance of quickly checking your system’s health, hardware specifications, and resource usage. SysLens is a lightweight, terminal-based tool written in C that provides a real-time snapshot of your system by reading the Linux /proc filesystem.&lt;/p&gt;

&lt;p&gt;In this guide, I’ll walk you through installing SysLens on your Linux machine, compiling it from source, and optionally installing it system-wide.&lt;/p&gt;




&lt;p&gt;Prerequisites&lt;/p&gt;

&lt;p&gt;Before you start, make sure you have:&lt;/p&gt;

&lt;p&gt;A Linux-based operating system (Ubuntu, Debian, Fedora, Arch, etc.)&lt;/p&gt;

&lt;p&gt;gcc or clang compiler installed&lt;/p&gt;

&lt;p&gt;make utility&lt;/p&gt;

&lt;p&gt;Basic terminal knowledge&lt;/p&gt;




&lt;p&gt;Step 1: Clone the Repository&lt;/p&gt;

&lt;p&gt;First, clone the SysLens GitHub repository to your local machine:&lt;/p&gt;

&lt;p&gt;git clone &lt;a href="https://github.com/mahmudul626/syslens.git" rel="noopener noreferrer"&gt;https://github.com/mahmudul626/syslens.git&lt;/a&gt;&lt;br&gt;
cd syslens&lt;/p&gt;




&lt;p&gt;Step 2: Build from Source&lt;/p&gt;

&lt;p&gt;SysLens uses a simple Makefile for compilation. To build the project:&lt;/p&gt;

&lt;p&gt;make&lt;/p&gt;

&lt;p&gt;If successful, this will create an executable named syslens in the project directory.&lt;/p&gt;




&lt;p&gt;Step 3: Run SysLens&lt;/p&gt;

&lt;p&gt;Run the tool directly from the terminal:&lt;/p&gt;

&lt;p&gt;./syslens&lt;/p&gt;

&lt;p&gt;You’ll see three sections:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;&lt;p&gt;System Info: OS name, kernel version, CPU model, uptime, and current user.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Resource Usage: RAM, swap usage, and load averages with visual progress bars.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Active Processes: Total tasks, running, sleeping, and zombie processes.&lt;/p&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;You can also use flags to display specific sections:&lt;/p&gt;

&lt;p&gt;./syslens -s      # System info only&lt;br&gt;
./syslens -m      # Resource usage only&lt;br&gt;
./syslens -p      # Active processes only&lt;br&gt;
./syslens --version&lt;br&gt;
./syslens --help&lt;/p&gt;




&lt;p&gt;Step 4: Optional System-wide Installation&lt;/p&gt;

&lt;p&gt;To make SysLens accessible from anywhere on your system:&lt;/p&gt;

&lt;p&gt;sudo make install&lt;/p&gt;

&lt;p&gt;This will copy the executable to /usr/bin/syslens. Now you can simply run:&lt;/p&gt;

&lt;p&gt;syslens&lt;/p&gt;

&lt;p&gt;To uninstall:&lt;/p&gt;

&lt;p&gt;sudo make uninstall&lt;/p&gt;




&lt;p&gt;Step 5: Testing &amp;amp; Validation&lt;/p&gt;

&lt;p&gt;SysLens has been designed to work on multiple Linux distributions. You can validate its performance using tools like:&lt;/p&gt;

&lt;p&gt;valgrind – for memory leak detection&lt;/p&gt;

&lt;p&gt;cppcheck – for static code analysis&lt;/p&gt;

&lt;p&gt;These are already integrated in the CI/CD workflow if you are contributing or compiling from the source.&lt;/p&gt;




&lt;p&gt;Conclusion&lt;/p&gt;

&lt;p&gt;SysLens is a lightweight, fast, and reliable Linux CLI tool to monitor your system. Whether you are a developer, sysadmin, or hobbyist, it provides an instant overview of your system’s health and performance.&lt;/p&gt;

&lt;p&gt;Try it out, contribute, or suggest improvements on GitHub.&lt;/p&gt;

</description>
      <category>cli</category>
      <category>linux</category>
      <category>monitoring</category>
      <category>tutorial</category>
    </item>
    <item>
      <title>From Curiosity to Code: How I Built SysLens, a Linux CLI System Monitor</title>
      <dc:creator>Md. Mahmudul Hasan Mabud</dc:creator>
      <pubDate>Mon, 09 Mar 2026 18:01:07 +0000</pubDate>
      <link>https://dev.to/mahmudul626/from-curiosity-to-code-how-i-built-syslens-a-linux-cli-system-monitor-2dk7</link>
      <guid>https://dev.to/mahmudul626/from-curiosity-to-code-how-i-built-syslens-a-linux-cli-system-monitor-2dk7</guid>
      <description>&lt;p&gt;Ever wondered what’s really happening inside your Linux system? The tools you use every day—top, htop, neofetch—give you the numbers, but do you know how they actually work under the hood?&lt;/p&gt;

&lt;p&gt;I didn’t—so I decided to build my own. Enter SysLens: a lightweight, fast, and simple CLI system monitor written entirely in C.&lt;/p&gt;




&lt;p&gt;Why Another System Monitor?&lt;/p&gt;

&lt;p&gt;There are dozens of Linux tools already. Why make one more?&lt;/p&gt;

&lt;p&gt;For me, it was all about learning by doing. Every new project is a skill test, and building something from scratch forces you to explore details you’d otherwise take for granted. With SysLens, I wanted to:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;&lt;p&gt;Understand the Linux /proc filesystem deeply&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Parse and display system stats efficiently in C&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Learn to build a professional, modular CLI tool&lt;/p&gt;&lt;/li&gt;
&lt;/ol&gt;




&lt;p&gt;Meet SysLens&lt;/p&gt;

&lt;p&gt;SysLens gives you essential system information in a clean, readable format:&lt;/p&gt;

&lt;p&gt;[ System Info ]&lt;br&gt;
OS          : Ubuntu 22.04 | Kernel : 6.8.0&lt;br&gt;
CPU         : Intel(R) Core(TM) i5&lt;br&gt;
Uptime      : 27 mins | User : mahmudul&lt;/p&gt;

&lt;p&gt;[ Resource Usage ]&lt;br&gt;
RAM         : [###.......] 34% (2.7GiB/7.6GiB)&lt;br&gt;
Swap        : [..........] 0%&lt;br&gt;
Load avg    : 1.40, 1.17, 0.78&lt;/p&gt;

&lt;p&gt;[ Active Processes ]&lt;br&gt;
Task        : 231 total | 2 running | 229 sleeping | 0 zombie&lt;/p&gt;

&lt;p&gt;No clutter. No fluff. Just real-time, critical system info at a glance.&lt;/p&gt;




&lt;p&gt;Core Features&lt;/p&gt;

&lt;p&gt;System Overview: OS, Kernel, CPU, uptime, current user&lt;/p&gt;

&lt;p&gt;Resource Monitoring: RAM, swap, load averages with color-coded bars&lt;/p&gt;

&lt;p&gt;Process Stats: Total, running, sleeping, and zombie processes&lt;/p&gt;

&lt;p&gt;CLI Flags: -s, -m, -p, --help, --version&lt;/p&gt;

&lt;p&gt;Lightweight &amp;amp; Fast: Minimal memory footprint, no external dependencies&lt;/p&gt;




&lt;p&gt;How SysLens Works&lt;/p&gt;

&lt;p&gt;SysLens reads directly from Linux’s virtual /proc filesystem:&lt;/p&gt;

&lt;p&gt;/proc/cpuinfo → CPU model&lt;/p&gt;

&lt;p&gt;/proc/meminfo → RAM and swap usage&lt;/p&gt;

&lt;p&gt;/proc/loadavg → system load averages&lt;/p&gt;

&lt;p&gt;/proc/uptime → uptime&lt;/p&gt;

&lt;p&gt;/proc/[PID]/status → process states&lt;/p&gt;

&lt;p&gt;By parsing these files safely and efficiently, it outputs everything you need without unnecessary overhead.&lt;/p&gt;




&lt;p&gt;Code Structure&lt;/p&gt;

&lt;p&gt;I kept the code modular to maintain readability and scalability:&lt;/p&gt;

&lt;p&gt;syslens/&lt;br&gt;
├── include/main.h   # Headers &amp;amp; macros&lt;br&gt;
├── src/main.c       # CLI &amp;amp; orchestrator&lt;br&gt;
├── src/sys.c        # OS &amp;amp; CPU info&lt;br&gt;
├── src/mem.c        # Memory &amp;amp; load logic&lt;br&gt;
├── src/proc.c       # Process parsing&lt;br&gt;
├── Makefile&lt;br&gt;
└── README.md&lt;/p&gt;

&lt;p&gt;Every module handles a single responsibility—classic separation-of-concerns in action.&lt;/p&gt;




&lt;p&gt;Lessons Learned&lt;/p&gt;

&lt;p&gt;Building SysLens taught me more about Linux internals than I could have imagined:&lt;/p&gt;

&lt;p&gt;How virtual filesystems expose kernel data&lt;/p&gt;

&lt;p&gt;How to parse system stats safely and efficiently&lt;/p&gt;

&lt;p&gt;How to design CLI tools with modular C code&lt;/p&gt;

&lt;p&gt;The importance of readable, maintainable code&lt;/p&gt;

&lt;p&gt;Most importantly:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;The best way to learn a tool is to build it yourself.&lt;/p&gt;
&lt;/blockquote&gt;




&lt;p&gt;Future Plans&lt;/p&gt;

&lt;p&gt;Real-time CPU usage bars&lt;/p&gt;

&lt;p&gt;Disk and network monitoring&lt;/p&gt;

&lt;p&gt;Improved terminal UI&lt;/p&gt;

&lt;p&gt;Automated builds and CI/CD pipeline for multi-platform releases&lt;/p&gt;




&lt;p&gt;Try SysLens Yourself&lt;/p&gt;

&lt;p&gt;GitHub: &lt;a href="https://github.com/mahmudul626/syslens" rel="noopener noreferrer"&gt;https://github.com/mahmudul626/syslens&lt;/a&gt;&lt;br&gt;
Portfolio: &lt;a href="https://mahmudul.pro.bd" rel="noopener noreferrer"&gt;https://mahmudul.pro.bd&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Just clone, make, and run:&lt;/p&gt;

&lt;p&gt;git clone &lt;a href="https://github.com/mahmudul626/syslens.git" rel="noopener noreferrer"&gt;https://github.com/mahmudul626/syslens.git&lt;/a&gt;&lt;br&gt;
cd syslens&lt;br&gt;
make&lt;br&gt;
./syslens&lt;/p&gt;




&lt;p&gt;Final Thoughts&lt;/p&gt;

&lt;p&gt;SysLens started as a curiosity experiment, but now it’s a full-fledged CLI tool.&lt;/p&gt;

&lt;p&gt;If you’re a Linux developer or C programmer, I challenge you to build one of the tools you use every day. It’s an incredible way to level up your skills and truly understand your system.&lt;/p&gt;

</description>
      <category>showdev</category>
      <category>linux</category>
      <category>c</category>
      <category>cli</category>
    </item>
    <item>
      <title>What is syslens and why i built this?</title>
      <dc:creator>Md. Mahmudul Hasan Mabud</dc:creator>
      <pubDate>Wed, 18 Feb 2026 08:02:41 +0000</pubDate>
      <link>https://dev.to/mahmudul626/what-is-syslens-and-why-i-built-this-36ah</link>
      <guid>https://dev.to/mahmudul626/what-is-syslens-and-why-i-built-this-36ah</guid>
      <description>&lt;p&gt;​Syslens is a Linux CLI tool that displays system information in a clean, colorful format.&lt;br&gt;
​Currently, it only works with a few Linux distributions. It isn't quite mature enough to support all of them yet because some elements are still hardcoded. However, distributions like Ubuntu work perfectly and run clearly without crashing.&lt;/p&gt;

&lt;p&gt;While tools like Neofetch exist, I built syslens from scratch in C to understand how Linux exposes system metrics via the kernel.&lt;/p&gt;

</description>
    </item>
    <item>
      <title>Building from Scratch: Introducing Syslens, a Linux System Info Tool</title>
      <dc:creator>Md. Mahmudul Hasan Mabud</dc:creator>
      <pubDate>Tue, 17 Feb 2026 18:27:27 +0000</pubDate>
      <link>https://dev.to/mahmudul626/building-from-scratch-introducing-syslens-a-linux-system-info-tool-5ha0</link>
      <guid>https://dev.to/mahmudul626/building-from-scratch-introducing-syslens-a-linux-system-info-tool-5ha0</guid>
      <description>&lt;p&gt;​In the world of Linux, there are plenty of great tools for fetching system information. So, why build another one? For me, the answer is simple: I wanted to see if I could.&lt;br&gt;
​I’ve always been curious about how these tools work under the hood. To me, every project is a skill test—a way to challenge myself and create something that is uniquely mine. Syslens is the result of that curiosity.&lt;br&gt;
​What is Syslens?&lt;br&gt;
​Syslens is a lightweight, CLI-based tool designed to display your essential Linux system information in a clean, colorful, and easy-to-read format. No clutter, just the data you need.&lt;br&gt;
​Key Features&lt;br&gt;
​Clean UI: Simple, organized layout using standard terminal colors.&lt;br&gt;
​Essential Stats: Quickly view your OS version, Kernel, CPU details, RAM usage, and Uptime.&lt;br&gt;
​Lightweight: Built with efficiency in mind, written in C.&lt;br&gt;
Final Thoughts&lt;br&gt;
​Building Syslens was a great exercise in interacting with the Linux filesystem and handling system calls. If you're a developer, I highly recommend building your own version of the tools you use every day—it's the best way to level up.&lt;br&gt;
​🔗 Let's Connect!&lt;br&gt;
​View the Code on GitHub: &lt;a href="https://github.com/mahmudul626/syslens" rel="noopener noreferrer"&gt;https://github.com/mahmudul626/syslens&lt;/a&gt;&lt;br&gt;
​Check out my Portfolio: &lt;a href="https://mahmudul.pro.bd" rel="noopener noreferrer"&gt;https://mahmudul.pro.bd&lt;/a&gt;&lt;/p&gt;

</description>
      <category>cli</category>
      <category>linux</category>
      <category>showdev</category>
      <category>tooling</category>
    </item>
    <item>
      <title>Turning a Simple Number Guessing Game into a Professional C Project</title>
      <dc:creator>Md. Mahmudul Hasan Mabud</dc:creator>
      <pubDate>Sun, 15 Feb 2026 08:37:01 +0000</pubDate>
      <link>https://dev.to/mahmudul626/turning-a-simple-number-guessing-game-into-a-professional-c-project-3cbk</link>
      <guid>https://dev.to/mahmudul626/turning-a-simple-number-guessing-game-into-a-professional-c-project-3cbk</guid>
      <description>&lt;p&gt;When I first wrote a Number Guessing Game in C, it was a small, personal project—just a few lines of code to practice loops, conditionals, and basic input/output. But as I delved deeper into development, I realized that even a beginner project could be transformed into a professional, maintainable, and scalable system with the right approach.&lt;br&gt;
Modular Architecture&lt;br&gt;
The first step was restructuring the code. Instead of keeping all logic in a single file, I separated the project into:&lt;br&gt;
include/ – all header files defining function prototypes and data structures.&lt;br&gt;
src/ – implementation of core modules like game logic, file management, and leaderboard.&lt;br&gt;
data/ – persistent storage for player statistics.&lt;br&gt;
main.c – the central entry point coordinating game flow.&lt;br&gt;
This modular design ensures that each component is independent, easy to debug, and ready for future extensions.&lt;br&gt;
Persistent Data Management&lt;br&gt;
Tracking wins, losses, and player statistics adds depth to a simple game. I implemented a robust file management system that reads from and writes to a dedicated storage file. This separation of game logic from storage operations not only keeps the code clean but also enables potential upgrades, like database integration or cloud synchronization.&lt;br&gt;
Dynamic Leaderboard&lt;br&gt;
A game feels more engaging when players can compete. The leaderboard module sorts players dynamically based on their performance, illustrating how algorithms can be integrated smoothly into a modular project without entangling the main game flow.&lt;br&gt;
Build Automation with Makefile&lt;br&gt;
Professional C projects rely on build automation. I created a Makefile that compiles and links multiple source files, manages build flags consistently, and provides a clean target to reset the workspace. This approach reduces errors, saves time, and mirrors real-world development practices.&lt;br&gt;
Lessons from Taking a Small Project Seriously&lt;br&gt;
Clean architecture matters: Modularization enables maintainability.&lt;br&gt;
Automation is key: Makefiles or similar tools simplify repetitive tasks.&lt;br&gt;
Separation of concerns: Keeping game logic independent of storage or UI allows scalability.&lt;br&gt;
Future-ready design: Independent modules can be extended with new features without breaking the system.&lt;br&gt;
Conclusion&lt;br&gt;
Even a simple Number Guessing Game can be more than just a beginner exercise. By applying professional standards—modular design, persistent storage, automated build processes, and dynamic algorithms—I transformed a small project into a showcase of maintainable, scalable C programming. This experience reinforced a key lesson: taking any project seriously, no matter how small, is the first step toward professional software development.&lt;/p&gt;

&lt;p&gt;Github repo- &lt;a href="https://github.com/mahmudul626/number-guessing-game" rel="noopener noreferrer"&gt;https://github.com/mahmudul626/number-guessing-game&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Portfolio -&lt;a href="https://mahmudul.pro.bd" rel="noopener noreferrer"&gt;https://mahmudul.pro.bd&lt;/a&gt;&lt;/p&gt;

</description>
    </item>
    <item>
      <title>[Boost]</title>
      <dc:creator>Md. Mahmudul Hasan Mabud</dc:creator>
      <pubDate>Mon, 09 Feb 2026 18:08:41 +0000</pubDate>
      <link>https://dev.to/mahmudul626/-362g</link>
      <guid>https://dev.to/mahmudul626/-362g</guid>
      <description>&lt;div class="ltag__link"&gt;
  &lt;a href="/mahmudul626" class="ltag__link__link"&gt;
    &lt;div class="ltag__link__pic"&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.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F3750662%2Ffd538a05-fb47-40d8-93f3-2c4455538add.jpg" alt="mahmudul626"&gt;
    &lt;/div&gt;
  &lt;/a&gt;
  &lt;a href="https://dev.to/mahmudul626/beyond-syntax-why-i-built-my-own-unix-like-shell-in-c-5903" class="ltag__link__link"&gt;
    &lt;div class="ltag__link__content"&gt;
      &lt;h2&gt;Beyond Syntax: Why I Built My Own Unix-like Shell in C&lt;/h2&gt;
      &lt;h3&gt;Md. Mahmudul Hasan Mabud ・ Feb 8&lt;/h3&gt;
      &lt;div class="ltag__link__taglist"&gt;
        &lt;span class="ltag__link__tag"&gt;#c&lt;/span&gt;
        &lt;span class="ltag__link__tag"&gt;#cli&lt;/span&gt;
        &lt;span class="ltag__link__tag"&gt;#linux&lt;/span&gt;
        &lt;span class="ltag__link__tag"&gt;#bash&lt;/span&gt;
      &lt;/div&gt;
    &lt;/div&gt;
  &lt;/a&gt;
&lt;/div&gt;


</description>
      <category>c</category>
      <category>cli</category>
      <category>linux</category>
      <category>bash</category>
    </item>
    <item>
      <title>Beyond Syntax: Why I Built My Own Unix-like Shell in C</title>
      <dc:creator>Md. Mahmudul Hasan Mabud</dc:creator>
      <pubDate>Sun, 08 Feb 2026 16:34:59 +0000</pubDate>
      <link>https://dev.to/mahmudul626/beyond-syntax-why-i-built-my-own-unix-like-shell-in-c-5903</link>
      <guid>https://dev.to/mahmudul626/beyond-syntax-why-i-built-my-own-unix-like-shell-in-c-5903</guid>
      <description>&lt;p&gt;For a long time, my world of C programming revolved around HackerRank challenges, nested loops, and problem-solving. After earning my 4th star and building a few mini-projects, I hit a wall. I asked myself: "Okay, I know C—but what can I actually build that breathes life into a system?"&lt;/p&gt;

&lt;p&gt;That curiosity led me to look under the hood of Linux. I knew that the core of these massive operating systems was written in C. Suddenly, my mind was flooded with "Hows":&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;How does a simple command typed in a terminal transform into a running process?

How does the system handle signals like Ctrl+C without crashing?

What really happens behind the scenes of process management and command history?
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;

&lt;p&gt;Instead of just reading documentation, I decided to dive into the deep end: I started building my own Unix-like Shell from scratch.&lt;/p&gt;

&lt;p&gt;Through this project, I realized that C isn't just a programming language; it’s a direct bridge to the heart of the operating system. In this series, I’m excited to share my journey of turning curiosity into code and building a functional shell, one system call at a time.&lt;/p&gt;

&lt;p&gt;What was your first project that made you fall in love with system-level programming?&lt;/p&gt;

</description>
      <category>c</category>
      <category>cli</category>
      <category>linux</category>
      <category>bash</category>
    </item>
  </channel>
</rss>
