Пожиратель памяти

Масалова Милана Александровна

Закладки
Размер шрифта
A   A+   A++
Cкачать
Читать
Пожиратель памяти (Масалова Милана)

Пожиратель памяти

http://ficbook.net/readfic/3326283

Автор:

Союз Мандрыковских ларьков

Фэндом:

Ориджиналы

Рейтинг:

G

Жанры:

Фантастика, Детектив, Повседневность

Размер:

Мини, 16 страниц

Кол-во частей:

6

Статус:

закончен

Описание:

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

Посвящение:

Крису Касперски и его хакерским (в хорошем смысле этого слова) книгам

Публикация на других ресурсах:

Где угодно, но пришлите, пожалуйста, ссылку

Примечания автора:

Куайн - компьютерная программа, которая выдаёт на выходе точную копию своего исходного текста.

1998 год - Околонаучные изыскания

- А что, написать программу, которая выводит на монитор саму себя, слабо? – спросил Юра Гомеров, закуривая очередную сигарету.

- Зачем? – поинтересовался Игорь Точилин, поправляя на переносице очки.

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

- Просто для общего развития, - объяснил Юра. – Или тебе это совсем неинтересно?

- Да что тут сложного, - пожал плечами Игорь. – Я приблизительно представляю, как это можно сделать…

- Ну, так вперёд! – усмехнулся Юра, выбросил окурок в урну и вышел из курилки.

Игорь последовал за ним…

…До вечера он сидел за своим компьютером и отлаживал программу обработки запросов к какой-то сложной базе данных, время от времени исправляя свои же ошибки. А когда рабочий день подошёл к концу, на улице начался сильный ливень, поэтому Игорь, у которого не было личного автомобиля, решил задержаться на работе, пока не закончится дождь.

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

Он запустил консольное приложение Builder и приступил к написанию программы.

«Так, сначала напишем программу, которая выводит несколько строк какого-то текста», - размышлял Игорь, набивая код, выводящий на экран монитора фразу «Программа, которая печатает саму себя».

Откомпилировал и запустив эту программу на выполнение, Игорь довольно усмехнулся, увидев искомую фразу на экране.

«Теперь осталось поместить всю программу в параметры оператора вывода на монитор», - решил Игорь, скопировал весь текст программы и вставил его вместо текста «Программа, которая печатает саму себя».

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

«Так-так-так, - обхватил руками голову Игорь. – Нужно сделать какой-то хитрый финт, и всё получится. А что, если попробовать записать программу в память, а затем считать её оттуда и вывести на монитор? И ещё, нужно не забыть стереть потом из памяти эту программу...»

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

«А теперь нужно преобразовать его в вид на языке высокого уровня", - и Игорь написал программу, которая считывает этот шестнадцатиричный код из памяти и записывает его в конец какой-нибудь программы, которая при запуске на выполнение начинает печатать этот исходный текст.

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

…А потом он ещё что-то добавлял в свою программу, а потом ещё немного усовершенствовал её, и каждый раз ему казалось, что ещё чуть-чуть, и всё у него получится…

…А на самом деле его программа начала записывать саму себя в конец последней программы, запущенной на выполнение, а так, как Игорь запускал на выполнение то одну, то другую программу на своём компьютере, то скоро его программа записалась в конце всех этих программ, а кроме того, и в конце всех системных программ. При этом она искала последние исправные ячейки в памяти, записывала туда своё содержимое, а через некоторое время стирала его. Она записывалась на последние исправные свободные ячейки жесткого диска, ОЗУ, видеоОЗУ, а так как программа эта запускалась из различных программ, то из-за частой записи-стирания последние ячейки памяти через некоторое время вышли из строя. Тогда программа при очередной записи нашла следующие последние исправные свободные ячейки и записалась туда…

…Игорь почувствовал неладное только тогда, когда в нижней части экрана монитора появилась хаотическая мозаичная полоса, которая постепенно становилась всё шире и шире.

Copyrights and trademarks for the book, and other promotional materials are the property of their respective owners. Use of these materials are allowed under the fair use clause of the Copyright Law.