Русский
Русский
English
Статистика
Реклама

Dos

Ящик пива за лучшую сисадминскую байку и наш личный топ историй

03.03.2021 16:23:30 | Автор: admin
Мы в очень любим три вещи: сисадминов, байки и пиво.

В этот раз мы решили объединить эти любимые вещи и сделать конкурс лучших сисадминских баек: про работу, клиентов и забавные случаи из практики.


Ммммм, сисадмин-техпод-байка-пиво

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

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



Раньше я работал в IT-отделе компании Samsung. Одному из сотрудников нужно было сбросить пароль, я сменил пароль на Samsung1 и сказал ему об этом. Мне перезвонили через две минуты и сказали, что пароль не подходит. Я снова сбросил его, но он снова не сработал. Я подумал, что проблемы со стороны пользователя и решил зайти к нему.
Каково было мое удивление, когда я увидел, что он неправильно набирает пароль! Он печатал Semsung1.
Подсказываю! Это компания, в которой вы работаете, и ее название написано на мониторах, перед которыми вы сидите

Питер Дж.




Это было в начале 2007 года. В нашем колледже строили Центр обработки данных в переоборудованном классе, практически не обращая внимания на климат-контроль, а тогда там стоял обычный сплит-кондиционер. Наш колледж находился в юго-западной части пустыни Мохаве, в Южной Калифорнии. В нем экономили деньги каждые выходные отключая все кондиционеры по всему кампусу, в том числе и в центре обработки данных, так что наши серверы пыхтели при 50-60 градусной жаре до утра понедельника. В марте 2007 года мы обратились к поставщику резервных копий, так как у нас был ленточный накопитель Quantum LTO1 (только с одним отделением для кассеты), и он глючил из-за жары в нашем . Нам нужен был надежный накопитель, который бы выживал в наших условиях. Но существующее решение не могло делать копии открытых файлов, потому нам нужна была неделя на то, чтобы собрать полный набор данных (из-за медленного накопителя). Мы попросили денег на резервный узел SAN для подсраховки в случае падения, но нам отказали.

Вместо этого нам выделили деньги на работу сторонней компании, выполняющей резервное копирование в сжатые сроки. Выезд их специалистов запланировали 17 июля 2007 года в 8:45, чтобы они делали нам полный бекап. В точности по Закону Мерфи наша SAN вышла из строя ночью, прямо перед запланированным приездом специалистов по бекапу, а один из на 900 ГБ был потерян навсегда.
Да здравствует планирование!

Джастин Дж.



У нас в компании было совещание руководителей отделов для обсуждения работы с компьютерной системой службы 911. Инструкции разослали утром в пятницу, чтобы начать тренинг по работе в ней уже в понедельник.
Два пользователя, не особо вникая текст письма, активировали систему по инструкции сразу, как только получили письмо, наведя шухер среди офицеров полиции работающих в 911.

Зак Д.



Как и большинство системных администраторов я начал с работы в службе поддержки.
Однажды мне потребовалось более 20 минут, чтобы объяснить новой работнице, как нажать CTRL-ALT-DEL для входа в компьютер. Она просто не могла понять концепцию одновременного нажатия 3 клавиш сразу

Конрад Дж.



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

Он соединил обрывки витых пар колпачками для скрутки проводов.

Уоллес Ф.



Однажды я чуть не сошел с ума, пытаясь понять, где сбой в питании, проведенном через фальш-пол. Вдруг мы услышали голос из соседней комнаты: О-ля-ля! Ты вылила всю мою бутылку воды на розетку!.

Мы побежали туда и увидели розетку, залитую лужей воды

Хорхе Б.



Лет 10-25 назад я работал в поддержке у провайдера, в какой-то момент мне позвонила женщина, которая сразу призналась, что не умеет обращаться с компьютером, но ей очень надо запустить одну программу. Она жила всего в паре минут от меня, и я решил просто зайти к ней домой.
Придя на место, я сказал, что сначала ей надо открыть меню Пуск. Она спросила меня: Что такое Меню Пуск? Постепенно я ей все объяснил и нашел приложение, которое ей было нужно. Когда я собрался уходить, она сказала, что знает еще одного человека, которому я могу помочь. Оказалось, что у нее есть маленькая дочь, и та слышала, что можно превратить курсор мыши в динозавра. Это было просто, я всего лишь поменял тему курсора Windows XP, но девочка была счастлива.

Вернувшись в офис я заполнил тикет: Помог пользователю найти приложение Х и превратил курсор мыши в динозавра.

Энди С.



Помню, у меня на работе жила саламандра в аквариуме, которая все время умудрялась вылезать из него, хотя крышка была закрыта. Однажды, она вылезла, когда никого не было, и пропала.
Через некоторое время мой компьютер отказался запускаться из-за проблем с блоком питания. Когда я открыл корпус, то увидел палочку, застрявшую в вентиляторе.
Только это была не палочка!..

Роб Х.

У нас был клиент, который прислал нам фотографию своего треснувшего экрана
сделанную с помощью Print Screen.

Лим Р.



Когда я работал в техподдержке, я, было, уделено помогал одному пожилому человеку. Когда мы со всем разобрались, я попросил его закрыть все окна, чтобы мы могли повторить все сначала. Он сказал Хорошо, скоро вернусь. Через десять минут он снова подошел к телефону и сказал: Ну, я закрыл все окна, и что теперь?
Райан Г.



Однажды я отошел от рабочего компьютера, оставив его включенным и не заблокировав заставкой с паролем. Никогда этого не требовалось, потому что коллектив был меньше десяти человек, все работали вместе несколько лет и довольно хорошо друг друга знали. Вернувшись, я увидел, что в моей аське мигает почти весь контакт лист, все мне что-то пишут, включая тех, с кем мы общались очень редко и даже не каждый месяц.

Оказалось, почему-то именно в тот день одному коллеге ударило в голову неизвестное вещество, и он решил пошутить, сев за мой кмоп и написав в мою аську: Я тряс башкой и мой хаер застрял в клавиатуре, а потом одной кнопкой разослав это по всем моим контактам (спасибо Аське, тогда это можно было сделать буквально в один клик).

Я пережил несколько неприятных минут, объясняя, что это глупая шутка коллеги. Но с ним больше не здоровался А компьютер блокировал.

Константин В.



Был случай, когда к нам в офис устроился сотрудник, который, как бы сказать поделикатнее, пренебрегал личной гигиеной. Всех достало его амбрэ, но сказать прямо стеснялись. В итоге, решили проблему довольно замороченным способом, но зато по-админски.

На компьютере Макинтош можно сбросить пароль root-пользователя с помощью специальной опции на установочном диске. Мы загрузили его Мак с этого диска, сбросили пароль root, завели еще одного пользователя и задали ему известный нам пароль. Потом зашли под root, открыли файл с хешем пароля того сотрудника, скопировали его в отдельный файл, а на его место вставили хеш пароля нового пользователя. Это позволило нам зайти в учетную запись пахучего сотрудника, использовав пароль временного пользователя. Мы поменяли на десктопе фон, поставив картинку с младенцем и большой надписью: Даже малые дети знают, что надо принимать душ каждое утро и пользоваться дезодорантом!.

После этого снова зашли под root, скопировали обратно хеш его пароля из сохраненного файла и вставили его обратно, а временного пользователя удалили.

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

Константин В.



Несколько лет назад, работая в Лаборатории искусственного интеллекта МТИ (на самом деле очень много, потому что описывается компьютер из 60-х годов), я рылся в шкафах, где находился мейнфрейм PDP-10, и заметил маленький переключатель, приделанный к раме одного шкафа. Очевидно, это был прикол, который добавил один из местных хакеров.

На самом деле, есть правило: Не трогать переключатель, если вы не знаете, что он делает, потому что это может привести к сбою компьютера. Но этот был маркирован совершенно дурацким образом, у него было два положения, и на металлическом корпусе карандашом были нацарапаны слова магия и больше магии. Тогда тумблер был в более волшебном положении.

Я позвал другого сотрудника, чтобы он посмотрел на это чудо. Но он тоже никогда раньше не замечал его. При более внимательном изучении выяснилось, что к выключателю подведен только один провод, который скрывался в лабиринте внутри компьютера. Логично, что выключатель не может ничего делать, если к нему не подключены провода с двух сторон, но у этого переключателя был только один провод.

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

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

Год спустя я рассказал эту историю еще одному хакеру, Дэвиду Муну. Он посмеялся надо мной и выразил сомнения в моем здравом уме, обвинив меня, в вере в сверхъестественную силу этого переключателя. В доказательство своих слов я показал ему этот волшебный выключатель, все еще привинченный к корпусу шкафа с подключенным к нему только одним проводом, оставленный в положении больше магии. Мы внимательно изучили переключатель и обнаружили, что другой конец провода был подключен к контакту заземления. Это явно выглядело вдвойне бесполезным, он не только не работал электрически, но и был подключен к контакту, который, в любом случае, ни на что не мог повлиять. Итак, мы щелкнули выключателем.

Компьютер снова сломался

На этот раз мы побежали за Ричардом Гринблаттом, бывалым хакером из Массачусетского технологического института, который работал неподалеку. Он никогда раньше не замечал этого выключателя, но когда осмотрел его, тоже пришел к выводу, что он бесполезен, и решительно откусил провод. Затем мы перезапустили компьютер, и с тех пор он работал без проблем

Мы до сих пор не знаем, как выключатель ломал машину. Существует теория, что цепь рядом с выводом заземления была на пределе, и щелчок переключателя изменял электрическую емкость достаточно для того, чтобы нарушить цепь, когда через нее проходили импульсы с длинной в миллионные доли секунды.

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

Добавлено в 1994 году.

С тех пор было предложено еще одно объяснение этой истории.

Корпус переключателя был металлическим, а неподключенная сторона переключателя была привинчена к корпусу компьютерного шкафа (обычно корпус подключается к отдельной клемме заземления, но бывают исключения). Таким образом корпус выключателя был соединен с корпусом компьютера, который, предположительно, тоже заземлен. Заземление цепи внутри машины не обязательно имеет тот же потенциал, что и заземление корпуса, поэтому щелчок переключателя соединяет заземление цепей компьютера с землей корпуса, вызывая падение/скачок напряжения, которое перезагружает машину. Вероятно, это было обнаружено кем-то, кто на собственном горьком опыте, выяснил, что между ними существует разность потенциалов, а затем приделал переключатель в качестве шутки.

Хакерский фольклор МТИ



В одной конторе, где я в свое время работал, был один товарищ.

Трубку домофона в той конторе повесили у двери, к двери он сидел ближе всех, но бегать на каждый звонок ему было лениво.

Как он решил эту проблему? Он подключил контакты кнопки домофона, открывающей дверь через реле к флоппи-дисководу, расшарил доступ к диску A:, вывел всем ярлычки Открыть дверь.
После этого любой работник мог открыть дверь по локальной сети.

Фольклор

В одном закрытом военном НИИ проводили инвентаризацию и наткнулись на описание оборудования, которое никто не мог опознать. В Книге учета оно было записано как соком 50 хэ. Раз оборудование стоит на учете, его надо найти и проверить, тем более, что оценено оно было в заметную сумму условных единиц. Народ долго ломал голову, пока одному научному сотруднику не пришло в голову простое решение этого ребуса. Учетом занималась весьма пожилая женщина, без высшего образования, не знающая никаких языков, кроме русского. Потому, привод для CD-ROM, 50-скоростной, она записала как поняла, то есть соком 50 хэ.

Константин В.

Однажды, когда я работал в одной небольшой фирме, в нашем кабинете стали проводить инвентаризацию и всех попросили выйти, потому что нужно было наклеить инвентарные номера на всю мебель и оборудование, а мы им мешали. Мы решили совместить приятное с полезным и пошли обедать.

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

Константин В.

В одной компании был МФУ Xerox, и у данного устройства существовала полезная особенность умение отсылать отсканированные документы на емейл. Для этого ему, как ни странно, нужна учетная запись на почтовом сервере, ибо отсылает он по SMTP. Меняли почтовый сервер, часть учетных записей мигрировали, а часть решили просто пересоздать. В процессе создания новой учетки для МФУ полезли на старый сервер уточнить login и обратили внимание на папку с входящими письмами. С сервера адский агрегат почту не забирал, так что скопилось ее порядка пятидесяти мегабайт.

Оказалось, что народ ведет активную переписку с МФУ, пишет ему Спасибо! и Благодарю за документы!. Особенно запомнилось сообщение одной сотрудницы: Спасибо, скан договора получила, жду от Вас приложение 2

Фольклор

Был случай, когда студентам, изучающим искусственный интеллект, дали задание написать самообучающегося бота для 3д-шутера. Студенты справились с заданием и запустили ботов в локалку, чтобы они за ночь наловчились убивать друг друга. Утром зашли в сетку и стали тестировать своих ботов. Выяснилось, что живых игроков выносят в первые же секунды, и выжить нет ни единого шанса. Когда стали смотреть логи, оказалось, что уровни в игре были сделаны небрежно, между текстурами были зазоры, которые не бросались в глаза игрокам, но были обнаружены ботами, и позволяли им прятаться внутри стен, проходя в любое помещение и убивать игроков, не давая им обнаружить себя.

Фольклор



Друг работает на складе комплектующих для компьютера.

Им пришёл заказ из СНБ на 100 модулей оперативной памяти. Вы представляете себе сто оперативок? Упаковали их компактно в коробочку 60 на 40 сантиметров. Приезжает представитель СНБ, у них с менеджером происходит диалог, после которого менеджер вползает в конвульсиях в кабинет шефа, вручает ему коробку с памятью и просит выйти самого.

Шеф выходит на крыльцо. Там стоит вышеупомянутый представитель, который показывает на КАМАЗ С ПРИЦЕПОМ!.. и выдаёт: Я тут машину подогнал, если этого не хватит, то мы ДВЕ ХОДКИ СДЕЛАЕМ!..

Шеф не растерялся, протягивает представителю коробочку и просит подержать. Сам подписывает документы, стоит и улыбается. Представитель начинает нервничать: Где же товар, у меня люди ждут, ЗАГРУЖАТЬ НАДО!.

Шеф: Он у вас в руке.

Фольклор



Мой брат живет в соседнем штате и уже достал просьбами помочь ему с компьютером по принципу тыжпрограммист. Некоторые из звонков в семейную службу техподдержки были болезненные как лечение у стоматолога. Ему казалось, что в его компьютер попадают вирусы и трояны, после чего он звонил мне. Он мог часами держать меня на телефоне, заставляя чинить ему компьютер.

Однажды я решил эту проблему раз и навсегда.

Тебе надо зайти в Гугл
Как мне это сделать?
Откройте свой браузер, введите Google и нажмите Enter.
Что за браузер? Как я могу это сделать?
Это, с чего ты смотришь что-либо в Интернете
О Он только что открыл Word? Так и надо было?

И в таком духе разговор продолжается больше часа. Внезапно мне в голову приходит дикая идея. Последовательно я подвожу его к тому, чтобы загрузить и установить VNC. Затем заставляю его посетить несколько сайтов по компьютерной безопасности, чтобы напугать его последствиями беспечного поведения в интернете, все время читая лекции на эту тему.

Я: Интернет действительно опасное место. Ты должен быть осторожен. Очень осторожен. Есть хакеры, которые хотят взломать твой компьютер. Если они заразят твой компьютер, то загрузят на него хакерские программы, которые будут делать всякие неприятные вещи. Они могут украсть твои пароли или получить доступ к банку и кредитным картам!

Одновременно с этим я через VNC случайно открываю и закрываю окна, захожу на разные сайты.

Я: Они даже могут захватить твой компьютер, превратив его в бота, которым ОНИ будут управлять. Я слышал рассказы о людях, к которым приходили из ФБР, потому что их компьютер был захвачен хакерами, и использовался для атак на Белый дом или Пентагон. Бедные люди даже не был в курсе, что их взломали

При этом я открываю и закрываю все больше окон.

Он: Эй! Я не уверен, что происходит, но мой компьютер ведет себя странно. Он пытается самостоятельно выйти в Интернет!
Я: Ой-ой. Это плохо! Ты уверен, что печатаешь не слишком быстро? На всякий случай запусти антивирус. Если ты не сможешь этого сделать, то это очень плохо.

Он пытается, но я мешаю движению его мыши. Наконец я позволил ему запустить программу, и как только она открылась, то я сразу закрыл ее.

Он: Я начинаю волноваться. Я не знаю, что происходит! Я ничего не могу сделать на своем компьютере!!!

А я открываю командную строку и запускаю команды: IPCONFIG, netstat, tracert whitehouse.gov и тд.

Я: Вау что ты сделал?! Выглядит очень серьезно. Похоже, твой компьютер был атакован Может быть, хакер пытается проникнуть в него. Возможно, тебе придется отключить его. Похоже, они пытаются добраться до твоего банка или того хуже

При этом начинаю набирать:

Access: Pentagon Classification TS5
PASSWORD REQUIRED: ******
FAILURE 1 NOTED: Alert sequence
Delta Alpha Charlie initiated : IP TRACKING LEVEL 1 PRIORITY INITIATED
WARNING - PASSWORD FAILURE 2
ALERT TEAM NOTIFIED: FINAL PASSWORD FAILURE
Security Breach detected. Tracking completed. IP ADDRESS confirmed. Response Team dispatched. Address Confirmed: Illegal security breach confirmed. Trace complete. Team dispatched - 2123 Main street: Perpetrator confirmation - John Smith.


Естественно, я использовал его реальный домашний адрес.

Я продолжал пугать его, набирая вышеуказанное, но он начал меня перебивать

Ой, чувак, это действительно очень плохо Они взламывают Пентагон. Что мне делать. Что делать?!

Я намереваясь действовать слишком медленно для его удобства.

Ой, ты должен запустить антивирус.
ПОМОГИТЕ! Они знают, кто я. Что мне делать?!
Ну, я бы посоветовал выключить компьютер, положить его в коробку и вернуть в магазин!
Наконец я уже не смог сдерживать смех и спалился, а потом объяснил ему, что я делал. Почему-то это не показалось ему настолько смешным, как мне. Но с тех пор мне не звонили как тыжпрограммисту!

Комментарий к статье



Наверное, худшая история, которую я могу вспомнить, помимо обычной головной боли от пользователей, была о том, как мне пришлось провести исследования активности одного пользователя в сети. Было показано, что этот человек генерирует очень большой трафик во второй половине дня и замедляет работу всего отдела. После нескольких минут изучения логов я обратил внимание на название одного из его часто посещаемых сайтов. Уже не помню конкретный адрес, но то был сайт, посвященный КРУПНМ женщинам. Я передал эту информацию своему руководителю, который передал ее дальше, и скоро я получил ответ от начальника моего босса, что им нужны конкретные примеры того, на какие типы сайтов он заходит, со скриншотами.

Остаток дня я никогда не забуду Если бы у меня под руками был отбеливатель, я бы залил его в свои глаз сразу, как только он зашел на тот сайт. Очевидно, этот джентльмен проводил 80% своего времени, просматривая очень сомнительные материалы в офисе.

После сбора снимков экрана в течении двух часов я связался с начальником моего босса, чтобы показать ему свое расследование

Позже он сказал мне, что они поговорили с тем сотрудником, и он уволился.

110 != 220

Это был мой первый год в ИТ, и мне пришлось менять компьютер, который управлял огромной сушилкой для древесины. Мне не очень много лет, но тогда многие компьютеры работали под DOS.

Я позвонил в Германию, в компанию по производству печей, нашел человека, который владел английским, получил спецификации, собрал снаряжение и уехал к заказчику, который находился за 200 миль. После резервного копирования предыдущей системы (на дискеты!) я вытащил огромную сетевую карту из старого компьютера, вставил в новый, подключил питание к ИБП и нажал кнопку включения.

БУМ

Голубой дымок из перегоревшего блока питания С побелевшим лицом я позвонил начальнику, рассказал ему обо всем, что я сделал, и к чему это привело.

Не переживай, щит хепенс, просто зайди в компьютерный магазин в получасе езды, купи новый блок питания и попробуй еще раз. Да, и удали эту чудовищную сетевую карту, прежде чем снова включишь питание!.

Быстро съездив до магазина и обратно, я возвращаюсь с новым блоком питания, заменяю его, снимаю сетевую карту и снова нажимаю кнопку питания.

БУМ

Еще больше голубого дыма, и мое лицо побелело еще сильнее. Я перезваниваю своему боссу: Опять что-то не так с вашей установкой. Через несколько минут, обсудив с ним все по телефону, мы пришли к выводу, что компьютер собран правильно, а проблема в чем-то другом.

Куда ты подключил шнур питания?
К ИБП
Хммм А чьего он производства? Ты не знаешь? Написано по-немецки?
Да
Тогда вернись в магазин, купи новый блок питания и поставь красный переключатель на задней панели на 220В. Перезвоните мне, когда печь снова заработает.

Вот так выяснилось, что в Германии техника работает на 220В. Думаю, 19-летний парень из Канады, которым я тогда был, мог этого не знать.

Из комментариев к статье



Когда я только начинал свою карьеру в сфере IT, и мне сказали, что один VIP-пользователь никак не может подключиться к VPN, попросили помочь. На его рабочем компьютере все было в порядке, поэтому я попросил пользователя лично показать мне, что он делает. Он достал свой токен RSA, ввел код с него и вошел в систему.

Однако этот пользователь не первый раз жаловался эту проблему, и я был не первым, кто пытался ему помочь. Я попросил его рассказать по шагам, что он делает перед тем, как у него не получается зайти в сеть.

Сначала, я достаю свой ноутбук, подключаю сетевой кабель, подключаюсь к Интернету из дома. Потом запускаю VPN-клиент, вытаскиваю этот листок с кодом и набираю его

Оказалось, что он записывал код с токена RSA перед тем, как уйти домой, а сам токен оставлял на работе, потому что эта штука была довольно дорогой, и он не хотел ее терять. Я объяснил, что номер все время меняется, и ему нужно всегда носить его с собой. Проблема с VPN была решена.

Комментарий к статье

Одна из компаний, поддержкой которых мы занимались на моей прошлой работе, была университетская полиция. И вот однажды моему коллеге позвонил начальник полиции и сообщил, что что-тоне так с подключением к сети Ethernet на его новеньком ноутбуке. Мы быстро подъехали, чтобы взглянуть на его ноутбук. Проблема была очевидна!

Каким-то образом (ядо сих пор не знаю, как у него хватило силы) начальник полиции вставил кабель Ethernet в разъем модема RJ-11. И вставил его так сильно, что треснул корпус вокруг разъема.

Комментарий к статье

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

Я подошел к его столу, чтобы проверить соединение, но обнаружил, что его рабочая станция не подключена к принтеру.

Зачем мне это нужно?, он спросил, Это же ЛАЗЕРНЙ принтер!"

Комментарий к статье



Этот было середине 90-х, в старые добрые времена DOS. Я работал в очень большом банке и оказывал поддержку пользователям по всему штату. Обучение сотрудников там не одобрялось, и в бюджете не было предусмотрено, поэтому у нас были здания заполненные людьми, пытающимися понять, как заставить работать их компьютеры. Одна дама работала в налоговом отделе, лет ей было 190, и она использовала компьютер только потому, что была вынуждена (опять же без обучения!). Я настроил для нее систему и сделал ее максимально удобной для пользователя, насколько это вообще было возможно в DOS. У нее было простое меню с тремя вариантами, один из которых запускал налоговую программу.

Однажды она позвонила мне очень сильно раздраженная: На моем экране ничего нет!. Не имея в своем распоряжении никаких диагностических инструментов, кроме своего воображения, я начал использовать ее как свои глаза.

Посмотрите на монитор, ту штуку, которая похожа на телевизор, горит ли зеленый светодиод?
НЕ ЗНАЮ
Посмотрите справа от телевизора, 2 дюйма вниз и 1 дюйм направо.
Есть зеленая лампочка.

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

Хорошо, я хочу, чтобы вы посмотрели в телевизор. Вы видите что-нибудь похожее на светящиеся оранжево-желтые буквы где-нибудь на стеклянной части телевизора?
О да, там написано 'C: ->'

Я подумал объяснить ей, что она смотрела на приглашение DOS, но решил пропустить такие подробности.

Наберите MENU, нажмите Enter и расскажите мне, что происходит
Ничего.
Есть новые яркие символы?
Да: Bad command or filename C:->.

Несколько попыток запустить приложение Menu не увенчались успехом, поэтому я подумал, что, возможно, приложение было повреждено. После внутренних стенаний о том, что будет дальше, я сказал:

Давайте попробуем запустить приложение Tax без меню. Я хочу, чтобы вы набрали: CD (space) TAX, нажмите Enter и расскажите мне, что произошло.
Ничего! На экране ничего нет!

С растущим возбуждением я прошу:

ПОСМОТРИТЕ НА 1/2 дюйма от того места, где остановились ваши глаза и прочтите чертовы светящиеся символы!
Bad command or file name".

Я был в недоумении Потом еще подумал несколько минут, и мне в голову пришла идея.

Прочитайте по буквам то, что вы только что набрали
S E E D E E S P A C E T A X"

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

Комментарий к статье



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

Служба поддержки 1-го уровня удаленно проверила ее машину и не нашла вредоносных программ или приложений, которые могли бы вызывать такое поведение. Они уже собирались прислать мне компьютер, чтобы я физически проверил, но, прежде чем отдать мне свою машину, она заявила, что со всем разобралась.

Мне было очень любопытно, что же вызвало такую проблему, поэтому я спросил, что произошло

Она ответила, что вентилятор наклеил на ее монитор стикер с уткой, и она просто не заметила этого.

Комментарий к статье

Однажды вечером нам позвонили из небольшой фирмы примерно в 70 милях от нас. Перед этим мы продали им новый принтер, все, что им нужно было сделать установить драйверы и подключить устройство. Ничего особенного.

Но они позвонили мне и сказали, что компакт-диск не помещается в дисковод. Читая наклейку на диске, они сказали, что поняли проблему. На диске было написано, что он предназначен для MAC, а мне нужно было отправить им диск для Windows, так как компакт-диск от MAC не влезет в привод. Дело было срочное и я поехал к ним в офис.

Я понял проблему сразу, как только вошел в офис, потому что на верхней части компьютера были маленькие резиновые ножки. Решение? Переверните компьютер и теперь CD отлично подходит!

Комментарий к статье

Было дело, в техподдержку позвонила женщина позвонила и сказала, что каждый день она сохраняет свою базу данных на дискете, а на следующий день дискета всегда пуста.

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

Что он увидел?

После сохранения данных на диск 5 1/2 она прикрепляла его к своему металлическому шкафу с помощью промышленного магнита.

Комментарий к статье



В один момент мне было необходимо срочно проложить четыре десятка проводов витой пары на расстояние в сто метров. Большая часть дистанции проходила над навесным потолком на трёхметровой высоте. Поняв, что для моих единственных в конторе админских плеч решение задачи в приемлемые сроки является непосильным, я принялся терзать шефа на предмет привлечения сторонних монтажников, и тот, скрепя сердце, согласился. Я разработал техзадание, разослал по разным конторам и стал ждать.

Одно из предложений сильно выделялось из общей массы. Ребята утверждали, что работу они выполнят всего за один день, причём втрое дешевле, чем любой из конкурентов! На всякий случай перезвонил и уточнил, правильно ли они поняли задание. Ответили, что поняли прекрасно, а скорость и дешевизна объясняется тем, что в работе используется кабелеукладчик. Я был заинтригован. С кабелеукладчиками имел дело в армии и решительно не представлял, каким образом данный девайс можно приспособить к прокладке витой пары под фальшпотолком.

В назначенный день прибыли всего два монтажника со стремянками и инструментами. Наблюдая за процессом разгрузки, я с нетерпением ждал чудо-агрегата, способного автоматизировать процесс. Агрегата так не дождался, зато последней из микроавтобуса была выгружена некрупная такса. Не успел я удивиться по поводу появления животного, как мне объяснили, что это и есть таинственный кабелеукладчик.

В комплекте к таксе шел специальный костюмчик с ручкой вдоль спины для переноски, сбруя на голову со светодиодным фонариком и шлейка. Прокладка кабеля осуществлялась путём прикрепления его к шлейке и запуска таксы в труднодоступное место. Надрессированное животное шустро мчалось на звук голоса или свет фонаря, волоча за собой провод. Потолок собаку выдерживал, мощности же хватало метров на пятьдесят.

Скорость прокладки в длинных и труднодоступных участках была просто фантастической. Такса резво носилась в одну сторону по верху, а обратно по коридору, пугая женскую часть персонала. Даже ЧП в виде выпавшей панельки потолка не повлияло на её настроение: протягиваемый провод сыграл роль страховочного троса, и собачка плавно опустилась на пол. Ребята сказали, что к таким ситуациям кабелеукладчик приучен.

Смех смехом, но такса на полном серьёзе стояла у ребят на балансе фирм. Мне были продемонстрированы документы. Работу дружный коллектив действительно выполнил менее, чем за день, причем без предварительного разматывания кабеля и, соответственно, без обрезков. Правда, работа нашей конторы полностью встала: всё население сбежалось посмотреть за работой кабелеукладчика.

Фольклор

Мы поставили пиво в холодильник и ждем ваших историй


Победителя определим через неделю, 10 марта.

Напоминаем правила:

  • Ваша любимая история, личная, рассказанная другом за бутылочкой пива, прочитанная когда-то
  • Баночка за каждую историю
  • Ящик эля за самую заплюсованный историю в комментариях


Подробнее..

Перевод История программ для удалённого доступа

04.03.2021 12:16:30 | Автор: admin


Не каждый день мне доводится рассказывать историю о технологии, попавшей в новости по весьма зловещим причинам, но и нечасто бывает так, что система водоснабжения оказывается взломанной при помощи технологии удалённой демонстрации экрана. А именно это и произошло недавно во Флориде. В центре обсуждений оказался чрезвычайно важный сегодня инструмент, в то же время обладающий естественными проблемами безопасности: это приложение удалённого отображения экрана, которое в современных условиях невероятно удобно и полезно. Однако, как показали последние события, оно может и вызывать проблемы. Сегодня мы расскажем историю программ для удалённого управления компьютерами, и она длиннее, чем мы могли бы предположить.

Можно прийти к заключению о том, что подключение к сети может заставить нас использовать более стандартизированный способ управления терминалами и потоками символов, передаваемых в наши мониторы и оборудование для контроля за терминалами. Цитата из документа Request for Comments 1971 года, в котором предложено создание официального протокола для Telnet важнейшей сетевой технологии для удалённого доступа к машинам через интерфейс командной строки. Хотя он и отличается от современных программ удалённого доступа с графическими интерфейсами, многие из описанных в документе стратегий применимы и сегодня. Основное отличие заключается в том, что современные приложения стремятся быть более платформонезависимыми, что позволяет пользователям подключаться к разным типам операционных систем при помощи одного инструмента.


Набрав номер и подключившись к твоему компьютеру, я смогу сделать всё, что захочу! Может, попробовать команду format c:?

Нет Windows, нет проблем: история ПО для удалённого доступа уходит корнями в эпоху DOS


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

Важнейшим инструментом в истории ПО удалённого доступа стал Carbon Copy программа, позволявшая пользователям получать доступ к удалённым компьютерам на расстоянии и управлять ими так, как будто они находятся рядом. Это ПО компании Meridian Technologies, впервые появившееся в середине 1980-х, оставалось резидентной программой в памяти DOS, позволяя удалённым пользователям созваниваться с компьютером и управлять им по телефонной линии.

Для своего времени это был впечатляющий трюк, и к тому же довольно непонятный в статье PC Magazine за 1986 год эта категория продуктов называется достаточно новой, чтобы оставаться неизвестной для большинства пользователей PC.


Реклама Carbon Copy Plus, сообщающая, что можно работать с двумя компьютерами, купив всего одну копию ПО. Готовьтесь получить по почте несколько гибких дисков. (Взято из Google Books.)

Carbon Copy, на следующий год получившая замечательный и глубокий отзыв в InfoWorld, стала считаться одним из первых лидеров рынка. Примерно в тот же период начали появляться и другие подобные инструменты, например, Norton pcANYWHERE. В то время, когда Интернет не был распространён повсеместно, такие платформы работали через стандартные модемы и требовали созваниваться с удалённой машиной по телефонной линии.

Забавно, что у продукта с названием Carbon Copy (копия, сделанная через копирку или ксерокопия) возникли проблемы с пиратством. На одном из этапов своей истории Meridian Technologies учредила программу вознаграждений, призвав пользователей ПО стучать на своих коллег, использующих нелегальные копии Carbon Copy, хотя название программы прямо-таки провоцировало её клонировать.

Мы делаем всё возможное для поддержки продукта, и в ответ призываем людей играть с нами честно, сообщил представитель компании Чарльз Джонс журналу PC Magazine. К сожалению, мир неидеален, поэтому вполне может получиться, что мы заплатим множеству людей по 2500 долларов.


Timbuktu Pro. (Взято из Macintosh Garden.)

Чрезвычайно привлекательной стала перспектива получения удалённого доступа к более мощным компьютерам, особенно после появления GUI. В статье в InfoWorld за 1988 год пользователям продавался инструмент удалённого доступа Timbuktu для компьютеров Mac, работавший по локальным сетям и через модемы. Он позиционировался как способ использования мощных компьютеров на более скромном оборудовании. (Но, увы, без цвета.)

По цене SE вы сможете использовать компьютер Mac II, рассказывал Рис Джонс из компании Farallon, купившей в то время производителя Timbuktu WOS Data Systems.


Пример работы DOS-версии pcANYWHERE.

Разумеется, эта технология со временем эволюционировала и не стояла на месте: вскоре инструменты наподобие pcANYWHERE совершили переход с DOS на Windows, и ПО для удалённого доступа начало становиться всё более платформонезависимым, упрощая задачу управления машинами за пределами офиса.

В результате этого удалённый доступ стал важным элементом инструментария отделов ИТ по всему миру. Но он ни в коем случае не является идеальным инструментом.

Screens

Приложение для macOS под названием Screens.

Пять распространённых типов ПО удалённого доступа, с которым вы можете столкнутся сегодня


  1. Chrome Remote Desktop. Реклама этого инструмента сводится к принципу в стиле Google: если у вас есть веб-браузер, то вы можете получить доступ к компьютеру. И это действительно хорошо реализовано в Chrome Remote Desktop, который присутствует на рынке уже около десятка лет и стал, вероятно, простейшим способом для удалённого доступа к компьютерам.
  2. GoToMyPC. Этот инструмент, появившийся примерно в 1998 году, получил огромный успех примерно на рубеже двух веков благодаря вниманию к простоте использования и применялся удалёнными сотрудниками ещё за десяток лет до того, как это стало популярным.
  3. Apple Screen Sharing. Хотя у Apple уже давно есть надёжное приложение Remote Desktop, для большинства пользователей оно слишком мощное; многим из нас вполне достаточно встроенного в MacOS инструмента Screen Sharing. Достойной сторонней альтернативой ему является Screens сервиса SetApp. (Лично я пользуюсь Screens.)
  4. Remote Desktop Services. У Microsoft тоже есть встроенный инструмент демонстрации удалённого экрана, называющийся Remote Desktop Services. Корнями он уходит аж в Windows NT Server 4.0, выпущенную четверть века назад.
  5. TeamViewer. Именно с этим приложением возникли проблемы у ребят из Флориды. Это широко используемый инструмент для демонстрации экрана, обычно используемый отделами ИТ для технической поддержки и удалённого управления. Он получил популярность в последние годы благодаря своей гибкости и простоте использования.


1998


В этом году произошёл первый публичный релиз протокола RFB (remote framebuffer). Эта технология, разработанная английской Olivetti Research Laboratory в 90-х, родилась благодаря своим любопытным корням впервые её использовали в качестве интерфейса, позволяющего периферийным устройствам подключаться к операционной системе банкоматов. Эта необычайно узкая сфера применения постепенно эволюционировала в нечто столь же необычайно широкое: она стала основой VNC (virtual network computing) вероятно, наиболее распространённого открытого стандарта, применяемого в ПО удалённого доступа и по сей день. Исследовательская лаборатория, приобретённая AT&T, в 2002 году стала фундаментом отдельной компании RealVNC.


Печально известный инструмент для хакинга Back Orifice имеет те же истоки, что и современное ПО для управления удалёнными рабочими столами.

Проблема удалённого доступа в том, что его слишком легко использовать злонамеренно


Вероятно, вы не ждали, что эта история об основах технологии Remote Desktop сделает неожиданный поворот и коснётся юношеских лет известного политика, но уж в такое время мы живём.

Пару лет назад бывший кандидат в президенты США Бето О'Рурк сделал заявление, что когда-то был хакером. Ну, или типа того.

Раньше он был участником Cult of the Dead Cow (cDc) существующей уже десятки лет группы, известной своей работой на хакерской сцене, однако в ней О'Рурк больше занимался писательством, чем самим хакингом. (И я говорю это без пренебрежения: cDc это не только коллектив хакеров, но в равной степени и самиздатная медиагруппа.)

Стоит также заметить, что многие участники cDc, наряду с Бето О'Рурком, постоили респектабельную карьеру. Например, один из её руководителей Mudge, урождённый Пейтер Затко, когда-то работал в DARPA, а теперь является главой отдела безопасности Twitter.

Эта группа получила наибольшую известность в связи с созданием одного из самых запомнившихся за последние тридцать лет хакерских инструментов Back Orifice, ПО для удалённого доступа, представлявшего собой бэкдор для получения полного доступа к компьютеру пользователя Windows. (Это название, как можно догадаться, является похабной игрой слов с отсылкой к Microsoft.) Программа Back Orifice, о создании которой сообщили на мероприятии DEFCON 1998 года, возникла как способ мотивировать Microsoft серьёзнее относиться к безопасности.

Но когда Microsoft всё-таки отказалась воспринимать её с достаточной серьёзностью, группа выпустила обновлённую версию, которая была ещё более изощрённой. Опасность этих инструментов заключалась не только в том, что они позволяли использовать компьютеры, основная угроза была в том, что они снижали порог входа в хакерство для тех, кто не знает, что делает.

Любопытно то, что при анализе Back Orifice очевидна его схожесть с более современными инструментами удалённого доступа, обеспечивающими доступ к машинам конечных пользователей на глубоком уровне.

Разница заключается в контексте, а также в подходе к безопасности. Современный удалённый доступ (если забыть о водоочистных сооружениях) обладает высокой защитой и позволяет администраторам удалённо управлять очень сложными системами. Многими нашими машинами можно управлять точно так же, как взломанными при помощью троянов машинами прошлого под Windows 98. Отличие в том, что вместо стратегии плаща и кинжала они реализуют это с помощью безопасных средств.


TeamViewer совершенно замечательный инструмент, если использовать его правильно.

В результате этого инструменты наподобие TeamViewer стали невероятно популярными в сфере информационных технологий. Однако они имеют и свои проблемы, особенно в случае взлома защиты.

Хорошим примером этого является Symantec pcAnywhere: примерно девять лет назад его защита превратилась в решето исходный код ПО был украден и опубликован на The Pirate Bay после того, как хакеру не удалось получить выкуп у компании. ПО pcAnywhere, появившееся ещё в середине 1980-х, вскоре полностью пропало с рынка.

Злоумышленники легко могут использовать удалённый доступ в преступных целях, особенно при слабых протоколах защиты.

Многие компании используют удалённый рабочий стол для упрощения сетевого доступа сотрудников через Интернет. Однако предоставляя такой доступ, компании упрощают возможность своего взлома, рассказывает глава отдела безопасности киберстраховой фирмы Coalition Мэтт Эхренс в посте DarkReading 2018 года.

Разумеется, учитывая этот риск, многие приложения удалённого доступа работают над усилением защиты, чтобы обеспечить ограниченность доступа. Именно поэтому инцидент с водоочистными сооружениями во Флориде стал, по сути, идеальным примером того, что не надо делать с удалённым доступом к рабочему столу.

TeamViewer со стандартным паролем? Завершение работы с инструментом высокого доступа без его удаления? Это совершенно отвратительный пример использования ПО удалённого доступа, управляющего столь важным объектом, как общественная водопроводная сеть. Разумеется, именно так оно и использовалось.

768%


На такую величину, по информации компании ESET, возросло количество атак через RDP-клиенты в прошлом году. По словам компании, проблема в том, что поскольку люди больше работают удалённо, чем год назад, киберпреступники этим пользуются. Поэтому если вы используете VNC, то, возможно, стоит его выключить.

При правильном подходе ПО для удалённого доступа невероятно полезная вещь, лично я использую его для управления доступом к моему серверу, но потенциально оно может быть и опасным.

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

(Проблема в том, что при управлении такими критичными системами нужны индивидуальные логины и надёжные меры безопасности.)

В будущем о произошедшем во Флориде почти наверняка напишут книги и запишут интервью, ведь в этой ситуации удалённый доступ оставался открытым с таким низким вниманием к защите. Однако в этом нужно упрекать не саму технологию, которая была сверхсовременной в середине 80-х и до сих пор остаётся удивительной для многих, дополнившись GUI и сетевым доступом.

На самом деле это упрёк нам, потому что несмотря на пройденный путь, мы всё равно безалаберно относимся к безопасности. А ведь cDc нас предупреждала.



На правах рекламы


Windows VDS с уже включённой в стоимость лицензией и посуточной тарификацией для самых разных задач, требующих операционку от Microsoft. Удалённый сервер мощнее домашнего компьютера это реально, закажи и убедись)

Подробнее..

Перевод Загрузка программы через кассетный интерфейс 5150CAXX

06.02.2021 12:22:42 | Автор: admin
5150CAXX, работающий под эмулированным 64K IBM PC rev. А. Параметры командной строки достаточно хорошо говорят сами за себя.

Самый первый персональный компьютер IBM, IBM 5150 который был бизнес-ориентированной машиной, поставлялся со встроенным портом для кассеты. Жаль, что его можно было использовать только через кассету BASIC, содержащуюся в ПЗУ Или напротив, слава Богу? Да, от этого интерфейса вскоре отказались по понятным причинам. Но давайте перенесёмся на 40 лет назад: возродим эту легендарную машину, и почему бы нам не попробовать кассетный интерфейс в DOS?



Поскольку DOS сама по себе не имела какой-либо поддержки, чтобы работать с таким интерфейсом, как вы видите, эта утилита позволяет получить доступ к кассетному порту IBM непосредственно вместе с DOS, чтобы читать и записывать необработанные данные: будь то оригинальные приложения IBM BASIC или что-то ещё, используя кассетный порт в IBM PC, прямо рядом с разъёмом клавиатуры. Программа также может работать вместе с печально известным IBM PCjr то есть если вы сможете в чужом мусоре найти (или сделать сами) кабель для их патентованного разъема с маркировкой C. И хотя ROM BASIC был в преемниках IBM PC, порта для кассеты у PC/XT и PC/AT не было. Таким образом, программа не сможет загрузиться на чём-нибудь новее, чем IBM PC или PCjr, если на то пошло.

Схема интерфейса кассетного порта

Так как бы вы использовали эту штуковину? Во-первых, как следует из названия, вам нужен оригинальный IBM 5150 PC или PCjr с DOS и кассетной декой. Или катушечный магнитофон, которым воспользовался я. Или вообще любое звуковое устройство, способное воспроизводить и записывать например, современный компьютер или даже смартфон.

Ещё вам нужен подходящий кабель. В случае 5150 проблема легко решается в соответствии с DIN-распиновкой и приведённой выше схемой, аналогично дата-кабелю Tandy TRS-80. Затем вам нужно передать сигналы на звуковое устройство, либо моно, либо на левый канал. Обратите внимание, что, если ваше устройство имеет не линейный вход, а микрофонный, вам необходимо соответствующим образом установить перемычку P4 на материнской плате 5150. Или, в качестве альтернативы, используйте резистор 1k последовательно с микрофонным входом вашего рекордера ( это то, что перемычка P4 делает внутренне в любом случае). Невыполнение этого требования может привести к повреждению микрофонного входа.

Контакты 1 и 3 DIN-разъёма на 5150 являются нормально разомкнутыми контактами реле. Перед любой операцией ввода-вывода это реле приводит в действие свои контакты, чтобы включить кассетный мотор. Если вы не используете эти контакты, либо прислушайтесь к щелчку реле и приведите своё устройство в действие соответствующим образом, либо используйте аргумент командной строки /A, который запрашивает и ждёт, когда вы нажмёте PLAY (или PLAY+RECORD).

Приложение можно скачать здесь. Или вы можете посмотреть исходный код в моём репозитории GitHub, однако чтобы его скомпилировать вам понадобится компилятор Turbo C; в идеале программа собирается пакетным скриптом BUILD.BAT.

Обратите внимание, что максимальный размер последовательных данных, которые могут быть загружены с ленты, всегда составляет 64 КБ. Это ограничение как для адресации в реальном режиме, так и для подпрограмм ленточного ввода-вывода BIOS. Таким образом, IBM Cassette BASIC, который находится в ПЗУ, не позволит вам писать сценарии BASIC размером более 64 килобайт. Также обратите внимание, что, если у вас недостаточно памяти (ранние материнские платы 1664 КБ), это значение может оказаться ещё меньше.


5150CAXX на IBM 5150 с катушечным магнитофоном Tesla

Теперь легко понять параметры командной строки. Вам нужно найти ленту в нужном месте, а затем использовать команды /R, /D или /X для чтения с ленты, чтобы сохранить её в файл, вывести её на экран в виде сырого ASCII или считывать данные в виде машинного кода соответственно. Всё, что считывается с ленты, никоим образом не разбирается для сохранения интерфейса, поэтому нет специальной команды LOAD для поиска пользовательского приложения/данных/чего угодно.

Несмотря на то что указание количества байтов для чтения необязательно, рекомендуется записать его и всегда указывать после команды чтения. В противном случае 5150CAXX не знает, насколько большой поток данных будет считан с ленты, и поэтому он будет продолжать чтение до тех пор, пока не достигнет сигнала плохой ленты или ошибки CRC, останавливая чтение.

В этом случае размер выходного файла может быть немного больше, так как BIOS ROM может добавлять нули или повреждённые данные после окончания фактического потока данных. Это происходит потому, что чтение продолжается после валидного потока, и эта теперь недопустимая операция чтения в конечном счёте завершается неудачей на блоке CRC/синхронизации, останавливая ленту. В этом случае вы можете либо вырезать лишние байты с помощью HEX-редактора, либо игнорировать их вообще. Смотрите рисунок ниже.

Также обратите внимание, что, если вы используете настоящий магнитофон и получаете ошибки CRC или сигналы плохой ленты, причём только часть данных записана (или прочитана) правильно, убедитесь, что как модуляция записи, так и уровни громкости воспроизведения достаточно высокие и не искажены, нет слышимых выпадений ленты, головки нетронуты, правильно установлено смещение записи и нет абсолютно никакого слышимого шума или вибраций, вызванных механикой или растяжением ленты. Чтобы исключить эти факторы для целей тестирования, используйте твердотельный источник звука, например другой компьютер или смартфон и т. д.

Байты, которые могут появиться в конце потока данных, если размер в байтах не указан; Тем не менее содержимое файлов идентично. Левое окно: исходный файл, правое окно: файл, прочитанный с ленты.

Вернёмся к параметрам командной строки: команда /W используется для загрузки заданного файла с диска в память, а затем записи его на ленту в текущей позиции ленты.
Используйте /A, чтобы заставить приложение ждать вашего ответа, если вы не используете релейный ленточный привод мотора, для всех команд.
Параметр /X хорош на своём месте, поскольку он интерпретирует любые считанные данные напрямую как машинный код x86. Любые неверные инструкции, прочитанные с ленты, приведут к сбою системы, что потребует перезагрузки. Обратите внимание, что вы не можете считывать приложения BASIC таким образом: их нужно сначала сохранить в файл, а затем интерпретировать либо с помощью IBM Disk Basic, либо с помощью Microsoft GW-BASIC, поскольку они не являются валидными инструкциями x86, а представляют собой специальный формат: токенизированный BASIC.

Пример кода Hello world, который можно записать на ленту и считать с помощью параметра /X, можно найти здесь. Этот код должен быть осознанным и получать указатель инструкции для адресации, поскольку он может быть загружен практически в любом месте ОЗУ, как компьютерный вирус старой школы. Кроме того, код должен заканчиваться опкодом FAR RET (RETF), чтобы передать управление обратно операционной системе. Посмотрите приведённый выше пример, чтобы узнать подробности.

Чтение IBM Advanced Diagnostics с ленты с помощью 5150CAXX


Для IBM 5150 на кассетной ленте было выпущено не так много программного обеспечения кроме нескольких заметных исключений, таких как IBM PC Diagnostics, а затем и IBM Advanced Diagnostics. Поскольку единственный способ запустить любое приложение для 5150, которое хранится на ленте, это IBM ROM BASIC (ну, во всяком случае, пока не был разработан 5150CAXX), этот пакет диагностики можно использовать для быстрой проверки ПК, не требующий наличия в нём какого-либо диска или операционной системы.

Кассетная запись Advanced Diagnostics по существу состоит из трёх частей, все они могут быть сброшены с 5150CAXX в 3 файла, используя команду /R три раза. Первые две части обязательно создаются любым приложением, написанным на IBM Cassette BASIC, а затем сохраняются с помощью команды SAVE, а третья часть немного особенная:

Первый дамп файла это по существу 256-байтовый заголовок последующего потока данных Он содержит восьмибайтовый идентификатор приложения (в данном случае ldcass, имя, которое вы обычно передаёте команде BASIC LOAD), затем тип потока данных (маркированный BASIC) и место памяти, куда его следует загрузить.

Второй дамп файла это небольшая заглушка BASIC, которая показывает информацию о загружаемой диагностической ленте. Эту программу BASIC нельзя запустить напрямую вам нужно открыть её в GW-BASIC или IBM BASIC. Она заканчивается специальной инструкцией CALL, которая выполняет третью часть.

Третий дамп файла это машинный код x86, который и является диагностическим приложением. Его можно загрузить напрямую с помощью параметра /X либо сохранить в файл, а затем с помощью небольшого вспомогательного двоичного файла DOS превратить в приложение, запускаемое из DOS.

Используя FASM и BUILD.BAT и переименовав третий дамп файла в CASSETTE.BIN, в результате получим DOS-совместимое приложение Advanced Diagnostics, которое можно скачать отсюда. Обратите внимание, что процедура выхода из этого кода это перезагрузка, поскольку приложение не знает, что оно работает в DOS.

Работает также с кассетами вам не нужен катушечный магнитофон.



image




image



Подробнее..

Перевод Компилируем Microsoft Word 1989 года

16.09.2020 10:17:24 | Автор: admin


Собираем Opus


Opus это кодовое имя, которое разработчики компании Microsoft дали пакету Microsoft Word for Windows v1.1a. Давайте скомпилируем его из исходного кода и посмотрим, удастся ли его запустить!

1. Введение


В этой статье задокументирован процесс получения исходного кода и его превращения в работающее приложение для Windows. Компилятор и инструменты разработки запускаются в операционной системе MS-DOS, потому что в 1989 году ещё не существовало инструментов разработки, работающих в Windows.

Примечание: в этой статье я буду часто упоминать DOS. Под этим обозначением подразумевается Microsoft MS-DOS, хотя бОльшая часть информации также применима к IBM PC-DOS и большинству других разновидностей DOS.

Если вы новичок в пользовании операционной системой DOS, то рекомендую повторять мои действия в копии Microsoft MS-DOS v6.22, версии DOS от июня 1994 года (последней выпущенной версии), содержащей все необходимые нам инструменты (об единственном исключении я расскажу ниже).

2. История вопроса


Разработка текстового процессора под названием Microsoft Word for DOS была начата Ричардом Броди и другими авторами в 1982 году. Ричарда наняли из Xerox Parc, поскольку он был знаком с футуристичным на то время текстовым процессором Bravo.

Впервые Word for DOS был выпущен в 1983 году и поставлялся в комплекте с одной из ранних версий MS-DOS. В нём использовалась графика (примитивная) и поддерживалась работа с мышью, но сама программа получила противоречивые отзывы.

Word v2.0 for DOS был выпущен в 1985 году, он поддерживал EGA-графику и имел функцию проверки правописания.

Word v3.0 for DOS выпустили в 1986 году, приложение поддерживало графику Hercules и расширенный набор принтеров.

Word v4.0 for DOS был выпущен в 1987 году, он поддерживал VGA-графику и имел как тестовый, так и графический режимы.

Word v5.0 for DOS и OS/2 стал 16-битным приложением.

В выпущенном в 1989 году обновлении до Word v5.5 появились окна и меню в стиле Windows/Mac, он стал предшественником Word for Windows, который был выпущен в том же году.

Разработка первого текстового WYSIWYG*-процессора для Microsoft Windows была завершена примерно в 1988-1989 гг, эта версия теперь выложена на сайт Музея компьютерной истории (Computer History Museum, CHM).

*WYSIWYG = What You See Is What You Get

Подробнее прочитать об истории и скачать исходный код из Музея компьютерной истории можно здесь:

https://computerhistory.org/blog/microsoft-word-for-windows-1-1a-source-code/

3. Могу ли я скомпилировать этот код?


Да! Но как? Можно воспользоваться винтажным PC или относительно современным компьютером, который может загружаться в legacy-режиме BIOS, или же сконфигурировать гипервизор для запуска виртуального PC. Все необходимые инструменты находятся в дампе исходного кода по ссылке выше. Все они работают в DOS, поэтому давайте разберёмся, как всё это должно работать.

Для демонстрации я буду использовать VMware Fusion на Mac, но вы можете воспользоваться любым подходящим старым оборудованием или гипервизором, которые способны запускать MS-DOS. После установки DOS необходимо проверить, сколько есть свободной памяти. Для этого
необходимо в общих чертах понимать, как DOS видит оборудование. Так как компилятору, похоже, требуется расширенная память (expanded memory), я расскажу, как обеспечивается доступ к этому типу памяти и как сконфигурировать DOS, чтобы эта память была доступна компилятору.

Кроме того, набор файлов довольно объёмен (для DOS-приложения), поэтому рекомендую упростить себе жизнь, создав образ CD-ROM с исходными файлами, чтобы их можно было разом скопировать на DOS-машину. Однако чтобы CD-ROM работал в DOS, также требуются драйверы устройства, поэтому ниже я расскажу и об этом.

Исходный код интересен тем, что проприетарный компилятор требует компьютер с процессором не ниже 386 и 4 МБ ОЗУ. Это превосходит характеристики многих PC того времени и определённо считалось бы high end, ведь тогда большинство компьютеров имело максимум 1 МБ ОЗУ и всего 640 КБ из них были доступны для типичных DOS-приложений. Из этого объёма приличный объём занимает сама DOS, а приложения используют то, что осталось. Итак, сколько же памяти есть у нашей машины? Как добавить ей ещё памяти? Подробнее об этом ниже.

4. История процессоров Intel


Причина, по которой DOS требует управления памятью, тесно связана с историей процессора, на которой эта ОС должна была работать. Так как многие из ранних программ создавались на ассемблере, операционная система DOS была очень тесно интегрирована с процессором, на котором она работала. В результате она унаследовала ограничения этих процессоров, а они накладывали странные требования, ведь каждое новое поколение процессоров должно было поддерживать кодовую базу всех предшествующих.

В 1979 году 8-битные процессоры Intel 8086/8088 могли адресовать 1024 КБ, или 1 МБ ОЗУ (8-битная шина данных, 16-битные регистры памяти).

В 1982 году 16-битный процессор Intel 80286 мог адресовать до 16 МБ ОЗУ (16-битная шина данных, 24-битное адресное пространство*).

В 1985 году 32-битный Intel 80386 (и более поздний 486) мог (теоретически) адресовать до 4096 МБ, или 4 ГБ ОЗУ**

Современные 64-битные процессоры имеют 40-битные, 52-битные и 64-битные архитектуры адресуемой памяти, поэтому могут поддерживать от 1 ТБ до 4 ПБ ОЗУ!

Примечание*: 24-битное адресное пространство эквивалентно 2 в степени 24 1 байт = 16 777 216 байт, или 16 МБ.

Примечание**: 32-битное адресное пространство это 2 в степени 32 x 1 байт = 4 294 967 296 байт, или 4 ГБ, но в PC с процессорами 386 из-за ограничений материнских плат и огромной стоимости ОЗУ в то время обычно устанавливали гораздо меньше 1 ГБ.

История DOS и Windows переполнена проблемами, созданными обратной совместимостью и ограничениями управления памятью, на которые влияла архитектура первых процессоров Intel.

5. Типы памяти DOS


Существует пять областей памяти, адресуемых операционной системой DOS. Каждая из них адресуется при помощи одного или двух драйверов устройств, вызываемых в CONFIG.SYS во время загрузки. HIMEM.SYS обеспечивает доступ к Extended Memory, а EMM386.EXE к Expanded Memory. Вот краткое описание этих типов памяти.

Conventional Memory (основная память): память от 0 до 640 КБ (или 651 264 байт), также называемая Lower Memory Area (LMA)

Upper Memory Area (верхняя память): UMA это память от 640 КБ до 1024 КБ (1 МБ), также называемая Upper Memory Blocks (UMB)

Extended Memory Specification (дополнительная память): XMS это адреса памяти от 1 МБ до 64 МБ, но эта спецификация также описывает UMA, потому что DOS не имеет доступа к UMA без поддержки от HIMEM.SYS

Expanded Memory Specification (расширенная память): EMS использует кадр страницы в 64 КБ, определённый в Upper Memory, для предоставления доступа к памяти выше 1 МБ. DOS может использовать одновременно XMS и EMS, когда задан параметр AUTO, или отключить её, если EMM386.EXE загружается с параметром NOEMS. EMM386 и другие менеджеры памяти эмулируют expanded memory в области extended memory всё совершенно понятно и ни капли не запутанно!

High Memory Area: HMA это 64 КБ, расположенные сразу выше 1 МБ, в которые DOS может загружать себя во время загрузки при помощи параметра DOS=HIGH файла CONFIG.SYS.

В основной памяти (Conventional memory) располагаются олдскульные DOS-приложения. Они могут использовать память только из 0-640 КБ, и поскольку часть этого объёма занимает сама DOS, во время исполнения они могут иметь доступ к менее чем 500 КБ ОЗУ. Часто это ограничивает приложения, запускаемые в так называемом real mode, иными словами, 16-битные приложения, ограниченные основной памятью (conventional memory). Real mode (реальный режим) называется так, потому что в приложении адресуемой памяти сопоставляются реальные адреса памяти.

Это было вполне нормальным только в течение нескольких лет, а позже 640 КБ превратились в ограничивающий фактор для более сложных приложений, то есть игр! Больше памяти требовалось и для новых Windows-приложений, поэтому появилась Extended Memory Specification (XMS). Память выше 1 МБ стала адресуемой 16-битными программами. Эта спецификация появилась в процессорах 286, которые реализовали protected mode (защищённый режим) для получения доступа к памяти выше этих ограничений DOS, но также поддерживали доступ к основной памяти в real mode, при необходимости переключаясь между режимами.

6. Установка DOS


Мы можем использовать настоящие гибкие диски и USB-привод гибких дисков, создать образы гибких дисков из физических гибких дисков или скачать образы гибких дисков с сайтов наподобие WinWorld.

Физическая или виртуальная машина должна иметь не менее 4 МБ и не более 32 МБ ОЗУ, а также жёсткий диск объёмом не более 512 МБ с единственным разделом FAT16. Если жёсткий диск физически больше 512 МБ, ограничьте первый раздел максимальным размером, который может адресовать ваша версия DOS. Ради совместимости ограничьте этот первый раздел 512 МБ или меньшим объёмом.

Если машина имеет описанные выше минимальные характеристики, загрузитесь с первой дискеты DOS. В версиях выше 5.0 запустится установщик. Следуйте его инструкциям и пока выберите все значения по умолчанию. В следующей статье мы поэкспериментируем с опциями установки. Если вы не увидели диалога с предложением установки, то на первой дискете часто можно найти файл INSTALL.EXE или настроить всё самостоятельно, разбив жёсткий диск вручную. См. ниже раздел Делаем жёсткий диск загрузочным.

7. Делаем жёсткий диск загрузочным


Если на предыдущем этапе вы загрузились с гибкого диска, но у вас ещё нет жёсткого диска с возможностью доступа или копия DOS не содержит установщика, то можно установить её вручную.

Запустите с гибкого диска FDISK и просмотрите существующую структуру разделов, выбрав пункт 4 и нажав Enter.

Если раздел существует, то дам должно быть написано, что в файловой системе FAT16 есть до 511 МБ, а в столбце состояния должно быть указано, что раздел активен (символ A в столбце Status).

Если это не так, то создадим раздел; вернитесь в основное меню, нажав Escape.

Выберите пункт 1 и нажмите Enter. Введите 1 и снова нажмите Enter для создания нового основного раздела (Primary Partition). Программа пожалуется, что там уже есть существующий раздел. Если вы достаточно смелы, то можете удалить его и создать новый, или просто использовать уже имеющийся.

После этого вернитесь в основное меню, выберите пункт 2 и сделайте новый раздел активным, а затем выйдите из FDISK. В командной строке DOS нам нужно отформатировать диск, чтобы сделать этот новый раздел читаемым, а также перенесли систему загрузки DOS на диск при помощи ключа "/s" команды format command. Ключ "/v" запросит имя нового тома.

format c: /s /v

Следуйте подсказкам и дайте тому допустимое имя из 11 символов. При этому создастся загрузочный диск, но перед перезагрузкой создайте папку DOS

md C:\DOS

а затем скопируйте все файлы с гибкого диска в C:\DOS

copy A:. C:\DOS\.

Перед перезапуском создайте стандартные CONFIG.SYS и AUTOEXEC.BAT. Нет редактора файлов? Не проблема, введите следующие команды, чтобы скопировать текст из консоли в файл под названием config.sys:

C:CD\copy con CONFIG.SYSfiles=30buffers=10

Затем нажмите Ctrl-Z, чтобы выйти и сохранить выводимые данные. Данные команды скопируют содержимое консоли (CON) на диск. Теперь у нас есть файл CONFIG.SYS, находящийся в корневом каталоге диска C:.

Проделаем то же самое для создания файла AUTOEXEC.BAT:

copy con AUTOEXEC.BAT@echo offprompt $p$gver

И нажмите Ctrl-Z. Отлично, теперь можно перезагрузиться.

8. Конфигурируем DOS


Обычно MS-DOS конфигурируется при помощи двух файлов, считываемых DOS во время загрузки (если не считать самого COMMAND.COM). Это следующие файлы (в порядке, в котором к ним выполняется доступ):

CONFIG.SYS содержит список драйверов устройств и опций конфигурации, загружаемых во время загрузки; он находится в корневом каталоге загрузочного диска.

AUTOEXEC.BAT запускается после загрузки машины и после загрузки драйверов устройств в CONFIG.SYS. Оба этих файла конфигурации должны находиться в корневом каталоге загрузочного диска; A: в случае, когда система загружается с гибкого диска, или C: для систем с жёстким диском.

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

Запуска HIMEM.SYS во время загрузки недостаточно, нам нужно сконфигурировать EMM386.EXE или сторонний менеджер расширенной памяти (Expanded Memory Manager). Подробнее мы расскажем об этом позже. История архитектур процессоров Intel связана с управлением памятью, поэтому нам нужно в этом разобраться.

Чтобы сконфигурировать доступ к дополнительной памяти (extended memory), мы отредактируем C:\CONFIG.SYS при помощи редактора DOS:

\DOS\EDIT \CONFIG.SYS

Если файл не найден, то просто сохраните новый файл под именем C:\CONFIG.SYS. Добавьте
в первую строку следующий текст:

DEVICE=C:\DOS\HIMEM.SYS

В CONFIG.SYS уже могут быть и другие записи, но добавьте это именно в первую строку. Закончив, нажмите Alt-F, чтобы перейти в меню File, и нажмите S, чтобы сохранить, а затем снова нажмите Alt-F и X, чтобы выйти. Перезагрузитесь, вы должны увидеть тест памяти, а затем командную строку DOS: C>.

Введите в командную строку команду MEM, чтобы увидеть, сколько памяти теперь доступно DOS-приложениям:


Как видите, у DOS есть для приложений всего 571 КБ основной памяти (conventional memory), однако почти 30 МБ дополнительной памяти (Extended Memory, XMS) и нет расширенной памяти (Expanded Memory, EMS).

Причина в том, что я выделил этой виртуальной машине 32 МБ ОЗУ, и на вашем оборудовании/ВМ ситуация может быть другой.

Похоже, для запуска компилятора нам нужен доступ к Expanded Memory (EMS), но как его реализовать? Именно здесь нам пригодится EMM386.EXE; этот драйвер памяти поставляется с поздними версиями DOS для поддержки Microsoft Windows и других DOS-приложений, требующих большого объёма памяти, в том числе и некоторых игр под DOS.

9. Управление памятью в DOS


Если мы загружаем драйвер управления памятью через CONFIG.SYS, то можем посмотреть, сколько ОЗУ он выделяет. В начале файла config.sys есть две следующих строки. Там могут быть и другие записи, но эти первые две строки должны находиться в начале файла и быть именно в таком порядке.

DEVICE=C:\DOS\HIMEM.SYSDEVICE=C:\DOS\EMM386.EXEDOS=HIGHFILES=30

Перезагрузитесь и снова запустите MEM.


Сравнив этот скриншот с предыдущим, мы видим, что обнаружена такая же основная память, но максимальный размер программы, которую мы можем запустить, составляет теперь 612 КБ (больше 571 КБ), потому что мы загрузили DOS в верхнюю память (upper memory) командой DOS=HIGH. Также мы эмулировали Expanded Memory (EMS) в диапазоне Extended Memory (XMS).

Если запустить DOS-команду MSD, то получим следующую схему распределения памяти:


На ней показана смежная область памяти, занятая расширенной памятью (Expanded Memory). Каждый из символов P обозначает 1 килобайт, поэтому каждая строка обозначает 16 КБ пространства, которое можно распределить. Границы, не равные 16 КБ, не нужно распределять, потому что они не являются смежными.

Для компиляции Word мне было достаточно основной памяти (conventional memory) и EMS, однако у вас показатели свободной памяти могут быть другими, это зависит от используемой версии DOS и её конфигурации.

Если вам нужно больше основной и/или расширенной памяти, то попробуйте использовать сторонние менеджеры расширенной памяти наподобие QEMM, JEMM или UMBPCI, которые используют меньше основной памяти, в то же время обеспечивая совместимую расширенную память.

Завершаем конфигурацию


Некоторым приложениям требуется временное пространство для хранения файлов, дампа памяти и т.п., поэтому давайте создадим командой MD (make directory) папку для временных файлов, а затем при помощи команды SET укажем на неё переменной окружения TEMP.

MD C:\TEMP

Затем сделаем так, чтобы она задавалась во время загрузки, добавив её в autoexec.bat. Введите:

\DOS\EDIT \AUTOEXEC.BAT

И добавьте в конец файла следующее:

SET TEMP=C:\TEMP

Нажмите Alt-F, S для сохранения и Alt-F, X для выхода из редактора.

10. Компилируем OPUS


OPUS это кодовое имя Microsoft Word for Windows v1.1a. Предоставленный исходный код содержит код на C и ассемблере, проприетарный компилятор, компоновщик, проприетарные инструменты патчинга, примечания разработчиков и документацию. В этих файлах есть всё необходимое для создания 16-битного исполняемого файла, который без модификации сможет запускаться в Windows v2.x, Windows v3.x и OS/2 v2.x.

Для компилирования этого программного обеспечения нам понадобится не менее 612 КБ основной памяти, а также не менее 4 МБ Expanded Memory, поэтому вам может потребоваться изучение DOS Configuration Guide для конфигурирования DOS под эти условия.

Я создал guest в VMware Fusion с MS-DOS v6.22 в качестве гостевой операционной системы, а также сконфигурировал DOS VDM под Windows XP; всё это заработало в обоих окружениях.

Этап 1: скачивание


Исходный код доступен на сайте Музея компьютерной истории:

https://computerhistory.org/blog/microsoft-word-for-windows-1-1a-source-code/

Он позволит вам скомпилировать Microsoft Word v1.1a, но у компоновщика часто происходят сбои, если только не запускать отдельно op1.bat из папки сборки. Я пока не разобрался, почему это происходит под DOS однако под Windows XP мы можем эмулировать не только командную строку DOS, но также расширенную и дополнительную память, и всё работает! Но как это сделать?

Этап 2: распаковка файлов zip


Хост-машина может работать под Windows, Linux или MacOS. Я использовал Mac, но это неважно. Распакуйте файлы zip и создайте файл образа CD-ROM ISO, содержащий все файлы.

См. руководство по созданию ISO.

Этап 3: копирование файлов


Переносим исходный код, компилятор, компоновщик и документацию на DOS-машину/ВМ через CD-ROM.

Компилятор должен запускаться с загрузочного диска, так что поместим всё это в C:\SRC. Так как объём данных значительно больше, чем один или два гибких диска, я создал образ CD-ROM, который смонтировал в ВМ. Если у вас есть физическое оборудование, то вы можете сделать то же самое или изучить DOS Configuration Guide, чтобы узнать, как получить доступ к CD-ROM из DOS или через физический диск, или через файл образа ISO.

Этап 4: создание папки BUILD


Примечание: часть этих шагов взята из комметариев на форумах Beta Archive (https://www.betaarchive.com/forum/).

Создадим новую папку BUILD для каждой сборки и изменим fast.ini, чтобы он указывал на эту новую сборку.

MD \SRC\OPUS\BUILD1

Этап 5: изменения в конфигурации компилятора


Прежде чем приложение скомпилируется, нужно изменить два файла, чтобы они соответствовали вашему окружению. БОльшую часть этих параметров я взял из поста на форуме betaarchive. Перейдите в папку инструментов:

CD \SRC\OPUS\TOOLS

Создайте резервную копию fast.ini

COPY FAST.INI FASTOLD.INI

Откройте FAST.INI следующим образом:

\DOS\EDIT \SRC\OPUS\TOOLS\FAST.INI

Затем измените содержимое, чтобы оно выглядело так:

OPFL=+lsNAM=WINWORDEXE_DIR=C:\SRC\OPUS\PROGRAMBUILD=C:\SRC\OPUS\BUILD1OPUS=C:\SRC\OPUSWORDTECH=C:\SRC\OPUS\WORDTECHUSER=Richard Lewis or Your NameMMEM=NOAPPLOADER=

Сохраните файл с помощью Alt-F, S и выйдите с помощью Alt-F, X.

Откройте mo1.bat, чтобы он указывал на вашу структуру папок, а не на сетевые диски, которые были указаны в исходном коде:

\DOS\EDIT \SRC\OPUS\TOOLS\MO1.BAT

И измените следующие строки, чтобы они соответствовали путям к файлам:

set PATH=C:\SRC\OPUS\TOOLS\tools\dos;C:\SRC\OPUS\TOOLS\toolsset LIB=C:\SRC\OPUS\TOOLS\libset INCLUDE=C:\SRC\OPUS\TOOLS;=C:\SRC\OPUS\TOOLS\wordtech;=C:\SRC\OPUS\TOOLS\lib;=C:\SRC\OPUS\TOOLS\asm

Измените все остальные пути, чтобы они соответствовали вашему пути, они могут иметь имена дисков, отличающиеся от C:; поэтому измените их, чтобы они начинались с =C:\SRC\OPUS\

Этап 6: компиляция!


Измените папку инструментов, если ещё этого не сделали:

CD \SRC\OPUS\TOOLS

Скомпилируйте BUILD1 с помощью изменённого файла конфигурации INI:

MAKEOPUS @FAST.INI

Нет ошибок!? Объектные файлы будут помещены в C:\SRC\OPUS\BUILD1 и при удачной компоновке файлы EXE будут находиться в C:\SRC\OPUS\PROGRAM.
Если вы выполняли компиляцию при помощи DOS, то всё должно выглядеть так:


CSL Compiler успешная компиляция кода и патчинг

Если вы использовали XP (инструкции по конфигурированию будут в следующем посте), то успешное завершение будет выглядеть так:


Если возникают ошибки памяти, то, возможно, не хватает основной или расширенной памяти, вы пропустили этап присвоения TEMP= в AUTOEXEC.BAT, или этап присвоения FILES= в CONFIG.SYS, или в FAST2.INI присутствуют синтаксические ошибки. Проверьте ещё раз эти параметры.

Если вам не удаётся устранить ошибки памяти, то есть два решения.

  1. Попробовать запустить mo1.bat из папки BUILD. Если это сработает, то проблема может заключаться в достаточной основной памяти, но недостаточной непрерывной расширенной памяти.
  2. Попробуйте выполнить тот же процесс сборки в DOS VDM под Windows XP похоже, для каждого типа памяти ОЗУ выделяется правильно, однако получаемый EXE невозможно запустить под Windows XP; он запустится на машине с Windows v2 или v3. См. Windows XP configuration Guide.

Примечание: после выполнения компиляции файл mo1.bat сбросит переменную окружения PATH и в неё больше не будет входить папка DOS. Это означает, что некоторые команды DOS больше не смогут работать, если вы не будете указывать полный путь к папке DOS для каждой команды. Или добавьте C:\DOS в переменную PATH в файле mo1.bat, или просто перезагрузитесь для восстановления предыдущих параметров.

11. Запускаем Opus


Если вкратце, то просто скопируйте все файлы из C:\SRC\OPUS\PROGRAM на машину с Windows v2.x или v3.x, а затем запустите WINWORD.EXE. Вот и всё!

В дальнейшем я соберу набор дискет, который будет выполнять правильную установку на основе этого кода, но пока для тестирования этого достаточно.

Под Windows 2.x программа должна выглядеть так


и тот же код, запущенный в Windows 3.x:



На правах рекламы


Наша компания предлагает серверы с предустановленным Windows на тарифах с 2 ГБ ОЗУ или выше.
Не экономим на железе только брендовое оборудование и одни из лучших дата-центров в России и ЕС. Поспешите проверить.

Подробнее..

Архитектура любительского стримингового сервиса DOS игр

29.12.2020 22:09:15 | Автор: admin
Недавно я написал небольшую статью о стриминге DOS игр в браузере. Настало время сделать небольшой технический обзор. Проект ведется исключительно мной, поэтому я его позиционирую как любительский. Среди общедоступных технологий позволяющих сделать стриминг игр можно выделить только WebRTC на нём и построен мой сервис. Как вы уже наверное догадались он состоит из браузерной и серверной части.


Браузерная часть


Основной компонент сервиса WebRTC сервер Janus. Из коробки он предоставляет простое API для подключения к серверу, и поддержки WebRTC протокола. Поэтому, браузерная часть получилось максимально простой, в виде обертки поверх Janus API.

Серверная часть


На стороне сервера используются dosbox, ffmpeg и Janus. Все они собраны вместе в docker контейнер.

Текущая версия сервиса использует:

  • Последнюю версию dosbox
  • Последнюю версию ffmpeg, скомпилированную с поддержкой кодеков vp9 и opus
  • Последнюю версию janus с небольшими дополнениями (о них ниже)


Стриминг звука и видео


Когда docker стартует, супервизор запускает все три программы. Dosbox запускает игру и начинает непрерывно генерировать кадры и звуки. Эти данные перенаправляются в ffmpeg, который создает два RTP стрима (звук, видео). Плагин для стриминга Janus (стандартный компонент), слушает эти стримы и генерирует WebRTC данные для браузера.

{dosbox} --> {ffmpeg} --> {janus streaming plugin} --> {browser}


Поддержка клавиатуры


Для поддержки игровых действий (нажатие кнопок) используются каналы данных WebRTC. Каждый раз когда игрок нажимает кнопку, срабатывает обработчик клавиатуры в браузере. Он отправляет текстовые команды через дата канал на сервер.

  • pipe kdown когда кнопка нажата
  • pipe kup когда кнопка отпущена


На сервере эти данные обрабатываются моим расширением (исходный код). Создается именованный пайп в который записываются поступающие команды. С другой стороны, dosbox постоянно читает этот пайп и добавляет события клавиатуры в очередь для обработки.

{browser} --> {janus data text channel} --> {pipe} --> {dosbox}


Каналы данных работают в упорядоченном режиме, время жизни одного пакета 16 мс. Т.е. события клавиатуру будут доставлены в том же порядке в каком и были нажаты.

Инфраструктура


Сервис запущен на платформе Amazon. Для каждого клиента создается новая задача Fargate. После старта задача получает публичный IP, который отправляется в браузер. При получении IP браузер инициирует WebRTC соединение с Janus сервером. Когда dosbox заканчивает работу, задача Fargate автоматически останавливается. Технически нет никаких ограничений на количество одновременных игроков.

{browser} --> {+fargate} --> {ip} --> {browser}
...
{browser} --> {stop} --> {-fargate}


Вместо заключения


Получилось достаточно поверхностно,

Получилось достаточно поверхностно, пока не понимаю про что написать подробнее. Вцелом архитектура показала себя вполне рабочей. Сервис работает в бесплатном режиме, попробовать можно здесь.

Обзорная статья: DOS Cloud Gaming
Подробнее..

DOS Cloud Gaming

17.12.2020 10:10:32 | Автор: admin
Давным давно я занялся разработка JavaScript API для запуска DOS игр в браузере. После стольких потраченных сил с удовлетворением могу сказать, что многие сайты со старыми игрушками перешили и используют именно мое API. Но, прогресс не стоит на месте и я занялся разработкой следующей версии js-dos.

Вас ждет много вкусностей:

  • Универсальные бандлы (zip архивы), которые содержать конфигурацию dosbox. Теперь для развертывании игры на сайте достаточно одной строчки кода
  • Открытый репозитории бандлов
  • Виртуальные кнопки и джойстики для игры на мобильных устройствах
  • Бэкенд эмулятора полностью перемещен в Worker
  • Независимый, заменяемый рендер. Например, можно рендерить игру через Three.js
  • Поддержка нескольких бэкендов. Сейчас это только dosbox, но в планах поддержка dosbox-x и много чего ещё
  • web-rtc бэкенд Janus для игры в облаке


Зачем вообще нужен облачный сервис для DOS игр?


Технологии шагнули далеко вперед, современных мощностей уже зачастую хватает чтобы играть практически во все DOS игры прямиком в браузере. Однако, ситуация на мобильных устройствах выглядит много хуже. Мощностей многих устройств все ещё не достаточно чтобы играть в популярные игры: DOOM, MK, Carmageddon. Некоторые игры (например: C&C, Diablo) не работают даже на PC. Это связано с тем что пока невозможно имплементировать рекомпилирующий эмулятор на WebAssembly.

Именно в таких ситуация и должен помогать облачный сервис. Например, стандартный тест DHRY2 тест запущенный на мобильном устройстве обычно дает результат около 20 очков. Запущенный в облачном сервисе 240 очков (этого достаточно чтобы играть в любую DOS игру).



Тестирование


Сейчас сервис проходит активное тестирование, его можно попробовать в действии. Мне очень нужны тестовые данные из стран СНГ.

Помочь с тестированием очень просто. Все что нужно зарегистрироваться, поиграть по ссылке в DOOM и описать свои ощущения. Для запуска игры в облачном сервисе нужно использовать кнопку >> Turbo.



Могу много интересного рассказать про разработку js-dos v7, не знаю что было бы интересно сообществу. Очень жду обратной связи в комментариях или Discord проекта.

Спасибо.
Подробнее..
Категории: Webrtc , Я пиарюсь , Cloud , Dos , Gaming

Категории

Последние комментарии

  • Имя: Макс
    24.08.2022 | 11:28
    Я разраб в IT компании, работаю на арбитражную команду. Мы работаем с приламы и сайтами, при работе замечаются постоянные баны и лаги. Пацаны посоветовали сервис по анализу исходного кода,https://app Подробнее..
  • Имя: 9055410337
    20.08.2022 | 17:41
    поможем пишите в телеграм Подробнее..
  • Имя: sabbat
    17.08.2022 | 20:42
    Охренеть.. это просто шикарная статья, феноменально круто. Большое спасибо за разбор! Надеюсь как-нибудь с тобой связаться для обсуждений чего-либо) Подробнее..
  • Имя: Мария
    09.08.2022 | 14:44
    Добрый день. Если обладаете такой информацией, то подскажите, пожалуйста, где можно найти много-много материала по Yggdrasil и его уязвимостях для написания диплома? Благодарю. Подробнее..
© 2006-2024, personeltest.ru