gcc

  • ХабрахабрФото Выполняем сторонние программы на микроконтроллерах с Гарвардской архитектурой: как загружать программы без знания ABI?

    Выполняем сторонние программы на микроконтроллерах с Гарвардской архитектурой: как загружать программы без знания ABI?

    Зачастую в процессе разработки собственных устройств или моддинга уже существующих, встаёт задача выполнения стороннего кода: будь то ваши собственные программы с SD-флэшек, или программы, написанные другими пользователями с помощью SDK для вашего устройства. Тема компиляторов и кодогенерации достаточно сложная: чтобы просто загрузить ELF или EXE (PE) программу, вам нужно досконально разбираться в особенностях вашей архитектуры: что такое ABI, релокации, GOT,…

    Читать далее »
  • ХабрахабрФото Старые кодовые базы как классическая литература

    Старые кодовые базы как классическая литература

    Сохранившиеся фрагменты греческих папирусов, источник В языке и литературе работает известный принцип начитанности: чем больше человек читает хороших книг, тем больше у него словарный запас, шире кругозор. Развивается понятийный аппарат, сама собой улучшается грамотность без всяких учебников. Применим ли этот принцип в обучении программированию? ▍ Linux 0.0.1 Конечно, изучать исходники классических программ полезно для общего развития. Например, внутренности Linux 0.0.1…

    Читать далее »
  • ХабрахабрФото 40 лет GNU

    40 лет GNU

    Операционные системы имеют основополагающее значение для Интернета, каким мы его знаем сегодня, поскольку в настоящее время они обеспечивают работу миллионов серверов, компьютеров и других встроенных вычислительных устройств. Отдельное почётное место среди этого занимает ОС Linux (или GNU/Linux), используемая миллиардами человек во всём мире. GNU — Unix-подобная ОС с открытым исходным кодом, созданная 40 лет назад в 1983 году Ричардом Столлманом.…

    Читать далее »
  • ХабрахабрФото Собираем и запускаем калькулятор из Windows XP в среде Windows 10 c помощью GCC x64

    Собираем и запускаем калькулятор из Windows XP в среде Windows 10 c помощью GCC x64

    Дисклеймер Все действия, описанные автором в статье, сделаны исключительно в исследовательских и образовательных целях. Windows является зарегистрированным товарным знаком Microsoft. Введение Привет всем. В 2020 году мир облетела новость о сливе исходников Windows XP и Windows Server 2003 на 4Chan. После этого код широко разошелся по интернету, включая GitHub, который принадлежит Microsoft. Последняя, естественно, сразу начала принимать меры по блокировке кода, многие…

    Читать далее »
  • ХабрахабрФото [Перевод] Как я вошёл в клуб бага 323

    [Перевод] Как я вошёл в клуб бага 323

    Это история о баге, который бы заставил вас рвать на себе волосы. Из-за такого бага вы можете подумать: «Но это невозможно, должно быть, компилятор сломался, других вариантов нет!» А баг компилятора — это серьёзно: за двенадцать лет программирования на C++ я обнаружил (и написал отчёт) всего... об одном. И могу сказать, что перед отправкой отчёта о баге GCC я максимально…

    Читать далее »
  • ХабрахабрФото [Перевод] В {n} раз быстрее Си

    [Перевод] В {n} раз быстрее Си

    Иногда человек может обнаружить такие возможности оптимизации, которые не видит компилятор. В этой статье мы начнём с цикла, сгенерированного из кода Си с помощью clang, и скорректируем его разными способами, попутно измеряя прирост в скорости. Эта статья публиковалась на главной странице HackerNews, и к её обсуждению вы можете присоединиться здесь. Дисклеймер: я не эксперт по оптимизациям. По факту мой опыт…

    Читать далее »
  • ХабрахабрФото Из серии: заглянем под капот clang-e2k/llvm-e2k из штатного дистрибутива для Эльбруса

    Из серии: заглянем под капот clang-e2k/llvm-e2k из штатного дистрибутива для Эльбруса

    Тема непосредственно самого процессора Эльбрус уже достаточно хорошо раскрыта в различных статьях, в том числе, в статьях, опубликованных на habr.ru. Кроме самого процессора Эльбрус время от времени на просторах рунета можно встретить обсуждения, посвященные вопросу портирования компилятора clang/llvm на Эльбрус. Пожалуй, данная тема еще не получала подробного освещения. Данная заметка призвана заполнить этот «пробел». Если вкратце, то llvm из e2k-дистрибутива…

    Читать далее »
  • ХабрахабрФото Linux на esp32s3

    Linux на esp32s3

    Вопрос о том, можно ли загрузить линукс на микроконтроллерах Espressif я впервые услышал в 2015, в период бума esp8266. Тогда мой ответ на него был: "нет, не это ядро и не на этом железе". Но прошло 8 лет и ответ изменился на "да, и у меня есть рабочий пример". Дальше рассказ о том, как это произошло. esp8266 Однозначный ответ "нет,…

    Читать далее »
  • ХабрахабрФото Разработка BIOS на языках высокого уровня

    Разработка BIOS на языках высокого уровня

    Ничего лишнего: материнская плата, видеокарта и ROM-BIOS Меня давно волнует вопрос, как подступиться к разработке на голом железе, на чистом си. Хотелось понять, каким же образом идёт запуск BIOS, u-boot, grub и прочих первичных загрузчиков. Ведь необходимо перейти от ассемблера к тёплому ламповому си и соблюсти условие, собрать всё это в линукс любимым компилятором gcc. Хотя я и имею достаточный…

    Читать далее »
  • ХабрахабрФото Ретро-компьютер уровня «Радио-86РК» с RISC-V процессором на плате OMDAZZ

    Ретро-компьютер уровня «Радио-86РК» с RISC-V процессором на плате OMDAZZ

    RISC-V компьютер Введение Основным инструментом “Школы дизайна цифровых схем” является недорогая отладочная плата OMDAZZ c ПЛИС  CycloneIV EP4CE6E22C8N. Эта ПЛИС содержит всего 6000 логических элементов  и 270 КБит RAM. Такая ограниченность в  ресурсах и сформировала требования к параметрам проекта: 16 КБайт ОЗУ и текстовый графический адаптер. Идея проекта навеяна похожими параметрами радиолюбительского компьютера  “Радио-86РК” опубликованного  в начале 80-х годов прошлого…

    Читать далее »


Кнопка «Наверх»