“В общем, пусть и в зачаточной форме, операционная система Ориона-128 должна уметь перемещать память между процессами.” — подумал я и стал прорабатывать этот вопрос.
Но затем, чем дольше я размышлял, тем больше убеждался, что поддержка виртуализации памяти нужна только в случае жёсткого её недостатка. Если я попытаюсь сделать минимальный блок памяти, скажем размером в 4 миллиарда ячеек, то мне придётся дать возможность делать индексы длиной до 2^96 слов. Запредельный оверхед!
Это уже получается вторая как бы философская проблема при построении компьютеров, решение которой я просто отбрасываю.
Систему аппаратных прерываний в компьютерах делают потому, что количество процессов, выполняемых компьютером во много раз больше количества ядер его процессора. И систему поддержки виртуализации памяти в компьютерах делают потому, что в программах хотят оперировать значительно большей памятью, нежели есть в наличии.
Поскольку для меня ни та ни другая проблемы не актуальны, то я могу просто выбросить их решение из головы. Если вдруг мне не хватит 128 битного пространства, я ведь могу перейти на 256-битное! Нужно строить первый десяток ядер и идти к тому, чтобы Орион-128 начал строить сам себя!
От этих размышлений меня отвлекла Кора, внезапно повернув мои мысли в плоскость, до которой я сам бы не додумался.
— Насколько я понимаю, твой компьютер — это исключительно плетение. А почему? — спросила она.
— Э? — остановился я, сбитый с толку непонятным вопросом. — А какой он ещё должен быть по твоему?
— Чародейский. Магия без плетений.
— Как это так? Компьютер и магия без плетений? — опешил я.
— Ты же меня вчера учил, что по твоему люди, то есть маги этого и других миров, когда-то сильно уклонились в развитие плетений. Сейчас вся магия у нас базируется в основном на них. Некоторые чародейские способности, вроде вызова элементалей или видения будущего у нас считаются умениями, развитием которых никто не занимается. Так?
— Так.
— Ты говорил, что нужно пытаться совмещать чародейство с магией.
— Говорил.
— Тогда почему ты тоже собираешься делать компьютер исключительно как плетение? Почему ты не рассматриваешь вариант построения чародейского компьютера?
— Что-то я тебя не понимаю. Я чувствую что ты дело говоришь, но не могу ухватить суть. Объясни? — попросил я.
— Вот, смотри. Шип. — Кора сплела Шип, которому учил её я. — А вот ледяной Шип. Ледяной в разы эффективнее!
— Ты предлагаешь… — Я замолк поражённый огромностью той мысли, что наконец вошла в мою голову.
— Добавить льда и огоньку в плетение компьютера. Да, я предлагаю сделать именно это!
— И что получится? — спросил я.
— Откуда я знаю? Когда ты впервые добавил в Шип льдинку, то ты не знал что получится. А потом ты ещё пробовал подпустить в него огоньку. Нужно сделать это и посмотреть что будет.
— Кора, Корушка ты моя умная! Посиди здесь, я сейчас!
Я выскочил на улицу. Нет, времени нет! Я телепортировался на рынок в Баанг-Уудэ, выскочил у цветочной палатки, купил большой букет цветов, а затем телепортировался назад, выйдя около нашего номера. Встав перед дверью я три раза стукнул по ней костяшками пальцев.
— Кто там? — спросила Кора.
— Откройте пожалуйста! — попросил я.
Когда дверь открылась, я вошёл, вставляя в её руки букет.
— Ой! Это мне? — воскликнула она.
— Самому умному цветочку — сюрприз!
— Я же говорила, что у нас получится настоящий цветочный год! — Она окунула носик в лепестки.
— Только вот Этеры здесь не хватает! — пожаловался я.
— Пока мы в Цехине, придётся поскучать по ней!
— Поскучаем! — повторил я, целуя её щёки.
В общем, оглядев свою архитектуру ещё один раз и не найдя в ней крупных изъянов (работу со стеком будем доделывать уже потом), я поправил одну за другой константы разрядности и собрал из своих бывших перфокарт задание на плетение одного полноценного ядра с 1024 ячейками памяти.
Радио-86РК собирает всё это около полутора часов. Но этот прототип моего компьютера работает всего на частоте 1 килогерц. Уже запустив плетение в работу, я вспомнил, что мне же нужны часы! Чтобы двигать магическими экструдерами нужно задавать скорость перемещения, а для этого надо опираться на измерения времени. Прерываний у меня нет, следовательно, чтобы дойти до саморепликации моему Орион-128 нужно сразу делать два ядра.