Уровень 0 · материалов: 9
В кластер входят документы, описывающие технический путь преобразования исходного кода в исполняемый бинарный файл и механизм его работы на уровне железа и ОС.
Общие признаки: путь от исходного кода к машинному коду, этапы компиляции и линковки, взаимодействие ПО и аппаратного обеспечения, слои абстракции в вычислениях, низкоуровневое исполнение программ
Группа выше: Реализация языков: компиляторы, память и виртуальные машины
Смысл: The main idea is to demystify the abstraction layers of high-level programming by tracing a simple C program's execution path down to the hardware level, illustrating the complex synergy between code, libraries, the OS kernel, and CPU architecture.
A technical walkthrough tracing a C 'Hello World' program from source code through compilation, library calls, and assembly, ending at the Linux kernel's system calls.
Смысл: The main idea is to demonstrate the layers of abstraction in modern computing by tracing a single line of C code from the high-level language through the standard library and kernel, ending at the hardware/software interface of the terminal emulator.
A detailed technical trace of a C 'Hello World' program from the initial printf call through glibc and the Linux kernel to the final rendering by a terminal emulator.
Смысл: The main idea is to demystify the 'black box' of program execution by explaining the journey from high-level source code to CPU instructions, emphasizing the roles of the operating system, memory management (virtual memory), and the hardware-software interface (system calls).
An in-depth technical guide explaining how programs work at the processor and OS level, using the creation of a 'Hello, World!' assembler program as a practical case study.
Смысл: The main idea is to provide a pedagogical deep-dive into the low-level build process of embedded software, demonstrating that the transformation from C code to a running binary is a series of logical steps involving preprocessing, compilation, linking, and hardware initialization.
A comprehensive tutorial on manually building STM32 firmware from scratch using the ARM GNU Toolchain to understand the internal workings of preprocessing, linking, and hardware startup.
Смысл: The text serves as a practical tutorial on how to trace a high-level system call through the architectural layers of the Linux kernel, from the user-space API down to the filesystem-specific implementation.
A technical walkthrough demonstrating how to locate the actual C code for the 'mkdir' system call by traversing the Linux kernel's layered architecture from VFS to the ext4 filesystem.
Смысл: The text explains the underlying mechanism of C program execution on Linux, specifically how the C runtime (libc) handles the transition from the OS entry point (_start) to the user-defined main function and back to the OS exit.
A technical guide on creating a minimal C executable by bypassing libc and implementing a custom assembly entry point and exit syscall.
Смысл: The main idea of the text is to explain the step-by-step journey of a C++ source file as it moves through preprocessing, compilation, assembly, linking, and loading to become a runnable application.
A comprehensive guide explaining the five stages of C++ compilation: preprocessing, compilation, assembly, linking, and loading.
Смысл: The main idea is to demystify low-level ARM microcontroller programming by providing a step-by-step walkthrough of creating a basic LED blinking application from scratch, emphasizing the interaction between hardware memory maps and software compilation.
A technical tutorial on getting started with ARM Cortex-M microcontrollers, covering architecture basics, C/Assembly coding, memory mapping, and the flashing process.
Смысл: The main idea is to demystify the linking process, explaining how disparate pieces of compiled code and data are combined into a single functional executable and how this process varies between C and C++, as well as between Unix-like systems and Windows.
An educational guide explaining how linkers resolve symbols to combine object files and libraries into executable programs for C and C++.