Рубрика «ruvds_перевод» - 42

Пишем загрузчик на Ассемблере и C. Часть 1 - 1

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

Первое знакомство с отладчиком Ghidra и взлом игры Spiderman - 1

В середине декабря в твиттер-аккаунте NSA было объявлено о релизе новой ветки Ghidra с долгожданной поддержкой отладки. Теперь с помощью GDB-заглушки и прочих механизмов можно будет выполнять ее пошагово внутри самой Ghidra. Желая отпраздновать это событие, которое совпало с моим домашним карантином, я подготовил небольшой обзор сборки этой версии, включая пример использования ее отладчика для интересной цели.Читать полностью »

Мы уже создали вполне рабочий эмулятор CHIP-8, но он, к сожалению, получился очень медленным. Почему? Если заглянуть в его главный цикл — можно увидеть, что данные на экран выводятся после выполнения каждого шага цикла. При включённом vsync SDL пытается привязать скорость рендеринга к частоте обновления кадров дисплея (возможно это — 60 Гц). Для нас это означает то, что метод SDLViewer::Update, почти при каждом его вызове, долго будет находиться в заблокированном состоянии, ожидая сигнала vsync от монитора.

Эмуляция компьютера: интерпретатор CHIP-8, таймеры и обработка ввода - 1

Насколько быстро должен работать наш эмулятор? Точный ответ на этот вопрос дать не так уж и просто. На реальном компьютере на выполнение операций с разными кодами нужно разное время, но известны ориентировочные временные показатели выполнения различных операций. Можно выполнить инструкцию, выяснить то, сколько времени её выполнение должно занимать на реальном аппаратном обеспечении, а после этого «усыпить» программу до того момента, когда можно будет продолжать работу. Но тут есть одна проблема, которая заключается в том, что у нас, при таком подходе, нет доступа к временным параметрам работы CPU. На выполнение большинства этих инструкций должна уходить пара микросекунд, но на современных системах «усыплять» программы можно, как минимум, на одну миллисекунду.
Читать полностью »

Недавно мы опубликовали перевод первого материала из серии статей, посвящённой эмуляции компьютера. Автор этих статей подробно рассказывает о написании интерпретатора CHIP-8 на C++. В той публикации мы устроили опрос о целесообразности перевода продолжения цикла. Почти 94% тех, кто принял участие в опросе, продолжение перевода поддержали. Поэтому сегодня мы представляем вашему вниманию второй материал о CHIP-8.

Эмуляция компьютера: интерпретатор CHIP-8 и формирование изображений - 1
Читать полностью »

70 лет компьютерной истории, обращенные в музыку - 1
Реконструкция Colossus в британском Национальном музее вычислительной техники, Блетчли парк

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

Путешествие байта данных во времени - 1

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

В качестве первого и самого простого примера можно взять перфокарты, где бит данных хранился в виде наличия или отсутствия дырки в определенном участке. Если же углубится дальше во времена аналитической машины Бэббиджа, то в ней бит представлялся путем изменения положения механической шестеренки или рычага. На магнитных устройствах хранения, таких как ленты и диски, единица информации представляется полярностью определенной области магнитной пленки. В современной динамической оперативной памяти (DRAM) бит выражается одним из двух возможных уровней электрического заряда конденсатора.
Читать полностью »

Эмуляция компьютера: интерпретатор CHIP-8 - 1

Меня, по ряду причин, всегда завораживала эмуляция. Программа, которая выполняет другую программу… Мне эта идея кажется невероятно привлекательной. И у меня такое ощущение, что тот, кто напишет подобную программу, не пожалеет ни об одной минуте потраченного на это времени. Кроме того, написание эмулятора — это очень похоже на создание настоящего компьютера программными средствами. Мне было очень интересно разбираться в устройстве компьютерной архитектуры, писать простой HDL-код, но эмуляция — это гораздо более простой способ ощутить себя тем, кто своими руками создаёт компьютер. А ещё, в детстве, когда я впервые увидел игру Super Mario World, я поставил себе цель, которая до сих пор не потеряла для меня ценности. Она заключается в том, чтобы полностью понять то, как именно работает эта игра. Именно поэтому я уже некоторое время подумываю о написании эмулятора SNES/SNS. Недавно я решил, что пришло время сделать первый шаг к этой цели.

Предлагаю поговорить о разработке эмулятора и обсудить простой, но полноценный пример эмуляции CHIP-8.
Читать полностью »

HP-35. История зарождения бытовой электроники - 1

Где-то в конце 1971 года Питер Нельсон из корпоративного департамента Hewlett Packard, расположенной в Пало-Альто, пригласил Карен Камбрию из подразделения автоматизированных измерений (к удобству размещенного в том же здании) попозировать с их новым электронным устройством, научным калькулятором, который они нарекли HP-35. Нортон Перл запечатлел Карен с новым детищем HP на нескольких фотоснимках, один из которых в итоге оказался в прессе.
Читать полностью »

Автор статьи, перевод которой мы сегодня публикуем, хочет рассказать о технологиях и инструментах из сфер DevOps и SRE, на которые, как он полагает, стоит обратить внимание в 2021 году.

Технологии и инструменты, на которые стоит обратить внимание в 2021 году - 1
Читать полностью »

Возможности подсистемы хранения данных одноплатного компьютера Raspberry Pi можно расширить, подключив к нему NVMe-диск. Такие диски обычно подключают к PCIe, что даёт им потенциальную возможность считывать и записывать данные на скорости более 3000 Мб/с.

Я уже слышу слова критиков этой идеи, в частности, касающиеся реально достижимой скорости работы с данными, поэтому сразу сделаю оговорку.

Раскрыть весь потенциал NVMe-накопителя на Raspberry Pi 4 не удастся. Но у NVMe-диска есть пара преимуществ перед обычной SD-картой. Это — надёжность и скорость. Покупка подобного диска и адаптера к нему не потребует заметно больше средств, чем покупка более старого диска M.2. А если понадобится, то NVMe-диску можно найти и другое применение (ниже, при разговоре о CM4, я ещё к этому вернусь).

Расширение возможностей Raspberry Pi с помощью загрузочного NVMe-диска - 1

Если у вас имеется внешний SSD с интерфейсом USB или M.2-диск, то вы тоже можете воспользоваться этим руководством.
Читать полностью »


https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js