All streams
Search
Write a publication
Pull to refresh
504
198.1
Дмитрий Брайт @Bright_Translate

Переводчик

Send message

Cи в роли промежуточного языка

Reading time14 min
Views9K

Интересный небольшой эксперимент по использованию Cи в качестве цели компиляции для получения портативности программы, ее оптимизации и функциональной совместимости. В ходе эксперимента мы также напишем саму программу, реализующую алгоритм Эвклида, выполним ее отладку и профилирование, а также попутно задействуем функцию «красивой» печати gdb.
Читать дальше →

Апгрейд AMIGA 500 под современные реалии

Reading time9 min
Views6.9K

Неугасающий энтузиазм ретро-компьютерщиков продолжает поддерживать жизнь старых ПК и даже находит им актуальное применение в современном мире. На этот раз «осовремениванию» подвергся старенький Amiga, получивший более мощный процессор, дополнительную память и кое-какие дополнительные примочки.
Читать дальше →

Военные хитрости средних веков: диверсии с помощью «кошек-ракет»

Reading time3 min
Views17K
Кошка-ракета, XVII век (Источник: Wikimedia Commons/Folger Shakespeare Library, V.b.311, f. 129r)

«В войне все средства хороши… лишь бы вели к победе», — Так рассуждали когда-то и рассуждают до сих пор многие главнокомандующие. Хотя эта статья не будет поднимать вопрос оправданности или ошибочности подобной концепции, а лишь продемонстрирует частные случаи ее проявления в древности, в средние века и даже недалеком прошлом.
Читать дальше →

Пошаговый запуск программы в Linux x86, или как добраться до main()?

Reading time18 min
Views25K


Статья предназначена для тех, кто хочет понять процесс загрузки программ в Linux. В частности, здесь пойдет речь о динамической загрузке файлов ELF x86. На основе изложенной информации вы сможете лучше понять, как устранять проблемы, возникающие в программе еще до запуска main.
Читать дальше →

Апгрейд системы для облачного гейминга: теперь с Nvidia и Moonlight

Reading time5 min
Views12K

Третья, заключительная часть серии, посвященной пробросу видеокарт в виртуальную машину и организации облачной игровой системы для удаленного подключения по локальной сети с различных устройств.
Читать дальше →

Настройка системы для облачного гейминга с помощью VFIO, Parsec и AMD

Reading time6 min
Views35K


Этот проект продолжит предыдущий, где я рассматривал настройку VFIO в общем. Для многих этого уже будет достаточно, но моей целью все же является получение мощной игровой конфигурации, к которой я смогу подключаться со своего ПК в гостинной через 20 метров витой пары.
Читать дальше →

Тестирование проброса GPU на AMD Ryzen 7 5700G APU

Reading time7 min
Views18K

Проброс видеокарты с помощью VFIO может быть знаком немногим, но по факту является очень удобным способом решить ряд насущных задач и упростить рабочий процесс в целом. В этом проекте мы настроим нужную конфигурацию из под Fedora 34 и поочередно пробросим две разные видеокарты в VM, попутно оценив полученную производительность.
Читать дальше →

Минимизация файла ELF – попробуем в 2021?

Reading time18 min
Views11K

Экспериментальный проект по максимальному уменьшению ELF-файла с программой Hello, World! под целевую систему Linux x64 с помощью NASM. В предыдущем опыте начала 2000-х удалось добиться размера рабочего файла в 45 байтов, но с тех пор ядро сильно изменилось. Каков же будет минимальный жизнеспособный ELF в 2021?
Читать дальше →

100% загрузка CPU: моя вина?

Reading time8 min
Views18K

История бага JDK и связанной с ним ошибки разработки, приведшей к нештатной 100%-загрузке CPU. Что пошло не так, что можно было сделать лучше, и кто, в конце концов, оказался виноват?
Читать дальше →

Практический разбор истории звука Apple II и Mockingboard

Reading time8 min
Views3.5K

Свой очередной ретро-проект я решил посвятить исправлению одного из наиболее слабых мест излюбленного мной Apple ][+: его аудио. Так что предлагаю вместе разобраться с AY-3 и углубится в сопутствующие детали!
Читать дальше →

Наш мозг не компьютер

Reading time15 min
Views33K


Как только не объяснял человек природу своего сознания и мышления на протяжении истории, начиная с библейской легенды о «сотворении тела из глины и заселении его духом» и заканчивая довлеющей на сегодня парадигмой «наш мозг — это обработчик информации, подобный компьютеру». И если все прошлые аналогии уже практически исчерпали веру в себя, то с последней вопрос стоит остро, ведь многие специалисты по нейробиологии не согласны и считают ее в корне ошибочной.
Читать дальше →

Модификация ядра Linux: добавляем новые системные вызовы

Reading time5 min
Views16K

В этой статье мы научимся изменять ядро Linux, добавим собственные уникальные системные вызовы и в завершении соберем ядро с новой функциональностью.
Читать дальше →

Принцип работы планировщика задач в Linux

Reading time5 min
Views33K

Планирование – это процесс распределения ресурсов системы для выполнения задач. В статье мы рассмотрим его вариант, в котором ресурсом является одно или несколько ядер процессора, а задачи представлены потоками или процессами, которые нужно выполнить.
Читать дальше →

Упрощаем эмуляцию X86 с помощью Live CD

Reading time5 min
Views5K

Типичный подход к эмулированию среды для запуска старых файлов с архитектурой i386 сопряжен со сложностями, в частности с поиском всех необходимых библиотек. Однако этой проблемы можно избежать, воспользовавшись заранее подготовленным образом Live CD, о чем в статье и пойдет речь на примере образа эмулятора Palm OS и игры Shogo: Mobile Armor Division.
Читать дальше →

Знакомимся с аудио платой Bluetrum AB32VG1 RISC-V Bluetooth через RT-Thread

Reading time5 min
Views5.5K

Bluetrum AB32VG1 – это макетная плата на базе микроконтроллера AB5301A RISC-V, спроектированного как под приложения с использованием Bluetooth-аудио, так и для общих проектов, которые работают с операционной системой реального времени RT-Thread.

Эту плату мне прислали разработчики RT-Thread, и далее я опишу свой опыт первого знакомства с ней. В ходе этого небольшого эксперимента я опробую RT-Thread Studio IDE, помигаю светодиодом и поработаю с примером кода для аудио интерфейса, так как для Bluetooth пока примеров нет…
Читать дальше →

Осваиваем новую базу кода: анализируем программу nginx

Reading time10 min
Views12K
В разработке nginxучастия я никогда не принимал, так как мой навык работы в Си находится где-то на уровне 1/10. Однако меня не страшит идея скачать исходный код, разобрать его, скомпилировать и запустить. Цель этой статьи помочь и вам преодолеть собственный страх проделать то же самое.
Читать дальше →

MKINITCPIO V31 и заглушки UEFI

Reading time5 min
Views5.3K

Изображение взято из статьи «Linux Kernel EFI Boot Stub или «Сам себе загрузчик»»

Несколько месяцев назад я написал для скрипта mkinitcpio код, который позволяет ему создавать файлы UEFI с использованием заглушки systemd.

Само внесенное мной изменение можно найти на GitHub.

Далее я коротко продемонстрирую, чем эта возможность хороша, как она упрощает запуск системы, и как с ее помощью можно повысить безопасность, используя, например, Secure Boot.
Читать дальше →

Переносим философию Unix в 21 век

Reading time5 min
Views23K

Один из основных принципов философии Unix заключается в создании таких программ, каждая из которых эффективно выполняет всего одну задачу, и связывании этих программ в конвейер. Подобный подход отлично зарекомендовал себя за десятилетия существования системы.

В статье же речь пойдет о том, чего ощутимо не хватает современным системам Linux с точки зрения этой философии, а также будет предложено решение связанных с этим проблем.
Читать дальше →

Проигрыватель мелодий из игры Monkey Island

Reading time18 min
Views4.6K

Приключение начинается...

Кратко:

  • Я модифицировал DOSBox для извлечения пар значений частоты/задержки мелодий PC-спикера из игры «Остров обезьян».
  • Затем с помощью алгоритма Хаффмана я втиснул всю эту музыку в ATiny85 (512 байтов ОЗУ, 8Кб флэш).
  • После этого собрал небольшую плату с динамиком для ее воспроизведения…
  • … в качестве подарка моим племянникам и племянницам, с которыми встречусь в ближайшем будущем спустя год изоляции из-за пандемии.

Все верно – их дядя откровенный ботан, позаботившийся о том, чтобы детство племяшей не прошло без знакомства с Гайбрашем Трипвудом:)
Читать дальше →

Осваиваем LaTeX за 30 минут

Reading time14 min
Views388K

Это руководство нацелено на первое знакомство с LaTeX и предварительных знаний о нем от вас не потребует. К его завершению вы уже напишете свой первый документ и получите представление о ряде базовых возможностей этого инструмента.
Читать дальше →

Information

Rating
27-th
Location
Россия
Works in
Date of birth
Registered
Activity