Microsoft открыла код BASIC 6502, запустившего Commodore и Apple II

Microsoft открыла код BASIC 6502, запустившего Commodore и Apple II

Microsoft открыла код BASIC 6502, запустившего Commodore и Apple II

Microsoft выложила на GitHub полный исходный код Microsoft BASIC для процессора 6502 — версии 1.1 от 1978 года, на которой работали такие легендарные машины, как Commodore PET, VIC-20, Commodore 64 и Apple II. Теперь 6 955 строк ассемблерного кода доступны под лицензией MIT — каждый может изучать, использовать и даже изменять софт, с которого фактически начиналась революция персональных компьютеров.

Написанный Биллом Гейтсом и Риком Вейландом интерпретатор BASIC стал для миллионов людей в конце 70-х и начале 80-х первой возможностью «поговорить» с компьютером напрямую.

Простейшие команды вроде 10 PRINT "HELLO" и 20 GOTO 10 превращались в бесконечный поток текста на экране — и в первый опыт программирования для целого поколения.

Особенность кода в том, что он умещался в смешные по нынешним меркам объёмы памяти, когда каждый килобайт стоил сотни долларов. Процессор MOS 6502 обходился всего в $25, а его конкуренты — в восемь раз дороже. Поэтому именно этот чип стал сердцем домашних компьютеров и игровых приставок, от Atari 2600 до NES.

Интересная деталь из истории: Commodore в 1977 году заплатила Microsoft всего $25 000 за бессрочную лицензию на использование BASIC — без отчислений за каждую проданную машину. Учитывая миллионы Commodore PET и C64, выпущенные позже, в Redmond наверняка вспоминают этот контракт с лёгкой грустью.

В опубликованной версии 1.1 уже есть исправления и оптимизации, сделанные в 1978-м совместно инженером Commodore Джоном Фигансом и самим Гейтсом. Код поддерживал условную компиляцию — по сути, из одной кодовой базы собирались варианты и для Apple II (Applesoft BASIC), и для KIM-1, и для других систем.

Зачем это всё сегодня? Для энтузиастов ретрокомпьютеров — это шанс прикоснуться к «чистому» историческому артефакту, увидеть, как программисты выжимали максимум из железа с минимальными ресурсами. Эти приёмы до сих пор актуальны, когда речь идёт об оптимизации — будь то смарт-часы или спутники.

Microsoft в последние годы регулярно открывает старый код: раньше компания публиковала исходники GW-BASIC, MS-DOS 4.0 и даже самого первого Altair BASIC. Для корпорации, которая когда-то называла Linux «раковой опухолью» и «коммунизмом», это настоящая метаморфоза. А теперь — ещё и красивый жест: в Git-репозитории у исходников BASIC стоят фиктивные временные метки коммитов от июля 1978 года.

Copy Fail в Linux: локальная уязвимость позволяла получить root-доступ

Разработчики популярных Linux-дистрибутивов начали выпускать патчи, закрывающие уязвимость Copy Fail. Брешь получила идентификатор CVE-2026-31431 и позволяет локальному пользователю повысить права до root. Проблеме присвоили высокий уровень опасности — 7,8 балла по CVSS.

Уязвимость связана с логической ошибкой в криптографическом компоненте ядра Linux — authencesn / algif_aead.

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

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

Исследователи подготовили proof-of-concept: эксплойт помещается в Python-скрипт на 10 строк и может модифицировать setuid-бинарник, чтобы получить root на большинстве Linux-дистрибутивов, выпущенных с 2017 года. По словам Theori, Copy Fail напоминает Dirty Cow и Dirty Pipe, но не требует гонку состояний (race condition).

Удалённо сама по себе уязвимость не эксплуатируется, атакующему нужен локальный доступ к системе. Но её можно использовать в цепочке атак, например после компрометации через web-RCE, SSH-доступ или вредоносный CI-runner. Особенно внимательно к патчам стоит отнестись тем, кто использует многопользовательские Linux-системы, контейнеры с общим ядром и CI-среды, где запускается недоверенный код.

Theori также считает, что Copy Fail можно использовать для побега из контейнера, поскольку кеш общий для хоста. Патчи уже выпустили разработчики Debian, Ubuntu, SUSE и Red Hat.

RSS: Новости на портале Anti-Malware.ru