Текст книги "Just for Fun"
Автор книги: Линус Торвальдс
Жанр:
ОС и Сети
сообщить о нарушении
Текущая страница: 4 (всего у книги 17 страниц) [доступный отрывок для чтения: 7 страниц]
Меня бесило, что операционная система QL предназначалась только для чтения. Там ничего нельзя было изменить. Нет, там были выходы, где можно было передать управление какими-то функциями собственным программам, но только в определенных местах. Гораздо лучше, если в операционной системе можно заменять все. Дурацкая идея – записывать операционку в ПЗУ (постоянное запоминающее устройство).
Хоть я и сказал, что в Финляндии полно фанатов новых технологий, Sinclair QL не завоевал в этой седьмой по размерам стране Европы сколько-нибудь значительных позиций. И поскольку рынок был так мал, всякую обновку для этой революционной суперсовременной машины приходилось заказывать в Англии и получать по почте. Для этого надо было сначала прочесать каталоги в поисках продавца нужной штуки. Потом – добыть удостоверенный чек и неделями ждать доставки (это было до эры Amazon.com и кредитных карточек). Через все это мне пришлось пройти, когда я надумал увеличить ОЗУ со 128 до 640 килобайт. И мытарства повторились снова, когда я покупал новый ассемблер для перевода ассемблерных программ в машинный код (нули и единицы) и редактор связей, который по существу является текстовым процессором для программирования.
Новый ассемблер и редактор работали прекрасно, но они были на микроприводах и их нельзя было перенести на EEPROM. Поэтому я написал собственный редактор и ассемблер и дальше использовал только их.Обе программы были написаны на ассемблере, что кажется невероятно глупо по нынешним меркам. Это очень сложный и нудный процесс: решение задачи на ассемблере занимает раз в сто больше времени, чем, например, на Си (который тогда уже был).
Я добавил несколько команд к интерпретатору, который прилагался к машине. В результате, если я хотел что-то отредактировать, я автоматически запускал свой редактор – он всегда был под рукой. Мой редактор был быстрее входившего в комплект машины. Особенно я гордился скоростью вывода символов на экран. Обычно для машин такого класса экран заполняется символами так медленно, что видно, как прокручивается текст. А мой редактор выстреливал текст с такой скоростью, что при быстрой прокрутке экрана все сливалось. Для меня это было важно. Машина стала гораздо проворнее, и я знал, что вложил в это много труда.
В то время мало кто из моих знакомых так же увлекался компьютерами, как я. В школе был компьютерный клуб, но я там редко бывал. Туда ходили желающие познакомиться с компьютерами. Во всей моей гимназии было человек 250, не больше, и вряд ли кто-нибудь еще пользовался компьютером с десяти лет.
Мне очень нравилось программировать игры для Sinclair QL. Я переписывал для него свои любимые игры с VIC-20, иногда что-то добавляя. Но они редко становились лучше: машина была круче, идея же игры оставалась неизменной.
А вот свою, пожалуй, самую любимую игру – «Астероиды» – я так и не смог как следует скопировать. А все потому, что в то время во всех аркадных играх вроде «Астероидов» использовалась настоящая векторная графика. При этом вместо отдельных точек – пикселов – в основу графики клали принцип кинескопа, когда позади него помещают пушку, стреляющую электронами, которые отклоняются магнитами. При этом разрешение графики значительно повышается, но повторить ее очень трудно. Запрограммировать игру можно, но если делать это на компьютере, у которого нет специальных графических возможностей, то смотрится она убого.
Помню, как я программировал «Пакмана» на ассемблере. Прежде всего пришлось вспомнить, как: именно выглядят персонажи. Потом постараться нарисовать их в цвете на листке с сеткой 16 на 16. Если есть талант художника, то может выйти неплохо. Но у такого маляра, как я, получились лишь жалкие карикатуры на персонажей «Пакмана».
Так что мой клон был не фонтан. Но я им все равно гордился. Играть в него было можно, и я послал клон в один из журналов, печатавших компьютерные программы. Я уже продал некоторые свои программы другим журналам и думал, что и эта пойдет.
Но ошибся.
Прежде всего программа была написана на ассемблере. А это значит, что, если при набивке напечатанного в журнале текста сделать хоть малюсенькуюошибку, она не заработает.
Писал я и собственные игры. Но тут нужен особый склад ума. Для игр настолько важна производительность, что приходится залезать очень глубоко в аппаратное нутро компьютера. Это я мог, но мозги у меня не игрового плана. Сама по себе большая скорость или крутая графика еще не делают игру классной. Тут важнее всего какая-то зацепка – то, что заставляет в нее играть. Это как с кино. Спецэффекты – это вещь, но нужен еще и сюжет. А у моих игр сюжет всегда хромал. В игре важно развитие событий, идея. Часто развитие заключается в простом ускорении действия. Как, например, в «Пакмане». Иногда сменяется лабиринт или чудовища начинают все искуснее тебя ловить.
При программировании «Пакмана» меня увлекла такая задача: как сделать, чтобы картинка не мерцала. В старых компьютерных играх это был типичный дефект, потому что без специального оборудования персонажи непременно мерцают. Для того чтобы переместить героя, нужно убрать его старое изображение и нарисовать новое. При плохой синхронизации момент, когда изображения нет, становится заметен и картинка мигает. От этого можно избавляться разными путями. Например, вначале нарисовать нового персонажа, а потомубрать старого. Тут нужна осторожность: важно не стереть ту часть старой картинки, которая перекрывается новой. При этом вместо неприятного мерцания иногда возникает эффект тени персонажа на экране. Это гораздо лучше для восприятия: вместо мерцания появляется легкая размытость, которая создает иллюзию движения. Однако такое решение требует множества ресурсов, и пишутся такие программы
медленно.
Не случайно в играх всегда используются новейшие технологии и именно игры обычно привлекают начинающих программистов. Одна из причин в том, что среди самых головастых программистов немало пятнадцатилетних подростков, одиноко сражающихся с чудовищами. (Так я думал шестнадцать лет назад и по-прежнему подозреваю, что это так.) Но есть и другая причина: игры тянут за собой аппаратную часть.
У нынешних компьютеров скорости для всего хватает. Единственное, что напрягает оборудование до предела – это игры в реальном времени, например, популярные сегодня трехмерные приключения. По существу только в играх явно видно, когда что-то не происходит в реальном времени. При работе с текстом секунда там, секунда здесь – особого значения не имеют. Но в игре заметна даже задержка на одну десятую секунды. Раньше игры были довольно примитивными. Сегодня же само программирование составляет лишь незначительную часть игры. Есть музыка, есть сюжет. Если провести аналогию с кино, то программист сродни оператору.
На Sinclair QL я работал три года. За это время я кончил гимназию, поступил в Университет Хельсинки, прошел армию. Это был прекрасный компьютер, но наши пути начали расходиться. Примерно в последний год я начал замечать его ограниченность. Процессор 68008 был неплох, но я прочел о процессорах следующего поколения – 68020 – и узнал о таких достоинствах, как управление памятью и страничная подкачка. Новые компьютеры могли делать очень важные для программирования на низком уровне вещи.
В Sinclair QL меня особенно бесило, что, хотя операционная система поддерживала мультизадачность, все могло в любой момент рухнуть, потому что не было защиты памяти. Если какая-то задача замышляла недоброе, она могла угробить все сразу.
После выпуска Sinclair QL Клайв Синклер перестал заниматься разработкой и изготовлением компьютеров. Одна из причин: модель не имела коммерческого успеха. Это было интересное технологическое решение, но у компании возникли производственные проблемы, сбои в обеспечении качества, появились неизбежные нелестные отзывы в прессе. А кроме того, росла конкуренция на рынке.
В конце 80-х уже начало складываться представление, что со временем компьютер будет у каждого, хотя бы для работы с текстовым процессором. Причем на первый план стали выходить PC. Да, выпускавшиеся IBM компьютеры стали наводнять прилавки и приносить пользу, даже несмотря на свое техническое несовершенство. В конце концов эти вездесущие бежевые создания несли на себе печать качества IBM, а это многое значило. И еще один плюс: периферийные устройства были стандартными и продавались повсюду.
Я читал обо всех этих новых ЦП, которые моглиделать то, что мне нужно. Становилось ясно, что казавшийсяинтересным 68020 – это путь в никуда. Я мог бы купить для QL новый процессор. Но в те времена это означало коренную переделку машины. Да и операционка не ведала об управлении памятью, так что пришлось бы писать собственную версию. Поэтому вопрос стоял так: это был бы большой шаг вперед, но новый компьютер стоит дорого.
А покупка дополнений к моему компьютеру доставляла все больше головной боли. Нельзя было просто взять каталог для Sinclair QL, поднять трубку и заказать модуль памяти. Вся эта возня с получением посылки из Англии пахла нафталином. (Отсутствие готового ПО меня не волновало – его я и сам мог написать.)
Однако не было бы счастья, да несчастье помогло. Когда я задумал избавиться от машины, то решил продать периферию: дополнительное ОЗУ и настоящий жесткий диск, который купил, потому что не мог больше ни секунды терпеть микропривод. Но за этим оборудованием не охотились толпы жаждущих, поэтому пришлось дать объявление в компьютерный журнал, ждать и молиться. Вот так я и познакомился с моим другом Йоуко Виерумаки. Похоже, он был единственным в Финляндии владельцем Sinclair QL, кроме меня. Он откликнулся на мое объявление, приехал из Лахти на поезде и купил часть периферии. А потом научил меня играть в снукер.
II.На первом году моей учебы в университете Sinclair QL стоял у меня на столе возле окна (мы жили тогда на первом этаже, на Петерсгатан), но программированием я особо не занимался. Отчасти потому, что был полностью поглощен учебой. А еще я просто не смог найти задачу, которую можно было бы делать на компьютере. Когда нет интересной задачи, и желание программировать пропадает. Всегда нужен какой-то стимул.
Казалось, пришла пора пойти в армию (раз от этого все равно не уйти): мне – девятнадцать, недостатки компьютера раздражают, да и стоящих идей нет. Я сел на поезд и отправился в Лапландию.
Как я уже говорил, я совершенно не представлял себе, какие требования – в частности, к физической подготовке – предъявляет армия. Поэтому после одиннадцати месяцев физических упражнений с оружием я почувствовал себя в полном праве провести остаток жизни в блаженном бездействии. Я готов выполнять только два упражнения: нажимать на клавиши и обхватывать стакан пльзенского. (И на самом деле я не занимался спортом почти десять лет после демобилизации, пока Дэвид не вынудил меня поплясать на доске в убийственных волнах залива Хаф-Мун. Я тогда чуть не утонул, и ноги потом неделю болели.)
Служба в армии кончилась седьмого мая 1990 года. При том что (Туве подтвердит!) я никак не могу запомнить дату нашей свадьбы, день демобилизации я запомнил на всю жизнь.
Первым делом я решил завести кота.
У моего друга как раз за несколько недель до этого окотилась кошка, и я купил у него последнего оставшегося котенка – прекрасного белоснежного котика. Поскольку первые недели своей жизни он провел на воле, то был готов к жизни как внутри, так и вне квартиры моей матери. Я назвал его Ранди, сокращенно от Митрандир (белый маг из «Властелина колец»). Сейчас ему одиннадцать лет, и он вместе со своим владельцем совершенно освоился с жизнью в Калифорнии.
Не думаю, чтоб в то лето я делал что-то толковое. Занятий в университете не было до осени. Мой компьютер себя исчерпал. Поэтому я просто слонялся по дому в замызганном халате, возился с Ранди, а иногда встречался с друзьями, чтобы повеселить их своими попытками играть в кегли или в снукер. Ну и мечтал о будущем компьютере, конечно.
Передо мной стояла типичная для хакера проблема. Как всякий правоверный компьютерщик, взращенный на чипе 68008, я презирал PC. Но когда в 1986 году выпустили 386-й процессор, PC начали казаться привлекательными. Они могли делать все, что мог 68020, а к 1990 году массовое производство и появление недорогих клонов значительно снизило их цену. О стоимости я очень даже беспокоился, потому что денег у меня вообще не было. Поэтому, похоже, нужно было покупать именно PC. Поскольку PC процветали, их было несложно обновлять и дополнять: в продаже было все, что угодно. уж оборудование-то я всегда хотел иметь стандартное.
В итоге я решился на переход в другой лагерь. К тому же мне было интересно сменить ЦП. Тогда я и начал продавать части своего Sinclair QL.
У каждого есть книга, которая перевернула его жизнь. Священная Библия. «Капитал». «Вторники с Мори». «Все, что мне нужно, я узнал в детском саду». У каждого своя. (Искренне надеюсь, что – благодаря моей теории о смысле жизни – вашу жизнь перевернет эта книга.) Меня лично вдохновила на подвиги «Проектирование и реализация операционных систем» Эндрю С. Таненбаума.
Я уже выбрал себе курсы на осень и с нетерпением ждал лекций по языку Си и системе Unix. В предвкушении этих лекций я летом купил вышеупомянутый учебник, чтобы начать готовиться заранее. В этой книге Эндрю Таненбаум, университетский профессор из Амстердама, описывает Minix – учебную программу, которую он написал для обучения Unix. Minix представляет из себя миниатюрную Unix-систему. Как только я прочел предисловие, познакомился с концепцией Unix и узнал, на что способна эта мощная, строгая и красивая операционная система, я захотел купить такой компьютер, на котором сможет работать Unix. Я решил, что поставлю себе Minix – единственную по-настоящему полезную из известных мне версий.
Когда я начал понимать Unix, я страшно загорелся. Честно говоря – горю до сих пор. (Надеюсь, что и вы испытываете то же самое по отношению к чему-нибудь.)
III.Осенью 1990 года начался первый учебный год, когда в Университете Хельсинки заработала Unix. Эта мощная операционная система родилась в исследовательском центре Bell Labs компании AT&T в конце 60-х годов, но выросла в других местах. Когда я был на первом курсе, у нас стоял VAX с операционной системой VMS. Она была ужасна, про нее никто не сказал бы: «Вот бы и мне домой такую». Она вызывала иную реакцию: «Как вы умудрились сделать такое!»Ею было трудно пользоваться. В ней было мало инструментария. С ее помощью было сложно выходить в Интернет, который работал под Unix. Даже узнать, насколько велик файл, – и то было непросто. Надо признать, что для некоторых приложений – например, для баз данных – VMS была очень хорошо приспособлена. Но она была не из тех операционок, которые вызывают восторг.
В университете наконец поняли, что с ней пора кончать. В научном мире многие тогда увлеклись Unix, поэтому университет приобрел MicroVAX, на котором работала Ultrix – вариант Unix, созданный корпорацией Digital Equipment. Они захотели примериться к Unix.
Мне не терпелось поработать с Unix, чтобы поэкспериментировать с тем, что я узнал из книги Таненбаума. Сколько всего я мог бы сделать, если бы у меня была 386-я машина! Однако взять 18 тысяч финских марок на ее покупку мне было негде. Я знал, что с началом учебного семестра я смогу использовать свой Sinclair QL для выхода на новый университетский Unix-компьютер до тех пор, пока не куплю себе PC – машину, на которой можно будет установить Unix.
Поэтому тем летом я делал две вещи: бездельничал и читал «Проектирование и реализацию операционных систем». Эти 719 страниц в мягком красном переплете, можно сказать, поселились у меня в постели.
Университет Хельсинки размахнулся на 16-пользовательскую лицензию для MicroVAX. Это значило, что прием на курс «Си и Unix» ограничивался 32 студентами – видимо, предполагалось, что 16 человек будут использовать ее днем и 16 – вечером. Преподавателю, как и всем нам, Unix была в новинку. Он сразу же об этом сказал, так что проблем не было. Но он обычно знал материал своего курса на одну главу вперед, а студенты иногда уходили вперед главы на три. Это стало своего рода игрой: студенты пытались подловить преподавателя, задавая ему вопросы по будущему материалу, чтобы выяснить, читал он его или нет.
Все мы были младенцами в дебрях Unix; курс создавался по ходу нашего обучения. Однако из него было ясно, что за Unix стоит своя особая философия. Это становилось понятно после первого же часа занятий. В остальное время объяснялись подробности.
Unix характерна тем, что она утверждает некоторые базовые ценности. Это цельная и красивая операционная система. Она избегает особых случаев. В Unix есть понятие процесса: процесс – это все, что что-нибудь делает. Простой пример. В Unix команда оболочки, которую вводят, чтобы войти в систему, не встроена в операционку, как в DOS. Это просто задание. Ничем не отличающееся от остальных. Просто это задание читает с клавиатуры и пишет на монитор. В Unix все, что что-то делает, – процесс. А еще там есть файлы.
Простота структуры Unix всегда поражала меня, как и большинство людей (ну по крайней мере – нас, хакеров). Почти все, что делается в Unix, выполняется с помощью шести базовых операций (называемых «системными вызовами», потому что они представляют из себя вызовы системы для выполнения тех или иных действий), А уж из этих шести базовых вызовов можно построить почти все на свете.
Одной из фундаментальных операций Unix является «операция порождения (fork)». Выполняя «fork», процесс создает свою точную копию. Таким образом вы получаете две идентичные копии. Порожденная копия чаще всего выполняетдругой процесс – заменяет себя новой программой. Это вторая базовая операция. Оставшиеся четыре вызова – open (открыть), close (закрыть), read (читать) и write (писать) – предназначены для доступа к файлам. Эти шесть системных вызовов представляют собой простые операции, из которых и состоит Unix.
Конечно, есть еще куча других системных вызовов, которые осуществляют детализацию. Но если вы поняли шесть базовых – вы поняли Unix. Потому что одна из прелестей Unix в том, что для создания сложных вещей не нужны сложные интерфейсы. Любого уровня сложности можно достичь за счет сочетания простых вещей. Для решения сложной проблемы нужно лишь создать связи («каналы» в терминологии Unix) между простыми процессами.
Уродство, когда для любого действия у системы есть специальный интерфейс. В Unix – все наоборот. Она предоставляет строительные блоки, из которых можно создать что угодно. Вот что такое стройная архитектура.
То же самое с языками. В английском 26букв, и с их помощью можно написать все. А в китайском для каждой мыслимой вещи – своя буква. В китайском вы сразу же получаете в свое распоряжение сложные вещи, которые можно комбинировать ограниченным образом. Это больше напоминает подход VMS: есть множество сложных вещей с интересным смыслом, которые можно использовать только одним способом. И в Windows то же самое.
В Unix, напротив, основная идея: «Чем меньше, тем красивее». Здесь есть небольшой набор простых базовых строительных блоков, из которых можно строить бесконечно сложные конструкции.
Именно так, кстати, обстоит дело и в физике. Эксперименты позволяют открыть фундаментальные законы, которые, как предполагается, крайне просты. Сложность мира возникает за счет множества удивительных взаимосвязей, которые можно вывести из этих простых законов, а не из внутренней сложности самих законов.
Простота Unix не возникла сама по себе. Unix со своей концепцией простых строительных блоков была кропотливо разработана Деннисом Ричи и Кеном Томпсоном в Bell Labs компании AT&T. Простоту вовсе не следует отождествлять с легкостью. Простота требует проектированияи хорошего вкуса.
Если вернуться к примеру с языками, то пиктографическое письмо – например, египетские или китайские иероглифы – обычно древнее и кажется «примитивнее», а подход, использующий строительные блоки, требует гораздо более абстрактного мышления. Точно так же и простоту Unix не следует путать с отсутствием изощренности – совсем наоборот.
Из этого вовсе не следует, что создание Unix было вызвано какими-то сложными причинами. Как часто бывает в компьютерной области, все началось с игр. Нужно было, чтобы кто-то захотел играть в компьютерные игры на PDP-11. Именно из этого выросла Unix – из персонального проекта Денниса и Кена, пожелавших играть в «Звездные войны». А поскольку этот проект никто не воспринимал всерьез, AT&T не занималась коммерческим применением Unix. AT&T была регулируемой монополией и все равно не могла, например, продавать компьютеры. Поэтому создатели Unix стали бесплатно предоставлять ее вместе с лицензиями на исходные тексты всем желающим, в особенности университетам. Они относились к этому просто.
В результате Unix получила широкое распространение в университетских кругах. К моменту произошедшего в 1984 году разделения (В 1984 году телефонная составляющая AT&T – Bell System – по решению суда была разбита на 7 региональных компаний Bell. – Прим. пер), когда AT&T получила наконец право заняться компьютерным бизнесом, университетские специалисты (в частности, сотрудники Калифорнийского университета в Беркли) уже в течение нескольких лет работали над усовершенствованием Unix под руководством таких корифеев, как Билл Джой и Маршал Кирк Маккусик. При этом многие не утруждались документированием своей деятельности.
Однако к началу 90-х Unix стала операционной системой номер один для всех суперкомпьютеров и серверов. Бизнес приобрел огромные масштабы. При этом, к несчастью, существовало великое множество конкурирующих версий этой системы. В основе одних лежала базовая разработка AT&T (так называемые варианты «System V»), которая была относительно контролируемой. Другие создавались на основе кода BSD (Berkeley Software Distribution), созданного в Калифорнийском университете в Беркли. А некоторые представляли из себя смесь обеих систем.
Одна из разработок на базе BSD заслуживает особого упоминания. Это проект 386BSD, выполненный Биллом Джолицем на основе кода BSD и распространявшийся через Интернет. Позднее он разделился и породил бесплатные BSD-версии: NetBSD, FreeBSD и OpenBSD. Он вызывал большой интерес в Unix-сообществе.
Поэтому AT&T внезапно спохватилась и подала в суд на Калифорнийский университет в Беркли. Исходный код принадлежал AT&T, но в дальнейшем большая часть работы была выполнена в Беркли. Руководители Калифорнийского университета утверждали, что университет имел право распространять или продавать за символическую плату свою версию Unix. Они продемонстрировали, что сотрудники университета проделали очень большую работу и фактически переписали все, что было предоставлено корпорацией AT&T. Судебный процесс закончился соглашением после того, как корпорация Novell купила Unix у AT&T. В основном из системы должны были быть исключены части, выпущенные AT&T.
Вся эта юридическая возня пошла на пользу новому отпрыску Unix, дав ему время возмужать и распространиться по миру. По существу она позволила Linux завоевать рынок. Но я забегаю вперед.
Раз уж я все равно отклонился, то хочу кое-что объяснить.
У Unix сложилась репутация магнита, притягивающего сдвинутых маргиналов компьютерного мира. Оспаривать эту репутацию не имеет смысла. Она справедлива.
Честно говоря, вокруг Unix действительнособралось много чокнутых. Я не имею в виду тех, кто рассылает угрожающие письма. Или тех, кто травит соседских собак. Просто люди с оченьальтернативным образом жизни.
Вспомните: ведь Unix зародилась в конце 60-х – начале 70-х, когда я спал в бельевой корзинке в квартире бабушки с дедушкой. Ее создавали технари из поколения «дети—цветы». Идея свободы Unix в большей степени связана с духом той эпохи, чем с самой операционной системой. Это было время безудержного идеализма. Революция. Свобода от власти. Свободная любовь (с этим я пролетел – да и что бы я с ней делал?). И относительная открытость Unix, пусть и объяснявшаяся отсутствием на тот момент коммерческих интересов, привлекала к системе людей такого типа.
Впервые я столкнулся с этой стороной Unix году в 1991-м, когда Ларе Вирцениус затащил меня на собрание в Техническом университете Хельсинки (который, как всем известно, расположен не в самом Хельсинки, а по другую сторону границы – в Эспо. Они просто хотят ассоциироваться со знаменитым Хельсинки, хотя бы только по названию). Выступал Ричард Столман.
Ричард Столман – это бог свободного ПО. Он начал работать над альтернативой Unix в 1984 году, назвав ее системой GNU. GNU – это аббревиатура для «GNU is Not Unix», один из многих рекурсивных акронимов, в которых одна из букв обозначает сам акроним – типичная компьютерная шуточка, недоступная посторонним. С нами – хакерами – не соскучишься.
Еще важнее, что РМС (как он сам себя называет) написал Манифест свободного программного обеспечения и лицензию на бесплатное распространение ПО – Универсальную общественную лицензию (GPL). По существу именно он ввел понятие намеренного бесплатного распространения исходников в противовес их случайному распространению, которое первоначально имело место при разработке Unix.
Честно говоря, я не вникал во все эти социально-политические вопросы, которые были – и есть – так милы сердцу РМС. Я даже не очень-то знал о созданном им Фонде свободного ПО и его целях. Раз я почти ничего не помню из его выступления в 1991 году, похоже, оно не повлияло на мою жизнь. Я интересовался программированием, а не политикой – политики мне и дома хватало. Но Ларе был идеологом, а я потащился за ним.
Ричард был первым в моей жизни классическим длинноволосым бородатым хакером. У нас в Хельсинки таких мало.
Может, я и не проникся полностью, но что-то из его речи, видимо, запало мне в душу. В конце концов, я ведь использовал GPL для Linux. Ну вот – я снова забегаю вперед.