vak: (Аристипп)
Serge Vakulenko ([personal profile] vak) wrote2025-11-05 01:14 am

Версии DOS для PC/XT

🧭 1981–1983: Ранняя эра IBM PC и XT

PC DOS 1.0 / 1.1 (1981–1982) — поставлялась с первым IBM PC (5150).
  • Базовое управление файлами и дисками, только односторонние дискеты.
  • Функционально идентична MS-DOS 1.x для совместимых компьютеров.
PC DOS 2.0 / 2.1 (1983) — появились подкаталоги и поддержка жёсткого диска.
  • 2.1 поставлялась с IBM PC/XT (1983).
  • Стала стандартной версией DOS для ранних клонов XT примерно до 1984 года.
  • Многие ПК сторонних производителей поставлялись с MS-DOS 2.1 или 2.11.
Самая популярная версия в то время: DOS 2.1 — стабильная, поддерживала жёсткие диски объёмом 10 МБ, широко клонировалась.

🧭 1984–1986: Зрелое поколение XT

MS-DOS 3.0 / 3.1 / 3.2 — представила жёсткие диски большего объёма и поддержку сети.
  • 3.2 (1986) поддерживала дискеты объёмом 720 КБ и стала широко использоваться на клонах класса XT.
  • Многие PC/AT использовали DOS 3.3, но машины класса XT в основном оставались на версии 3.2.
Самая популярная версия: MS-DOS 3.2, иногда 3.1 на более ранних клонах.

Это был пик популярности оригинальных машин XT, всё ещё использующихся в повседневной работе.

🧭 1987–1990: клоны XT и турбо XT

Хотя массовыми стали системы класса AT (286), многие недорогие совместимые с «Turbo XT» системы продолжали существовать.

MS-DOS 3.3 (1987) — очень стабильная, поддерживала разделы 32 МБ и дискеты 1,2 МБ.
  • Поставлялась в комплекте с большинством клонов машин той эпохи.
  • Стала фактическим стандартом DOS в конце 1980-х годов.
MS-DOS 4.0 / 4.01 (1988) — добавлена ​​поддержка дисков объёмом более 32 МБ, но была глючной и тяжёлой для XT.
  • Многие пользователи оставались с версией 3.3, поскольку она была быстрее и совместимее.
Самая популярная версия: MS-DOS 3.3 — вероятно, самая распространённая версия DOS на оборудовании класса XT вплоть до начала 1990-х годов.

🧭 1990–1994: Пользователи устаревших XT

Даже когда ПК 386/486 стали стандартом, множество старого оборудования XT сохранилось в лабораториях, на заводах и в школах.

MS-DOS 5.0 (1991) — добавлен полноэкранный редактор EDIT.COM, драйвер HIMEM.SYS, улучшенное управление памятью.
  • Всё ещё может работать на XT с 640 КБ ОЗУ.
  • Используется энтузиастами и как вариант обновления с версии 3.3.
PC DOS 5.02 – аналогичная версия IBM.

Самая популярная версия позднего периода: MS-DOS 5.0 (для сохранившихся машин XT).

Сводная таблица:
  Период   Типичное оборудование  Версии DOS  Самые популярные
--------------------------------------------------------------
1981–1983 IBM PC, PC/XT 1.0 – 2.1 2.1
1984–1986 Клоны PC/XT 3.0 – 3.2 3.2
1987–1990 Клоны Turbo XT 3.3 – 4.01 3.3
1991–1994 Устаревшие системы XT 3.3 – 5.0 5.0
Итог: для настоящих IBM PC/XT и совместимых машин в ранний период доминировала MS-DOS 2.1, а MS-DOS 3.3 стала долгоживущей и самой популярной версией. Позже энтузиасты и те, кто воздержался от обновления, часто переходили на DOS 5.0, но 3.3 оставалась классической XT DOS.
vak: (Daemon)
Serge Vakulenko ([personal profile] vak) wrote2025-11-04 10:46 pm

GCC для 8086

Оказывается, для 16-битной архитектуры Intel 8086 имеется компилятор GNU Си/Си++, и активно поддерживается. Раньше я слышал про bcc и OpenWatcom, но они имеют ограниченный функционал. С таким известием затея по восстановлению Юникса v7 (Venix) для писишки не выглядит безнадёжной.

Исходники: github.com/tkchia/gcc-ia16
Зеркало: gitlab.com/tkchia/build-ia16/-/releases

На интеловской Ubuntu компилятор ставится следующим образом:
sudo apt install software-properties-common
sudo add-apt-repository ppa:tkchia/build-ia16
sudo apt-get update
sudo apt-get install gcc-ia16-elf
На Ubuntu ARM64 аналогично, но из другого места:
sudo add-apt-repository ppa:catacombae/gcc-ia16-arm64
Глянем на сгенерённый код:
$ ia16-elf-gcc -S -O hello.c
$ cat hello.s 
	.arch i8086,jumps
	.code16
	.att_syntax prefix
#NO_APP
	.section	.rodata.str1.1,"aMS",@progbits,1
.LC0:
	.string	"Hello, World!"
	.text
	.global	main
	.type	main, @function
main:
	movw	$.LC0,	%ax
	pushw	%ax
	call	puts
	addw	$2,	%sp
	movw	$0,	%ax
	ret
	.size	main, .-main
	.ident	"GCC: (GNU) 6.3.0"
По умолчанию линкуется бинарник для MS-DOS:
$ ia16-elf-gcc hello.c 
$ file a.out
a.out: COM executable for DOS
vak: (Default)
Serge Vakulenko ([personal profile] vak) wrote2025-11-04 01:10 pm

Microdrive

В конце 90-х начале 2000-х народ в IBM придумал делать жёсткие диски крошечного размера. Так появились Microdrive, позже превратившиеся в CompactFlash. Мне от коллеги достался один экземпляр. В 2004 году продавался за $499 баксов. С такими дисками шаттлы в космос летали.



Меряю скорость под Линуксом.



Для сравнения возьмём CompactFlash примерно того же времени.



vak: (Знайка)
Serge Vakulenko ([personal profile] vak) wrote2025-11-03 09:45 pm

СGA работает

Приехали новозеландские адаптеры для видеосигнала EGA/CGA и для клавиатуры XT. Подсоединил к писишке - задышало!

При включении показывает имеющуюся периферию и тестирует память.



После чего выдаёт версию прошивки.



Контроллер диска я вынул, поэтому желает грузиться с флопика.



Упаковка пятидюймовых флопиков у меня припасена, но их же надо ещё записать. Какой-нибудь древний MS-DOS отыскать. В следующий раз. И с дисковым контроллером пора вопрос решать.
vak: (Бодхидхарма)
Serge Vakulenko ([personal profile] vak) wrote2025-11-02 11:07 pm

Китайцы шпионят через пылесосы

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

Умный пылесос был удалённо заблокирован из-за отсутствия сбора данных.

Инженер заинтересовался работой своего умного пылесоса iLife A11 и начал отслеживать сетевой трафик, исходящий от устройства. Тогда он заметил, что тот постоянно отправляет производителю журналы и данные телеметрии, на что он не давал своего согласия. Пользователь, Харишанкар, решил заблокировать IP-адреса серверов телеметрии в своей сети, оставив прошивку и серверы OTA открытыми. Его умный гаджет работал какое-то время, но вскоре перестал включаться. После долгого расследования он обнаружил, что устройству была выдана команда на удалённое отключение.

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

Поскольку A11 был умным устройством, он был оснащен чипсетом AllWinner A33 с операционной системой TinaLinux, а также микроконтроллером GD32F103 для управления множеством датчиков, включая лидар, гироскопы и энкодеры. Он подключил разъёмы к печатной плате и написал скрипты на Python для управления ими с помощью компьютера, с целью индивидуальной проверки каждого компонента и выявления неисправностей. Затем он собрал джойстик на Raspberry Pi для ручного управления пылесосом, доказав, что с оборудованием всё в порядке.



После этого он изучил его программное обеспечение и операционную систему, и именно здесь он обнаружил мрачную правду: его умный пылесос был кошмаром безопасности и чёрной дырой для его личных данных. Прежде всего, Android Debug Bridge, предоставляющий ему полный root-доступ к пылесосу, не был защищён никаким паролем или шифрованием. Производитель добавил импровизированный протокол безопасности, убрав важный файл, из-за чего пылесос отключался вскоре после загрузки, но Харишанкар легко обошёл его. Затем он обнаружил, что пылесос использует Google Cartographer для построения трёхмерной карты его дома в режиме реального времени.

В этом нет ничего необычного. В конце концов, это умный пылесос, и ему нужны эти данные для навигации по дому. Однако беспокоит то, что он отправлял все эти данные на сервер производителя. Вполне логично, что устройство отправляет эти данные производителю, поскольку его встроенная система на кристалле недостаточно мощна для обработки всех этих данных. Однако, похоже, iLife не согласовала это со своими клиентами. Более того, инженер сделал одно тревожное открытие: в логах своего неработающего умного пылесоса он обнаружил команду с меткой времени, точно совпадающей со временем остановки устройства. Это была явно команда на завершение работы, и после того, как он отменил её и перезагрузил устройство, оно снова ожило.



Итак, почему A11 работал в сервисном центре, но отказывался работать дома? Техники переустанавливали прошивку умного пылесоса, удаляя код отключения, а затем подключали его к открытой сети, восстанавливая нормальную работу. Но как только он снова подключался к сети, в которой были заблокированы серверы телеметрии, он удалённо блокировался, поскольку не мог связаться с серверами производителя. Поскольку он заблокировал сбор данных устройства, производитель решил просто полностью отключить его. «Кто-то — или что-то — удалённо дал команду на отключение», — говорит Харишанкар. «Будь то намеренное наказание или автоматическое принуждение к «соблюдению правил», результат был один и тот же: потребительское устройство напало на своего владельца».

К сожалению, многие другие бренды умных пылесосов используют похожее оборудование, поэтому неудивительно, что у них та же схема. Это, вероятно, особенно актуально для более дешёвых устройств с менее мощным оборудованием и без поддержки периферийных вычислений, а значит, им придётся отправлять данные на какой-то удалённый сервер для обработки. Но поскольку ваша информация переносится на другое устройство, находящееся вне вашего контроля, вы на самом деле не имеете ни малейшего представления о том, что с ней происходит, предоставляя производителю полную свободу действий в использовании ее по своему усмотрению.
vak: (Default)
Serge Vakulenko ([personal profile] vak) wrote2025-11-02 09:56 am

Алгоритмы сравнения файлов

Чем отличается алгоритм Котлера от алгоритма Хекеля? Вот статья, которая всё объясняет.

https://github.com/sergev/ifcomp/blob/main/Theory.md
vak: (Default)
Serge Vakulenko ([personal profile] vak) wrote2025-11-01 12:28 pm

ifcomp

Приходится ли вам сравнивать файлы? Риторический вопрос: очевидно, приходится. Я лично команду "git diff" выдаю тысячу раз за день. Всем классический diff хорош, кроме одного: не различает перестановку фрагмента. Показывает только удаления и вставки. Если же часть текста переехала в другое место, diff учитывает его дважды: и как удаление, и как вставку.

Для некоторых применений такое не годится. Представьте, что вы хранитель коллекции ценных документов. И вдруг с одним файлом что-то случилось. Стандартный diff говорит, что всё пропало, документ полностью испорчен. А просто строки перемешались, ничего на самом деле не потеряно. Надо только порядок восстановить. В эпоху перфокарт такое сплошь и рядом происходило, когда колоду рассыпали и собрали впопыхах. Или кто-то решил навести порядок и переставил главы в тексте.

45 лет назад мой коллега Рид Котлер сделал утилиту сравнения файлов: "Text File Comparator". Трудился он тогда молодым студентом на компанию Intermetrics по контракту NASA. Сохранилось упоминание на странице 117 журнала NASA Tech Briefs Winter 1982 Vol. 7, No. 2: https://ntrs.nasa.gov/api/citations/20100028127/downloads/20100028127.pdf

Программа сравнивает два файла и выводит список их различий.

Программа сравнения файлов IFCOMP — это сравнение текстовых файлов для систем, совместимых с IBM OS/VS. IFCOMP принимает на вход два текстовых файла и выводит список их различий в форме псевдообновления. Все различия представлены в виде строк, которые следует удалить, заменить, вставить или переместить в первом входном файле для преобразования его во второй входной файл. Также выводится сводка с указанием количества строк, затронутых каждым типом изменений.

IFCOMP позволяет игнорировать номера строк и конечные пробелы при сравнении файлов с записями разной длины. IFCOMP может быть очень полезен для мониторинга изменений, вносимых в программное обеспечение, на уровне исходного кода. При таком использовании IFCOMP позволяет проводить прямое сравнение исходного кода для единообразного выявления изменений.

Программа IFCOMP написана на языке XPL (расширенный язык PLI, для которого поставляются исполняемые файлы компилятора) для пакетного выполнения и была реализована на компьютере IBM серии 370 с объёмом центральной памяти около 46 КБ 8-битных байт. IFCOMP была разработана в 1979 году.

Эта программа была написана Ридом С. Котлером из Intermetrics, Inc. для Космического центра имени Джонсона. Для получения дополнительной информации обведите кружком S на карточке запроса COSMIC.
Алгоритм подробно описан в статье: "A Technique for Isolating Differences Between Files", Paul Heckel 1978. 

Исходники на языке XPL утеряны, увы. Но сохранился вариант, переписанный Томом Пенелло на Си. Его я и решил поковырять. С ним Рид мне прислал четыре теста, и они работали. Но на некоторых других файлах программа выдавала внутреннюю ошибку или циклилась. Ошибка там неочевидная.

Я подумал: хороший случай применить ИИ для отладки. Интересно, как неестественный ум справится, скажем Cursor или Cline. Получился увлекательный сеанс. 😀

В целом программирование с помощью современного AI-агента напоминает походовую стратегическую игру. Если помните первую Empire, ещё в текстовом виде. Из неё потом выросла Civilization. Здесь нечто похожее, только без карты и в диалоге. Стратегически плодите и размещаете юнит тесты, и постепенно боретесь за расширение функционала и покрытия.

Благо, ИИ агент теперь удобно встроен в VS Code. Работает с файлами прямо в вашем локальном git-репозитории. Или даже прямо на Гитхабе, вам решать. Компилирует, запускает, пишет документацию, находит причины ошибок посредством юнит тестов, чинит, и по новому кругу. Вы внимательно наблюдаете за "сражением" и адресно вмешиваетесь в критические моменты.

Первый "подход к штанге" мы с Курсором продули. 😀 Для начала насоздавали несколько десятков юнит тестов, из которых больше половины не проходили. Хорошо, значит покрытие приемлемое. После этого несколько часов бились все эти тесты пройти. Курсор кромсал код без жалости. Объём Си-шных текстов увеличился вдвое, но справиться с глюками не удавалось. Стало понятно, что зашли в тупик.

Второй подход я распланировал иначе. Сначала переписываем всё с Си на Си++, чтобы уменьшить базовую сложность кода. Вместо доморощенных строк и примитивного выделения памяти переходим на стандартные строки и контейнеры из библиотеки Си++. После этого начинаем покрывать юнит тестами и отлаживать размеренно, по стадиям. Благо алгоритм имеет чёткое разделение на восемь проходов: от pass1() до pass8().

Главная бага обнаружилась на стадии pass6(). При слиянии двух блоков криво обновлялось дерево. Но проявлялся глюк только на уровне pass8(). Тесты уровней pass6 и pass7 багу не ловили. Курсор пытался "чинить" сначала уровень pass8, потом догадывался вернуться и сделать что-то с pass7, и даже заглядывал с сомнением в pass6, но тут его чутья не хватало. Как только я догадался скомандовать создать юнит тест, воспроизводящий нужную багу на уровне pass6, дело пошло на лад. Починка остального была уже делом техники.

Все исходники здесь: github.com/sergev/ifcomp
vak: (Кризис так себе)
Serge Vakulenko ([personal profile] vak) wrote2025-11-01 11:19 am
Entry tags:

Сколько ядрёных бомб, говоришь?

Затеяли Трамп и Си крутизной меряться.

«Сколько у тебя ядрёных бомб?» - спрашивает Си.

«Да я! Да у меня! Еще с холодной войны столько запасено!» - Трамп называет цифру.

«И сколько из них взорвутся? Всё протухло давно.»

Трамп срочно побежал проводить подземные испытания.

https://www.dw.com/ru/tramp-prikazal-nemedlenno-vozobnovit-ispytania-adernogo-oruzia/a-74549506
vak: (Default)
Serge Vakulenko ([personal profile] vak) wrote2025-10-30 08:53 pm

v-edit фунциклирует

Дополировал я текстовый редактор, теперь уже и показать не жалко. Получился красивый код на Си++, и даже кое-как покрытый тестами. Не стыдно людям показать. Не знаю зачем оно может пригодиться, но ещё одна ностальгическая тема закрыта. 😀

github.com/sergev/v-edit

Внутри всё устроено ровно как в древнем Rand Editor. Редактируемые файлы не зачитываются целиком в память. Вместо этого строится компактный список сегментов, облегчающих подчитывание строк файлов по мере необходимости. Изменения в изначальные файлы не вносятся. Модифицированные строки записываются в отдельный временный файл. И только по команде записи в файл происходят перемены. Изначальный редактируемый файл foo переименовывается в бэкап foo~, а в новый foo записываются все строки по порядку, как изменённые (из временного файла), так и прежние (из старого файла). Таким образом обеспечивается устойчивость к сбоям: в любой момент, что бы ни случилось с компьютером, на диске имеется как минимум одна правильная копия файла.

Причём результаты редактирования тоже не теряются при сбое. Всякое действие редактора записывается в файл журнала. После сбоя этот журнал можно "проиграть" заново, получив из старого файла новый со всеми правками. Это я ещё не тестировал, правда.

Cursor в прошлые выходные глючил нещадно. Я даже разочаровался и переключился на Cline с горя. Это такой плагин для VS Code, от claude.ai. Он тоже приемлемо работает. Но вчера Cursor выкатил новую версию 2.0, я поставил и порадовался. Ничего не глючит, и кодит заметно умнее, чем Cline. Отличный инструмент.
vak: (Аристипп)
Serge Vakulenko ([personal profile] vak) wrote2025-10-28 11:33 pm

Trident TVGA8900C

Не так много есть VGA адаптеров, работающих в 8-битной шине ISA. Обычно они желают как минимум 16-битную шину. Но вот нашёлся один, слава богу. К нему даже драйверы имеются. Документация: TVGA-8900c-Users-manual.pdf



При включении появляется сообщение:



Что просто офигительно! Значит писишка живая. Значит всё остальное в ней тоже небезнадёжно. Постепенно оживим. Судя по цветным полосам на мониторе, с качеством питания проблемы. Вероятно, следует перешерстить на тему высохших электролитов в блоке питания.

И ещё ждём переходник для клавиатуры PC/XT. 
vak: (Аристипп)
Serge Vakulenko ([personal profile] vak) wrote2025-10-28 10:51 pm

Cpg-400 Color/Graphics & Printer Adapter

Вот такой видео адаптер стоит в древней писишке. Тайваньская фирма Diamond Flower Inc производила Cpg-400 и другие видео контроллеры с 1981 года, а с 1992 переключилась на материнские платы.



Описание джамперов: theretroweb.com/expansioncard/documentation/50632.pdf

Чтобы сконвертировать этот видеосигнал в VGA, я заказал хитрый конвертер новозеландской фирмы. Приедет - будем пробовать.
vak: (Кризис так себе)
Serge Vakulenko ([personal profile] vak) wrote2025-10-28 11:08 am
Entry tags:

Что на самом деле произошло с буревестником

В 2019 году в Нёноксе, небольшом посёлке в Архангельской области России на побережье Белого моря, произошёл серьёзный инцидент. 8 августа на расположенном неподалёку военно-морском полигоне произошёл взрыв, который, по словам российских официальных лиц, был охарактеризован как испытание жидкостного ракетного двигателя. В результате взрыва погибли пять инженеров-атомщиков и трое получили ранения, среди пострадавших были сотрудники российского государственного атомного агентства «Росатом». В соседнем городе Северодвинске был зафиксирован кратковременный всплеск уровня радиации, который достиг 20 раз выше фонового уровня, после чего быстро спал.

Американская разведка и независимые эксперты подозревали, что авария была связана с испытанием прототипа крылатой ракеты с ядерной силовой установкой, известной как 9М730 «Буревестник» (обозначение НАТО: SSC-X-9 Skyfall), которую Россия разрабатывала в рамках своей программы перспективных вооружений. Сообщается, что взрыв произошёл на морской платформе или барже, где небольшой ядерный реактор мог выйти из строя, что привело к выбросу радиоактивных материалов в море и гибели испытательной группы.

После инцидента российские власти изначально преуменьшали радиационные риски, но запланировали временную эвакуацию жителей Нёноксы на 14 августа, но спустя несколько часов отменили её, сославшись на нормализацию обстановки. Инцидент привлёк международное внимание, высказавшись о проблемах с прозрачностью и воздействием на окружающую среду, хотя о долгосрочном обширном загрязнении не сообщалось.
vak: (Бодхидхарма)
Serge Vakulenko ([personal profile] vak) wrote2025-10-27 05:28 pm

План по валу

- Пароль?
- План по валу!
- Вал по плану. Проходи.



Покажу, как выглядит программирование с ИИ помощником. В данном случае на примере допиливания текстового редактора v-edit. Для конкретики: используется Cline, такой плагин к VS Code, подключенный к модели grok-code-fast-1.

Ставлю задачу... )
vak: (Default)
Serge Vakulenko ([personal profile] vak) wrote2025-10-27 05:13 pm

v-edit

За выходные удалось переписать рудневский текстовый редактор re с Си на Си++ и ncurses. Курсор хороший инструмент, хотя потрудиться пришлось изрядно. Вот что вышло:

github.com/sergev/v-edit

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

Под конец Курсор стал нещадно тормозить. Не знаю, то ли у них проблемы, то ли какой лимит я превысил. Буду переходить на Cline c Гроком.

Редактор re это наследник исторического Rand Editor. Прикольно будет довести его до ума на новом уровне программизма.

vak: (Путиномедвед)
Serge Vakulenko ([personal profile] vak) wrote2025-10-27 11:09 am
Entry tags:

Российского ПВО больше нет

Вот всё что осталось.

vak: (U.S.A.)
Serge Vakulenko ([personal profile] vak) wrote2025-10-25 01:17 pm

Kryptos

Один чувак нашифровал, другие мучаются расшифровывают.



Первую часть расшифровали: BETWEEN SUBTLE SHADING AND THE ABSENCE OF LIGHT LIES THE NUANCE OF IQLUSION

Вторую часть расшифровали: IT WAS TOTALLY INVISIBLE HOWS THAT POSSIBLE ? THEY USED THE EARTHS MAGNETIC FIELD X THE INFORMATION WAS GATHERED AND TRANSMITTED UNDERGRUUND TO AN UNKNOWN LOCATION X DOES LANGLEY KNOW ABOUT THIS ? THEY SHOULD ITS BURIED OUT THERE SOMEWHERE X WHO KNOWS THE EXACT LOCATION ? ONLY WW THIS WAS HIS LAST MESSAGE X THIRTY EIGHT DEGREES FIFTY SEVEN MINUTES SIX POINT FIVE SECONDS NORTH SEVENTY SEVEN DEGREES EIGHT MINUTES FORTY FOUR SECONDS WEST X LAYER TWO

Третью часть расшифровали: SLOWLY DESPARATLY SLOWLY THE REMAINS OF PASSAGE DEBRIS THAT ENCUMBERED THE LOWER PART OF THE DOORWAY WAS REMOVED WITH TREMBLING HANDS I MADE A TINY BREACH IN THE UPPER LEFT HAND CORNER AND THEN WIDENING THE HOLE A LITTLE I INSERTED THE CANDLE AND PEERED IN THE HOT AIR ESCAPING FROM THE CHAMBER CAUSED THE FLAME TO FLICKER BUT PRESENTLY DETAILS OF THE ROOM WITHIN EMERGED FROM THE MIST X CAN YOU SEE ANYTHING Q ?

Над четвёртой частью ломают голову, а пятая даже ещё не показалась.
mark: A photo of Mark kneeling on top of the Taal Volcano in the Philippines. It was a long hike. (Default)
Mark Smith ([staff profile] mark) wrote in [site community profile] dw_maintenance2025-10-25 08:42 am

Database maintenance

Good morning, afternoon, and evening!

We're doing some database and other light server maintenance this weekend (upgrading the version of MySQL we use in particular, but also probably doing some CDN work.)

I expect all of this to be pretty invisible except for some small "couple of minute" blips as we switch between machines, but there's a chance you will notice something untoward. I'll keep an eye on comments as per usual.

Ta for now!

vak: (Знайка)
Serge Vakulenko ([personal profile] vak) wrote2025-10-24 07:28 pm
Entry tags:

Меряем скорость карточки micro-SD

Раньше все карточки Kingston, что мне попадались, были жутко тормозные. Но вот у них неплохая серия появилась. По скорости записи даже Самсунг с Сандиском затмевает.



Чтение 93.2 Мбайт/сек, запись 85.7 Мбайт/сек - SanDisk Extreme Pro 128Gb - цена $17


vak: (U.S.A.)
Serge Vakulenko ([personal profile] vak) wrote2025-10-24 12:05 pm

Что было с Амазоном

Summary of the Amazon DynamoDB Service Disruption in Northern Virginia (US-EAST-1) Region

19–20 октября 2025 года в регионе Северная Вирджиния (US-EAST-1) произошел значительный сбой в работе сервисов AWS, вызванный, главным образом, скрытым состоянием гонки в автоматизированной системе управления DNS Amazon DynamoDB. Это привело к сбоям в разрешении DNS для региональной конечной точки DynamoDB, что привело к масштабным последствиям для нескольких сервисов AWS. Событие развивалось в три основных этапа: учащение ошибок API DynamoDB (с 23:48 по тихоокеанскому времени 19 октября до 2:40 по тихоокеанскому времени 20 октября), ошибки подключения к NLB (с 5:30 до 14:09 по тихоокеанскому времени 20 октября) и сбои запуска экземпляров EC2 из-за проблем с подключением (с 2:25 до 13:50 по тихоокеанскому времени 20 октября).

Проблема была связана с архитектурой DNS DynamoDB, которая использует DNS Planner для генерации планов конечных точек и избыточные DNS Enactors (в трёх зонах доступности) для их применения через Amazon Route 53. Редкое состояние гонки возникло, когда один Enactor столкнулся с задержками, позволив другому применить новый план и удалить старый в процессе. Это привело к пустой записи DNS для публичной конечной точки, что привело к блокировке подключений. Восстановление потребовало ручного вмешательства для восстановления DNS к 2:25 утра по тихоокеанскому летнему времени, а полное подключение было восстановлено к 2:40 утра по истечении срока действия кэшей. Глобальные таблицы испытывали задержки репликации, но оставались доступными в других регионах.

В EC2 наблюдались ошибки API, задержки и сбои запуска из-за зависимостей от DynamoDB. Менеджер рабочих процессов дроплетов (DWFM) не смог поддерживать аренду на физических серверах («дроплетах»), что привело к ошибкам, связанным с нехваткой ёмкости. После восстановления DynamoDB DWFM столкнулся с перегрузкой из-за накопившихся данных, что потребовало ограничения пропускной способности и перезапуска. Network Manager столкнулся с задержками распространения сетевых данных для новых экземпляров, которые были устранены к 10:36 PDT. Полное восстановление EC2, включая снятие ограничений пропускной способности, произошло в 13:50 PDT. Существующие экземпляры не пострадали.

В NLB возникали ошибки подключения из-за сбоев проверки работоспособности, усугублявшиеся задержкой распространения сетевых данных для новых экземпляров EC2. Это приводило к чередованию работоспособных и неработоспособных состояний, вызывая ненужные отказоустойчивости AZ и снижение производительности. Инженеры отключили автоматические отказоустойчивости в 9:36 PDT, восстановив работу к 14:09 PDT после стабилизации EC2.

Влияние на другие сервисы:
- Lambda: Ошибки и задержки API до 14:15 PDT, с задержками из-за сбоев опроса SQS и недостаточного масштабирования из-за проблем с NLB/EC2.
- ECS/EKS/Fargate: Сбои запуска и масштабирования контейнеров до 14:20 PDT.
- Amazon Connect: Повышенное количество ошибок вызовов/чатов до 13:20 PDT, с обратным заполнением данных до 28 октября.
- STS: Ошибки API до 09:59 PDT.
- AWS Management Console: Сбои аутентификации до 01:25 PDT.
- Redshift: Ошибки запросов и кластеров до 02:21 PDT, некоторые кластеры недоступны до 21 октября из-за заблокированных замен EC2; проблемы с запросами IAM временно затронули все регионы.
- Другие сервисы, такие как Airflow, Outposts и Support Center, столкнулись с аналогичными сбоями.

AWS извинилась за последствия и предложила решения: отключение/пересмотр автоматизации DNS DynamoDB для устранения состояния гонки; добавление контроля скорости NLB; улучшение тестирования и регулирования EC2; а также текущие проверки для повышения устойчивости и времени восстановления во всех сервисах.