В этой модели я попытался связать воедино все аспекты работы с Сетью и свести их к одному знаменателю. Модель реализуется прямым взаимодействием игрока и мастера, т.е. на словах. (Однако под неё подведена далеко не простая база.)
Модель сети напрямую завязана на модель экономики и модель медицинских имплантантов.
Сеть имеет сложную внутреннюю структуру. Существуют служебные и пользовательские уровни. Выход на пользовательский уровень - через виртуальный шлем в любом игровом центре. Выход на служебные уровни - только через профессиональный разъём (модели 1Ц29, 1Ч29, 2Ц28, 1ЦЦ1).
Нижний уровень - матрица, байтовая информация (подразумевается исходная кодировка на основе двоичного кода - 16-ричная, а также менее распространённых кодировок 8-ричной, 64-ричной, и 10-ричной.) Манипуляции в этом слое осуществляются внесением изменений непосредственно в исходный код. Ситуация осложняется тем, что для большей части исходного кода требуется декомпиляция и дешифровка.
Средний уровень - объектный слой. Манипуляции в этом слое упрощены благодаря объектному интерфейсу. Это основной рабочий слой. Незаконные (в основном) манипуляции в этом слое осуществляются программами-взломщиками.
Служебный уровень - оперативный слой. Своего рода смесь матрицы и объектного слоя, в который временно загружаются куски кода и объекты.
Верхний уровень - пользовательский слой. Слой вывода результатов пользовательских программ. Используется для пользовательской работы с данными, а также для размещения интерактивных виртуальных игр.
Защищённая передача данных с одного адреса на другой осуществляется через матрицу. Каналы передачи данных пользовательского слоя не шифруются, данные передаются в открытом виде. В объектном слое передача данных легко засекается.
Работу программ, изменения в сетевых хранилищах информации возможно отследить в оперативном слое. Но это практически нереально.
Все программы так или иначе отображаются в объектном слое.
Интересующие БКФ-овцев программы подразделяются на классы:
- Лёд. Активные защитные программы.
- Ледорубы. Активные атакующие программы.
- Град. Пассивные защитные программы слежения.
- Шторм. Пассивные защитные программы контрудара.
- Боевые вирусы. Пассивные атакующие программы.
- Информационные ресурсы. Сетевые информационные массивы, базы данных, списки, листы.
- Все остальные программы.
Активные программы засекаются немедленно, в момент активации, и немедленно выполняют свою задачу - зачастую грубо и напролом (всё зависит от поставленного ТЗ и способностей разработчика).
Пассивные программы засекаются по уже произведённому эффекту. Защитные пассивные программы обычно отслеживают данные атакующего; самые дорогие программы - защитные пассивные программы контрудара, которые отслеживают адрес атакующего и, применяя либо встроенный «ледоруб», либо «боевой вирус», наносят ответный удар по нападающему. Атакующие пассивные программы, т.н. «боевые вирусы» воздействуют либо на защитный «лёд», либо на сам защищённый объект, в обход «льда».
Существует понятие сильного и слабого уровня атаки/защиты. Обычно «ледоруб» не уничтожает защитный «лёд», он только минует его силовым способом. Так же и «лёд» обычно не в силах уничтожить атакующую программу. Но в исключительном случае это может произойти.
Если разница в уровне между атакующей и защитной (и наоборот) программами составляет несколько порядков, то возможно полное уничтожение более слабой программы. Кроме того, вполне возможно, что будет повреждено и оборудование, с которым была связана уничтоженная программа. Так, выйдет из строя процессор, сопроцессор, калькулятор, сгорит системное устройство и прочее подобное страшное.
Опасность для БКФ-овца состоит в том, что есть возможность потери его сетевого оборудования (имплантанты) различными способами и, шанс минимальный, но такая возможность тоже есть, возможность полной потери всех данных мозга БКФ-овца...
Определена дифференциация действий на разных слоя сети. Как частный случай - идёт разделение по доступу.
Пользовательский слой предназначен для пользовательской работы с данными (в т.ч. почта), для интерактивных виртуальных игр, для просмотра "фильмов" и разных передач.
Оперативный слой создан для временного хранения кусков кода и объектов. Он используется только машинами, но в принципе технически возможен перехват данных из этого слоя - нужно только точно знать время работы нужной программы и физические координаты размещения данных этой программы в сети.
Объектный слой - для служебного пользования специалистов, связанных с сетью (сетевые программисты). Это основной рабочий слой, взаимодействие со слоем и воздействие на него осуществляется при помощи специальных программ. Кроме того, слой имеет 3D объектный интерфейс. Незаконные (в основном) манипуляции в этом слое осуществляются программами-взломщиками.
Нижний уровень - матрица, содержит байтовую информацию (подразумевается исходная кодировка на основе двоичного кода). Манипуляции в этом слое осуществляются внесением изменений непосредственно в исходный код. Ситуация осложняется тем, что для большей части исходного кода требуется декомпиляция и дешифровка. В этом слое по уровню доступа и уровню подготовки могут работать только программисты.
Может ли господь бог написать программу, которую он не сможет отладить?
Безошибочный кодировщик, вZYск SYSтем Lав. МемвеR, мIсн.
Оператор начинается с ключа-диеза (#) и является последовательностью цифр (имеет смысл значность оператора). Цифровой оператор может содержать аргумент. Нецифровые операторы передаются синтаксическими символами.
+ | оператор сложения |
- | оператор вычитания |
/ | оператор деления |
\ | оператор деления нацело |
* | оператор умножения |
= | оператор присваивания |
( | разделительный оператор |
) | |
--- | оператор комментирования строки |
` | оператор аргумента |
'text' | маркер текста (парный) |
#1 | TRUE (истина) |
#0 | FALSE (ложь) |
#2…#9 | случайная константа, которую можно задать в пределах программы/подпрограммы |
#01 | FOR (в течение) |
#02 | AND (и) |
#07 | OR (или) |
#10 | THEN (тогда) |
#11 | TO (то) |
#17 | IF (если) |
#44 | WHILE (пока) |
#000…#099 | ACTION MARKER (маркер действия) |
#100…#999 | STRING MARKER (маркер строки) |
Маркер с аргументом | |
---|---|
#100`1 | начало строки 100 |
#100`0 | конец строки 100 |
#100`10 | первый символ строки 100 |
#100`00 | последний символ строки 100 |
#100`10`n | первые n символов строки 100 |
#100`00`n | последние n символов строки 100 |
#100`11 | первый символ позиции 100 |
#100`01 | последний символ позиции 100 |
#100`11`n | первые n символов позиции 100 |
#100`01`n | первые n символов позиции 100 |
«Строка 100»: строка, имеющая уникальный номер 100. Обычно - первая строка. «Позиция 100»: 100-я строка по счёту. Аргумент позиции в основном используется для возвращения номера строки.
#0804 | RUN PROGRAM FILE (запустить внешнюю программу) |
#0548`number | CALL SUB PROGRAM`number (вызвать подпрограмму) |
#0548`number`url | CALL SUB PROGRAM`number`url (вызвать подпрограмму, находящуюся по адресу url) |
#0811`name`url | OPEN FILE`name`url (открыть файл с именем «name» по адресу url) |
#1010`number`x`y`z | CREATE MASSIVE (создать массив с именем «number» и количеством элементов матрицы x, y, z ) |
#1011`number`x`y | CREATE DATA BASE (создать базу данных с именем «number» и количеством элементов матрицы x, y) |
#1111`number`x | CREATE LIST (создать список с именем «number» и количеством элементов списка x) |
#1112`number | SUB PROGRAM`number (объявление подпрограммы с именем «number») |
#2199 | TIME (HOUR/MIN/SEC) (время) |
#2200 | DATE (DAY/MONTH/YEAR) (дата) |
#3105`name`url | CLOSE FILE`name`url (закрыть файл с именем «name» по адресу url) |
#3534`name`url | CREATE`name`url (создать файл с именем «name» по адресу url) |
#5151`name`url | SAVE FILE`name`url (сохранить файл с именем «name» по адресу url) |
#5152`name`url | SAVE AS FILE`name`url (сохранить файл под именем «name» по адресу url) |
#6134`name`url | CLEAR FILE`name`url (удалить содержимое файла с именем «name» по адресу url) |
#6144`name`url | DELETE FILE`name`url (удалить файл с именем «name» по адресу url) |
#11400`#marker | FIND`#marker (найти маркер) |
#11400`'text' | FIND`'text' (найти 'текст') |
#11500`#marker | GOTO`#marker (перейти к маркеру) |
#44444 | BR (перейти на следующую строку) |
#81114`'text' | DELETE`'text' (удалить 'текст') |
#81114`#m`1 | DELETE`#m`1 (удалить строку m) |
#81114`#m`10 | DELETE`#m`10 (удалить первый символ строки m) |
#81114`#m`00 | DELETE`#m`00 (удалить последний символ строки m) |
#81114`#m`10`n | DELETE`#m`10`n (удалить первые n символов строки m) |
#81114`#m`00`n | DELETE`#m`00`n (удалить последние n символов строки m) |
#81114`#m`11 | DELETE`#m`11 (удалить строку с позицией m) |
#81114`#m`01 | DELETE`#m`01 (удалить последний символ позиции m) |
#81114`#m`11`n | DELETE`#m`11`n (удалить первые n символов позиции m) |
#81114`#m`01`n | DELETE`#m`01`n (удалить последние n символов позиции m) |
#87114`'text' | WRITE`'text' (записать 'text') |
#87145`'text' | WRITE REPLACE`'text' (записать 'text', заменяя исходный текст целиком) |
#306080`77114 | объявление языка программирования |
#600674740 | начало программы |
#632063206 | конец программы |
#45101010='specificator' | запись спецификатора программы (выполняется компилятором - обычно на строке 102) |
#600605480 | начало подпрограммы |
#632005480 | конец подпрограммы |
#01…#10 #49 | FOR…TO NEXT (цикл for…to) |
#40…#70 | DO…LOOP (цикл do…loop) |
#40…#70 #44`action | DO…LOOP WHILE`action (цикл do…loop while) |
#17…#11(…#42)(…#43)…#77 | IF…THEN(…ELSE)(…ELSEIF)…END IF (цикл if…end if) |
Каждая строка маркируется (трёхсимвольный диезный маркер). Маркер действия не является маркером строки, поэтому выставляется отдельно. Первый маркер строки программы может быть любым, но обычно это маркер #100 и далее по строкам по порядку: #101, #102, #103 и т. д. Таким образом, листинг программы не может превышать 899 строк (одна строка 128 символов); но частично можно обойти этот запрет вызовом внешних подпрограмм и внешних исполняемых программ.
Программа может обращаться к подпрограммам (sub program) и функциям (function) через оператор #0548. Если это внешние подпрограммы, то указывается сетевой адрес. Если это внутренние подпрограммы, то текст их должен быть описан внутри самой программы после основного теста программы; оператор объявления подпрограммы #1112.
Если программа обращается к файлам, сетевым базам данных, внешним программам - обязательно прописывается их адрес. Если программа изменяет файлы и сетевые базы данных, то обязательно должна быть функция сохранения изменённых данных.
В первой строке программы объявляется язык программирования Л2: #306080`77114. Вторая оставляется свободной, так как именно сюда компилятор впишет уникальный спецификатор программы. Например, вторая строка программы может выглядеть так: #45101010='ледоруб Att. 2'. И только с третьей строки начинается непосредственно код программы.
Любой текст в программе, будь то название или адрес, пишется в одинарных кавычках ''. Имя массива, базы банных, списка, файла, подпрограммы может быть как символьным, так и числовым.
Пустая строка, если она не маркирована, компилятором не воспринимается, и он сообщает об ошибке.
#100 #306080`77114 #101 #45101010='' #102 #1 ---константа=1 #103 #0811`'711\База4\1062.dxlp' ---открыть файл 1062.dxlp #104 #17 #622`10='#' #11 #3105`'711\База4\1062.dxlp' #105 ---если первый символ строки 622 диез, то закрыть файл #106 #42 #11500`#622 #87145='#' #0 #107 ---иначе пишем первый символ строки 622 как диез #108 ---константа=0 #109 #3534`'711\Результат\результат.dat' ----создаём файл #110 #17 #1 #11 #87144`'да' #111 ---если константа=1, пишем да #112 #42 #87144`'нет' ---иначе пишем нет #113 #77 ---конец условного цикла #114 #5151`'711\Результат\результат.dat' ---сохраняем файл #115 #3105`'711\Результат\результат.dat' ---закрываем файл #116 #17 #1 #11 #3105`'711\База4\1062.dxlp' #117 ---если константа=1 закрываем файл 1062.dxlp #118 #42 #5151`'711\База4\1062.dxlp' ---иначе сохраняем #119 #3105`'711\База4\1062.dxlp' ---закрываем файл 1062.dxlp #120 #77 ---конец условного цикла #121 #632063206
Та же программа без комментариев выглядит вот так:
#100 #306080`77114 #101 #45101010='' #102 #1 #103 #0811`'711\База4\1062.dxlp' #104 #17 #622`10='#' #11 #3105`'711\База4\1062.dxlp' #105 #42 #11500`#622 #87145='#' #0 #106 #3534`'711\Результат\результат.dat' #107 #17 #1 #11 #87144`'да' #108 #42 #87144`'нет' #109 #77 #110 #5151`'711\Результат\результат.dat' #111 #3105`'711\Результат\результат.dat' #112 #17 #1 #11 #3105`'711\База4\1062.dxlp' #113 #42 #5151`'711\База4\1062.dxlp' #114 #3105`'711\База4\1062.dxlp' #115 #77 #116 #632063206
#100 #306080`77114 #101 #45101010='' #102 ---текст программы ... #999 #632063206
#100 #306080`77114 #101 #45101010='' #102 ---текст программы ... #800 #600605480 #801 #1112`number ---объявление подпрограммы 'number' #802 ---текст подпрограммы ... #998 #632005480 #999 #632063206
Сетевой разъём 1Ц29. Позволяет выходить в объектный слой сети, а, через него, на оперативный слой и матрицу. Основное устройство, без которого выход на т. н. служебные слои сети невозможен.
Программный сопроцессор ТР04Ф. Управляет вызовом сетевых ресурсов, хранит в оперативной памяти один сетевой модуль, список, базу данных или массив. Устройство расширения, используемое в основном «сетевиками» - сетевыми программистами и, иногда, БКФ-овцами. В оперативную память сопроцессора с сетевого адреса загружается программа/модуль/массив/база/список; считается, что этот объект по-прежнему находится в сети, но скорость доступа к нему во много раз больше, кроме того, если этот объект в сети будет удалён/перемещён/переименован/заблокирован, то к нему всё равно можно будет обращаться, так как он находится в оперативной памяти сопроцессора.
Сетевой разъём стандартен, все его версии унифицированы, существуют модификации 1Ц29, 1Ч29, 2Ц28, 1ЦЦ1.
Программные сопроцессоры серии ТР-Ф выпускаются с 1-й (ТР01Ф) по 17-ю (ТР17Ф) модели, все они разработаны под разные функции, имеют разные характеристики и обладают разными возможностями. Программный сопроцессор ТР17Ф только разработан, его характеристики и функции неизвестны. В открытой продаже имеются устаревшие образцы пятилетней-десятилетней давности - до 12-й модели (эту модель достать сложно). Модели, начиная с ТР13Ф, стоят на вооружении подразделений БКФ МО СССР.
Существуют игровые пользовательские сопроцессоры, улучшающие характеристики персонажа в игровой ВР. Игровые пользовательские сопроцессоры серии Х-ЦФ выпус-каются с 1-й (Х01ЦФ) по 94-ю (Х94ЦФ) модели.
Существуют боевые сопроцессоры (серии и модели неизвестны). Все данные по ним закрыты. Стоят на вооружении спецподразделений БКФ МО СССР.
Название | Операция по установке | Эффект |
---|---|---|
Сетевой разъём 1Ц29 | 40 мин | Возможность выходить в объектный слой сети, а, через него, на оперативный слой и матрицу. |
Игровой сопроцессор Х78ЦФ | 10 мин | Более быстрая реакция в игровой ВР (пользовательский слой). |
Жёсткий диск «Келдыш-1ЖС» | 30 мин | Встроенный жёсткий диск. Объём 1 Гб. |
Жёсткий диск «Келдыш-5ЖС» | 30 мин | Встроенный жёсткий диск. Объём 5 Гб. |
Программный сопроцессор ТР12Ф | 15 мин | Управляет вызовом сетевых ресурсов, хранит в оперативной памяти до четырёх сетевых модулей, до трёх списков, до двух баз данных или одного массива. |
Программный сопроцессор ТР16Ф | 10 мин | Обсчитывает объекты оперативного слоя сети. |
Сопроцессоры устанавливаются в черепной коробке. Жёсткий диск - в левой височной доле черепа. В правой височной доле обычно устанавливается разъём соединения с сетью. Может быть установлено не более одного разъёма, не более семи сопроцессоров, не более одного жёсткого диска.
Теория модели ©Илья Стёпин
©2004 год.