Библиотека | Разное | Рассказ "Нечаянного Революционера"
Она стоила 169 долларов, плюс налоги, плюс затраты на конвертацию, плюс всякое-разное. В то время я считал это грабежом. Честно говоря, и сейчас так считаю. Месяц ожидания прошел для меня, как шесть лет. Я мучился еще больше, чем когда месяцами копил деньги на компьютер.
Дело было в самый разгар зимы. Выбираясь из своей берлоги во внешний мир, я каждый раз рисковал, что меня столкнет в снег какая-нибудь старушка, которой бы лучше сидеть дома и варить щи или смотреть по телику хоккей и вязать, а не слоняться по Маннерхейминти. Весь тот месяц я играл в "Принца Персии" на новом компьютере. Или читал книжки, чтобы понять, как он работает.
Наконец, в пятницу днем Minix прибыла, и в тот же вечер я ее установил. Для этого пришлось вставить в компьютер поочередно шестнадцать дискет. Все выходные ушли на освоение новой системы. Я разобрался в ее достоинствах и - что важнее - в недостатках. Их я старался компенсировать, перенося домой те программы, к которым привык в университете. Примерно за месяц я обжился полностью.
Эндрю Таненбаум - тот амстердамский профессор, который написал Minix, - хотел, чтобы система оставалась учебным инструментом. Поэтому она была намеренно изуродована. Существовали заплатки - то есть усовершенствования к Minix, в том числе знаменитая заплатка австралийского хакера Брюса Эванса (это был царь и бог Minix 386). С его заплаткой Minix на 386-м становилась намного лучше. Я начал читать телеконференцию по Minix в онлайне еще до покупки нового компьютера, поэтому с самого начала знал, что хочу установить именно усовершенствованную версию Эванса. Но из-за лицензионных ограничений пришлось сначала купить исходную версию Minix, а потом изрядно повозиться, приделывая заплатки Эванса. Это было целое дело.
У меня возникло множество претензий к Minix. Хуже всего была эмуляция терминала, очень важная для меня программа, потому что именно ее я использовал для подключения к университетскому компьютеру. Я зависел от этой эмуляции каждый раз, когда связывался с университетским компьютером, чтобы поработать с мощной Unix-системой или просто выйти в онлайн.
Пришлось писать собственную программу эмуляции. Я peшил не подстраивать ее под Minix, а опираться прямо на аппаратный уровень. Разработка программы позволяла, кроме всего прочего, детально изучить работу 386-го. Как я уже сказал, в Хельсинки стояла зима. У меня был крутой компьютер. Важнее всего было разобраться, что эта машина может, и использовать эти возможности в свое удовольствие.
Поскольку я программировал на голом железе, мне пришлось начать с BIOS - самой первой программы из ПЗУ, с которой начинается загрузка. BIOS начинает считывать информацию либо с дискеты, либо с жесткого диска. Я поместил свою программу на дискету. BIOS считывает первый сектор дискеты и начинает его выполнять. Я впервые работал с PC, и мне надо было разобраться, как все это делается. Все происходит в так называемом "реальном режиме". Но для того чтобы воспользоваться всеми возможностями ЦП и его 32-разрядностью, нужно было войти в "защищенный режим". А для этого нужно задать кучу разных параметров.
Поэтому для построения программы эмуляции терминала таким путем нужно было знать, как работает ЦП. Отчасти именно поэтому я писал на ассемблере - хотел разобраться в ЦП. Еще нужно было знать, как писать на экран, как читать с клавиатуры, как читать с модема и писать на него. (Надеюсь, я еще не распугал тех своих читателей-неспециалистов, которые мужественно отказались перескочить на страницу 142.)
Я хотел иметь два независимых процесса. Один должен был читать информацию с модема и выдавать ее на экран. А другой - читать с клавиатуры и отправлять модему. Для этого я хотел использовать два двусторонних канала. Это называется переключением задач, и аппаратная часть 386-го его поддерживает. Я был в восторге от своего плана.
Моя первая тестовая программа использовала один процесс для выдачи на экран буквы А, а другой - для выдачи буквы В. (Звучит тоскливо - я знаю.) Я запрограммировал это так, чтобы каждую секунду писалось несколько букв. С помощью прерывания по таймеру я сделал так, что сначала экран заполнялся ААААААА. Потом неожиданно буквы сменялись на ВВВВВВВВВ. С практической точки зрения это было абсолютно бессмысленно, но зато становилось очевидно, что переключение работает. На это у меня ушел почти месяц, потому что во всем приходилось разбираться с нуля.
В конце концов я научился переключать процессы (АААААААА и ВВВВВВВ) так, чтобы один читал с модема и писал на экран, а другой - читал с клавиатуры и писал на модем. У меня появилась собственная программа эмуляции терминала.
Когда я хотел почитать новости, я вставлял дискету и перезагружал машину, чтобы с помощью своей программы прочесть новости с университетского компьютера. Если же я хотел внести усовершенствования в пакет эмуляции терминала, я загружал Minix и использовал ее для программирования.
Я был очень горд.
Моя сестра Сара была в курсе моих достижений. Я позвал ее, и она секунд пять посмотрела на мои АААААА и ВВВВВВ, потом сказала: "Хорошо", и ушла, оставшись совершенно равнодушной. Я понял, что это не впечатляет. Никому не объяснишь, что под внешней незатейливостью могут скрываться сложные глубинные процессы. Примерно так же глупо, как демонстрировать кусок дороги, который только что покрыл гудроном. Кажется, я похвастался своими успехами еще только одному человеку - Ларсу. Это был второй шведскоговорящий студент, который специализировался по компьютерным наукам и поступил в один год со мной.
Мне не было дела, стоит на дворе март или апрель, тает снег на Петерсгатан или нет. Большую часть времени я сидел в халате, лихорадочно приникнув к своему новому страховидному компьютеру в комнате с плотными черными шторами на окне, отгороженный от солнечного света и вообще от внешнего мира. Я с трудом наскребал деньги на ежемесячные платежи за свой ПК, которые были рассчитаны на три года. Я еще не знал, что платить мне осталось всего год. А через год я уже буду автором Linux, которую увидят не только Сара и Ларе, а куча разных людей. И Петер Энвин, с которым мы теперь вместе работаем в Transmeta, объявит в Интернете подписку для оплаты моего компьютера.
Все знали, что на Linux я ничего не зарабатываю. Все просто сказали: "А давайте скинемся Линусу на компьютер".
Это было классно.
У меня совершенно не было денег. Мне всегда казалось очень важным не требовать и не просить денег, но когда мне их просто дали... ну слов нет.
Вот так начиналась Linux. С превращения тестовой программы в пакет эмуляции терминала.
Журнал "Red Herring" посылает меня в Финляндию, чтобы я написал об Оулу, новом центре высоких технологий, где, несмотря на отпугивающее местоположение (несколько часов езды от Полярного круга), разместилась 141 начинающая компания. Прекрасная возможность встретиться в Хельсинки с родителями Линуса и сестрой Сарой.
Его отец Нильс (которого все зовут Пике) встречает меня в холле гостиницы "Сокос Ваакуна", напротив вокзала. Он подтянут, носит очки с толстыми стеклами и
Дело было в самый разгар зимы. Выбираясь из своей берлоги во внешний мир, я каждый раз рисковал, что меня столкнет в снег какая-нибудь старушка, которой бы лучше сидеть дома и варить щи или смотреть по телику хоккей и вязать, а не слоняться по Маннерхейминти. Весь тот месяц я играл в "Принца Персии" на новом компьютере. Или читал книжки, чтобы понять, как он работает.
Наконец, в пятницу днем Minix прибыла, и в тот же вечер я ее установил. Для этого пришлось вставить в компьютер поочередно шестнадцать дискет. Все выходные ушли на освоение новой системы. Я разобрался в ее достоинствах и - что важнее - в недостатках. Их я старался компенсировать, перенося домой те программы, к которым привык в университете. Примерно за месяц я обжился полностью.
Эндрю Таненбаум - тот амстердамский профессор, который написал Minix, - хотел, чтобы система оставалась учебным инструментом. Поэтому она была намеренно изуродована. Существовали заплатки - то есть усовершенствования к Minix, в том числе знаменитая заплатка австралийского хакера Брюса Эванса (это был царь и бог Minix 386). С его заплаткой Minix на 386-м становилась намного лучше. Я начал читать телеконференцию по Minix в онлайне еще до покупки нового компьютера, поэтому с самого начала знал, что хочу установить именно усовершенствованную версию Эванса. Но из-за лицензионных ограничений пришлось сначала купить исходную версию Minix, а потом изрядно повозиться, приделывая заплатки Эванса. Это было целое дело.
У меня возникло множество претензий к Minix. Хуже всего была эмуляция терминала, очень важная для меня программа, потому что именно ее я использовал для подключения к университетскому компьютеру. Я зависел от этой эмуляции каждый раз, когда связывался с университетским компьютером, чтобы поработать с мощной Unix-системой или просто выйти в онлайн.
Пришлось писать собственную программу эмуляции. Я peшил не подстраивать ее под Minix, а опираться прямо на аппаратный уровень. Разработка программы позволяла, кроме всего прочего, детально изучить работу 386-го. Как я уже сказал, в Хельсинки стояла зима. У меня был крутой компьютер. Важнее всего было разобраться, что эта машина может, и использовать эти возможности в свое удовольствие.
Поскольку я программировал на голом железе, мне пришлось начать с BIOS - самой первой программы из ПЗУ, с которой начинается загрузка. BIOS начинает считывать информацию либо с дискеты, либо с жесткого диска. Я поместил свою программу на дискету. BIOS считывает первый сектор дискеты и начинает его выполнять. Я впервые работал с PC, и мне надо было разобраться, как все это делается. Все происходит в так называемом "реальном режиме". Но для того чтобы воспользоваться всеми возможностями ЦП и его 32-разрядностью, нужно было войти в "защищенный режим". А для этого нужно задать кучу разных параметров.
Поэтому для построения программы эмуляции терминала таким путем нужно было знать, как работает ЦП. Отчасти именно поэтому я писал на ассемблере - хотел разобраться в ЦП. Еще нужно было знать, как писать на экран, как читать с клавиатуры, как читать с модема и писать на него. (Надеюсь, я еще не распугал тех своих читателей-неспециалистов, которые мужественно отказались перескочить на страницу 142.)
Я хотел иметь два независимых процесса. Один должен был читать информацию с модема и выдавать ее на экран. А другой - читать с клавиатуры и отправлять модему. Для этого я хотел использовать два двусторонних канала. Это называется переключением задач, и аппаратная часть 386-го его поддерживает. Я был в восторге от своего плана.
Моя первая тестовая программа использовала один процесс для выдачи на экран буквы А, а другой - для выдачи буквы В. (Звучит тоскливо - я знаю.) Я запрограммировал это так, чтобы каждую секунду писалось несколько букв. С помощью прерывания по таймеру я сделал так, что сначала экран заполнялся ААААААА. Потом неожиданно буквы сменялись на ВВВВВВВВВ. С практической точки зрения это было абсолютно бессмысленно, но зато становилось очевидно, что переключение работает. На это у меня ушел почти месяц, потому что во всем приходилось разбираться с нуля.
В конце концов я научился переключать процессы (АААААААА и ВВВВВВВ) так, чтобы один читал с модема и писал на экран, а другой - читал с клавиатуры и писал на модем. У меня появилась собственная программа эмуляции терминала.
Когда я хотел почитать новости, я вставлял дискету и перезагружал машину, чтобы с помощью своей программы прочесть новости с университетского компьютера. Если же я хотел внести усовершенствования в пакет эмуляции терминала, я загружал Minix и использовал ее для программирования.
Я был очень горд.
Моя сестра Сара была в курсе моих достижений. Я позвал ее, и она секунд пять посмотрела на мои АААААА и ВВВВВВ, потом сказала: "Хорошо", и ушла, оставшись совершенно равнодушной. Я понял, что это не впечатляет. Никому не объяснишь, что под внешней незатейливостью могут скрываться сложные глубинные процессы. Примерно так же глупо, как демонстрировать кусок дороги, который только что покрыл гудроном. Кажется, я похвастался своими успехами еще только одному человеку - Ларсу. Это был второй шведскоговорящий студент, который специализировался по компьютерным наукам и поступил в один год со мной.
Мне не было дела, стоит на дворе март или апрель, тает снег на Петерсгатан или нет. Большую часть времени я сидел в халате, лихорадочно приникнув к своему новому страховидному компьютеру в комнате с плотными черными шторами на окне, отгороженный от солнечного света и вообще от внешнего мира. Я с трудом наскребал деньги на ежемесячные платежи за свой ПК, которые были рассчитаны на три года. Я еще не знал, что платить мне осталось всего год. А через год я уже буду автором Linux, которую увидят не только Сара и Ларе, а куча разных людей. И Петер Энвин, с которым мы теперь вместе работаем в Transmeta, объявит в Интернете подписку для оплаты моего компьютера.
Все знали, что на Linux я ничего не зарабатываю. Все просто сказали: "А давайте скинемся Линусу на компьютер".
Это было классно.
У меня совершенно не было денег. Мне всегда казалось очень важным не требовать и не просить денег, но когда мне их просто дали... ну слов нет.
Вот так начиналась Linux. С превращения тестовой программы в пакет эмуляции терминала.
Журнал "Red Herring" посылает меня в Финляндию, чтобы я написал об Оулу, новом центре высоких технологий, где, несмотря на отпугивающее местоположение (несколько часов езды от Полярного круга), разместилась 141 начинающая компания. Прекрасная возможность встретиться в Хельсинки с родителями Линуса и сестрой Сарой.
Его отец Нильс (которого все зовут Пике) встречает меня в холле гостиницы "Сокос Ваакуна", напротив вокзала. Он подтянут, носит очки с толстыми стеклами и