середа, 21 серпня 2013 р.

Аналіз CHKDSK.COM з PC-DOS 1.00

CHKDSK. Скільки в цьому слові! ;-) (Для тих, хто ще застав відповідну епоху). Скільки надій на неї покладали, скільки розчарувань, чи навпаки -- несподіваних порятунків. Програма перевірки та виправлення помилок на дисках.

субота, 27 липня 2013 р.

Аналіз SYS.COM з попередника, 86-DOS

Для повноти повернемося ще на крок назад. "Дистрибутив" 86-DOS 1.0 від 28 квітня 1981 року теж доступний в Інтернет. Він містить джерельні тексти власне операційної системи,  SYS.COM присутній лише в двійковому коді. Тому довелося знову взятися за дизасемблер. :-)

четвер, 13 червня 2013 р.

Аналіз SYS.COM версії 1.81 з Compaq-DOS 2.12

Як вже згадувалося раніше, знайти SYS.COM з оригінальної MS-DOS 2.11 не вдалося. Однак, у файлі "Microsoft DOS 2.12 [Compaq OEM] (5.25).7z" трапився SYS.COM, з стрічкою "Vers 1.81" --- попередньою до тієї, що у оригінальному SYS.COM з PC-DOS 2.10 (стрічка "Vers 1.82"). Подумав, що вона може бути цікавою, як для аналізу розвитку конкретної програм так і способів програмування від Microsoft взагалі. Сподівання виправдалися. :-)

Детально її розбирати не буду --- вона дуже схожа на версію 1.82. Взагалі, природно було б починати саме з цієї, 1.81, потім переходити до новішої. Однак, з одного боку, побачив я її значно пізніше, з іншого, вона явно містить модифікації від Compaq, тобто є менш "автентичною", чи що. Тому зупинюся лише на важливих відмінностях.

середа, 12 червня 2013 р.

Спроба аналізу SYS.COM з DOS 2.11

Версія 2.11 була гібридом IBM-івської 2.10 (2.1) та Мікрософтівської 2.01, з її підтримкою інтернаціоналізації та всілякими багфіксами. Випущена вона Microsoft і призначалася для OEM, відмінних від IBM. Тому присутня в дуже багатьох варіантах. 

Скачав я "Microsoft DOS 2.11 (5.25).7z", дістав SYS.COM, почав колупатися. І дуже здивувався --- код навіть не схожий на попередні варіанти. Нічим. Ні стилем, ні підходом, ні будовою.  Перевірка показала, що цей архів, насправді, лише копія іншого, "Microsoft DOS 2.11 [AT&T OEM] (5.25).7z". Точніше, бінарно і архіви і образи в них --- різні. Але файли у них -- однакові. Тобто, якщо я чогось жорстоко не плутаю, "vanilla" MS-DOS 2.11 мені знайти не вдалося.Якщо хтось має -- діліться!

вівторок, 11 червня 2013 р.

Аналіз SYS.COM з PC-DOS 2.10




В листопаді того ж, 1983 року, IBM випустила DOS 2.10. Нічого особливо нового в ній не було --- поточний апдейт, але подивимося детальніше до нутрощів (хоч і на тривіальному прикладі). 

понеділок, 10 червня 2013 р.

Аналіз SYS.COM з PC-DOS 2.00

Після 1.10, в березні 1983, "наступила" версія 2.00. Фактично, нова операційна система. З'явилася підтримка директорій, засоби роботи з файлами у стилі UNIX (завдяки чому зразу застаріли FCB), підтримка жорстких дисків та нових форматів дискет. З'явилася можливість завантажувати драйвери пристроїв, резидентні програми, купа нових внутрішніх і декілька --- зовнішніх, команд. Крім набору засобів роботи з файлами та резидентами, з'явилися системні виклики для керування динамічною пам'яттю.

Подивимося як це все вплинуло на нашу жертву.

четвер, 9 травня 2013 р.

Аналіз SYS.COM з PC-DOS 1.10

Рухаємося далі. Наступив черговий, 1982 рік. В травні вийшла наступна версія PC-DOS, 1.10. Революційною вона не була. Виправлено помилки, додано підтримку двосторонніх дискет (320кб). Для файлів почав зберігатися і час зміни, не тільки дата. З'явився ще один системний виклик, "set/reset verify switch", AH=2Eh/INT 21h (не траплялося мені в документації згадок, що він тільки з 1.10, але в коді їх IBMDOS.COM це видно однозначно). TIME i DATE стали внутрішніми командами, тепер їх виконанням займався COMMAND.COM. Всілякі дрібні зміни там і сям. В Microsoft ця версія мала номер 1.24 (наступна, 1.25, постачалася іншим ОЕМ). (Детальніше про номери версій див. тут, шукайте за стрічкою "1.24").

Подивимося, що змінилося в SYS.COM з виходом цієї версії. Повторюватися не буду, загальну інформацію див. попередній пост ("Аналіз SYS.COM з PC-DOS 1.00") і посилання там.