Home

Advertisement

Моделист-деконструктор - [entries|archive|friends|userinfo]
Моделист-деконструктор

[ userinfo | livejournal userinfo ]
[ archive | journal archive ]

[Jun. 29th, 2009|12:37 am]
Previous Entry Add to Memories Tell a Friend Next Entry
[Current Music |Marilyn Manson - Coma white]

Обещанный пост про DOS и все такое. Из архивов. Наверное нужно переписать, но сил нету.

Скоро я в ЖЖ буду писать так, будто моей репутации падать ниже уже некуда.
"Ниже пола упасть нельзя".
Кстати, недавно у меня было всего пять смертных грехов, но потом я с трудом заимел шестой.
Остался седьмой, самый трудный для меня.

Читаю RU.DOS, потому что это помогает вспоминать мне свою босоногую юность.
Впрочем, можно и тут читать:
http://groups.google.com/group/fido7.ru.dos
Но в фидо больше босоногой юности.
А у Ангрихренушки дзен и отсутствие всякого редактора почты поэтому у него хоть и всё крутится, но он не знает что именно у него крутится.
Интересно тут динамику посмотреть:
http://groups.google.com/group/fido7.ru.dos/about
Пик интереса к эхе приходится на 2003-й год, а не в 1999 или 2000, когда фидо пошло на спад.
DOS на моей памяти это самая дурацкая из возможных операционная система, клон CP/M. У CP/M было только одно преимущество - она занимала мало места. DOS разрабатывалась для фантастически дурацкого процессора 8086, который был каким-то клоном 8080, сознательно, чтобы программистам проще было портировать для нового проца то что они наваяли для 8080. Кажется, IBM сначали сделали компьютер IBM PC а только потом начали искать того кто бы написал для него ОС.
Они позвонили тому парню, что наваял CP/M, а он где-то в отпуске был. Так что подвернулся Билли Гейтс.
Просто посмотрите на названия регистров и вы, быть может, вспомните компьютер ZX Spectrum.
Так же и DOS, имеет в себе некоторые рудименты от CP/M, например при загрузке COM-файла вы грузитесь на 0x100 байт вперед, потому что до этого - блок PSP.
http://en.wikipedia.org/wiki/Program_Segment_Prefix
В PSP хранится пара FCB блоков, если вам это что-то говорит:
http://en.wikipedia.org/wiki/File_control_block
Никто не относился серьезно ни к процам линейки x86, ни к DOS.
Достаточно проникнутся идеей сегментов в памяти в "реальном режиме" процов x86 чтобы заломило голову.
Но рынок уже забит этими машинами, так что приходится делать DOS-экстендеры - фантастический костыль представляющий собой скорее всего еще одну операционную систему, предлагающую вам API с человеческим лицом, как-то выделить кусок памяти размером больше 64 килобайта. Проблема этой новой ОС в том, что другим своим концом она торчит к DOS, с которого вы загрузились, например для того чтобы работал загруженный до нее драйвер мыши.
Здравствуй AutoCAD, 3D Stduio и игра Quake.
Гемор с XMS-памятью, EMS-памятью, и еще х.з. чем гармонично дополняет картину. А я, между прочим, до сих пор могу сказать чем они отличаются.
Но те кто не знал, плясали с бубном редактируя AUTOEXEC.BAT и CONFIG.SYS. Кстати, в RU.DOS, бывает, до сих пор пляшут.
А еще HMA-память, это кусочек размером 64 килобайта минус кажется 16 байт от тех симок не взирая на то сколько вы их засунули в комп.
А еще бытовала возможность отожрать сегмент по адресу 0xA000 из видеокарты пока вы работаете в текстовом режиме.
А драйвер HIMEM.SYS использовал недокументированную командуLOADALL, которая грузила что вы ей скажете в кеш элементов таблицы GDT, поэтому через этот глюк (фичей назвать это язык не поворачивается) было возможно в "реальном режиме" адресовать память выше мегабайта.
А вы помните FAT12, FAT16 и наконец FAT32?
Windows 95 являло собой еще одну надстройку над DOS. Она была идиотской by design, потому что это была смесь DOS, win32s, драйверов VxD и еще не ясно чего. Она не могла не глючить.
И хвала Билли Гейтсу что он ввел win32 api, дабы пока они там ваяют новую Windows NT как новую OS/2, народ пусть пишет под Windows 95 используя win32 api а потом это все будет (дай БГ) работать и в NT.
А пока что Intel/AMD добавляют оптимизацию, кеши, конвееры и исполнение кода по обоим сторонам условного перехода.
Развитие x86 остановилось точно на 80386. Дальше было делать там нечего. Режиссер обычно редко соглашается снимать продолжение к своему фильму потому что "он все сказал".
В 80386 "всё сказали". Дальше были только кеши, конвееры и out of order execution, отражающиеся только на скорости работы проца.
Процессор до этого - 80286 представляет собой очень точное соответствие с ощущением что вы застряли в лифте между этажами. Это уже не 8086, но попытка сделать проц "как у взрослых пацанов", но абсолютно дурацкая.
Во всем этом есть ирония судьбы - самые быстрые процы нашего времени тянутся с проца 8080 который, кажется, планировали использовать в терминалах?
Начинается 64-bit era. Процы уже нужно делать 64-битными, потому что памяти мало и её как-то надо адресовать, но при этом мало кому нужны 64-битные регистры.
Примеров очень мало. В NT я могу сходу вспомнить только функции которые отдают размер файла или текущее положение указателя в файле или функцию которая отдает сколько наносекунд прошло начиная с момента включения компьютера.
Это проблема больших чисел, которые, как неуловимый Джо, никому не нужны.
Изучать DOS, наверное, нужно, как немцам изучать историю холокоста.
Это ярчайший пример как серия "неверных" движений делает неизвестно что, как в анекдоте:

Однажды Петя принёс из лесу ёжика. Ёжик быстро освоился в доме, фыркал по ночам под кроватью. Весной родители Пети поехали надачу и взяли ёжика с собой. Ёжик приносил пользу огороду: он пожрал всех медведок. К оснени ёжик совсем окреп, шёрстка стала блестящая и жёсткая. Иголки выросли длинные-предлинные, коготки на лапках заострились. Ещё у ёжика выросли большие ветвистые рога и выразительные фасетчатые глаза. Первого сентября ёжик взмахнул крыльями и улетел. И тогда все поняли, что Петя принёс из леса не ёжика, а какую-то хуйню.

Кое-где учат не только DOS но и ассемблер для 8086, 16-битный. Одна знакомая из универа не скажу какого звонит и спрашивает, ты помнишь ассемблер для DOS для 8086?
Конечно помню, такое трудно забыть. И сажусь решать какие-то задачки для какого-то студента.
Команда AAA и представление чисел в виде BCD-packed и последующие слезы умиления, слезы умиления, слезы умиления, я как эмо-кодер залил слезами клавиатуру.
Это очень интересный момент - я никогда не видел применение BCD-packed чисел вне древних учебников по ассемблеру. А перелопатил я софта немало.
Наверное, как студентов-медиков первым делом ведут в морг, этих студентов заставляют ваять что-то на асме под DOS. Но медиков после этого начинают учить тому что им нужно, а в нашем случае все этим и заканчивается.

BASIC это восхитительно. Это как раз тот инструмент который может помочь вам разочароваться в программировании и ошибочно решить что в этом предмете всё "настолько тоскливо". Кто-то предлагал запретить его на государственном уровне а учебники спалить как во время инквизиции. Я целиком поддерживаю.
Если я правильно понимаю, это какой-то неудачный упрощенный клон FORTRAN-а.

После всего этого, когда начинаешь читать мануалы по процам вроде Itanium или когда пытаешься осилить Haskell, ощущение как будто сидел всю жизнь в пещере и случайно вылез на яркое солнце. Это нелегко выдержать.

Так почему это происходит? С резким развитием маломощных персональных компьютеров, у этого человечества был шанс начать писать историю с чистого листа. Но произошло все хуже, может быть потому что серьезные люди не обращали на PC внимания, и этим занимались хиппи с random-образованием но зато с энтузиазмом. Энтузиазм это хорошо, но этого мало. При его помощи можно создать вот такой девайс - очень красивый но абсолютно бесполезный, способный только предоставить доказательство настырности создателя.

Всё, на сегодня пар выпустил.
LinkReply

Comments:
[User Picture]From: [info]lstar
2009-06-28 10:05 pm (UTC)

очень увлекательно!

(Link)

кажется, ты случайно запостил текст поста в rich text mode.
[User Picture]From: [info]0x0badf00d
2009-06-28 10:08 pm (UTC)

Re: очень увлекательно!

(Link)

Да выковыривал из архивов :)
[User Picture]From: [info]lstar
2009-06-28 10:15 pm (UTC)

Re: очень увлекательно!

(Link)

кажется, в прошлой жизни это было несколько постов
[User Picture]From: [info]0x0badf00d
2009-06-28 10:17 pm (UTC)

Re: очень увлекательно!

(Link)

Гадостей я за всегда могу много написать :)
[User Picture]From: [info]arkanoid
2009-06-28 10:40 pm (UTC)

(Link)

Из-за этих мудаков-любителей x86 просрали Итаник. Что трагично.
Ну кому нахер уперся этот x86? На северах-то уж точно?
Сейчас его еще и в телефоны снова начнут пихать..
[User Picture]From: [info]0x0badf00d
2009-06-28 10:46 pm (UTC)

(Link)

Читал доки по Itanium, появилось желание купить себе тачку на нем просто что б поиграться с EPIC :-)
А x86 действительно, такое мега-уродство, словами не передать.
Думаю, фанатов оного нужно просто заставить написать дизасм с него что б отвратило на всю жизнь :) Я писал...
[User Picture]From: [info]arkanoid
2009-06-29 12:26 am (UTC)

(Link)

Судя по частоте, это Itanium 1. То есть софта для него НЕТ. А то бы и я хотел.. в замену своему домашнему PA-RISC..

Edited at 2009-06-29 12:27 am (UTC)
(no subject) - (Anonymous)
(no subject) - (Anonymous)
(no subject) - (Anonymous)
[User Picture]From: [info]yalexey
2009-06-29 12:16 am (UTC)

(Link)

просто два итаниума молотят примерно в два раза медленнее чем один четырёх ядерный ксеон. А стоят... если бы интел на них выставил цену адекватную, то всё бы случилось. А так, платить четыре штуки за то, что можно взять за штукарь какой смысл?
[User Picture]From: [info]arkanoid
2009-06-29 12:22 am (UTC)

(Link)

Смотря что молотят. Есть задачи, при которых расклад ровно обратный. Не говоря уж об удобстве масштабирования.
А насчет цены - как раз об этом я и говорил - если бы вместо кретинского x86-64 интел вложился в дешевые итаники..
[User Picture]From: [info]yalexey
2009-06-29 12:41 am (UTC)

(Link)

ну а подо что берут тяжёлые сервера? субд, веб и, конечно, виртуальный хостинг. Я производительность на ядро тупо сравнил по бенчмаркам MS SQL 2008.
конечно, 32 процессора х86 не заставишь работать в одном сервере. Но, слава богу, большинство задач такого масштаба легко параллелятся на кластеры. А кластер выходит дешевле, и, главное, надёжнее, чем монстр с туевой хучей процов. Я видел на чём работает прайс ру. Это оптимальные по соотношению цена/производительность тушки в дешевых офисных тауерах выставленные на деревянных стеллажах рядами. У каждой из них надёжность - говно. Но и выкинуть не жалко.
[User Picture]From: [info]0x0badf00d
2009-06-29 12:27 pm (UTC)

(Link)

Не медленнее, если я помню верно. Да и еще у них очень жирные кеши, можно лопатить тонны инфы намного быстрее.
Такие кеши на x86 просто не ставят, ибо дорого будет :)
[User Picture]From: [info]yalexey
2009-06-29 12:36 pm (UTC)

(Link)

толстый кеш не поможет работать с огромной субд. Он хорошо помогает в в расчёте простых чисел, шифровании и научных расчётных задачах. А предсказание переходов, предзагрузка и не меряная ширина шины памяти снимают в большинстве случаев проблемы простоя.
[User Picture]From: [info]sus_tayn_z
2009-06-29 02:54 am (UTC)

(Link)

Спасибо, познавательно.
FAT12 помню (стоило написать "Помним, ценим, скорбим"?).
В программировании разочаровался именно на BASIC.
[User Picture]From: [info]0x0badf00d
2009-06-29 12:48 pm (UTC)

(Link)

Я вовремя слез на паскаль, наверное поэтому не успел разочароваться :)
[User Picture]From: [info]sus_tayn_z
2009-06-30 06:41 pm (UTC)

(Link)

Я с Бэйсика пытался пересаживаться на Турбо Цэ, но как-то не пошло. Прогресировал гитарно-роковый интерес, а к компам он наоборот, падал. Литературы, опять же, практически не было..

Но я всё-таки написал свою версию Нортон Коммандера под MSX-платформу! :-)
[User Picture]From: [info]pufpuf
2009-06-29 06:46 am (UTC)

(Link)

читал на днях Эрика Наггума, который утверждал, что DOS стал популярным из-за того, что эго можно было хакать во всех направлениях

и, кстати, в истории про создателя CP/M -- все намного прозаичнее: он на самом деле вернулся из отпуска, просто они не договорились с IBM

а еще, самое смешное про 16-битный АСМ -- это то, что студентов еще и заставляют на нем делать графику (ну, в смысле, работа с видеопамятью), что подразумевает необходимость исполнения какого-то DOS-клона под виртуальной машиной. Для студенток 2-го курса -- еще один когнитивный диссонанс, я думаю
[User Picture]From: [info]0x0badf00d
2009-06-29 12:25 pm (UTC)

(Link)

Хакать ДОС просто было не очень возможно, ибо там МАЛО что можно было хакать. Все что работало поверх с графикой итд, это все работало с голым железом, без участия ДОСа.

То что учат всей этой фигне, я знаю, наверное преподы забыли проапгрейдить свой кноледж с 70-х годов. Это основная причина почему я возненавидел один ВУЗ, который так и не смог закончить в свое время :-)
From: (Anonymous)
2009-06-29 08:51 am (UTC)

binary-coded decimal

(Link)

ITU Q.825, потом для записи CDR во многих коммутаторах используется. A-number, B-number и прочие number.
[User Picture]From: [info]0x0badf00d
2009-06-29 12:21 pm (UTC)

Re: binary-coded decimal

(Link)

Наследие видать...
[User Picture]From: [info]arkanoid
2009-06-29 12:54 pm (UTC)

(Link)

А я в 90-х из-под DOS в интернет ходил.. У меня был веб-броузер, telnet-клиент, почта и т д. А чтобы не светить пароли, пользовался s/key.

А еще у меня был DESQview/X.
[User Picture]From: [info]0x0badf00d
2009-06-29 12:55 pm (UTC)

(Link)

Жоско. Простой вопрос - а зачем? Была ведь та же полуось...
[User Picture]From: [info]arkanoid
2009-06-29 01:08 pm (UTC)

(Link)

Полуось как раз меня раздражала своей вопиющей бесссмысленностью. К тому времени, как она была, все то же самое уже гораздо лучше делал Linux.

А до того был UUPC/@ (с "колбасой"!) и elm для dos ;-)
[User Picture]From: [info]sus_tayn_z
2009-06-30 06:50 pm (UTC)

(Link)

А под полуосью был Lynx! :-)
[User Picture]From: [info]gns_ua
2009-06-30 01:36 pm (UTC)

(Link)

> Кое-где учат не только DOS но и ассемблер для 8086, 16-битный.

дада. А кое-где даже не под дос, а инлайном в дельфах:
http://gns-ua.livejournal.com/26268.html

Advertisement