low level
-
Хабрахабр
Rust — сохраняем безразмерные типы в статической памяти
Не так давно в качестве хобби я решил погрузиться в изучение embedded разработки на Rust и через какое-то время мне захотелось сделать себе логгер, который бы просто писал логи через UART, но при этом не знал какая конкретно реализация используется. Вот тут я быстро осознал, именно в этом конкретном случае я не могу полагаться на статический полиморфизм и мономорфизацию, ведь…
Читать далее » -
Софт
[Перевод] Отлаживаем развертывание ПО со strace
Моя основная работа — это, по большей части, развертывание систем ПО, то есть уйму времени я трачу, пытаясь ответить на такие вот вопросы: У разработчика это ПО работает, а у меня нет. Почему? Вчера это ПО у меня работало, а сегодня нет. Почему? Обычная отладка — это про логику кода, а вот отладка развертывания — это про взаимодействие кода и…
Читать далее » -
Хабрахабр
[Перевод] Указатели сложны, или Что хранится в байте?
Представляю вашему вниманию перевод статьи "Pointers Are Complicated, or: What's in a Byte?" авторства Ralf Jung. Привет, Хабр! Однако, прежде чем я заговорю о своих идеях, я наконец должен развеять миф, что "указатели просты: они являются простыми числами". Этим летом я снова работаю над Rust фуллтайм, и я снова буду работать (помимо прочих вещей) над "моделью памяти" для Rust/MIR. Обе…
Читать далее » -
Хабрахабр
[Перевод] Анализ сишного Hello World
Hello World — одна из первых программ, которые мы пишем на любом языке программирования.Для C hello world выглядит просто и коротко: #include <stdio.h> void main() { printf("Hello World!\n"); } Поскольку программа такая короткая, должно быть элементарно объяснить, что происходит «под капотом».Во-первых, посмотрим, что происходит при компиляции и линковке:gcc --save-temps hello.c -o hello --save-temps добавлено, чтобы gcc оставил hello.s, файл с…
Читать далее »