WHAT THE FU*K

The Fast Inverse Square Root line of code, ‘i = 0x5f3759df – (i >> 1);’, revolutionized graphics processing in the 90s by efficiently calculating 1/sqrt(x) through bit manipulation and approximation. It exemplified creative programming, significantly enhancing game performance and remains a celebrated part of programming lore and hacker culture.

Read More WHAT THE FU*K

What is Context SwitchingΒ 

The article explains context switching and details the roles of the scheduler and kernel during the process. It highlights how efficient context switching is crucial for multitasking in operating systems, allowing multiple processes to share system resources seamlessly. For further insights, the article is available in PDF format.

Read More What is Context SwitchingΒ 

π‘ͺ𝒂𝒄𝒉𝒆 π‘Ύπ’“π’Šπ’•π’† π‘»π’‰π’“π’π’–π’ˆπ’‰ 𝒂𝒏𝒅 π‘ͺ𝒂𝒄𝒉𝒆 π‘Ύπ’“π’Šπ’•π’† π‘©π’‚π’„π’Œ

Modern computing relies on the efficient interaction of components, particularly involving cache memory. This article explores the Write-Through and Write-Back strategies, detailing their operations, benefits, and drawbacks. Understanding these mechanisms enhances knowledge of the performance dynamics that underpin today’s digital environments.

Read More π‘ͺ𝒂𝒄𝒉𝒆 π‘Ύπ’“π’Šπ’•π’† π‘»π’‰π’“π’π’–π’ˆπ’‰ 𝒂𝒏𝒅 π‘ͺ𝒂𝒄𝒉𝒆 π‘Ύπ’“π’Šπ’•π’† π‘©π’‚π’„π’Œ

Ellipsis and Variadic

In C, when a function is called, the arguments are typically placed onto the stack, a region of memory. The function retrieves these arguments from the stack based on the function’s known parameter list. But when the number of arguments is variable, the function needs a way to access these “extra” arguments from the stack. […]

Read More Ellipsis and Variadic

𝑨 π’…π’†π’•π’‚π’Šπ’π’†π’… π’π’Šπ’”π’• 𝒐𝒇 𝑢𝑩𝑱𝑫𝑼𝑴𝑷 π’„π’π’Žπ’Žπ’‚π’π’… π’π’‘π’•π’Šπ’π’π’”

π’π’ƒπ’‹π’…π’–π’Žπ’‘ is a command-line program that is part of the GNU Binutils suite of tools. It’s used primarily for displaying various information from object files, which are typically produced as intermediate files during the compilation of a program. objdump can show information from a wide range of object file formats, including ELF (Executable and Linkable […]

Read More 𝑨 π’…π’†π’•π’‚π’Šπ’π’†π’… π’π’Šπ’”π’• 𝒐𝒇 𝑢𝑩𝑱𝑫𝑼𝑴𝑷 π’„π’π’Žπ’Žπ’‚π’π’… π’π’‘π’•π’Šπ’π’π’”

π‘΄π’†π’Žπ’π’“π’š 𝑨𝒍𝒍𝒐𝒄𝒂𝒕𝒐𝒓𝒔 𝑷𝒂𝒓𝒕 – 𝟐

Memory allocation is like fitting puzzle pieces together in the world of computer programming. Every time a programmer uses commands like malloc or calloc, there’s a lot going on behind the scenes. It’s more than just asking for memory; it’s about making sure everything fits just right and works efficiently with the computer’s hardware. Consider […]

Read More π‘΄π’†π’Žπ’π’“π’š 𝑨𝒍𝒍𝒐𝒄𝒂𝒕𝒐𝒓𝒔 𝑷𝒂𝒓𝒕 – 𝟐

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 – ?

𝑻𝒉𝒆𝒓𝒂𝒄 πŸπŸ“ – 𝑴𝑨𝑳𝑭𝑼𝑡π‘ͺ𝑻𝑰𝑢𝑡 πŸ“πŸ’

The Therac-25 incident serves as a stark reminder of the ethical and technical responsibilities in embedded engineering. This state-of-the-art medical device’s software race condition led to catastrophic consequences, emphasizing engineers’ duty to design with care and respect for end users. It highlights the profound impact of engineering work on real people and urges a cautious, responsible approach.

Read More 𝑻𝒉𝒆𝒓𝒂𝒄 πŸπŸ“ – 𝑴𝑨𝑳𝑭𝑼𝑡π‘ͺ𝑻𝑰𝑢𝑡 πŸ“πŸ’

𝑾𝒉𝒂𝒕 π’Šπ’” 𝒂 π‘Ίπ’π’π’π’‘π’Šπ’π’ˆ 𝒄𝒂𝒄𝒉𝒆 𝒄𝒐𝒉𝒆𝒓𝒆𝒏𝒄𝒆 𝒑𝒓𝒐𝒕𝒐𝒄𝒐𝒍?

As the demand for high-performance and energy-efficient computation rises, multiprocessor architectures like MPSoCs are increasingly used in embedded systems. Snooping Cache Coherence protocol ensures data consistency and real-time response for shared memory locations. It involves broadcasted transactions and different cache line states. There are two primary protocols: Write-Invalidate and Write-Update (or Write-Broadcast).

Read More 𝑾𝒉𝒂𝒕 π’Šπ’” 𝒂 π‘Ίπ’π’π’π’‘π’Šπ’π’ˆ 𝒄𝒂𝒄𝒉𝒆 𝒄𝒐𝒉𝒆𝒓𝒆𝒏𝒄𝒆 𝒑𝒓𝒐𝒕𝒐𝒄𝒐𝒍?