Apple DOS

Сімейство операційних систем

Apple DOS — сімейство операційних систем для мікрокомп'ютерів серії Apple II з 1978 до 1983 року. Також відома як DOS 3.x. У Apple DOS було три основні версії: DOS 3.1, DOS 3.2 і DOS 3.3, за кожною з яких слідували релізи з виправленням багів, але тільки у випадку DOS 3.2 цей багфікс-реліз отримав власний номер версії DOS 3.2.1.[2]

Apple DOS
Apple computer виконує програму Hello world!
Розробник Apple Computer
Написано на Assembly[1]
Родина ОС Apple DOS
Робочий стан Discontinued
Вихідна модель Closed source
Початковий випуск 1978; 46 років тому (1978)
Останній випуск 3.3 / 1980 (last released bug fix in 1983)
Тип ядра Монолітне
Ліцензія Apple Software License Agreement
Apple DOS — Інтерфейс

Найбільш відома і використовувана версія — DOS 3.3 релізу 1980 і 1983 років.[3]

Касета з Apple DOS

Особливості ред.

Важливою на той час особливістю Apple DOS була підтримка імен файлів, здатних містити до 30 символів (хоча у випадку використання в іменах файлів символів керування могли виникати проблеми з використанням таких імен в командах). Також цікавою особливістю була сувора типізація файлів: кожен файл міг мати один з типів A (Applesoft BASIC), B (двійковий), I (Integer BASIC), T (текстовий), і, залежно від типу, до файлу могли бути застосовані різні операції. Ще кілька типів (R, S, «додатковий A», «додатковий B») було зарезервовано для подальших розширень. Файли різних типів мали різну внутрішню організацію; змінити тип поточного файлу було неможливо.

Штатно Apple DOS була розрахована на роботу тільки з пристроєм Disk II[en], тобто з 5-дюймовими односторонніми дискетами ємністю 140 Кб. Оскільки фізично дискета мала дві сторони, а дисковод мав одну головку, дискету можна було вийняти з дисководу і вставити назад іншою стороною. Таким чином, кожна фізична дискета логічно являла собою два окремих 140-кілобайтних диска. Диски розбивалися на 35 доріжок по 16 секторів розміром 256 байт (13 секторів у версії 3.1 і 3.2, використовували більш примітивний метод кодування бітів на диску). Диск мав один каталог, який, разом із таблицею вільного простору, розміщувався на зарезервованій для цього 17-й доріжці (посередині). У трьох перших доріжках диска розміщувалася сама Apple DOS (на завантажувальних дискетах), в тому числі найперший сектор був завантажувальним сектором. В каталозі для кожного файлу зберігалися його ім'я, тип, прапорець захисту від запису, номер першого сектора і розмір файлу у секторах. В першому секторі файлу перебував загальний список займаних файлом секторів, цей список при необхідності сам міг продовжуватися в інших секторах. Екстенти не використовувалися, весь дисковий простір розподілявся секторами.

Одночасно могло бути встановлено кілька дисків в різних пристроях Disk II. Ці пристрої з дисками ідентифікувалися за номерами роз'ємів, до яких вони підключалися.

Кожен диск в Apple DOS мав так званий номер тома, однобайтне число, за замовчуванням — 254. У командах роботи з файлами можна було вказувати спеціальний параметр для перевірки, що в дисководі встановлено диск з зазначеним номером. Якщо номер не збігався, команда завершувалася з помилкою. Але на практиці ідея з номерами томів не отримала розвитку, практично всі диски мали номер 254. В пізніші роки існували рішення з використання номера тому при підключенні до Apple II жорсткого диска, який у такому випадку логічно виглядав як набір окремих дискет. Але з жорстким диском було набагато зручніше працювати системі, що прийшла на зміну Apple DOS, — ProDOS, ранні версії якої були сумісні з усіма моделями Apple II.

Через те, що у Apple II системний годинник був відсутній, час і дата в Apple DOS ніяк не відстежувалися. Робота з часом з'явилася тільки в ProDOS.

Команди Apple DOS були реалізовані як розширення набору команд інтерпретатора мови Бейсик, зашитого у постійній пам'яті Apple II. Власного командного процесора або іншого інтерфейсу користувача Apple DOS не мала.

Вся система Apple DOS повністю завантажувалася в оперативну пам'ять і постійно перебувала в ній під час своєї роботи. Через це системний диск був потрібен тільки для початкового завантаження. Навіть для створення нового системного диска (командою INIT) було достатньо тільки завантаженого в оперативну пам'ять коду Apple DOS, диск з початковою копією не вимагався.

Підпрограма RWTS ред.

Одним з найбільш об'ємних і складних модулів Apple DOS була підпрограма RWTS (Read/Write Track and Sector), що надавала інтерфейс для читання сектора і форматування доріжки для дисковода Disk II. Складність RWTS була викликана тим, що Disk II мав інтерфейс дуже низького рівня, так що навіть кодування і декодування окремих бітів і синхронізацію даних на доріжці диска треба було виконувати програмно.

Клони Apple DOS ред.

Існувала величезна кількість клонів Apple DOS (в основному версії 3.3), отриманих шляхом зворотної розробки і внесення тих чи інших виправлень, від дуже незначних (просто заміни назви системи) до вельми нетривіальних (прискорення роботи з диском, реалізації додаткових команд, додаткових типів файлів і т. д.). Багато клонів Apple DOS при роботі з диском виводили в правому нижньому кутку екрану поточні номери доріжки і сектори диска, щоб забезпечити користувачеві контроль у разі збоїв (дискети мали невисоку надійність). Одним з найбільш розвинених клонів була система Eagle Software GraphExt 2.x і її русифікована і розширена радянської фірмою Space Soft версія Eagle & Space Soft QDOS 2.A, яка, зокрема, підтримувала роботу зі стиснутими графічними файлами (тип G, він же «додатковий B», команди GSAVE, GLOAD) і з файлами переміщуваного об'єктного коду (тип R, команда RLOAD). Також у цій версії були команди для введення з консолі і виводу на консоль вміст текстових файлів (MAKE, TYPE), відсутні (що дивно) в базовій Apple DOS.[4]

Команди Apple DOS ред.

  • CATALOG — видача каталогу диска;
  • DELETE, LOCK, RENAME, UNLOCK, VERIFY — управління файлами, тільки ці команди могли працювати з файлами довільного типу;
  • INIT — запис копії Apple DOS з пам'яті на диск і установка файлу автозапуску (в оригінальній Apple DOS форматування диска; клони зазвичай не містили вбудованих засобів форматування, це робилося спеціальними програмами);
  • APPEND, CLOSE, OPEN POSITION, READ, WRITE — робота з текстовими файлами;
  • EXEC — виконання команд з текстового файлу;
  • LOAD, RUN, SAVE — завантаження, виконання і збереження файлів на Бейсіку;
  • BLOAD, BRUN, BSAVE — завантаження, виконання і збереження двійкових файлів;
  • FP, INT — перемикання між інтерпретаторами Applesoft BASIC і Integer BASIC;
  • IN#, PR# — ініціалізація зовнішніх пристроїв введення і виведення (переопределяли такі ж команди інтерпретатора Бейсика);
  • MON, NOMON — включення і виключення трасування команд Apple DOS;
  • MAXFILES — встановлення кількості одночасно відкритих файлів;
  • CHAIN, GLOAD, GSAVE, DIR, TYPE, MAKE, MODE, SOUND, BOOT, RLOAD, HALT (в QDOS 2.A замість HALT була реалізована команда KEYS) — додаткові команди в сімействі клонів Eagle Software GraphExt, відсутні в оригінальній Apple DOS.

Примітки ред.

  1. Apple II DOS — Source Code (PDF). Архів оригіналу (PDF) за 4 квітня 2016. Процитовано 6 вересня 2016.
  2. Історія Apple DOS (PDF). Архів оригіналу (PDF) за 4 квітня 2016.
  3. 14-DOS (амер.). 28 червня 2010. Архів оригіналу за 10 липня 2010. Процитовано 8 вересня 2016.
  4. The untold story behind Apple's $13,000 operating system. Архів оригіналу за 16 грудня 2013. Процитовано 8 вересня 2016.

Посилання ред.