что такое проект gnu
Что такое проект gnu
GNU — единственная операционная система, разработанная специально для того, чтобы дать ее пользователям свободу. Что такое GNU, и о какой свободе идет речь?
Что такое GNU?
GNU — операционная система типа Unix, программы которой свободны — они уважают вашу свободу. Операционная система GNU состоит из пакетов GNU (программ, выпускаемых собственно проектом GNU), а также свободных программ, выпускаемых другими лицами. Разработка GNU сделала возможной пользование компьютером без программ, которые растоптали бы вашу свободу.
Мы рекомендуем версии GNU для установки (точнее, дистрибутивы GNU/Linux), полностью состоящие из свободных программ. Подробнее о GNU см. ниже.
Trisquel 9 с оконной системой MATE и проигрывателем записей VLC
Что такое движение за свободные программы?
Движение за свободные программы борется за то, чтобы завоевать для пользователей вычислительной техники свободу, которую дают свободные программы. Свободные программы передают своим пользователям контроль над их собственными вычислениями. Несвободные программы отдают своих пользователей во власть разработчика программ. См. объяснение на видео.
Что такое свободные программы?
Свобода программы означает, что у пользователей есть свобода выполнять, копировать, изучать, править и улучшать программу.
Понятие “свободная программа” относится к свободе, а не к стоимости. Чтобы верно воспринимать эту концепцию, слово “свободный” следует понимать в том смысле, который заключается в выражении “вольная речь”, а не “бесплатное пиво”.
Более точно, свободная программа означает, что у ее пользователей есть четыре существенных свободы:
Развитие техники и вычислительных сетей сделали эти свободы еще важнее сейчас, чем они были в 1983 году.
В наши дни движение за свободные программы идет гораздо дальше разработки системы GNU. На сайте Фонда свободного программного обеспечения описано подробнее, что делаем мы, и какими способами можете помочь вы.
Подробнее о GNU
GNU — операционная система типа Unix. Это значит, что она представляет собой собрание множества программ: приложений, библиотек, средств разработки и даже игр. Многие программы в GNU выпускаются под эгидой проекта GNU; их мы называем пакетами GNU.
Название “GNU” — это рекурсивное сокращение фразы “ GNU’s Not Unix! ” (“GNU — не Unix!”). “GNU” произносится как гну, одним слогом, как глагол “гнуть” в первом лице, единственном числе настоящего времени изъявительного наклонения.
В системе типа Unix программа, которая выделяет машинные ресурсы и общается с аппаратурой, называется “ядром”. GNU, как правило, применяется сегодня с ядром, называемым “Linux”. Эта комбинация является операционной системой GNU/Linux. Миллионы людей пользуются GNU/Linux, хотя многие ошибочно называют ее “Linux”.
Работы над собственным ядром GNU, Hurd, начались в 1990 году (до начала работ над Linux). Добровольцы продолжают развивать Hurd, поскольку это представляет технический интерес.
В этом выбери году в качестве подарка свободу. Вот руководство по этичным техническим подаркам.
Если вы студент или слушатель и вам противно, когда вас принуждают пользоваться несвободными программами в учебном заведении, то вот вам возможность изменить положение — скажите учебному заведению, что вы этого не хотите. Будьте вежливы с персоналом, но покажите, насколько это для вас важно.
GNU и FSF переводят официальные каналы IRC в сеть Libera.Chat. Читайте полное объявление с последующим дополнением.
Проект GNU поддерживает петицию Фонда свободного программного обеспечения, призывающую администрацию учебных заведений по всему миру прекратить требовать от студентов работы с несвободными программами. Подпиши петицию за свободу в классе.
Проект GNU настоятельно призывает сообщество общаться дружелюбно, приветливо и доброжелательно. См. Рекомендации GNU по общению в проекте.
Выпущен GNU Parallel 20211122 (‘Peng Shuai’) [стабильный] : Выпущен GNU Parallel 20211122 (‘Peng Shuai’) [стабильный]. Он доступен на.
Инициализация глобальных переменных в C++ Сегодня мы с Фолькером Бирком (https://fdik.org) за обедом говорили об инициализации.
Действуйте!
Могли бы вы помочь в какой-нибудь из этих приоритетных областей?
Подробности см. на страницах сайтов пакетов.
Inklingreader
GNU InklingReader — пакет программ для поддержки устройства Wacom Inklin, в том числе преобразования в различные свободные форматы, основных возможностей редактирования и подключения Inkscape. (док)
Национальная библиотека им. Н. Э. Баумана
Bauman National Library
Персональные инструменты
GNU Project
Текущая работа проекта GNU включает в себя разработку программного обеспечения, повышение осведомлённости, проведение политических кампаний и раздачу новых материалов.
«Наша задача— сохранение, защита и поддержка свободы использования, изучения, модификации, копирования и распространения компьютерных программ, а также защита прав пользователей свободных программ».
Содержание
Об операционной системе GNU
Обзор системы GNU
Операционная система GNU— это полная свободная программная система, совместимая снизу вверх с Unix. GNU означает “GNU— это не Unix”. Ричард Столмен сделал “Первоначальное объявление” о проекте GNU в сентябре 1983 года. Более длинная версия под названием “Манифест GNU” была опубликована в марте 1985 года. Она была переведена на несколько других языков. Название “GNU” было выбрано потому, что оно отвечало нескольким требованиям; во-первых, это было рекурсивное сокращение, означающее “GNU— это не Unix”, во-вторых, потому что это настоящее слово, и в-третьих, его забавно говорить (или петь). Слово “свободная” относится к свободе, а не к цене. Может быть, вы заплатите за то, чтобы получить программы GNU, а может быть, и нет. В любом случае, как только вы получаете программу, вы получаете четыре особые свободы в ее использовании: свободу выполнять программу, как вам угодно; свободу копировать программу и раздавать ее знакомым или сотрудникам; свободу править программу, как вам угодно, имея полный доступ к исходному тексту; свободу распространять улучшенную версию и таким образом способствовать образованию сообщества. (Если вы перераспространяете программы GNU, вы можете брать плату за акт физической передачи копии или раздавать копии даром.) Проект по разработке системы GNU называется проектом GNU. Проект GNU был задуман в 1983 году как способ возродить дух сотрудничества, преобладавший в компьютерном сообществе в былые дни— чтобы снова создать возможность сотрудничества, устранив преграды, установленные владельцами несвободных программ. В 1971 году, когда Ричард Столмен начал свою карьеру в Массачусетском технологическом институте, он работал в группе, которая использовала исключительно свободные программы. Даже компьютерные компании нередко распространяли свободные программы. Программисты могли свободно сотрудничать друг с другом и часто так и поступали. К восьмидесятым годам XX века почти все программы стали несвободными; это значит, что у них были владельцы, которые запрещали и предотвращали сотрудничество между пользователями. Это создало потребность в проекте GNU. Операционная система нужна каждому пользователю компьютеров; если нет свободной операционной системы, вы не можете даже начать пользоваться компьютером, не обратившись к несвободному программному обеспечению. Поэтому первым пунктом на повестке дня свободного программного обеспечения, очевидно, должна была стать свободная операционная система. Мы решили сделать операционную систему, совместимую с Unix, потому что ее устройство в целом было уже испытанным и переносимым, а также потому, что совместимость облегчает переход с Unix на GNU для пользователей Unix. Операционная система типа Unix включает в себя ядро, компиляторы, редакторы, программы для форматирования текстов, почтовые программы, графические оболочки, библиотеки, игры и многое другое. Так что написание целой операционной системы — это очень большая работа. Мы начали в январе 1984 года. В октябре 1985 года был основан Фонд свободного программного обеспечения, первоначально для сбора фондов в поддержку разработки GNU. В 1990 году мы уже нашли или написали все основные компоненты, кроме одного— ядра. В 1991 году ЛинусТорвальдс разработал Linux, ядро, сходное с Unix, которое стало свободной программой в 1992 году. Объединение Linux с почти законченной системой GNU дало полную операционную систему: систему GNU/Linux. Согласно оценкам, десятки миллионов людей сейчас используют системы GNU/Linux, обычно в виде дистрибутивов GNU/Linux. Основная версия Linux содержит сейчас “кляксы” c несвободными программами для устройств; активисты свободного программного обеспечения в настоящее время поддерживают измененную свободную версию Linux, называемую Linux-libre. Однако проект GNU не ограничивается лишь базовой операционной системой. Наша цель — создание всего спектра программ, которые могут понадобиться многим пользователям. Это включает прикладные программы. Просмотрите “Каталог свободных программ”, чтобы ознакомиться со списком свободных приложений. Мы также хотим предоставить программы пользователям, не являющимся специалистами по компьютерам. Поэтому мы разработали графическую рабочую среду (называемую GNOME), чтобы помочь начинающим пользоваться системой GNU. Мы также хотим предоставить игры и другие программы для отдыха и развлечений. Множество свободных игр уже доступно. Как далеко может пойти свободное программное обеспечение? Пределов нет, кроме случаев, когда законы, такие, как патентная система, запрещают свободные программы. Конечная цель — создание свободных программ для решения на компьютере любых задач, которые пользователи желают решать — и таким образом оставить несвободные программы в прошлом.
Манифест GNU
Свобода программы означает, что у пользователей есть свобода выполнять, копировать, изучать, править и улучшать программу.
Понятие “свободная программа” относится к свободе, а не к стоимости. Чтобы верно воспринимать эту концепцию, слово “свободный” следует понимать в том смысле, который заключается в выражении “вольная речь”, а не “бесплатное пиво”. Более точно, свободная программа означает, что у ее пользователей есть четыре существенных свободы:
Развитие техники и вычислительных сетей сделали эти свободы еще важнее сейчас, чем они были в 1983 году. В наши дни движение за свободные программы идет гораздо дальше разработки системы GNU. На сайте Фонда свободного программного обеспечения описано подробнее, что делаем мы, и какими способами можете помочь вы. «Манифест GNU» был написан с целью получения поддержки и участия от других проект. Программистам было предложено принять участие в любом аспекте проекта интересующие их вопросы. Люди могут пожертвовать средства, компьютерные комплектующие, или даже свое время на написание кода и программ для проекта.
Система GNU
На настоящий момент есть Emacs— текстовый редактор с языком Лисп для записи команд редактора, отладчик уровня исходных текстов, совместимый с Yacc генератор синтаксических анализаторов, редактор связей и около 35 утилит. Оболочка (командный интерпретатор) почти завершена. Начальное ядро существует, но для замены Unix недостаёт ещё очень многих возможностей. Когда ядро и компилятор будут закончены, можно будет поставлять систему GNU, пригодную для разработки программ. Для вёрстки текста используется TeX, но ведётся работа над nroff. GNU сможет выполнять программы Unix, но не будет идентична Unix. Мы внесём все улучшения, какие только будут уместны, опираясь на наш опыт работы с другими операционными системами. В частности, мы планируем ввести длинные имена файлов, версии файлов, стойкую к сбоям файловую систему, поддержку терминально-независимых дисплеев, возможно, автоматическое завершение имён файлов, и, возможно, когда-нибудь— оконную систему на базе Лисп, в которой несколько программ на Лисп и обычных программ Unix могут разделять один экран. В качестве системных языков программирования будут доступны как Си, так и Лисп. Для сетевых соединений мы попытаемся поддерживать протоколы UUCP, Internet, а также Chaosnet Массачусетского технологического института. GNU изначально ориентирована на ЭВМ класса 68000/16000 с виртуальной памятью, поскольку на них проще всего заставить её работать. Дополнительная работа для запуска её на меньших ЭВМ останется на долю того, кто захочет применять её на них. Во избежание ужасной путаницы, пожалуйста, произносите g в слове “GNU”, когда оно обозначает этот проект.
Копилефт
Копилефт-это то, что помогает поддерживать бесплатное использование этой программы среди других программистов.
Проект GNU и fsf иногда различают «сильные» и «слабые» копилефт. «Слабые» копилефт программы обычно позволяют дистрибьюторам, чтобы связать их вместе с бесплатных программ, в то время как «сильные» Лева строго запрещает эту практику. Большая часть продукции проекта GNU выпущен под сильного авторского Лева, хотя некоторые выпускаются в соответствии с слабый копилефт или разрешительной лицензией свободных программ.
Пакеты GNU
Упаковка инструментов GNU, вместе с ядром Linux и другими программами, обычно называется дистрибутив Linux (дистрибутив). Проект GNU называет сочетание GNU и ядра Linux «ГНУ/Линукс», и просит других сделать то же самое, в результате в GNU/Линукс споры об именах.
Сегодня большинство дистрибутивов Linux объединяют пакетов GNU с ядром Linux, который содержит собственные двоичные кляксы и ряд фирменных программ. Рекомендациям для свободных дистрибутивов системы GNU
В GNU Free Система распределения руководящих принципов (ГНУ FSDG) система распределения приверженности используется, чтобы объяснить, что это означает для устанавливаемой системы распределения (например, в GNU/Linux дистрибутив), чтобы считаться свободной (либре), и помочь распределение разработчики делают свои дистрибутивы претендовать.
В основном это включает в себя дистрибутивы, которые представляют собой сочетание GNU пакеты с Linux-ядром либре (модифицированное ядро Linux, которая удаляет двоичные кляксы, запутывание кода и фрагменты кода в проприетарных лицензий) и состоят только из свободного программного обеспечения (отказа от проприетарного программного обеспечения полностью).дистрибутивы, которые приняли ГНУ FSDG включает Dragora GNU/Линукс-либре, gnewsense, GNU/Линукс-либре, Trisquel GNU/Линукс,Ututo, и некоторые другие.
Бесплатное программное обеспечение
Проект GNU использует программное обеспечение, которое является бесплатным для пользователей, чтобы скопировать, изменить и распределить. Он свободен в том смысле, что пользователи могут изменять программное обеспечение с учетом индивидуальных потребностей. Пути программистов получения бесплатного программного обеспечения зависит от того, где они получают его. Программное обеспечение может быть предусмотрено для программиста от друзей или через Интернет, или компании программист работает за то, что может приобрести программное обеспечение.
Финансирование
Доходы от ассоциированных членов, покупки и пожертвования в поддержку проекта GNU.
История операционной системы GNU, или что случилось с Hurd?
Вниманию читателей предлагается перевод статьи «Whatever happened to the Hurd? — The story of the GNU OS», опубликованной в журнале Linux User & Developer в декабре прошлого года.
Работа над операционной системой GNU ведется без малого тридцать лет — с 1983 г. Впервые интерес к микроядру Mach, которое разрабатывалось в университете Карнеги-Меллон (CMU), в качестве ядра своей операционной системы Фонд свободного программного обеспечения (FSF) проявил еще в 1987 г., но его исходный код не распространялся под подходящей лицензией вплоть до 1991 г. К тому времени Линус Торвальдс уже занимался своим собственным проектом по разработке ядра для IBM-совместимых компьютеров на процессоре i386.
Если бы в свое время Linux не был написан и опубликован под GPLv2, если бы не вписался столь удачно в окружение уже существующих компонентов GNU и не захватил умы и сердца разработчиков по всей планете, — кто знает, быть может, вся «движуха» сосредоточилась бы вокруг Hurd, и мы бы сейчас жили в несколько ином мире. Но на судьбу Hurd повлияли не только стремительный рост популярности Linux или сделанная FSF ставка на микроядро Mach.
По своей сути, архитектура Hurd — это попытка воплотить в программном коде дух и перспективы движения за свободу программного обеспечения. Вот слова одного из сотрудников FSF тех времен: «Наверное, можно сказать, что когда мы проектировали Hurd, у нас дух захватывало от того, что происходило вокруг. Движение за свободу программного обеспечения всегда было (и есть) о том, чтобы пользователи перестали быть зависимы от прихотей производителей „софта“. Микроядерная архитектура Hurd, устройство и взаимодействие демонов, — если провести аналогию, — давала такую же свободу простым пользователям системы: вы больше не обязаны подчиняться системному администратору, его драконовским политикам и правилам. Каждый пользователь мог (безопасно для самой системы и других пользователей) запустить любой набор демонов, создавая нужное ему или ей рабочее окружение, ни о чем не спрашивая администратора системы.»
Просто большой чулан
Ричард Столлман заявил о намерении написать полноценную Unix-подобную операционную систему, названную им GNU (рекурсивная аббревиатура GNU’s Not Unix!), в сентябре 1983 г. За это время (до зарождения Hurd) были написаны компоненты системы и инструментарий, которые были необходимы для разработки ядра: редакторы и компиляторы, Bash, Make, Autoconf, Emacs, GCC, sed, gawk и др.
GNU окупала себя, продавая программные продукты. Когда началась работа над Hurd, FSF стала нанимать разработчиков. «Это было задолго до эры широкополосного интернета, и чаще всего люди работали на текстовых терминалах, через модем. Обычно мы делили один офис; если бы вы его увидели, то подумали, что он больше похож на большой чулан. В то время мы были гостями в MIT.»
Линус Торвальдс анонсировал свою «свободную операционную систему (просто хобби, ничего такого профессионального как GNU) для 386 (486) AT-клонов» в конференции comp.os.minix за несколько месяцев до начала работы над Hurd. Линус выбрал модель монолитного ядра, от которой воротили нос пуристы, но которая дала возможность быстро получить рабочее ядро.
Linux понравился хакерам, энтузиастам и ученым, многие из которых стали активно участвовать в разработке. Ядро привлекало их своей открытостью, свободной лицензией и тем, что его можно было запустить практически на любом имеющемся устройстве. Linux «поймал волну», сообщество разработчиков росло удивительно быстро. Работа над Hurd продолжалась, но далеко не с той же активностью. Людям было интереснее заниматься GNU/Linux, а не GNU Hurd.
Идеалистическая философия
С точки зрения пользователей, Hurd было еще расти и расти, а Linux, благодаря усилиям разработчиков, прочно занял свое место в качестве «сердца» операционной системы GNU. По началу Столлман относился к этому скептически. Ранние версии Linux работали только на IBM 386; по словам самого Столлмана, «мы слышали, что Linux практически не портируем (сейчас это не так, но тогда так говорили), и, кроме того, Linux по своей архитектуре похож на ядро Unix. Мы же пишем нечто значительно более мощное и продвинутое.»
Linux был тесно завязан на GCC и инструментарий GNU, все более развивался и «матерел», особенно с появлением дистрибутивов, и вскоре FSF стала рассматривать его в качестве приемлемой (пусть не самой оптимальной и временной) замены все еще несуществующего ядра операционной системы GNU. Столлман сразу внес ясность: «Не существует операционной системы, которая называется Linux. Операционная система Linux — это GNU. Linux это всего лишь программа: ядро. Ядро — это часть операционной системы, самая низкоуровневая программа, которая управляет другими программами, выделяя им процессорное время и другие ресурсы.»
Он настаивал, чтобы операционная система GNU с Linux в качестве ядра непременно называлась GNU/Linux, чтобы «люди понимали, что система существует благодаря идеалистической философии. Назовите ее Linux, и вы нарушите философию. Это очень серьезная проблема. Linux — это не система, а всего лишь ее часть… Именно благодаря той идеалистической позиции, на которой основывается проект GNU, у нас есть эта система.»
Работа над Hurd продолжалась, но вскоре стало очевидно, что FSF ступила на тернистый путь в своих поисках совершенства. Микроядро требовало решения ряда довольно непростых проблем, а многие из тех, кто мог бы за это взяться, были заняты в работе над Linux, которым уже можно было плодотворно пользоваться. Несмотря на известную критику, например со стороны Энди Таненбаума, выбор Линуса монолитной модели ядра позволил получить рабочую систему намного проще и быстрее.
Позже Столлман признал, что «несет всю ответственность за техническое решение разрабатывать ядро GNU на основе Mach, из-за чего так замедлилась разработка системы. Я полагал, что использование Mach позволит нам сэкономить время, но оказался неправ.» В последующие годы Hurd был портирован на различные микроядра, от L4 до Coyotos и Viengoos, но никогда не мог он похвастаться той поддержкой сообщества и теми ресурсами, которыми располагал (и располагает) Linux.
Принцип и обязательство
В конце девяностых в сообществе произошел раскол, обусловивший появление EGCS (произносится как eggs) — ответвления GCC, целью которого было отстраниться от руководства FSF разработкой, и Open Source Initiative (OSI) для продвижения менее радикальных и бескомпромиссных взглядов и идей открытого программного обеспечения.
«Главное, в чем они [OSI] стремились отличаться от FSF, это то, что они не осуждали закрытые программные продукты и не заявляли о себе как о движении за свободу, а развивали идеи о том, какие экономические преимущества может принести добровольная работа энтузиастов бесплатно, just for fun.» Но некоторые видели «ее основной целью — попытаться политически маргинализировать Столлмана; и попытке в чем-то небезуспешной.»
О выходе Hurd стали говорить в 1994 г., когда вроде бы удалось запустить Emacs; в качестве даты релиза указывался 2001 г., но этого так и не случилось. Когда в 2005 г. Hurd портировали на L4, Маркус Бринкман сказал, что «теперь мы можем с легкостью исследовать и развивать систему так, как мы захотим», но был вынужден признать, что «я могу собирать простые приложения, используя мой порт glibc, но большинство из них не запускаются, т.к. им требуются файловая система или, скажем, вызовы fork и exec, а у меня там пока только заглушки.»
В середине девяностых на сцене появляется Debian, который благодаря Debian Guidelines, написанных Брюсом Перенсом, становится носителем и выражением «общественного сознания» FOSS-движения, в то время как FSF во многом отстранилась от разработки GNU, сосредоточившись главным образом на политических проблемах движения.
С 1998 г. Debian GNU/Hurd — один из активных проектов Debian, выпускающий инсталляционный и live CD-диски, может рассматриваться как эталонная версия Hurd, однако до сих пор не имеет статуса официального релиза. Качество кода Hurd все еще не позволяет применять его для решения сколько-нибудь реальных задач, поддержка оборудования также весьма ограничена — но его можно полноценно запустить в виртуальной машине, попробуйте.
Когда-то FSF платила программистам за работу над проектами GNU, теперь же большинство из них — это волонтеры или сотрудники компаний, которые заинтересованы в проектах типа GCC и, соответственно, спонсирующие их. Hurd практически выпал из поля зрения, ведь есть Linux, который работает уже здесь и сейчас, так что особой нужды в еще одном ядре нет. Но принцип и обязательство никуда не делись, и, возможно, в будущем идеи GNU Hurd вновь окажутся востребованными.
Alix — истинное ядро GNU
Ричард рассказывает историю, что ядро GNU изначально не должно было называться Hurd.
«Сначала я назвал его Alix (Аликс), так звали мою девушку в то время. Она была системным администратором Unix и как-то обратила внимание на то, что ее имя схоже с названиями многих Unix-систем. Друзьям она в шутку сказала, что „кто-то должен назвать ядро в честь меня“. Я тогда промолчал, но решил, что сделаю ей сюрприз и назову ядро Alix.»
«Впрочем, название не прижилось. Майкл (теперь Томас) Бушнелл, главный разработчик ядра, предпочел имя Hurd, а имя Alix досталось одной из подсистем ядра — той, что перехватывала системные вызовы и обрабатывала их, обмениваясь сообщениями с серверами Hurd.»
«Какое-то время спустя Аликс и я расстались; она сменила имя. Вместе с тем (но независимо) в архитектуре Hurd произошли изменения, и библиотека C стала посылать сообщения серверам напрямую, что сделало компонент Alix ненужным, и он был удален.»
«Но прежде, чем все это произошло, кто-то из ее друзей наткнулся на ее имя в исходниках Hurd и сообщил ей об этом. Так что у нее была возможность найти ядро, названное в ее честь.»
Бушнелл выбрал имя Hurd отчасти из-за того, что получается похоже на «стадо антилоп», отчасти из-за того, что Hurd — это рекурсивная аббревиатура «Hird of Unix-Replacing Daemons», а в свою очередь Hird — это «Hurd of Interfaces Representing Depth». Он говорил, что «мы, насколько мне известно, первый программный продукт, название которого — это пара взаимно-рекурсивных аббревиатур.»
Томас Бушнелл в настоящее время — разработчик Debian и грегорианец.
На переднем крае
В отличие от Linux — монолитного ядра, Hurd использует микроядро, и почти вся функциональность вынесена из пространства ядра в пользовательское пространство. Микроядро — всего лишь прослойка между «железом» и всем остальным, чем обычно занимается монолитное ядро.
В 1996 г. Томас Бушнелл, один из основных архитекторов Hurd на раннем этапе, опубликовал свои идеи в статье «Towards a New Strategy of OS design».
«GNU Hurd, — пишет он, — спроектирован так, чтобы системный код был как можно более ограничен. Программы будут взаимодействовать только с несколькими подсистемами, все остальные части системы динамически заменяемы. Пользователи вольны задействовать их по своему усмотрению, смогут подключать новые компоненты для нужд других пользователей. Нет никакой необходимости в предварительном установлении доверия при взаимодействии между пользователями (т.е. сервисами друг-друга). Система не подвергается уязвимости, „доверяя“ сервисам произвольных пользователей.» На практике это означает, что пользователям не нужно обращаться к некоему супер-пользователю (root) и ждать, пока тот примонтирует файловую систему или загрузит нужный драйвер устройства (как это было в Linux до недавнего времени, пока там не стали появляться некоторые из полезных особенностей микроядер).
«Уже в то время было понятно, — вспоминает один из сотрудников GNU, — и это обсуждалось в академических кругах, что микроядерная архитектура будет иметь проблемы с производительностью (связанные, главным образом, с большим числом переключений контекста из-за необходимости обмена сообщениями между демонами, по сравнению с традиционной обработкой системных вызовов в монолитных ядрах). [Ричард] Рашид, исследователь из CMU, в своей работе предположил, что эта проблема не настолько серьезная. Тогда казалось, по крайней мере мне, что мы здесь в GNU, при скудном финансировании, умудряемся не только программировать и бороться за свободу, но и одними из первых воплощать в жизнь самые последние академические исследования computer science. Во всяком случае, задумка была такая, и мы очень гордились собой и вообще были рады быть в том месте и в то время.»
Hurd был замечательным приключением и экскурсом в самые выдающиеся достижения теории операционных систем своего времени. Целью GNU было стать одновременно Unix-подобной операционной системой и чем-то похожим на Лисп-машины, классические однопользовательские рабочие станции, появившиеся в AI Lab MIT, одном из главных очагов хакерской культуры, из которого вышел и Столлман. «Emacs (с его Lisp-расширениями) определил парадигму для проектирования интерактивных программ. Сначала даже предполагалось, что оконная система тоже будет основана на Lisp.»
«Одно из ранних изменений в концепции GNU произошло, когда стало ясно, что X11 работает довольно неплохо, не „загнется“ и будет свободной программой. Чисто практический вывод: надо брать и пользоваться.»
Что еще могло бы быть
Когда GNU только зарождался, очевидным решением было найти готовое ядро, которое уже находилось бы в общественном достоянии.
Первым выбором Ричарда был TRIX, который разрабатывался в его родном MIT и упоминается в манифесте GNU. «У нас есть прототип ядра, но для полноценной эмуляции Unix еще многого не хватает, — писал он в 1984 г. — Когда мы закончим ядро и компилятор, мы сможем распространять систему GNU, под которую можно будет писать программы.» В декабре 1986 г. программисты GNU все еще продолжали «допиливать TRIX», а в следующем году Столлман стал интересоваться Mach.
Рассматривались и другие идеи, например, использование операционной системы Беркли Sprite и ядра BSD. «RMS был большим и последовательным приверженцем использования как можно большего количества готового кода (как я считаю, зря)», — вспоминал позднее Томас Бушнелл.
«Я бы сразу взял BSD 4.4-Lite и собрал ядро на ее основе. Я хорошо знал этот код, знал, что и как надо делать. Теперь мне очевидно, что у нас бы все замечательно получилось, и мир сегодня был бы совсем другим. RMS хотел сотрудничать с людьми из Беркли в этом направлении. Кто-то из них в самом деле был в этом заинтересован, но были и те, кто сознательно затягивал процесс. Сейчас мне кажется, что это было из-за их собственных планов по запуску BSDI, для которой основанная на BSD 4.4-Lite GNU система была бы совсем нежелательным конкурентом.»
По словам Бушнелла, в итоге Столлман решил, что «Mach — полностью рабочее ядро, 4.4-Lite же готово только частично. Мы выбираем Mach.»