Читаем Just for fun. Рассказ нечаянного революционера полностью

From: torvalds@klaava.Helsinki.Fi (Linus Benedict Torvalds)

To: Newsgroup: comp.os.minix

Subject: Gcc-1.40 и вопрос о posix

Message-ID: <1991 Ju 13,100050. 9886@klaava.Helsinki.Fi>

Date: 3 Jul 91 10:00:50 GMT

Привет, сетяне!

Я сейчас делаю один проект (под minix), и мне нужно определение стандартов posix. Кто-нибудь знает, где можно взять их последнюю версию, желательно в электронном виде? Ftp-сайты годятся.


Это самое раннее публичное свидетельство того, что некий хакер из Финляндии хочет проверить границы своих возможностей. Стандарты POSIX – это подробнейшие правила для каждого из сотен системных вызовов в Unix – что нужно для того, чтобы заставить компьютер выполнить эту операцию, начиная с Read, Write, Open и Close. Они вырабатываются специальной организацией, состоящей из представителей компаний, которые хотят договориться об общих стандартах для Unix. Стандарты нужны для того, чтобы программисты могли писать приложения, которые будут работать под разными версиями Unix. Из списка системных вызовов, особенно наиболее важных, я хотел узнать, какие функции нужны операционной системе. После этого я смог бы написать свои собственные коды для выполнения всех этих функций. А соответствие стандартам POSIX позволило бы другим, людям пользоваться моими программами.

В то время я не знал, что печатную версию этих стандартов можно было купить непосредственно у разработчиков POSIX, но это в любом случае не имело значения. Даже если бы покупка была мне по карману, пересылка книги в Финляндию заняла бы слишком много времени. Поэтому я и просил указать версию, которую можно бесплатно скачать с FTP-сайта.

На мой вопрос о стандартах POSIX никто не ответил, поэтому я перешел к запасному плану. Я стал исследовать документацию Unix версии Sun Microsystems – эта система стояла на университетском сервере. Там нашлась базовая версия системных вызовов – для начала мне этого было достаточно. Можно было посмотреть, что должны делать системные вызовы, а потом заняться их реализацией. В документации не говорилось, как получить результат, просто показывалось, каким он должен быть. Часть системных вызовов мне удалось откопать в книге Эндрю Таненбаума и в некоторых других. В конце концов кто-то прислал мне толстые тома со стандартами POSIX.

Однако мое сообщение не прошло незамеченным. Каждый знающий человек (а кто еще станет читать сайт Minix?) понял, что я пишу операционную систему. Иначе зачем бы мне понадобились правила POSIX? Мое сообщение вызвало любопытство Ари Лемке, преподавателя из Технического университета Хельсинки (где бы я непременно стал учиться, если бы меня не так привлекали теоретические занятия). Ари по-дружески обратился ко мне, предложив выделить на университетском FTP-сервере каталог, в который я смогу поместить свою операционную систему, когда она будет готова, чтобы каждый при желании мог ее оттуда скачать.

VII

Похоже, Ари Лемке страдал излишним оптимизмом. Он создал каталог (ftp.funet.fi) задолго до того, как у меня появилось что туда положить. У меня был пароль, и все было готово для того, чтобы я мог просто войти в систему и закачать свою программу. Но прошло долгих четыре месяца, прежде чем мне захотелось чем-нибудь поделиться с миром или хотя бы с Ари и несколькими другими фанатами операционных систем, с которыми я переписывался.

Исходно я хотел написать такую операционку, которую мог бы использовать вместо Minix. Мне не нужно было, чтобы она могла делать больше, чем Minix, но она должна была выполнять те функции Minix, которыми я пользовался, а также кое-что еще. Например, в Minix не только была плохая эмуляция терминала, но и не было возможности перевести в фоновый режим программу, которой временно не пользуешься. И управление памятью было очень упрощенным – в Mac OS оно и сейчас такое, кстати.

Как создать операционку? Надо выяснить, что должны делать системные вызовы, и написать программы, которые будут это делать. Вообще говоря, системных вызовов около двух сотен. Некоторые из них могут соответствовать целому набору функций. Другие – совсем просты. Наиболее фундаментальные системные вызовы могут быть весьма сложными и в значительной мере зависят от имеющейся инфраструктуры. Возьмем системные вызовы Write (запись) и Read (чтение). Для записи на диск и чтения с диска нужно создать драйвер дисковода. Возьмем вызов Open (открыть). Нужно создать весь уровень файловой системы, который будет анализировать имена и определять, где что лежит на диске. На один этот системный вызов ушло несколько месяцев. Но когда он был уже готов, тот же самый программный код можно было использовать и для других функций.

Перейти на страницу:

Похожие книги

10 гениев бизнеса
10 гениев бизнеса

Люди, о которых вы прочтете в этой книге, по-разному относились к своему богатству. Одни считали приумножение своих активов чрезвычайно важным, другие, наоборот, рассматривали свои, да и чужие деньги лишь как средство для достижения иных целей. Но общим для них является то, что их имена в той или иной степени становились знаковыми. Так, например, имена Альфреда Нобеля и Павла Третьякова – это символы культурных достижений человечества (Нобелевская премия и Третьяковская галерея). Конрад Хилтон и Генри Форд дали свои имена знаменитым торговым маркам – отельной и автомобильной. Биографии именно таких людей-символов, с их особым отношением к деньгам, власти, прибыли и вообще отношением к жизни мы и постарались включить в эту книгу.

А. Ходоренко

Карьера, кадры / Биографии и Мемуары / О бизнесе популярно / Документальное / Финансы и бизнес
Афганистан. Честь имею!
Афганистан. Честь имею!

Новая книга доктора технических и кандидата военных наук полковника С.В.Баленко посвящена судьбам легендарных воинов — героев спецназа ГРУ.Одной из важных вех в истории спецназа ГРУ стала Афганская война, которая унесла жизни многих тысяч советских солдат. Отряды спецназовцев самоотверженно действовали в тылу врага, осуществляли разведку, в случае необходимости уничтожали командные пункты, ракетные установки, нарушали связь и энергоснабжение, разрушали транспортные коммуникации противника — выполняли самые сложные и опасные задания советского командования. Вначале это были отдельные отряды, а ближе к концу войны их объединили в две бригады, которые для конспирации назывались отдельными мотострелковыми батальонами.В этой книге рассказано о героях‑спецназовцах, которым не суждено было живыми вернуться на Родину. Но на ее страницах они предстают перед нами как живые. Мы можем всмотреться в их лица, прочесть письма, которые они писали родным, узнать о беспримерных подвигах, которые они совершили во имя своего воинского долга перед Родиной…

Сергей Викторович Баленко

Биографии и Мемуары