ИСТОРИЧЕСКИЙ ПРОЛОГ: КАК ОДИН ЧЕЛОВЕК ИЗМЕНИЛ МИР
ГЭРИ КИЛДАЛЛ: НЕИЗВЕСТНЫЙ ГЕНИЙ КОМПЬЮТЕРНОЙ ЭПОХИ
1973 ГОД: Гэри Килдалл, профессор военно-морской аспирантуры в МонтерееПРОБЛЕМА: Нет универсальной ОС для нового микропроцессора Intel 8080
РЕШЕНИЕ: Создает CP/M (Control Program/Monitor) за 6 месяцев
ИННОВАЦИЯ: BIOS — слой абстракции от железа (революция!)
ПЕРВЫЙ КЛИЕНТ: Intel (отвергают, считая ОС "несерьезной")
Ироничный исторический факт: IBM сначала обратилась к Килдаллу за ОС для IBM PC, но он улетел кататься на самолете. IBM пошла к Биллу Гейтсу, который купил QDOS (клон CP/M) за $75,000 и создал MS-DOS. Так родилась Microsoft.
ХРОНОЛОГИЯ ВЕЛИЧИЯ: 1974-1988
1974: CP/M 1.0 — первая коммерческая версия1977: CP/M 2.0 — стандарт де-факто для бизнес-ПК
1979: CP/M 3.0 — многопользовательская версия (MP/M)
1981: CP/M-86 — для процессоров 8086/8088
1982: Пик популярности — 300,000 установок
1983: Появление конкурентов — MS-DOS, Apple DOS
1988: Фактический конец эпохи, но не наследия
АРХИТЕКТУРА: ГЕНИАЛЬНАЯ ПРОСТОТА
ТРИ СЛОЯ АРХИТЕКТУРЫ — ФУНДАМЕНТ СОВРЕМЕННЫХ ОС
1. BIOS (Basic I/O System):• Аппаратно-зависимый слой
• 256 байт кода для каждого устройства
• Абстракция железа: дисковод = логическое устройство
2. BDOS (Basic Disk Operating System):
• Ядро системы
• Файловая система, управление памятью
• 256 системных вызовов (от 0 до 255)
3. CCP (Console Command Processor):
• Командная строка
• Интерпретатор встроенных команд
• Возможность замены на альтернативные оболочки
Гениальность архитектуры: Впервые в истории — аппаратная независимость! Одна ОС работала на 200+ разных компьютерах.
ТЕХНИЧЕСКИЕ ХАРАКТЕРИСТИКИ CP/M 2.2 (1980)
• Размер ядра: 6К (невероятная компактность!)• Минимальные требования: 16К ОЗУ, дисковод
• Процессоры: Intel 8080, Z80, 8085
• Файловая система: FAT-подобная, без подкаталогов
• Макс. размер диска: 8 МБ (огромно для 1980!)
• Макс. размер файла: 8 МБ
• Кодировка: 7-битная ASCII (позже 8-битная)
ФАЙЛОВАЯ СИСТЕМА: ЭЛЕГАНТНОСТЬ В ОГРАНИЧЕНИЯХ
СТРУКТУРА ДИСКА: КАК ХРАНИЛИ ДАННЫЕ В 1977
ФИЗИЧЕСКИЙ ФОРМАТ 8-ДЮЙМОВОЙ ДИСКЕТЫ:• Диаметр: 8 дюймов (203 мм)
• Емкость: 241 КБ (IBM 3740 формат)
• Сектора: 26×128 байт = 3328 байт/трек
• Дорожек: 77
• Скорость вращения: 360 об/мин
• Время доступа: 500 мс
ЛОГИЧЕСКАЯ СТРУКТУРА:
• Блоки по 1К (8 секторов)
• Каталог: 64 записи (фиксированный размер)
• Запись в каталоге: 32 байта
• Имя файла: 8.3 (как в DOS, но появилось раньше!)
ФОРМАТ ИМЕНИ ФАЙЛА — ПЕРВЫЙ СТАНДАРТ
СИНТАКСИС: имя.тип• Имя: 1-8 символов (A-Z, 0-9, некоторые спецсимволы)
• Тип: 0-3 символа (расширение)
ПРИМЕРЫ:
LETTER.TXT — текстовое письмо
REPORT.DOC — документ
PAYROLL.DAT — данные платежной ведомости
PROGRAM.COM — исполняемый файл
GAME.BAS — BASIC программа
АЛЬТЕРНАТИВЫ ТОГО ВРЕМЕНИ:
• Apple DOS: Без расширений, только тип файла
• TRS-DOS: 6.3 формат
• CP/M сделала 8.3 стандартом на 20 лет
АТРИБУТЫ ФАЙЛОВ И СИСТЕМНЫЕ ОБЛАСТИ
АТРИБУТЫ ФАЙЛА (в каталоге):• F1-F4: Зарезервировано пользователем
• RO: Read Only (только чтение)
• SYS: System (скрытый)
• ARC: Archived (архивный)
СИСТЕМНЫЕ ОБЛАСТИ ДИСКА:
• Трек 0, сектор 1: Загрузочный сектор
• Трек 0, сектора 2-?: Каталог
• Остальное: Данные
ИННОВАЦИЯ: Первая система с загрузочным сектором — концепция, живущая до сих пор в UEFI/BIOS.
КОМАНДНАЯ СТРОКА: ЯЗЫК ОБЩЕНИЯ С КОМПЬЮТЕРОМ
ОСНОВНЫЕ КОМАНДЫ CP/M 2.2
УПРАВЛЕНИЕ ФАЙЛАМИ:DIR — список файлов (прообраз 'ls'/'dir')
ERA — удаление файла (erase)
REN — переименование (rename)
TYPE — просмотр текстового файла
SAVE — сохранение памяти в файл
РАБОТА С ДИСКАМИ:
A: B: C: — переключение дисководов
PIP — копирование файлов (Peripheral Interchange Program)
STAT — статистика диска/файлов
FORMAT — форматирование дискеты (через утилиту)
СИСТЕМНЫЕ КОМАНДЫ:
DUMP — просмотр файла в HEX
ED — текстовый редактор
ASM — ассемблер
LOAD — загрузка HEX файла
USER — переключение пользователя (0-15)
РАБОТА С PIP — ШВЕЙЦАРСКИЙ НОЖ CP/M
PIP (копирование с преобразованиями):PIP B:=A:FILE.TXT — простое копирование
PIP CON:=FILE.TXT[T] — вывод на консоль с табуляцией
PIP LST:=FILE.TXT[P] — вывод на принтер с разбивкой на страницы
PIP NEW.TXT=FILE1.TXT,FILE2.TXT — конкатенация файлов
PIP DEST=SRC[V] — с верификацией
PIP DEST=SRC[Ghex] — с фильтром символов
ПАРАМЕТРЫ PIP (некоторые):
[Bn] — блокировка размера n
[Dn] — удаление символов после столбца n
[E] — echo на консоль при копировании
[F] — фильтр форматирования
[H] — HEX вывод
— игнорирование конца файла (EOF)
[Q] — тихий режим
— преобразование в верхний регистр
[Z] — обнуление четности (7→8 бит)
PIP был настолько мощным, что многие пользователи думали, что это отдельная ОС!
СИСТЕМНЫЕ ВЫЗОВЫ: API 1970-Х
BDOS ФУНКЦИИ — ФУНДАМЕНТ ДЛЯ ПРОГРАММИСТОВ
Код:
; Пример вызова BDOS функции в ассемблере
BDOS_FUNC equ 5 ; Адрес входа в BDOS
CONOUT equ 2 ; Функция: вывод символа на консоль
ld c, CONOUT ; Номер функции в регистре C
ld e, 'A' ; Символ для вывода в регистре E
call BDOS_FUNC ; Вызов BDOS
ОСНОВНЫЕ ГРУППЫ ФУНКЦИЙ (из 256):
Группа 0-9: Консольный ввод/вывод
0 — сброс системы (теоретически)
1 — ввод символа с консоли
2 — вывод символа на консоль
3 — ввод с читающего устройства
4 — вывод на punching устройство
5 — вывод на listing устройство
6 — прямой консольный ввод/вывод
Группа 10-19: Дисковые операции
10 — сброс дисковых систем
11 — выбор диска
12 — поиск первого вхождения
13 — поиск следующего
14 — удаление файла
15 — открытие файла
16 — закрытие файла
17 — поиск первого
18 — поиск следующего
19 — удаление файла
Группа 20-29: Работа с файлами
20 — чтение секвенциальное
21 — запись секвенциальная
22 — создание файла
23 — переименование файла
24 — возврат логического диска
25 — чтение случайное
26 — запись случайная
27 — получение размера файла
28 — установка DMA адреса
29 — получение адреса DPB
Группа 30-39: Системные функции
30 — установка/чтение атрибутов файла
31 — получение адреса дискового параметра
32 — установка/чтение пользовательского кода
33 — чтение случайное с заполнением
34 — получение свободного пространства
35 — цепочка программ (!!)
36 — установка DMA адреса для BDOS
37 — получение версии BDOS
38 — сброс дискового драйвера
39 — флаги записи
ПРОГРАММНАЯ МОДЕЛЬ CP/M: КАК ПИСАЛИ ПРОГРАММЫ
СТРУКТУРА ПРОГРАММЫ .COM:• Максимальный размер: 64К (ограничение 8080)
• Начинается с адреса 0x100 (256 байт для PSP)
• PSP (Program Segment Prefix):
- 256 байт служебной информации
- Командная строка (tail)
- Переменные окружения
- Вектора возврата в CCP
ПРИМЕР ПРОСТОЙ ПРОГРАММЫ НА ASM:
Assembler Z80:
org 0100h ; Начинаем с адреса 100h
ld de, message ; Адрес сообщения
ld c, 9 ; Функция BDOS: вывод строки
call 5 ; Вызов BDOS
ret ; Возврат в CCP
message: db 'Hello, CP/M!$'
ПРИКЛАДНОЕ ПО: ЦАРСТВО БИЗНЕС-ПРОГРАММ
WORDSTAR: САМЫЙ ИЗВЕСТНЫЙ ТЕКСТОВЫЙ ПРОЦЕССОР
WORDSTAR (1978, MicroPro International):• Первый WYSIWYG текстовый процессор (почти)
• Горячие клавиши: Ctrl+буква (стандарт де-факто)
• Возможности: форматирование, перенос слов, проверка орфографии
• Цена: $495 (огромные деньги в 1978)
• Влияние: Microsoft Word скопировал многие функции
ИННОВАЦИИ WORDSTAR:
• Меню внизу экрана (впервые!)
• Комбинации типа Ctrl+KD (сохранить и выйти)
• Разметка документа управляющими символами
• Макросы и шаблоны
dBASE II: ПЕРВАЯ БАЗА ДАННЫХ ДЛЯ ПК
DBASE II (1979, Ashton-Tate):• Реляционная СУБД для CP/M
• Язык запросов (прото-SQL)
• Форматы данных: .DBF (жив до сих пор!)
• Использование: учет, инвентаризация, зарплата
• Цена: $700
ВЛИЯНИЕ НА ИНДУСТРИЮ:
• Стандарт для баз данных 1980-х
• Формат .DBF используется до сих пор
• Влияние на Paradox, FoxPro, Access
ДРУГОЕ ЗНАЧИМОЕ ПО ДЛЯ CP/M
VISICALC (1979):• Первая электронная таблица
• Революция в бизнес-аналитике
• Цена: $100 (дешевле конкурентов)
SUPERCALC (1980):
• Конкурент VisiCalc
• Лучшая графика и функции
MICROSOFT BASIC-80:
• Билл Гейтс и Пол Аллен портировали BASIC
• Стал стандартом для программирования
AUTOCAD 1.0 (1982):
• Первая CAD система для ПК
• Начало эры автоматизированного проектирования
PEACH TEXT:
• Конкурент WordStar
• Лучшая работа с таблицами
АППАРАТНАЯ ПЛАТФОРМА: НА ЧЕМ ЗАПУСКАЛАСЬ CP/M
ИКОНИЧЕСКИЕ КОМПЬЮТЕРЫ С CP/M
1. ALTAIR 8800 (1975):• Первый микрокомпьютер
• CP/M на перфоленте, затем на дисках
• Любимец энтузиастов
2. OSBORNE 1 (1981):
• Первый портативный компьютер (11 кг!)
• Встроенный CP/M 2.2
• 5-дюймовый монитор, 64К ОЗУ
• Цена: $1795 (с ПО на $1500)
3. KAYPRO II (1982):
• Самый популярный CP/M компьютер
• 9-дюймовый зеленый монитор
• 2 дисковода 5.25"
• В комплекте: WordStar, dBASE II, SuperCalc
• Цена: $1795 (лучшее предложение)
4. TRS-80 MODEL II (1979):
• Бизнес-версия TRS-80
• 64К ОЗУ, 8-дюймовые дисководы
• Цена: $3450
5. COMMODORE 128 (1985):
• Последний массовый компьютер с CP/M
• CP/M на картридже (эмуляция Z80)
• Цена: $300
СОВЕТСКИЕ КЛОНЫ С CP/M
ЭЛЕКТРОНИКА-85 (1986):• Советский аналог DEC Professional 350
• CP/M-80 и CP/M-86
• Использовался в НИИ и КБ
ИСКРА-1030 (1989):
• Клон IBM PC/XT
• Поддержка CP/M-86
• Распространен в школах
СПЕЦИАЛИСТ (1987):
• Советский клон Радио-86РК
• CP/M портирована энтузиастами
• Малораспространенная
СЕТИ И МНОГОПОЛЬЗОВАТЕЛЬСКИЕ СИСТЕМЫ
MP/M: МНОГОПОЛЬЗОВАТЕЛЬСКАЯ CP/M
MP/M (Multi-Programming Monitor, 1979):• Многопользовательская версия CP/M
• Поддержка до 16 терминалов
• Приоритетная многозадачность
• Использование: офисы, университеты
ТЕХНИЧЕСКИЕ ОСОБЕННОСТИ:
• Разделение времени между пользователями
• Защита памяти между процессами
• Общие файлы и принтеры
• Системные вызовы для синхронизации
ИСПОЛЬЗОВАНИЕ:
• Офисы с несколькими терминалами
• Учебные классы в университетах
• Небольшие предприятия
СЕТЕВЫЕ ВЕРСИИ И СОВМЕСТИМЫЕ СИСТЕМЫ
CP/NET (1980):• Сетевая версия CP/M
• Архитектура клиент-сервер
• Общие ресурсы: диски, принтеры
CONCURRENT CP/M (1983):
• Многозадачная для одного пользователя
• Несколько программ одновременно
• Оконная система (примитивная)
TURBODOS (1983):
• Ускоренная версия CP/M
• Лучшая работа с дисками
• Популярна в СССР
СРАВНЕНИЕ С КОНКУРЕНТАМИ: ПОЧЕМУ CP/M ПОБЕДИЛА
ТАБЛИЦА ОС ДЛЯ 8-БИТНЫХ КОМПЬЮТЕРОВ (1977-1983)
CP/M 2.2 (Digital Research, 1979):• Аппаратная независимость: Да (BIOS)
• Файловая система: 8.3, каталог 64 файла
• ПО: 20,000+ программ
• Компьютеры: 200+ моделей
• Цена: $70-200
• Рынок: 50% бизнес-ПК
Apple DOS 3.3 (Apple, 1980):
• Аппаратная независимость: Нет (только Apple II)
• Файловая система: Своя, без расширений
• ПО: 10,000+ программ
• Компьютеры: 1 модель (Apple II)
• Цена: Включена
• Рынок: 25% школ и домов
TRS-DOS (Radio Shack, 1977):
• Аппаратная независимость: Нет (только TRS-80)
• Файловая система: 6.3
• ПО: 5,000+ программ
• Компьютеры: 3-4 модели
• Цена: Включена
• Рынок: 15% любителей
UCSD p-System (1978):
• Аппаратная независимость: Да (p-код)
• Файловая система: Своя
• ПО: 1,000+ программ
• Компьютеры: 50+ моделей
• Цена: $500-1000
• Рынок: 5% университеты
ПРИЧИНЫ УСПЕХА CP/M
1. АППАРАТНАЯ НЕЗАВИСИМОСТЬ: Одна ОС для любого железа с 8080/Z802. ПРОСТОТА: Маленькое ядро, понятная архитектура
3. ДОКУМЕНТАЦИЯ: Полные руководства для пользователей и разработчиков
4. ЭКОСИСТЕМА: Тысячи программ, особенно бизнес-ориентированных
5. ЛИЦЕНЗИРОВАНИЕ: Недорогие лицензии для производителей ПК
6. СТАНДАРТИЗАЦИЯ: 8.3 имена, COM формат, BDOS API[/CODE]
ЗАКАТ ЭПОХИ: КАК MS-DOS ПОБЕДИЛА CP/M
РОКОВЫЕ ОШИБКИ DIGITAL RESEARCH
1. ОТКАЗ ОТ IBM (1980):• IBM пришла за CP/M для IBM PC
• Гэри Килдалл улетел кататься на самолете
• Жена и партнер отказались подписать NDA
• IBM ушла к Биллу Гейтсу
2. ВЫСОКАЯ ЦЕНА CP/M-86:
• IBM PC продавался с тремя ОС:
- PC DOS (Microsoft): $40
- CP/M-86 (Digital Research): $240
- UCSD p-System: $350
• Пользователи выбрали дешевый вариант
3. МЕДЛЕННОЕ РЕАГИРОВАНИЕ:
• Microsoft быстро улучшала MS-DOS
• Digital Research медлила с обновлениями
• CP/M-86 отставала по функциям
4. ПРОБЛЕМЫ С СОВМЕСТИМОСТЬЮ:
• MS-DOS лучше работала с IBM PC
• CP/M-86 требовала настройки
• Программы под MS-DOS было проще писать
ПЕРЕХОДНЫЙ ПЕРИОД: 1983-1988
1983: MS-DOS 2.0 — поддержка подкаталогов, лучше CP/M1984: Macintosh — графический интерфейс, будущее
1985: Windows 1.0 — попытка GUI для DOS
1986: CP/M еще жива, но доля рынка падает
1987: Последние новые компьютеры с CP/M
1988: Digital Research пытается вернуться с DR-DOS
1991: Novell покупает Digital Research за $80M
1996: Последняя версия DR-DOS (Caldera)
НАСЛЕДИЕ: ЧТО CP/M ДАЛА СОВРЕМЕННЫМ ОС
КОНЦЕПЦИИ, ПЕРЕШЕДШИЕ В СОВРЕМЕННЫЕ СИСТЕМЫ
1. BIOS/UEFI: Прямой потомок CP/M BIOS2. ФОРМАТ 8.3: Использовался в DOS до Windows 95
3. COM ФОРМАТ: Упрощенный исполняемый файл
4. СИСТЕМНЫЕ ВЫЗОВЫ: API для программ
5. КОМАНДНАЯ СТРОКА: DIR, COPY, TYPE живут в cmd.exe
6. ПУТИ К ФАЙЛАМ: A:FILE.TXT → C:\FILE.TXT
7. АТРИБУТЫ ФАЙЛОВ: Read Only, System, Hidden
8. ЗАГРУЗОЧНЫЙ СЕКТОР: MBR → GPT
ПРЯМОЕ НАСЛЕДИЕ В MS-DOS:
• Функции INT 21h = BDOS вызовы
• Структура COM файлов
• Формат FAT (эволюция CP/M файловой системы)
• Команды DIR, COPY, TYPE
CP/M В XXI ВЕКЕ: НОСТАЛЬГИЯ И ЭМУЛЯЦИЯ
СОВРЕМЕННЫЕ ПРОЕКТЫ:1. Z80SIM — эмулятор CP/M для Windows/Linux
2. RunCPM — кроссплатформенный эмулятор
3. CP/M на Arduino — запуск на микроконтроллерах
4. SIMH — эмуляция исторических систем
СОХРАНЕНИЕ НАСЛЕДИЯ:
• Интернет-архивы CP/M Software
• Музей компьютерной истории (Маунтин-Вью)
• Личные коллекции энтузиастов
• GitHub репозитории с исходниками
ОБРАЗОВАТЕЛЬНАЯ ЦЕННОСТЬ:
• Изучение истории ОС
• Основы работы с командной строкой
• Понимание аппаратной абстракции
• Программирование в ограничениях
CP/M СЕГОДНЯ: КАК ПОПРОБОВАТЬ ИСТОРИЮ
ЭМУЛЯЦИЯ CP/M НА СОВРЕМЕННЫХ СИСТЕМАХ
1. Z80SIM + CP/M 2.2 (простейший способ):• Скачать эмулятор и образ дискеты
• Запустить: z80sim cpm22.dsk
• Работает на Windows, Linux, macOS
2. RunCPM (самый удобный):
• Автонастройка, автоматическая загрузка
• Поддержка разных версий CP/M
• Встроенные утилиты
3. В БРАУЗЕРЕ:
• Эмулятор JavaScript: github.com/lkesteloot/cpm
• Работает без установки
• Ограниченные возможности
4. НА ОРИГИНАЛЬНОМ ЖЕЛЕЗЕ:
• Компьютеры Kaypro, Osborne на eBay
• Советские Электроника-85, Искра-1030
• Коллекционные экземпляры
ЧТО МОЖНО СДЕЛАТЬ В CP/M СЕГОДНЯ
1. ИЗУЧИТЬ ИСТОРИЮ:• Поработать с WordStar, dBASE II
• Увидеть истоки современных интерфейсов
• Понять ограничения 1970-х
2. ПРОГРАММИРОВАНИЕ:
• ASM для 8080/Z80 — основы микропроцессоров
• BASIC-80 — истоки Microsoft BASIC
• C (BDS C) — ранние компиляторы C
3. РЕТРО-РАЗВЛЕЧЕНИЯ:
• Игры для CP/M (Adventure, Zork)
• Графика в символах (псевдографика)
• Музыка через beeper (ограниченно)
4. ЭКСПЕРИМЕНТЫ:
• Порты современных программ
• Создание новых утилит
• Исследование архитектуры
ЗАКЛЮЧЕНИЕ: УРОКИ CP/M ДЛЯ СОВРЕМЕННОСТИ
ТЕХНИЧЕСКИЕ УРОКИ, АКТУАЛЬНЫЕ ДО СИХ ПОР
1. АППАРАТНАЯ АБСТРАКЦИЯ — ключ к переносимости2. ПРОСТОТА ЯДРА — залог надежности
3. СТАНДАРТИЗАЦИЯ API — основа экосистемы
4. ОБРАТНАЯ СОВМЕСТИМОСТЬ — уважение к пользователям
5. ДОКУМЕНТАЦИЯ — необходимость, а не роскошь
ПАРАДОКС CP/M:
• Самая успешная ОС, о которой мало кто помнит
• Основа современной IT-индустрии, забытая историей
• Технологический прорыв, проигравший маркетингу
ПОСЛЕДНЕЕ ИНТЕРВЬЮ ГЭРИ КИЛДАЛЛА (1994)
"CP/M была не просто операционной системой. Это была идея — идея о том, что программное обеспечение должно быть независимо от железа. Что программист должен писать код, который работает везде. Что пользователь должен иметь выбор компьютера, не теряя свои данные и программы. Microsoft выиграла битву за IBM PC, но мы выиграли войну за идеи. Посмотрите на Linux, на Docker, на виртуальные машины — все это потомки той простой идеи: отделите программное обеспечение от аппаратного обеспечения. CP/M умерла как продукт, но ее дух жив в каждой современной операционной системе."Гэри Килдалл погиб в 1994 году при загадочных обстоятельствах (официально — травма головы после драки в баре).
ИСТОРИЧЕСКАЯ ОЦЕНКА:
СТАТУС: ОСНОВОПОЛАГАЮЩАЯ ОПЕРАЦИОННАЯ СИСТЕМА СОВРЕМЕННОЙ ИНФОРМАТИКИ
ДОСТИЖЕНИЯ:
Первая массовая ОС для микрокомпьютеров
Архитектура с аппаратной абстракцией (BIOS)
Стандарт 8.3 имен файлов
Богатейшая экосистема ПО (20,000+ программ)
Основа для MS-DOS и всей PC-индустрии
НЕДОСТАТКИ:
Нет подкаталогов (только в CP/M 3.0)
Ограничения памяти (64К)
Плохая работа с графикой
Проиграла маркетинговую войну Microsoft
ГДЕ УЗНАТЬ БОЛЕЕ:
Музей компьютерной истории: computerhistory.org
Архив CP/M: cpmarchives.com
Эмуляторы: github.com/jhallen/cpm
Документальный фильм: "CP/M: The Lost Operating System"
— Эндрю Таненбаум, автор Minix и учебников по ОС