Глава 5. Фанат
Глава 5. Фанат
Я наконец-то дорвался до компьютера! Еще первое знакомство с IBM PC XT привело меня в неописуемый восторг, стало ясно: вот именно то, к чему я привязался надолго, может быть на всю оставшуюся жизнь. Первый (игровой) этап обучения пройден, все чаще стало появляться желание реализовать все свои замыслы на PC. А это, в первую очередь, шифры на новой элементной базе, им было отдано почти десять лет жизни, появилась уверенность, какое-то подсознательное чувство, что на этом пути можно находить элегантные и очень надежные криптографические решения. С помощью PC легко сделать ключом случайную подстановку в шифре типа «Ангстрем–3», а тогда все мыслимые подходы к анализу такого шифра становятся невероятно трудоемкими, глухими, а все положительные качества – скорость и простота реализации – сохраняются. Такой регистр сдвига с неизвестной подстановкой можно использовать и для многих других криптографических целей, например, в качестве генератора случайных чисел или для функции хеширования.
Разные напыщенные начальники всегда вызывали у меня чувство неприязни, гораздо приятнее иметь дело со специалистами, людьми, отличающимися профессионализмом, преданностью своей профессии, умом, талантом, настойчивостью. А тут самому пришлось стать пусть небольшим, но начальничком, у которого в подчинении свыше 20 человек. В условиях Спецуправления 8 Главного управления КГБ это значит только и делай, что руководи, давай указания, проверяй, ругайся, разделяй и властвуй. Ну уж нет, эта суета не по мне, я сам в такие начальники никогда не лез. Но должность маленького начальничка дала две неоценимые по тем временам вещи: свой, истинно персональный компьютер и отдельный кабинет, в котором кроме меня был еще один настоящий начальник, а я — его зам. Никакой кучи народа в комнате, никто не претендует на твой компьютер, начальник (настоящий) очень любит разделять и властвовать и избавил меня от этой напасти. Я остался наедине с PC, с самым что ни на есть персональным компьютером, в спокойной и почти уединенной обстановке, сам себе режиссер. Никакая сила уже не могла оттянуть меня от моей любимой игрушки.
Сначала я погрузился в язык Assembly. Какими-то правдами и неправдами был добыт оригинал книги Питера Нортона «Программирование на языке ассемблера» с кучей примеров. Толстенная книга, но когда наглядно видишь на экране, что все запрограммировал верно, результат совпал, появляется азарт. Методика одна и та же, что в математике, что в программировании: от простейших вещей ко все более и более сложным, стараясь не перескакивать через этапы и все досконально понять. Но программирование интереснее тем, что результат конкретен и нагляден, его можно чуть ли не потрогать руками, тогда как в математике теоремы абстрактные, в них очень легко упустить какую-то цепочку при доказательстве и не заметить, что движешься в неверном направлении. В программировании уход в сторону, какие-то непонятные «глюки» выявляются гораздо быстрее, этот процесс эмоционально более интересен.
Как изменилась жизнь! Вместо скучного досиживания до 6 вечера дежурный офицер чуть ли не насильно отгонял меня от компьютера в 9 вечера, когда объект закрывался. У меня был суперсовременный по тем временам Laptop с плазменным экраном, первое подобие нынешних Notebook, только без автономного питания, но размером почти такой же, чуть побольше. Его можно было даже засунуть в сумку – невероятно для тех времен, когда еще свежи были в памяти тапочки, надеваемые на сапоги в комнате, где стояло советское чудо вычислительной техники – «Рута–110». Поражали возможности: жесткий диск – 40 Мб, это же огромная величина! Сколько программ можно на него записать! 286 процессор – насколько более быстрый, по сравнению с IBM PC XT. Сколько же на нем всего напахать можно! Да здесь какой угодно шифратор сделать можно, не связываясь ни с каким заводом, все в твоих руках.
Заработали первые ассемблеровские программы: оказывается сравнительно легко сделать свои прерывания в DOS, программировать ввод-вывод, лазить по оперативной памяти. Наигравшись вдоволь с Assembly, я занялся его старшим братом – языком С, тогда еще без всяких плюсов.
Математик любит искать во всем логику, закономерности, разумность. Если ее не хватает в реальной жизни, то компьютер, операционная система, языки программирования дополняют этот дефицит, служат своего рода отдушиной, тем сказочным миром, который помогает легче переносить уродливость мира реального. Следовательно, чем более иррациональным будет повседневное бытие, тем больше будет тяга к компьютеру, к его удивительно логичному и разумному поведению, осмысленным действиям, внутренней логике, виртуальной действительности. Там нет тупых и невежественных генералов, очередей за мясом, совхозов и овощебаз, общественной работы и субботников, там только четкие и понятные критерии, TRUE и FALSE, единица и ноль. А специалист по компьютерам, хороший программист всегда будет востребован, при любом правителе, любой идеологии, любых начальниках. Отсюда уже недалеко и до свободы, до реальной свободы, когда пропадает этот инстинктивный трепет перед важными надутыми начальниками, не освоившими толком даже компьютерных игр.
Сидящий напротив мой начальник все время гадал: сколько нужно времени, чтобы я «сломался», ну или хотя бы мне надоел компьютер: месяц? полгода? год? Своего рода приложение к теме «Экстракт». Но все его прогнозы оказались с «глюками», компьютер засасывал меня все больше и больше. После того, как были запрограммированы и отлажены алгоритмы, реализующие шифры на новой элементной базе, захотелось сделать к ним удобный интерфейс. Ну а это уже такой простор, просто вселенная! И еще, конечно же, хотелось, чтобы мой компьютерный фанатизм принес кому-то реальную пользу, чтобы моими программами пользовались, чтобы вся эта огромная работа не пропала даром. А вот это уже в системе Спецуправления 8 ГУ КГБ СССР сделать было намного сложнее, ибо там с незапамятных времен действовали негласные правила: не высовывайся! будь как все! не проявляй лишней инициативы, она наказуема! Короче, в триаде чиновник-офицер-специалист можно было спорить только о том, что поставить на первое место: чиновника или офицера. В дальнейшем сама жизнь присудила золотую медаль (с зеленью) чиновнику, а все недовольные таким раскладом специалисты попросту разбежались кто куда. Тогда же, в конце 80–х годов, у меня еще была какая-то наивная вера в справедливость, в то, что эта система способна адекватно воспринимать те компьютерные программы и усилия по их внедрению, которые стали моим призванием, всем смыслом жизни. Как говорил Александр Солженицын, тоже, кстати, имевший отношение к криптографии, «Бодался теленок с дубом».
Более 800 000 книг и аудиокниг! 📚
Получи 2 месяца Литрес Подписки в подарок и наслаждайся неограниченным чтением
ПОЛУЧИТЬ ПОДАРОКДанный текст является ознакомительным фрагментом.
Читайте также
Глава 17 DNS
Глава 17 DNS DNS – это Доменная Система Имен (Domain Name System). DNS преобразует символические имена машин в IP-адреса и наоборот – из IP-адреса в символическое имя. Для чего это нужно? Во-первых, человеку легче запомнить осмысленное имя – типа vasya.ru чем 195.66.195.42, а для компьютера проще
Глава 20 FTP
Глава 20 FTP Эта глава посвящена протоколу FTP, настройке сервера FTP, проблемам конфигурации и безопасности сервера.Протокол FTPПротокол FTP (File Transfer Protocol, протокол передачи файлов) предназначен для передачи файлов в сети Интернет. Этот протокол был разработан на заре эры
ГЛАВА 14
ГЛАВА 14 Переменные среды и интерпретатора shellЧтобы продуктивно работать с интерпретатором shell, нужно уметь управлять переменными этого интерпретатора. Переменными интерпретатора shell являются наименования, которым присваиваются значения. В качестве значений может
ГЛАВА 15
ГЛАВА 15 Использование кавычекВ главе 14 обсуждались методы работы с переменными и операции подстановки. Чаще всего ошибки в использовании кавычек возникают при выполнении подстановок переменных в сценариях. Кавычки оказывают существенное влияние на формирование
ГЛАВА 16
ГЛАВА 16 Понятие о shell–сценарииВ shell–сценарий может включаться одна или несколько команд; здесь нет общепринятых правил. Зачем же создавать целый сценарий ради двух–трех команд? Все зависит от предпочтений пользователя.В этой главе рассматриваются следующие
ГЛАВА 17
ГЛАВА 17 Проверка условийПри создании сценария уточняется идентичность строк, права доступа к файлу или же выполняется проверка численных значений. На основе результатов проверки предпринимаются дальнейшие действия. Проверка обычно осуществляется с помощью команды test.
ГЛАВА 18
ГЛАВА 18 Управляющие конструкцииВсе функциональные сценарии должны предлагать возможности по выбору возможных вариантов. При определенных условиях сценарии должны выполнять обработку списков. Этим вопросам посвящена настоящая глава. Кроме того, в ней описывается
ГЛАВА 19
ГЛАВА 19 Функции интерпретатора shellДо сих пор весь программный код сценариев данной книги выполнялся последовательно от начала до конца программы. Подобный подход неплох, но при этом некоторые фрагменты кода, рассмотренного в наших примерах, дублируются в пределах
ГЛАВА 21
ГЛАВА 21 Создание экранного выводаС помощью shell–сценариев можно создавать профессионального вида экраны, позволяющие реализовать интерактивное взаимодействие пользователя с системой. Для этого достаточно располагать цветным монитором и использовать команду tput.В
ГЛАВА 22
ГЛАВА 22 Создание экранного вводаКогда речь идет об экранном вводе, или вводе данных, подразумевают ввод информации (в нашем случае с помощью клавиатуры), а затем — проверку достоверности введенных данных. Если данные удовлетворяют неким критериям, они
ГЛАВА 23
ГЛАВА 23 Отладка сценариевОдной из самых сложных задач при создании shell–сценариев является их отладка. Желательно, чтобы пользователь, выполняющий эту задачу, получил консультации на данном этапе. Чтобы избежать распространенных ошибок, достаточно следовать указанному
ГЛАВА 24
ГЛАВА 24 Встроенные команды интерпретатора shellВ предыдущих главах нам уже встречались конструкции, встроенные в интерпретатор shell Напомним, что речь идет о командах, которые не находятся в каталоге /bin или usr/bin, а встроены в интерпретатор Bourne shell. Скорость выполнения
ГЛАВА 25
ГЛАВА 25 Дальнейшее изучение конструкции "документ здесь"При рассмотрении стандартного потока ввода и вывода, а также циклов while уже обсуждалась конструкция "документ здесь". Описывались методика пересылки электронной почты и способы формирования экранов меню, но
ГЛАВА 26
ГЛАВА 26 Утилиты интерпретатора shellВ этой главе рассматриваются следующие темы: • создание датируемых имен файлов и временных файлов; • сигналы; • команда trap и способы перехвата сигналов; • команда eval; • команда
ГЛАВА 28
ГЛАВА 28 Сценарии уровня выполненияЕсли при загрузке системы вам нужно автоматически запустить приложение, службу или сценарий либо корректно завершить их работу при перезапуске системы, то необходимо создать сценарий уровня выполнения. Почти все варианты системы Linux, а
ГЛАВА 29
ГЛАВА 29 Сценарии cgiВ настоящее время, когда практически на каждом ПК установлен Web–сервер, глава, посвященная сценариям cgi, органически вписывается в книгу по shell–программированию.В главе будут рассмотрены следующие темы: • базовые сценарии cgi; • использование