TGViewer
Программирование {BookFlow} Программирование {BookFlow} @bookflow · 15.6K subscribers
Post #3984 1.71K
Ассемблер: рассматриваем каждый байт «Hello, World!». Как на самом деле работают программы на уровне процессора и ОС

Что на самом деле происходит, когда вы запускаете программу? Мы привыкли воспринимать это как данность, но за кадром скрывается целая вселенная — от регистров процессора и системных вызовов Linux до формата ELF и модели памяти процесса. Присоединяйтесь к погружению, где мы прольём свет на каждый байт программы «Hello, World!» и поймём, каким образом ОС её выполняет.

❯ Введение: что будет в статье?
На самом деле, целью статьи является не столько просто написать «Hello, World!» на языке ассемблера, сколько разобрать вещи, которые многие воспринимают как данность, хотя имеют с ними дело каждый миг использования компьютера.

Но прежде чем перейти к написанию «Hello, World!», нужно разобрать некоторые концепции, которые помогут нам в полной мере понять происходящее за сценой. Для понимания изложенного ниже нужно хотя бы знать о существовании Linux и понимать, что делает программа «Hello, World!». Думаю, кем бы вы ни были, но раз вы на Хабре, то с этими проблем не будет :)

Мы разберём множество вещей, которые прямо или косвенно касаются программы с приветствием мира на языке ассемблера и к концу статьи будем досконально понимать каждую инструкцию в коде.

Мы разберёмся:

1️⃣Что такое регистры процессора и как их использовать;

2️⃣Как происходит процесс компиляции программ;

3️⃣Узнаем что такое системные вызовы и зачем они нужны;

4️⃣Какой формат имеют исполняемые файлы в Linux и каких типов они бывают;

5️⃣Узнаем что такое виртуальное адресное пространство процесса и что в нём хранится;

6️⃣Поймём процесс линковки (компоновки) программ;

7️⃣Сделаем собственную библиотеку и поймём разницу между статическими и динамическими библиотеками;

8️⃣Наконец, с полным пониманием происходящего напишем «Hello, World!» на языке ассемблера.

И начнём мы, как ни странно, с «Hello, World!» на языке C, но прежде проговорим основные вещи.

https://habr.com/ru/companies/timeweb/articles/940310/

👉 @Bookflow
  • 👍 5
More from @bookflow
  1. Oct 5, 2026🖼 Из картинки - в 3D-сцену со звуком: image-blaster Загружаешь изображение, запускаешь Cl…
  2. Oct 2, 2026xdg-ninja — это полезный инструмент для программистов и пользователей Linux, который помог…
  3. Sep 29, 2026🔐 Путеводитель по аутентификации: от Cookies до OAuth 2.0 Разбираться в способах входа по…
  4. Sep 24, 2026Работа с HTTP API (на практике) Подготовил мини-серию из пары десятков практических задани…
  5. Sep 22, 2026🔎 Kor — найти забытые ресурсы в Kubernetes После экспериментов и релизов в кластере остаю…
  6. Sep 20, 2026Детальный обзор полей Галуа "Попросите Якоби или Гаусса публично высказать своё мнение — н…
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →