avva: (Default)
[personal profile] avva
Уже давно стал клише в науч. фантастике такой сюжет: человек нашей эпохи попадает в глубокое прошлое. Казалось бы, он должен добиться многого, показать им современную технологию итп., но на деле у него ничего не получается, т.к. он типичный обыватель, и не знает (или знает только в общих чертах) как работает телевизор, автомобиль, пистолет, итд. итп. Плюс даже если он что-то знает в подробностях, в прошлом нет нужных готовых материалов для его изготовления; получение нужных металлов, пластмасс, стекла, проводов, чего угодно ещё — всё отдельные индустрии, в которых он не разбирается. В результате он ничего не может сделать.

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

Сюжет: программист на Visual Basic попадает в 49-й год. Предположим даже, что они там в 49-м году верят ему (или знают как-то), что он попал к ним из 2000-х. Что он может им сказать? В устройстве компьютера он разбирается очень плохо. Что есть такие штуки — CRT-монитор, мышка, CD-ROM? Но для всего этого нет технологии в 49-м году, да и компьютеры того времени не могут это поддерживать. Как устроен Visual Basic или принципы программирования на языке высокого уровня? Но их компьютеры недостаточно мощны для таких языков. Им ещё нужно пройти сквозь поколение программистов исключительно на машинном языке, а потом на Фортране. Интернет? Даже смешно.

Что же он может сделать? Может ли подсказать вообще хоть что-то дельное?

Несколько сходный сюжет

Date: 2003-11-17 01:18 am (UTC)
From: [identity profile] oblomov-jerusal.livejournal.com
Дан современный компьютер безо всякого программного обеспечения, за исключением самого минимального BIOS, позволяющего начинать загрузку систему. К нему приделана панель с переключателями и лампочками, позволяющая просматривать и модифицировать содержание его памяти и запускать машинную программу с данного адреса (вместо панели, возможно, в BIOS включена программная имплементация соответствующих функций). Приложены книги с полным описанием архитектуры компьютера. Какое ПО вы сможете написать на этом компьютере, скажем, за год?

Re: Несколько сходный сюжет

Date: 2003-11-17 04:17 am (UTC)
From: [identity profile] avva.livejournal.com
Если это не в качестве поиграться, а серьёзное задание (т.е. даётся такая работа, без дураков), то вопрос только в том, какое ПО нужно написать за год.

Первые несколько дней - штудирование данного CPU (предполагая, что он незнаком) и архитектуры компьютера, фокусируясь на доступе к памяти, обработке прерываний, и доступа к таким периферийным устройствам, как клавиатура и монитор. После этого день - на написание простейшего цикла обработки ввода с клавиатиры, дублирующего ввод на экран, с режимом ввода машинного кода начиная с данного адреса, и запуска. Этот цикл делается как можно более простым, чтобы его можно было на бумажке написать в кодах (скажем, 100-200 инструкций) и ввести заново с панели, когда компьютер падает или зависает.

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

Дальше неделя (две?) - на написание в кодах и отладку простого, но полноценного ассемблера. После этого всё становится на порядок проще. Ещё неделя - на написание ультра-примитивной single-task OS (без memory management, без ничего) и примитивной файловой системы для жёсткого диска. Дальнейшее развитие уже зависит от того, что требуется иметь в результате через год, какой вид ПО.

Re: Несколько сходный сюжет

Date: 2003-11-17 10:06 am (UTC)
From: (Anonymous)
"а вот с размерами вам повезло"

программировать придется непосредственно контроллеры устройств.

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

Re: Несколько сходный сюжет

Date: 2003-11-17 10:19 am (UTC)
From: [identity profile] avva.livejournal.com
Я предполагаю программиста, которому случалось в прошлом программировать периферию напрямую через порты (как мне случалось), плюс предполагаю полную подробную документацию, как было сказано. С этими предположениями сроки вполне реалистичны, по-моему. Основная часть работы уйдёт на то, чтобы настроить обработчики прерываний, в кодах. Но сами обработчики будут весьма тривиальными, будут использовать фиксированные участки в нижней части памяти итп. Всё это будет переписано, когда будет нормальный ассемблер и доступ к жёсткому диску.

Re: Несколько сходный сюжет

Date: 2003-11-17 01:39 pm (UTC)
From: (Anonymous)
(потряхивая мандатом)
так и мне "случалось". и полную раскрутку с нуля на новом железе случалось, знаете ли. и всю цепочку загрузки делать случалось. и не только это.

кстати, о птичках, - прерывания стоит закрыть, и проверять регистрики в режиме пулла.

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

а еще новое железо имеет тенденцию работать не полностью.

Re: Несколько сходный сюжет

Date: 2003-11-17 01:47 pm (UTC)
From: [identity profile] avva.livejournal.com
Хорошо. Давайте считать меня неисправимым оптимистом ;)

Вам код не нужен, свой журнал открыть?

Re: Несколько сходный сюжет

Date: 2003-11-17 05:14 pm (UTC)
From: (Anonymous)
а что туда писать?

хотя, знаете, код предложить и нормальный юзер может, от Вас я ожидаю большего. есть такой замечательный Богом забытый журнал, в котором от сотворения 2.5 года никакой жизнедеятельности не было.
кто-то кому-то создал и забыл на обочине. Вот его (http://www.livejournal.com/userinfo.bml?user=garry&mode=full) бы заполучить. Как, беретесь?

Re: Несколько сходный сюжет

Date: 2003-11-22 02:32 pm (UTC)
From: [identity profile] avva.livejournal.com
Нет.

Не надо ожидать от меня большего, только разочаруетесь.

January 2026

S M T W T F S
    1 2 3
4 5678910
11121314151617
18192021222324
25262728293031

Most Popular Tags

Style Credit

Expand Cut Tags

No cut tags
Page generated Jan. 5th, 2026 10:53 pm
Powered by Dreamwidth Studios