A Minimalist MQTT Interface EasyMqttClient

A Minimalist MQTT Interface EasyMqttClient

Click on the “Embedded Application Research Institute” above, and select “Top/Star Official Account“ Useful Resources Delivered First Hand! Source | Embedded Application Research Institute Compiled & Formatted | Embedded Application Research Institute In the development of IoT-related applications, MQTT is used to some extent. The following open-source project is an interface I encapsulated based on … Read more

Building a TCP/IP Stack: Part 1 – Ethernet & ARP

This article is a translation of “Let’s code a TCP/IP stack, 1: Ethernet & ARP”. The translation process is also a learning experience for myself. Writing your own TCP/IP stack may seem like a daunting task. In fact, TCP has accumulated many specifications over its more than thirty years of life. However, the core specifications … Read more

Understanding the Relationship Between Sockets and TCP/IP

Fact One: File Descriptor Limits Friends who write network server programs in Linux surely know that each TCP connection occupies a file descriptor. Once this file descriptor is exhausted, a new connection attempt will return the error “Socket/File: Can’t open so many files”. At this point, you need to understand the operating system’s limit on … Read more

Detailed Methods and Techniques for GDB Debugging on Linux

Detailed Methods and Techniques for GDB Debugging on Linux

1. Introduction to GDB GDB is a powerful command-line debugging tool released by the GNU open-source organization for UNIX/LINUX operating systems. For a C/C++ programmer working on Linux, GDB is an essential tool; 2. GDB Usage Process Here, we will use a C program for basic demonstration, and the same applies to C++ programs; 1. … Read more

Mastering GDB Debugger in Linux Environment

Linux | Red Hat Certified | IT Technology | Operations Engineer 👇Join our tech exchange QQ group with remark 【Official Account】 for faster access 1. Program Release Modes There are two modes for program release: debug mode and release mode. 1.1 Debug Mode Purpose: Mainly used during the development and testing phases, allowing developers to … Read more

Linux Software Package Management: RPM

Linux Software Package Management: RPM

1 Overview In our daily development and operations work, we encounter various software packages; software packages can be broadly divided into two categories: binary files, such as (exe, rpm, bin, etc.); the other category is source files (various tarballs). This article will introduce the most commonly used RPM software package in Linux systems, discussing the … Read more

Using SystemTap to Trace Custom Kernel Modules

Using SystemTap to Trace Custom Kernel Modules

One Background After reading the article “Dynamic Tracing Technology Discussion” (https://blog.openresty.com.cn/cn/dynamic-tracing/), I thought about using SystemTap to trace my own developed kernel module. However, the official documentation of SystemTap (https://sourceware.org/systemtap/documentation.html) only gives examples of tracing kernel modules by using drivers from the kernel source tree, for example: probe module(“ext3”).function(“*”) { }, and indeed, the verification … Read more

Essential Guide for CMake Beginners to Master Build Skills

Essential Guide for CMake Beginners to Master Build Skills

Linux | Red Hat Certified | IT Technology | Operations Engineer 👇1000 people technical communication QQ group, note 【Official Account】 for faster approval 1. CMake Installation 1. Download the CMake installation package from the official website, I downloaded v3.26 wget https://github.com/Kitware/CMake/releases/download/v3.26.0-rc4/cmake-3.26.0-rc4-linux-x86_64.sh 2. Locate the downloaded .sh file and execute the script using bash bash cmake-3.26.0-rc4-linux-x86_64.sh … Read more

Basic Framework of Linux Kernel Modules

The writing of Linux kernel modules intimidates many people, but it is actually not that difficult or complicated. Here’s a basic framework to help those with a little knowledge get started quickly. 1. Basic Framework (Before Kernel 2.3.13) #include<linux/kernel.h> #include<linux/module.h> int init_module(void){ pr_info("hello module.\n"); return 0; } void cleanup_module(void){ pr_info("hello end.\n"); } MODULE_LICENSE("GPL"); #include<linux/module.h> int … Read more

Become a Linux Debugging Expert: Unveiling the Secrets of GDB!

Become a Linux Debugging Expert: Unveiling the Secrets of GDB!

Linux | Red Hat Certified | IT Technology | Operations Engineer 👇 Join the technical exchange QQ group with 1000 members. Note 【Official Account】 for faster approval. 1: What is GDB / CGDB GDB is a powerful and user-friendly debugging tool for Linux that allows developers to inspect the internal state of a program during … Read more