Операционная система GNU/Linux появилась благодаря стечению обстоятельств. Вы узнаете о том, с чего всё начиналось и какую роль в этом сыграл неисправный принтер. Это история Ричарда Столлмана и Линуса Торвальдса.

Столлман задал вектор развития программного обеспечения и пракически закончил работу над операционной системой, подготовив необходимые системные утилиты. А Торвальдс добавил недостающее – ядро Linux.

История создания Linux

1983 год: создание проекта GNU и лицензии GPL

В лаборатории искусственного интеллекта Массачусетского технологического института работал программист Ричард Столлман. Однажды он задался проблемой зажёвывания бумаги экспериментальным лазерным принтером, любезно предоставленным компанией Xerox. По прежнему опыту Ричард решил написать программу, которая оповещала бы всех пользователей сети, использующих принтер, о замятии бумаги.

К сожалению, принтер поставлялся только с готовой программой, поэтому Столлман решил отыскать обладателя исходного кода. И он нашёл такого человека. Им оказался Роберт Спроулл из университета Карнеги-Меллона. Но при личной встрече был получен отказ. Это потрясло Ричарда до глубины души и заставило его пересмотреть своё отношение к авторским правам на исходный код. Для него Спроулл был предателем хакерского сообщества.

Так Столлман впервые столкнулся с соглашением о неразглашении (NDA). Программа была не менее ценной, чем сам принтер, ведь Xerox возлагал большие надежды на лазерные принтеры и не мог допустить того, чтобы код попал в руки конкурентов.

2Q==

Танцы были ещё одним увлечением Ричарда Столлмана

В один из дней Ричард получил в своё распоряжение текстовый редактора TECO, он был до ужаса неудобным. И вместе с коллегами Столлман стал писать расширения (макросы), добавляющие новые функции в редактор. В скором времени макросы стали конфликтовать между собой, а на поиск неисправности уходило слишком много времени. Таким образом началась работа над программируемым текстовым редактором Emacs.

Первое время всё шло гладко, но по мере роста базы макросов начали появляться сообщения об ошибках в программе. Оказалось, что пользователи редактировали код программы под себя и не уведомляли об этом других. Тогда Столлман предложил отправлять Emacs, только при том условии, если обратно станет получать те самые изменения. Это было первое использование идеи о свободном программном обеспечении.

В лаборатории ИИ активно использовали язык программирования Lisp, а в начале 80-х произошёл раскол. Часть сотрудников осталась в университетской компании LMI, а часть перешла в Symbolics. Изначально компании обменивались кодом, но позднее руководство Symbolics рассудило, что на их стороне большинство и они вытягивают за собой ту кучку хакеров, что работает в LMI.

С этого времени LMI получала только машинный код и описание изменений. Для Столлмана это был вызов, и он начал вносить изменения руководствуясь лишь описаниями. Дошло до того, что люди из Symbolics установили шпионскую программу на компьютере Столлмана, чтобы уличить его в краже исходного кода. Но всё, что они увидели, это лишь несколько схожих участков кода и не более того. По сути один человек, руководствуясь лишь списком изменений, выполнял работу целого отдела Symbolics.

В 1983 году университет стал закупать машины у Symbolics, а пользователей машин LMI становилось всё меньше, некому стало отправлять сообщения об ошибках. Столлман больше не мог терпеть это и покинул университет. Тогда и появилось объявление о создании проекта GNU (GNU is not Unix). Столлман решил сделать свободную альтернативу Unix.

С начала 80-х стали закрывать код операционных систем Unix и программ для них. У движения за свободное ПО появлялось всё больше последователей.

Перед Ричардом стояла глобальная задача – написание операционной системы с нуля, используя только описание вызовов и системных утилит. Сначала он искал готовые решения и тех программистов, которые были готовы пойти по его стопам. Но поиски не увенчались успехом. Тогда он принялся за перенос Emacs на Unix. В этом ему помог Джеймс Гослинг, предоставив раннюю версию своего порта Gosmacs.

Переписав и доработав код редактора Ричард представил публике первые результаты работы над проектом GNU. Чтобы урегулировать все вопросы была создана некоммерческая организация Free Software Foundation. Позднее у неё даже появились влиятельные спонсоры в лице IT-гигантов.

В 1985 году была подготовлена лицензия GNU Emacs. Столлман отдавал исходный код программы, а взамен требовал того, чтобы программа оставалась свободной. Важно отметить, что свободное программное обеспечение – это не есть бесплатное программное обеспечение. Разработчики вправе просить деньги за свою работу. В основном плата взимается не за программу, а за её поддержку.

Со временем лицензия лишилась упоминания Emacs, таким образом она была применима к любому программному обеспечению. В 1989 году была готова финальная версия лицензии GNU GPL. А вместе с ней и целый ряд программ, вроде отладчика GDB и компилятора GCC. До появления свободной операционной системы оставалось сделать всего несколько шагов.

Ядро Hurd операционной системы GNU тоже находилось в разработке, но лишь на раннем этапе.

1991 год: ядро Linux

Студент Хельсинского университета Линус Торвальдс к 1990 году уже изучил свой текущий компьютер Sinclair QL вдоль и поперёк. Он даже написал ассемблер и редактор кода для него. Но производительности стало не хватать. Поэтому он решил приобрести новый компьютер, выбор пал на IBM PC с 386 процессором. Этот чип Intel впервые поддерживал блок управления памятью MMU, необходимый для работы Unix.

Пока Линус копил деньги на новый компьютер, он приобрёл книгу Эндрю Таненбаума о проектировании операционных систем на примере упрощённой версии Unix – Minix. В январе 1991 года Торвальдс приобретает компьютер в кредит, а спустя пару месяцев получает по почте свою версию Minix, предназначенную для образовательных целей.

Линус начал использовать и изучать операционную систему, в том числе и для того, чтобы связываться с университетским компьютером для выхода в интернет. Терминал Minix был неудобным и не устраивал Линуса. Тогда он решил написать свой терминал с нуля.

Спустя некоторое время программа была готова, но этого показалось мало. Обмен файлами мог значительно упростить работу, и Торвальдс принялся реализовывать работу файловой системы, аналогично той, что была описана в книге Таненбаума. Однажды Линус осознал, что работает уже не просто над созданием терминала, а над операционной системой.

hDKfUsy5qfQ03NzkTmI0hwAEIAABCHQSeLk0CcuR2rqkbRemqpVUHuEfncR7TO7vGgkQgAAEIACBzQm8X5rIpkzD7szmcHPqfdDkQz2F2hCAAAQgsJ7Ay6VJw2vAnsc14gdKPK2q6HueWUle02BylWJcDAEIQAACEDiaQOHItXD34bEzXNsIt2DCh1jVA63S5He9cZkI9+zs5NQIlYzl2MqHjqzVIQaVNCd+1Lf24d+jow3lIQABCEAAAhCAAAQgAAEIQAACEIAABCAAAQhAAAIQgAAEIAABCEAAAhCAAAQgAAEIQAACEIAABCAAAQhAAAIQgAAEIAABCEAAAhCAAAQgAAEIQAACEIAABD5MQP2M8IdJYDoEIAABCEAAAqsJvHwa7Gpz6Q8CEIAABCAAgb0J6NNgkz9k4zkadW8z0Q4CEIAABCAAgTMI6FUTqULiP84wCC0hAAEIQAACEDiZABs6J3sP3SEAAQhAAALXEaA0uc6lGAQBCEAAAhA4mQDPmpzsPXSHAAQgAAEIXEeAZ02ucykGQQACEIAABE4mwIbOyd5DdwhAAAIQgAAEIAABCEAAAhCAAAQgAAEIQAACEIAABD5BQD8G22Z08qC2RxTHtbUhpRUEIAABCEDgmwR41uSbfsdqCEAAAhCAAAQgAAEIQAACEIAABCAAAQhAAAIQgAAEIAABCEAAAhCAAAQgAAEIQAACEIAABCAAAQhAAAIQgAAEIAABCEAAAhCAAAQgAAEIQAACEIAABCAAAQhAAAIQgAAEIAABCEAAAhCAAAQgAAEIQGA1gX8DSe3HBWhEZSIAAAAASUVORK5CYII=

Первая версия Linux

С того времени он начинает внедрять вызовы Unix один за другим, пока в его распоряжении не оказывается работающая оболочка Bash. Таким образом 17 сентября 1991 года вышла первая версия ядра Linux, также распространяемая по лицензии GNU GPL.

Несмотря на множество ошибок и недоработок хакеры начинают использовать ядро и присылают предложения, отчёты об ошибках и даже код для улучшения работы ядра. Через год для Linux уже был портирован оконный интерфейс X Window, вместе с программами проекта GNU операционная система приобретала законченный вид.

1992 год: Первые дистрибутивы

Первые версии Linux распространялись на дискетах вместе с системными утилитами GNU. Ричард Столлман настаивает на том, чтобы систему непременно называли GNU/Linux, ведь без системных утилит из его проекта ядро бесполезно.

Первым популярным дистрибутивом стал Softlanding Linux System. Он появился летом 1992 года и включал в себя ядро, компилятор, редактор Emacs и ряд других программ, а также часть исходного кода. Уже через год на его основе выходит Slackware Linux, а его создатель Патрик Фолькердинг даже основывает одноимённую фирму.

В том же 1993 году начинается разработка дистрибутивов Red Hat и Debian. Первым проектом руководили Марк Эвинг и Боб Янг, они нацелились на корпоративный сегмент, подобно тому, как это было с другими системами Unix. Иан Мёрдок со своим Debian решил воплотить идеи GNU для целого дистрибутива, состоящего из свободного программного обеспечения.

А так как Slackware, Red Hat и Debian были одними из первых, то они легли в основу большинства дистрибутивов, в том числе современных.

Почему в качестве образца выбрали Unix

Операционная система Unix появилась в Bell Labs, подразделении AT&T. В 1969 году компания отказалась от дальнейшей разработки Multics, совместного проекта с Массачусетским технологическим институтом. Система была во многом новаторской, она использовала разделение времени программ для одновременной работы нескольких пользователей, а также язык высокого уровня PL/I. Но, к сожалению, она стала слишком тяжёлой и сложной в разработке.

Тогда руководство поручило Дугласу Макилрою написать текстовый редактор для патентного отдела. Причём для работы был выделен относительно простой мейнфрейм PDP-7. В команде Макилроя работали Кен Томпсон и Деннис Ритчи.

2Q==

Деннис и Кен работают за PDP-11

Кену захотелось перенести свою игру Space Travel для Multics на PDP-7, а Дуглас был не против и всецело поддерживал его. Так в 1971 году появился текстовый редактор, а по совместительству операционная система Unics, позднее переименованная в Unix. Реактор быстро окупил себя и Bell Labs приобрела PDP-11. С этого времени Ритчи начинает разработку интерпретируемого языка Би, во многом схожего с языком BCPL. К 1973 году язык стал компилируемым и получил название Си. Системное ядро в скором времени было переписано на Си. Это в значительной мере повысило читаемость кода.

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

С этого момента началась активная разработка системы. Особо отличились в университете Беркли, к 1977 году была готова их версия Unix под названием BSD. К началу 80-х существовало несколько вариаций Unix, некоторые из них были с закрытым кодом. Тогда в Bell Labs начинают создание набора стандартов POSIX, описывающих то, как должна работать система Unix.

С его помощью можно было писать совместимые с Unix программы, чем и воспользовался Столлман для написания утилит GNU, а позднее и Торвальдс для Unix-подобного ядра Linux.

Почему Linux, а не BSD

В университете Беркли разработали лицензию, по которой бесплатно распространялась система BSD. Она требовала указывать авторов, но открывать код было не обязательно. Популяризации системы мешало то, что использовать BSD без лицензии AT&T было нельзя. Всё дело было в оригинальном коде Unix.

Лишь к 1991 году удалось заменить код Bell Labs на свой собственный. BSD Net 2 стала первой свободной операционной системой, ещё до появления Linux. Так почему Linux стал набирать популярность?

Во-первых, в начале 90-х на разработчиков BSD подали в суд за использование кода Unix. Лишь к 1993 году большая часть исков была отклонена. Но до этого времени систему старались обходить стороной и даже стали использовать сырой GNU/Linux.

Во-вторых, лицензия GNU GPL требовала того, чтобы код оставался открытым. А с BSD можно было закрыть код операционной системы, как в своё время поступили с Mac OS, основанной на BSD. GNU GPL позволила большему числу программистов принять участие в разработке Linux.

Выводы

Вот такая история развития Linux. Эта операционная система могла не появиться, если бы не стремление Ричарда Столлмана сделать код доступным. Благодаря ему настоящие хакеры трудятся и по сей день. Среди них есть и разработчик ядра операционной системы GNU/Linux, Линус Торвальдс.

Но не менее важную роль сыграли сотрудники Bell Labs, создавшие не только операционную систему Unix, но ещё и объединившие программистов со всего света. Это позволило сделать Unix примером для подражания.

Нет похожих записей

Оцените статью:

Об авторе

Автор: David Hayward

20 комментариев

За линуксом будущее.

Опечатка:
Десисом Ритчи —–>>> Денисом

Может я слишком консервативен, но Плазма, 3й Гном и Циннамон, это шаг назад в развитии DE. Если девиз Линукса это легкость и нетребовательность к реурсам, то эти окружения монстры жрущие всё и вся. Линукс так и останется системой для энтузиастов и экпериментаторов. И кто понял и всосал его философию тот никогда на вернется к Windows и тем более к Недооси купертиновцев. Настоящими линуксоидами считаю тех кто не обращается к шаблонам, а строит систему на своей машине сам.

меня убила 10 винда еще бета версия предлагаемая бесплатно. сидел долго на вин 7 и уже вроде наловчился подстраивать ее для работы на своем слабом пк (проц 2 ядра,2гига оперативы и видюха 256мб ) конечно тупила система конкретно,но при правильном подходе кое как справлялась с минимальными задачами. потом появилось окно с загрузкой 10 винды и она без спроса установилась. в общем решил не удалять а поэкспериментировать с новой осью и тут началось и я понял что это за хрень. окна тогда еще бета версии лагали и дергались, оформление в стиле примитивизм после красивой семерки как-то не зашли как нечто красивое. вроде как говорилось,что система менее требовательна к ресурсам в сравнении с вин 7,но у меня было все наоборот. возможно это было с выносом какой-то информации с моего компа макросами,что позже было выявлено многими блогерами и было написано масса статей по этому поводу. мне это не понравилось и я уже тогда уже косился в сторону линукс и все не решался изучать установку системы на ж.д. потом запилил балванку с линём и каким-то чудом с помощью интернета через телефон на форумах все-таки установил его. первые месяца было напряжно столкнувшись с новой системой и как в ней работать. первый весомый плюс это было,что не нужен был антивирус и вроде как тогда был линукс минт 17 который я тогда установил на удивление мало потреблял ресурсов в районе 350 мб оперативы,хотя эта система является не из легких она стоит и сейчас по сей день только версией по выше. при этом с тех пор сменил не один комп. первые 2 месяца я только и занимался переустановкой систем. то линукс,то опять вин 7 и так не один раз по кругу. возвращался к линукс из-за его легкости а к виндовс из-за привычки и опыта в ней,но тормоза пк просто бесили. потом сидел на линукс как на постоянной системе и завел второй ж.диск для винды и некоторых задач,что собственно и сейчас происходит. винда мне нужна только для прошивки и обновления телефонов не более. все остальное я делаю на линукс, хотя на нем и это есть,но пока для себя я не открыл как это делать. вообще сейчас поймал себя на мысли,что мне нравится линукс его разнообразием дистрибутивов с которыми можно поэкспериментировать,легкостью,качеством графики на экране,которое явно контрастирует с подплывшей и не четкой графикой винды,политикой открытости п.о. и ее бесплатностью. когда сажусь за комп моих знакомых людей и при их мощностях железа и установленной винды у них все тормозит ,начинаю подбивать окружающих на линукс. некоторых уже перевел на него,некоторые в раздумьях,но это главное посеять в их головах мысль о существовании альтернативы и они видят с какой легкость я в ней управляюсь. своим хорошим людям я желаю только хорошего и не хочу чтоб они были обмануты если я это вижу когда это происходит по отношению к ним. майкрософт это не честная кантора и за те деньги которые они хотят за свой продукт и при этом хотят владеть управлением твоим пк оно того не стоит. нравится еще тем,что в линукс тупым вход воспрещен,так как их ограничивает их мозг.

Вы пропустили

AEGIS Algorithms Android Angular Apache Airflow Apache Druid Apache Flink Apache Spark API API Canvas AppSec Architecture Artificial Intelligence Astro Authentication Authorization AutoGPT AWS AWS Aurora AWS Boto3 AWS EC2 AWS Lambda Azure Babylon.js Backend bash Beautiful Soup Bento UI Big Data Binary Tree Browser API Bun Career Cassandra Charts ChatGPT Chrome Extension Clean Code CLI ClickHouse Coding Codux Combine Compose Computer Context Fusion Copilot Cosmo Route CProgramming cron Cryptography CSS CTF Cypress DALL-E Data Analysis Data science Database dbt dbt Cloud deno Design Design Patterns Detekt Development Distributed Systems Django Docker Docker Hub Drizzle DRY DuckDB Express FastAPI Flask Flutter For Beginners Front End Development Game Development GCN GCP Geospatial Git GitHub Actions GitHub Pages Gitlab GMS GoFr Golang Google Google Sheets Google Wire GPT-3 GPT3 Gradio Gradle Grafana Graphic Design GraphQL gRPC Guidance HMS Hotwire HTML Huawei HuggingFace IndexedDB InfoSec Interview iOS Jackknife Java JavaScript Jetpack Compose JSON Kafka Kotlin Kubernetes LangChain Laravel Linux LlaMA LLM localStorage Logging Machine Learning Magento Math Mermaid Micro Frontends Mobile Mobile App Development mondayDB MongoDB Mongoose MySQL Naming NestJS NET NetMock Networks NextJS NLP Node.js Nodejs NoSQL NPM OOP OpenAI OTP Pandas PDF PHP Playwright Plotly Polars PostgreSQL Prefect Productivity Programming Prometheus Puppeteer Pushover Python Pytorch Quarkus Rabbitmq RAG Ramda Raspberry Pi React React Native Reactor Redis REST API Revolut Riverpod RProgramming Ruby Ruby on Rails Rust Scalene SCDB ScyllaDB Selenium Servers Sklearn SLO SnowFlake Snowkase Software Architecture Software Development Solara Solid Spring Boot SQL SQLite Streamlit SudoLang Supabase Swift SwiftUI Tailwind CSS Taipy Terraform Testing Transformers TURN TypeScript Ubuntu UI Design Unix UX UX Design Vim Vite VSCode Vue Web Architecture Web Components Web Development Web Frameworks Web Scraping Web-разработка Webassembly Websocket Whisper Widgets WordPress YAML YouTube Zed Наука о данных Разное Тренды

Как исследовать и визуализировать данные МО для обнаружения объектов на изображениях