Пишем отладчик для Linux
Part 1: Setup
https://blog.tartanllama.xyz/writing-a-linux-debugger-setup/
Part 2: Breakpoints
https://blog.tartanllama.xyz/writing-a-linux-debugger-breakpoints/
Part 3: Registers and memory
https://blog.tartanllama.xyz/writing-a-linux-debugger-registers/
Part 4: Elves and dwarves
https://blog.tartanllama.xyz/writing-a-linux-debugger-elf-dwarf/
Part 5: Source and signals
https://blog.tartanllama.xyz/writing-a-linux-debugger-source-signal/
Part 6: Source-level stepping
https://blog.tartanllama.xyz/writing-a-linux-debugger-dwarf-step/
Part 7: Source-level breakpoints
https://blog.tartanllama.xyz/writing-a-linux-debugger-source-break/
Part 8: Stack unwinding
https://blog.tartanllama.xyz/writing-a-linux-debugger-unwinding/
Part 9: Handling variables
https://blog.tartanllama.xyz/writing-a-linux-debugger-variables/
Part 10: Advanced topics
https://blog.tartanllama.xyz/writing-a-linux-debugger-advanced-topics/
#cpp
👉 @Bookflow
Part 1: Setup
https://blog.tartanllama.xyz/writing-a-linux-debugger-setup/
Part 2: Breakpoints
https://blog.tartanllama.xyz/writing-a-linux-debugger-breakpoints/
Part 3: Registers and memory
https://blog.tartanllama.xyz/writing-a-linux-debugger-registers/
Part 4: Elves and dwarves
https://blog.tartanllama.xyz/writing-a-linux-debugger-elf-dwarf/
Part 5: Source and signals
https://blog.tartanllama.xyz/writing-a-linux-debugger-source-signal/
Part 6: Source-level stepping
https://blog.tartanllama.xyz/writing-a-linux-debugger-dwarf-step/
Part 7: Source-level breakpoints
https://blog.tartanllama.xyz/writing-a-linux-debugger-source-break/
Part 8: Stack unwinding
https://blog.tartanllama.xyz/writing-a-linux-debugger-unwinding/
Part 9: Handling variables
https://blog.tartanllama.xyz/writing-a-linux-debugger-variables/
Part 10: Advanced topics
https://blog.tartanllama.xyz/writing-a-linux-debugger-advanced-topics/
#cpp
👉 @Bookflow
👍5
Антипаттерн: "Сначала MVP — потом нормальная схема"
Частая ошибка при старте проекта — отложить продумывание структуры базы «на потом»:
И вот что часто происходит:
– MVP превращается в продакшн без переработки схемы.
– Костыли начинают множиться.
– Появляется технический долг, который сложно погасить: миграции становятся болью, связи — запутанными, а данные — ненадёжными.
Типичные симптомы:
— nullable-поля без нужды
— дублирование данных
— универсальные таблицы вроде
— "магические" значения в enum-полях
— отсутствие внешних ключей и индексов
Как избежать:
1. Минимум нормализации — с самого начала. Даже для MVP важно заложить понятную структуру.
2. Используй миграции сразу. Даже если это скрипт в папке
3. Заведи ER-диаграмму. Она не обязана быть идеальной, но уже поможет избежать хаоса.
4. Смотри в будущее. Планируешь рост? Подумай о расширяемости схемы.
5. Не стесняйся рефакторить. Лучше на раннем этапе изменить структуру, чем через год бояться сломать прод.
👉 MVP не должен значить "без архитектуры". Плохая схема — это замедление развития и боль на каждый новый фичереквест.
Сохрани, если строишь новый проект — пригодится.
#db
👉 @Bookflow
Частая ошибка при старте проекта — отложить продумывание структуры базы «на потом»:
«Сейчас сделаем быстро MVP, а потом приведём БД в порядок».
И вот что часто происходит:
– MVP превращается в продакшн без переработки схемы.
– Костыли начинают множиться.
– Появляется технический долг, который сложно погасить: миграции становятся болью, связи — запутанными, а данные — ненадёжными.
Типичные симптомы:
— nullable-поля без нужды
— дублирование данных
— универсальные таблицы вроде
entities
или attributes
— "магические" значения в enum-полях
— отсутствие внешних ключей и индексов
Как избежать:
1. Минимум нормализации — с самого начала. Даже для MVP важно заложить понятную структуру.
2. Используй миграции сразу. Даже если это скрипт в папке
migrations/
, а не полноценный tool.3. Заведи ER-диаграмму. Она не обязана быть идеальной, но уже поможет избежать хаоса.
4. Смотри в будущее. Планируешь рост? Подумай о расширяемости схемы.
5. Не стесняйся рефакторить. Лучше на раннем этапе изменить структуру, чем через год бояться сломать прод.
👉 MVP не должен значить "без архитектуры". Плохая схема — это замедление развития и боль на каждый новый фичереквест.
Сохрани, если строишь новый проект — пригодится.
#db
👉 @Bookflow
👍5💯1
Новая вакансия! Стажёр, мечтающий построить карьеру в ИТ
📍 Локация: вся Россия и всемирная сеть Интернет
График: свободный
Опыт: необязателен, но желание и любопытство — строго необходимо.
📝 Задачи:
– листать свежие стажировки и откликаться по ссылкам,
– читать истории других стажёров,
– заглядывать на вебинары, хакатоны и карьерные мероприятия,
– задавать вопросы и учиться.
💡 От нас:
– возможность трудоустройства в атомной отрасли,
– шанс поработать под руководством топовых ИТ-экспертов
– сообщество таких же увлечённых молодых специалистов.
Подписывайтесь на ИТ-стажировки Росатома и следите за обновлениями.
📍 Локация: вся Россия и всемирная сеть Интернет
График: свободный
Опыт: необязателен, но желание и любопытство — строго необходимо.
📝 Задачи:
– листать свежие стажировки и откликаться по ссылкам,
– читать истории других стажёров,
– заглядывать на вебинары, хакатоны и карьерные мероприятия,
– задавать вопросы и учиться.
💡 От нас:
– возможность трудоустройства в атомной отрасли,
– шанс поработать под руководством топовых ИТ-экспертов
– сообщество таких же увлечённых молодых специалистов.
Подписывайтесь на ИТ-стажировки Росатома и следите за обновлениями.
Telegram
ИТ-стажировки Росатома
Привет! Здесь публикуются актуальные новости про стажировки в Росатоме.
Наш сайт 👉🏻 https://edu.rosatom.ru
Наш сайт 👉🏻 https://edu.rosatom.ru
❤3💩1
Media is too big
VIEW IN TELEGRAM
BIOS и UEFI / стадии UEFI / драйвера и протоколы
Сергей Пушкарёв — руководитель отдела разработки BIOS в YADRO.
Сергей начал работу с BIOS и UEFI ещё в университете и может очень много рассказать об этой области.
С Еленой Лепилкиной и Антоном Афанасьевым наш герой во всех подробностях разобрал, что происходит на самом низком уровне софта после того, как пользователь нажимает кнопку включения компьютера. Параллельно осветил разные подходы и типичные проблемы разработки в своей сфере, тонкости взаимодействия драйверов, а также разницу между BIOS и UEFI. А напоследок ответил, к чему приводят баги в BIOS и как стараются их избежать, если цена ошибки слишком высока.
0:00 - Тизер
1:12 - Представление Сергея Пушкарева
2:11 - Карьерный путь Сергея
4:50 - История развития BIOS и UEFI и разница между ними
11:28 - Достоинства UEFI
14:14 - Стадии работы UEFI
15:09 - Что работает до UEFI
18:25 - стадия SEC и режим Cache-Is-RAM
22:58 - стадия PEI
27:54 - переход в 64-битный режим
28:42 - PE-файлы,Terse Executable и вопросы производительности
30:46 - DXE стадия и запуск драйверов
33:02 - Протоколы для взаимодействия драйверов
37:58 - Эволюция спецификации: новые архитектуры, Device path для нового железа
40:31 - Загрузка ноутбука через Wi-Fi, разница драйверов Linux и UEFI
42:58 - Работа разработчиков BIOS
44:06 - Баги в UEFI
46:45 - Разработка UEFI под новую платформу
50:38 - Взаимодействие BIOS с BMC, Redfish
53:22 - Разработка драйвера на EDK2
59:55 - Нужен ли ассемблер разработчику BIOS
1:04:13 - Как поменялся процесс загрузки с приходом UEFI
1:05:51 - Взаимодействие BIOS и операционной системы
1:07:20 - Как UEFI работает на ARM
1:11:29 - VFR - DSL-язык для описания меню
1:14:23 - Активное использование Open-Source
1:16:22 - Рынок компаний разработчиков UEFI
1:20:33 - Разработка UEFI для системы, которой нет в железе
1:21:37 - Баги в релизах и процесс тестирования
1:25:59 - Дальнейшее развитие BIOS: ускорение работы, драйверы на Rust
1:35:07 - Заключение
источник
👉 @Bookflow
Сергей Пушкарёв — руководитель отдела разработки BIOS в YADRO.
Сергей начал работу с BIOS и UEFI ещё в университете и может очень много рассказать об этой области.
С Еленой Лепилкиной и Антоном Афанасьевым наш герой во всех подробностях разобрал, что происходит на самом низком уровне софта после того, как пользователь нажимает кнопку включения компьютера. Параллельно осветил разные подходы и типичные проблемы разработки в своей сфере, тонкости взаимодействия драйверов, а также разницу между BIOS и UEFI. А напоследок ответил, к чему приводят баги в BIOS и как стараются их избежать, если цена ошибки слишком высока.
0:00 - Тизер
1:12 - Представление Сергея Пушкарева
2:11 - Карьерный путь Сергея
4:50 - История развития BIOS и UEFI и разница между ними
11:28 - Достоинства UEFI
14:14 - Стадии работы UEFI
15:09 - Что работает до UEFI
18:25 - стадия SEC и режим Cache-Is-RAM
22:58 - стадия PEI
27:54 - переход в 64-битный режим
28:42 - PE-файлы,Terse Executable и вопросы производительности
30:46 - DXE стадия и запуск драйверов
33:02 - Протоколы для взаимодействия драйверов
37:58 - Эволюция спецификации: новые архитектуры, Device path для нового железа
40:31 - Загрузка ноутбука через Wi-Fi, разница драйверов Linux и UEFI
42:58 - Работа разработчиков BIOS
44:06 - Баги в UEFI
46:45 - Разработка UEFI под новую платформу
50:38 - Взаимодействие BIOS с BMC, Redfish
53:22 - Разработка драйвера на EDK2
59:55 - Нужен ли ассемблер разработчику BIOS
1:04:13 - Как поменялся процесс загрузки с приходом UEFI
1:05:51 - Взаимодействие BIOS и операционной системы
1:07:20 - Как UEFI работает на ARM
1:11:29 - VFR - DSL-язык для описания меню
1:14:23 - Активное использование Open-Source
1:16:22 - Рынок компаний разработчиков UEFI
1:20:33 - Разработка UEFI для системы, которой нет в железе
1:21:37 - Баги в релизах и процесс тестирования
1:25:59 - Дальнейшее развитие BIOS: ускорение работы, драйверы на Rust
1:35:07 - Заключение
источник
👉 @Bookflow
🔥4❤3👍2