Memory Allocators PART-I

Memory allocation in embedded systems is crucial due to limited memory. Different algorithms like Sequential Fits, Best Fit, First Fit, Next Fit, Good Fit, Segregated Free Lists, Segregated Fits, Buddy System, Indexed Fits, and Bitmapped Fits optimize memory use based on various requirements. Each approach has its pros and cons, making them suitable for different scenarios.

Read More Memory Allocators PART-I

FIND AND GREP

This post provides essential commands for navigating directories on Ubuntu/Linux, making directory navigation easier. The post includes commands for searching for specific patterns within files, filtering by file type, and excluding certain directories. Each command is accompanied by a brief explanation and example. This valuable resource can greatly enhance your Linux command line skills.

Read More FIND AND GREP

ps – ?

The ‘ps’ command in Linux shows information about active processes. Options include displaying processes for the current shell, showing all processes on the system, providing full or long-format listings, showing processes not attached to a terminal, displaying all threads for a process, allowing custom formatting, sorting the output, and more. For further details, type ‘man ps’ on bash.

Read More ps – ?

GDB COMMANDS

This article by Yashwanth Naidu Tikkisetty provides a comprehensive list of gdb commands for debugging. It covers functions like info, set, watch, stepi, disassemble, and more, essential for efficient debugging in embedded systems. The post also emphasizes the importance of inspecting memory maps and displaying directory paths. For more details, visit the LinkedIn post.

Read More GDB COMMANDS

GCC – ?

The gcc commands cover optimizations, profiling, security, and low-level operations, essential for embedded systems and performance-critical applications. Techniques include Link-Time Optimizations, dependency file generation, controlling inline functions, architecture-specific optimizations, and static analysis. These techniques prioritize efficient, secure, and compact code in memory-constrained embedded systems.

Read More GCC – ?

π‘«π’†π’‚π’…π’π’π’„π’Œ π’–π’”π’Šπ’π’ˆ π’‡π’Šπ’‡π’

This post demonstrates a deadlock scenario using two FIFOs and a client-server model. The deadlock occurs when both the server and client wait for each other to send a message, resulting in a standstill. The article also outlines steps to avoid deadlock by following a specific sequence of actions.

Read More π‘«π’†π’‚π’…π’π’π’„π’Œ π’–π’”π’Šπ’π’ˆ π’‡π’Šπ’‡π’

π‘¬π’™π’‘π’π’π’“π’Šπ’π’ˆ 𝒕𝒉𝒆 π‘»π’˜π’-π‘Ύπ’‚π’š 𝑺𝒕𝒓𝒆𝒆𝒕𝒔 π’Šπ’ π‘³π’Šπ’π’–π’™: 𝑫𝒖𝒑𝒍𝒆𝒙 π‘ͺπ’π’Žπ’Žπ’–π’π’Šπ’„π’‚π’•π’Šπ’π’ π’˜π’Šπ’•π’‰ π‘·π’Šπ’‘π’†π’” πŸ›£οΈ

Unix Pipes allow one-way communication, but Duplex Communication enables two processes to chat back and forth simultaneously. Using two pipes, data can flow both ways between parent and child processes. By coordinating the reading and writing ends, full duplex communication is achieved, despite not guaranteeing simultaneous data exchange.

Read More π‘¬π’™π’‘π’π’π’“π’Šπ’π’ˆ 𝒕𝒉𝒆 π‘»π’˜π’-π‘Ύπ’‚π’š 𝑺𝒕𝒓𝒆𝒆𝒕𝒔 π’Šπ’ π‘³π’Šπ’π’–π’™: 𝑫𝒖𝒑𝒍𝒆𝒙 π‘ͺπ’π’Žπ’Žπ’–π’π’Šπ’„π’‚π’•π’Šπ’π’ π’˜π’Šπ’•π’‰ π‘·π’Šπ’‘π’†π’” πŸ›£οΈ

π‘«π’Šπ’—π’Šπ’π’ˆ π’Šπ’π’•π’ π‘Όπ’π’Šπ’™ π‘·π’Šπ’‘π’†π’”: 𝑨 𝑭𝒖𝒏 π‘±π’π’–π’“π’π’†π’š πŸš€

Unix Pipes are the OGs of Inter-Process Communication on Unix systems. They facilitate seamless data flow between processes, like family messengers connecting parent and child processes. Operating like a one-lane road, they ensure a one-way data flow with a capacity limit. With simple functions, they enable sharing of notes between processes.

Read More π‘«π’Šπ’—π’Šπ’π’ˆ π’Šπ’π’•π’ π‘Όπ’π’Šπ’™ π‘·π’Šπ’‘π’†π’”: 𝑨 𝑭𝒖𝒏 π‘±π’π’–π’“π’π’†π’š πŸš€

Linux IPC’s

Linux IPCs are essential tools for processes to communicate in the operating system. They include various methods like Pipes, Message Queues, Shared Memory, Sockets, Semaphores, and File-based communication. Each method serves specific communication needs, from simple data transfer to complex synchronization and coordination among processes.

Read More Linux IPC’s

π‘³π’Šπ’π’Œπ’Šπ’π’ˆ 𝑯𝒂𝒓𝒅? 𝑢𝒓 𝑱𝒖𝒔𝒕 π‘·π’π’Šπ’π’•π’Šπ’π’ˆ π‘Ίπ’π’‡π’•π’π’š?

In Unix-like systems, hard links and symbolic links ease file management by allowing files to appear in multiple directories without actual content duplication. Hard links are identical mirrors of the original file and reside within the same file system, while symbolic links act independently, can span different file systems, and can point to directories. Hard links are useful for resource optimization, image creation, multiversion software, and cache management, while symbolic links are handy for boot selection, linking to volatile storage, device pointers, and fallback mechanisms.

Read More π‘³π’Šπ’π’Œπ’Šπ’π’ˆ 𝑯𝒂𝒓𝒅? 𝑢𝒓 𝑱𝒖𝒔𝒕 π‘·π’π’Šπ’π’•π’Šπ’π’ˆ π‘Ίπ’π’‡π’•π’π’š?