Во всех устройствах YADRO, будь то системы хранения данных, серверы или коммутаторы, есть система BMC, через которую администраторы гибко управляют серверами.
Рубрика «gcc»
Уничтожение EXE: 640 Байт для программы на C
2025-06-26 в 19:15, admin, рубрики: C, c++, exe, gcc, windows, бинарники, минимальный, размер, стандартная библиотекаЭххх... RDR 2... Проработанный сюжет, большой открытый мир, внимание к деталям — вот что гласили заголовки статей. И всё это умещается в 116 ГБ памяти. Всего лишь? Нет. Много. Ждать, блин, ещё несколько часов пока он загрузится. «Вот никуда это не годится!» — подумал я, и тут же мне пришла идея «утереть нос» этим студиям — создать игру не хуже, которая будет размером с игру для NES — 40 КБ! Это всё фантазии конечно, но вспомнить запылишийся C можно и даже нужно, времени еще полно. Ладно, долой вступление, берем C99, GCC 14.2.0 и вперед.
Начнем с основы основ: "Hello, world!". Создаем main.c:
Читать полностью »
Рецепт фасолей: как я отреверсил бюджетный кнопочный телефон, хакнул его и научил запускать нативные программы на C
2025-05-24 в 14:05, admin, рубрики: bodyawm_ништячки, elf, gcc, Spreadtrum, timeweb_статьи, Моддинг, патчи, реверс-инжиниринг, смартфоны, телефоныОсторожно: помните ли вы, как в вашем телефоне Siemens, Motorola и Sony поселились маленькие программы - «эльфы»? В рамках этой статьи мы во всех деталях исследуем прошивку бюджетного кнопочника, разберемся в её архитектуре, хакнем и напишем загрузчик тех самых эльфов с MicroSD-флэшки. При этом я постараюсь объяснить всё максимально простым и доступным языком!
Недавно я познакомился с легендой форума allsiemens.ru — Ilya_ZXЧитать полностью »
Пишем один «exe», который работает на 3-х разных ОС без перекомпиляции
2025-05-10 в 14:05, admin, рубрики: bodyawm_ништячки, elf, gcc, motorola, siemens, UNIX, Моддинг, патчи, телефоны, эльфыНет, это не шутка и не кликбейт. Такое действительно возможно - правда через небольшой хак.
Недавно я задался вопросом: а возможно ли написать для ARM нативную программу, которая будет бесшовно работать сразу на 4-х операционных системах без необходимости перекомпиляции для разных платформ и ABI. Мне очень хотелось реализовать возможность писать кроссплатформенные эльфы Читать полностью »
Переходим на C++26: как собрать и настроить GCC 15.1 в Ubuntu
2025-04-29 в 12:15, admin, рубрики: c++, c++26, gcc, gcc15, linux, UbuntuСтандарты языков C и C++ и их компиляторы стремительно развиваются, но далеко не все новинки становятся нам доступны сразу.
Эту статью я решил подготовить по случаю недавнего (25 апреля 2025) релиза компилятора GCC 15.1.0. В нем стали доступны для использования некоторые фичи из C++26.
К сожалению, текущая версия Ubuntu (24.04.2 LTS) изначально содержит достаточно старый GCC 13.3.0. Чтобы использовать что-то поновее, нужен "ручной" подход.
Дальнейший наш план таков. Мы установим новейшую версию GCC из исходников, настроим ее работу в системе по умолчанию и на пробу скомпилируем С++ код, использующий элементы стандарта C++26.
Читать полностью »
Cтандарт RISC-V RV32I и математика с плавающей точкой
2025-03-25 в 11:49, admin, рубрики: gcc, r32l, risc-vНикакое серьезное вычисление невозможно без чисел с плавающей запятой, но, как известно, стандарт RISC-V RV32I не содержит команд умножения и деления. Достаточно ли будет в софт-ядре реализовать стандарт RV32I, чтобы можно было вычислять что-то серьезное? В этой статье на примере RISC-V процессора YRV, описанного в книге Inside an Open-Source Processor, мы рассмотрим, как, используя компилятор GCC, рассчитать такие тригонометрические функции, как синус, косинус, тангенс, выведем на экран результат и даже нарисуем олдскульную синусоиду в VGA-режиме.
Производительность интерпретатора Python 3.14 с оптимизацией хвостовых вызовов
2025-03-17 в 13:01, admin, рубрики: clang, cpython, gcc, ruvds_переводы, байт-код, бенчмарки, интерпретаторы
Примерно месяц назад проект CPython смерджил новую стратегию реализации интерпретатора байт-кода. Первоначальные результаты были очень впечатляющими, продемонстрировав среднее повышение производительности на 10-15% в широком спектре бенчмарков на различных платформах.Читать полностью »
Пишем свой загрузчик операционной системы Linux
2025-03-06 в 9:01, admin, рубрики: gcc, linux, ruvds_статьи, UEFI, загрузка ос, загрузчик, системное программирование
Меня давно интересовал вопрос, насколько сложно написать собственный загрузчик операционной системы. Я не говорю о простой программе, выводящей «Hello, World!», а о полноценном загрузчике, который передаёт управление от встроенного программного обеспечения компьютера ядру операционной системы. Современные загрузчики представляют собой сложные программы, способные загружать множество операционных систем различными способами, учитывая массу нюансов, связанных с программным и аппаратным обеспечением. Читая их исходный код, легко утонуть в деталях и потерять понимание сути и реализации.
Я решил начать изучение с максимально простого подхода, постепенно усложняя задачи, экспериментируя и получая новые знания. Если мне удалось вас заинтересовать, добро пожаловать под кат. Читать полностью »
Упрощаем «простой» ELF
2025-01-12 в 9:01, admin, рубрики: elf, gcc, ruvds_перевод, ассемблер, Программирование, Си
Давайте-ка напишем простую программу для Linux. Насколько трудной она может быть? Только тут надо учесть, что простота противоположна сложности, но не трудности*, и создать нечто простое на удивление трудно. А что останется, если избавиться от сложности стандартной библиотеки, всех современных средств безопасности, отладочной информации и механизмов обработки ошибок?Читать полностью »
Как создать собственное расширение компилятора C++
2024-12-29 в 17:48, admin, рубрики: c++, clang, gcc, plugin
Это перевод статьи, которая, к сожалению, у меня не доступна без слова из трех букв. А так как тема довольно интересная, то я решил совместить полезное с полезным и не только самому покопаться с примерами из публикации, но и сделать её перевод на Хабре. Вдруг еще кому данный материал будет интересен?
Создание пользовательского расширения компилятора C++ подразумевает понимание базовых механизмов работы компиляторов, изменение или расширение их функциональности и бесшовную интеграцию этих изменений в существующую инфраструктуру компилятора. Это руководство проведет вас через весь процесс, от понимания основ до внедрения и тестирования вашего пользовательского расширения. Целевая аудитория этого руководства — разработчики, которые уже знакомы с C++ и имеют базовое понимание концепций компилятора.
