Inside OS/2 (1987)
OS/2: ядро и сервисы
OS/2 — многозадачная ОС для 286/386, API-ориентированная, расширяемая. Архитектура: ядро, Windows Presentation Manager, LAN Manager. Достаточно ядра для многозадачности; WPM и LAN не обязательны.
SDK
Поставляется с оптимизирующим С-компилятором, макро-ассемблером, линковщиком, отладчиком CodeView, редактором. Документация по вызовам и драйверам.
Планировщик
Превентивный, вытесняющий: по таймеру ядро перехватывает CPU и переключает задачи. Приоритеты + кванты времени; при переключении сохраняются регистры и режимы.
Динамические библиотеки
API реализован в DLL; адреса 32-битные, параметры через стек. Экономия диска и RAM: код загружается и разделяется между процессами. Ошибки в DLL исправляются без пересборки приложений. Повторный запуск той же программы переиспользует код, выделяя только данные/стек/кучу.
Режимы процессора
- Protected: многозадачность, изоляция процессов.
- Real: совместимость с MS-DOS, прямой доступ ко всей памяти.
Комментарии (48)
- OS/2 2.1 умело загружаться и многозадачно работать даже с одной 1,44 МБ дискеты без GUI, чем восхищались участники.
- Обсуждали преимущества вытесняющей многозадачности OS/2 над кооперативной Windows 3.x и особенности Pascal-calling convention, экономившей 3 байта и такты на вызов.
- Вспомнили, что ранний OS/2 создавался совместно IBM и Microsoft, но к 1990 г. Microsoft переключилась на Windows NT, а IBM осталась с OS/2.
- Отметили долгие годы работы OS/2 в терминалах MetroCard нью-йоркского метро и вспомнили SOM как более продвинутую альтернативу COM.
A Simple CPU on the Game of Life (2021)
Схема простого процессора в «Жизни» — часть 4
Строим первый настоящий компьютер: 2-конвейерную машину неограниченных регистров (URM). Она факторизует 15 за несколько минут.
Что такое URM
- Теория: бесконечное число регистров с неограниченными целыми.
- Практика: 16 регистров по 4 бита.
- Инструкции:
INC Rx
— увеличить.DEC Rx
— уменьшить.JNZ Rx, Addr
— переход, если не ноль.
Этого достаточно для полной Тьюринговой машины. Например, сложение:
ADD:
jnz R1, END
dec R1
inc R2
jmp ADD
END:
Архитектура
- Верхний левый угол: тактовый генератор.
- Рядом: регистровый файл (16×4 бит) — вся RAM.
- Справа: АЛУ, умеет только инкремент.
- Ниже: счётчик команд (PC) и ПЗУ на 128 4-битовых команд.
- Слева от ПЗУ: конвейерные триггеры для одновременного чтения и исполнения.
- Край справа: четыре семисегментных дисплея для вывода.
Особенности «Жизни»
В реальном железе минимизируют транзисторы; в «Жизни» главное — минимизировать площадь и задержку клеток.
Комментарии (11)
- Пользователи в восторге от наглядности «жизни» как модели вычислений, хотя кто-то считает её сложнее обычных логических символов.
- Conway, по мнению комментаторов, был бы в восторге.
- Вопрос о стеке сайта остался без ответа, но все хвалят дизайн.
- Пошутили о запуске DOOM и о «человеческом компьютере» из «Задачи трёх тел».