Maximizing Productivity with i3wm

Introduction The i3 window manager (i3wm) is a tiling window manager focused on efficiency and productivity, first developed by Michael Stapelberg in 2009. Written in C, i3 provides lightweight yet powerful functionality and has gained significant popularity among developers and power users who prefer keyboard-centric workflows. i3 operates in the X Window System environment, and recently, a Wayland-compatible version called Sway has also become widely used. Built on a philosophy of minimizing unnecessary visual elements and maximizing screen space utilization, it offers multi-monitor support, efficient window management, and high-level customization capabilities. ...

May 5, 2025 · 6 min · 1107 words · In-Jun Hwang

Overcoming RAM Limits with Memory Compression (ZRAM)

ZRAM Concept and Principles ZRAM (formerly known as compcache) is a memory compression technology provided by the Linux kernel that creates a virtual block device by compressing a portion of RAM. This technology was first developed by Nitin Gupta in 2009 and officially integrated into the Linux kernel from version 3.14. The core idea of ZRAM is to utilize compressed RAM as swap space instead of disk-based swap, reducing memory usage without the overhead of disk I/O operations. ...

May 2, 2025 · 4 min · 661 words · In-Jun Hwang

Understanding NAT (Network Address Translation)

Introduction NAT (Network Address Translation) is a core technology that mediates between private IP addresses and public IP addresses in network communications. It emerged in the mid-1990s to address the IPv4 address depletion problem and was first standardized through the IETF’s RFC 1631 document. Today, NAT has become an essential technology forming the foundation of global internet infrastructure, from home routers to large-scale corporate networks and cloud infrastructure. Basic Concepts of NAT NAT operates on network devices such as routers or firewalls, translating IP addresses between internal networks (private IP) and external networks (public IP). During this process, it modifies the IP addresses and TCP/UDP port numbers in packet headers and records the translation information in a NAT table to enable bidirectional communication. Private IP address ranges defined in RFC 1918 (10.0.0.0/8, 172.16.0.0/12, 192.168.0.0/16) are widely used in internal network configurations in NAT environments. When a packet passes through a NAT device, the checksum is also recalculated, which is essential to ensure the integrity of IP and TCP/UDP headers. ...

May 1, 2025 · 11 min · 2215 words · In-Jun Hwang

Learning ARP Spoofing Through Theory and Practice

Introduction ARP spoofing is an attack technique that has been studied in the network security field for a long time. This attack aims to intercept or modify network traffic by exploiting the structural limitations of the ARP protocol. In this article, we will systematically cover the basic concepts of the ARP protocol, the operational principles of ARP spoofing, actual attack implementation, and methods to defend against it. What is the ARP Protocol? ARP (Address Resolution Protocol) is a protocol responsible for address translation between the network layer (IP) and the data link layer (MAC). Simply put, to communicate on an IP network, you need to know not only the target’s IP address but also its MAC address. This is where ARP comes in. ...

April 28, 2025 · 5 min · 1057 words · In-Jun Hwang

How to Change MAC Address in Ubuntu

Introduction MAC address (Media Access Control address) is a unique identifier for network devices. For security or privacy reasons, you may need to change this address. In this post, we will explore how to change MAC address in Ubuntu. What is a MAC Address? MAC address is a unique identifier assigned to a Network Interface Card (NIC). This 48-bit (6-byte) address is typically displayed in hexadecimal format as XX:XX:XX:XX:XX:XX. The structure of the address is as follows: ...

April 27, 2025 · 2 min · 384 words · In-Jun Hwang