Спецкурс по Linux, весна 2007, 02 лекция (от 02 марта)

Материал из eSyr's wiki.

Перейти к: навигация, поиск

Предыдущая лекция | Следующая лекция

Авторский вариант: http://uneex.cs.msu.su/uneex/LecturesDistro2007/02_WhatIsLinux

[править] Linux-way и UNIX-way

Если найти человека, который давно общается с UNIX-системами, то он необязательно хорошо ориентируется в Linux. Люди не знают, что такое Linux как явление.

Что такое классический UNIX-way в том виде, в котором он сформировался в 80-е годы. Это очень важно, хотя понятно, что это тот UNIX, которого уже нет. Зачем сравнивать то, что мы ещё не знаем с тем, что мы уже не знаем? Дело в том, что сообщество разработчиков .... оба пути имеют свои области применения, и может быть, через некоторое время unix-way тоже можно применить.

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

Это ответ на то, что такое линкус.

Что такое юникс. Лектору надоело рассказывать историю юникс, поэтому он ссылается на предыдущий цикл, первую лекцию. Мало чего есть прибавить к этому, посему краткая история, ключевые пункты, которые сформированли чисто юниксовый подход к делу:

Что имели в конце 60х годов: 1 платформа = 1 ОС, 2 платформы = 2 ОС, 10 платформ = 10 ОС. Делло в том, что компьютер разрабатывался года 3, железо его ещё сколько-то, и разработка ПО мало чем отличалась от разработки других железяк. Что такое ОС. Если попытатьяся перевести OS более литературно, то получится, что OS — способ использования, система (систематизированный способ исопльзования компьютера, систематизированные данные о том, как работать с компьютером), Вот есть компьютер, и есть на нём что программировать. Не всегда хочется программированть в автокоде, иногда хочется просто набрать и распечатать одокумент, посему в ОС есть утилиты (удобства), которые помогают делать печать, и набор таких удобств помогает работатоь на автокоде (?).

Ещё одно условие, определявшее юникс-вей, которое было до середины 70-х годов. Это нацпрограмма "догоним и перегоним СССР", буквально Кеннеди обратился с воззванием "мы ж не тупые, мы догоним и перегоним этот страшный СССР". Посему, большие финансовые влиячние в сферу ИТ.

Фактически, эти госпрограммы, позволяли учёному с мировым именем работать со своими науч задачами в сфере ИТ, получая приличную зарплату.

Ещё одно предусловие — ОС MULTICS, создаваемая по заказу минобороны США, было бы больше времени, лектор бы рассказал, какие странные следы её в Юникс и даже Линукс. Это было множество платформ, и под каждую своя ОС. Это очень дорогой проект, который был продан минобороны США,, и проработал там до середины 80-х.

Юних как система вырос из остатков Мультикса, потому как АтиТ выполняла одну из работ, связанных с ПО для MULTICS, выоплняло-выполняло... куски мультикса были, выплонила. Часть людей поувольняли, часть оставили. И были два товарища — томпсон и ритчи, которые занимались, как гласит легенда, системами документообработки. То етсь требовало превращать документы из одного формата в другой (плэйнтекст с разметкеой в язык принтера). В те времена это было очень медленно, и Деннис и Кен решили написать кусок ПО, который позволял бы одновременно обрабатывать документы и играть в любимый Supoer Space Travel (Super Star Track). Это легенда. Дальше выяснилось, что неплохая система, дальше выяснилось, что их начальник защитил диссер по макросам-макроподстановкам, потом начальник их взял и начался мозговой штурм, как сделать коммандную строку... Потом выяснилось, что если это объединить, то это можно внедрять, ччерез неокоторе время это было внедрено в банке, Потом выяснилось, что это полноценная ОС, потом в 69 году пришёл Брайан Керниган; до этого Кен придумал язык B. Он изучал язык ПЛ/1, который страшен, и надо сделать нестрашный. Керниган сказал, что вы должны написать свою ОС не на автокоде, а на B, так как когда у них отберут их ПДП-9 или он устареет, то они смогут просто перенести на другую платформу и перекомпилировать. Но Керниган сначала добавил в язык структуры, в результате язык С, и на нём написали это всё.

72 год – портированли на другую архитектуру

С этого момента началось лавинообразное распространение Юникс по университетам. Почему по универам? Потому что был неглупый народ, с хорошими связями, и на этом можно было защищать диссертации – организовать науч процесс. Это 73 — 74 год, стало понятно, что отдел начал приносить прибыль, АтиТ начал это продавать.

Потом сформировалось отдельное течение SYSV UNIX, параллельно с этим сформировалось в университете Беркли BSD — ОС, похожая на юних, но созданная в университетских кабинетах. Это был дистрибутивы, то есть набор программ, которые передавали друг другу учёные мужи, портировали это на всё, что шевелилось... Тоже были внедренее, потому что сеть нормально туда вкрутили, итд, итд. В какой-то момент выяснилось, что эта штука приносит прибыль, и этим можно заниматься как бизнессом, и начались UNIX wars, кто что здесь написал. Оказывается, у этого кода существует хозяин, и этот хозяин не тот, кто написал, а те, кто догоняли и перегоняли, ибо они платили деньги, так как был заключен договор. Люди не думали, что есть такой юридический механизм. Хуже всего пришлось названию ОС — UNIX. Со словом UNIX связана довольно смешная история, ибо если написать по аналогии с MULTICS — UNICS, то в переводе с английского это "евнухи".

Словлом UNIX повладели практически все, думая, что владение словом приносит доход. И началось стремительное замараживание процесса разработки, так как раньше был креатив, но теперь оказывается, что код не их, и ничего с ним делать нельзя.

В результате решили написать свою лицензию, где всё наоборот, то есть распространять надо так же свободно, как получил. И если оригинальные лицензии есть (с), и с программой ничего нельзя желать, то при [к] можно делать всё, кроме закрытия программы. Параллельно были упражнения с лиспом, емаксом и Столлманом (?). Столлман придумал копилефт, GPL.

В 90-х годах горячий финский парень Линус Торвальдс забавлялся с ОС Миникс. Сделал Миникс монстр, титан и классик Танненбаум сотоварищи. Первую версию он сделал сам, вторую версию он с аспирантами, третью он, аспиранты и аспиранты в аспирантов. Дистрибутив этой операционки умещался на две дискеты, и её можно было собрать прямо здесь прямо сразу. И с её помощью можно изучить всё строение ОС. Что, похоже, и сделал Линус. Пришёл от него в восторг, но тем не менее, миникс был традиционной юних-системой с ограничением по использованию Лектор понимает, зачем это сделал Танненбаум. У него была цель изучать, и чтобы не было никаких войн, то он сделал такую лицензию. Линус решил написать своё ядро, которое был под копилефтом. Он переписывал части миникса для своего ядра, и одно время ФС была от миникс.

Это уже 90-е годы, в 90-х годах наполнение интернетом и связность была довольно высокой. Это озночало, что чтобы из этой дистрибьюции сделать ОС, которая полностью написана добровольцами, стала разрешимой, поскольку тут уже можно было найти людей. Уже через два года (93) появился первый дистрибутив Slackware. Задача создания дистрибутива под копилефтной лицензией стала насущной. Дальше пошло создание систем на ядре линукс.

Важно не путать open source и free software.

История: Microsoft показала исходный код Windows CE под open source, потом выяснилось, что есть ограничение: ни исходные, тесты, ни знания, полученные при их изучение, не имеется права использовать для не WinCE платформу и для платформ, не лицензированных под WinCE. Но действует это только США.

История Linux простая, так как к моменту создания ядра была высокая связность, и после того, как было понятно, что это работоспособная вещь, через два года появилась потребность создания дистрибутивов. В результате, начало формироваться большое сообщество Linux и малые сообщества вокруг каждого дистрибутива.

Лектор попробует начертить некую сравнительную табличку, которая показывает, насколько симметрична или ассиметрична история юникс и линукс.

Первое – структура сообщества. Лектор говорил, что лоюбая свободная программа базируется на сообществе, и у этого сообщества есть принципы, которые достаточно жёсткие, которые непохождие на то, что в окружающем мире, и принципов там было три:

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

Юних-сообщество

  1. Динамическая иерархия. Связность тогда была на порядок ниже. Но динамическая иерархия была. Она держится на профессиональных качествах. Чем круче ты программируешь, чем диссертабельнее твоя диссертация, тем ты выше. До тебя через год доходят ленточки и ты видишь, что умный чувак туда напрограммировал, и его нужно слушать.
  2. Произвольность мотивации. Формально она была произвольная, фактически она была деньгами работодателя. В случае юниха человек пришёл в сообщества потому, что он зарабатывает на этом деньги. Это его основная работа, и ему требуется заниматься этим юниксом. Эта работа связана с тем, что он либо защищает диссертацию, либо человек инженер-внедренец и решает свои внедренческие проблемы. Мотивация остаётся произвольной, никто не назначается главным по юниксу. Никто не платит деньги ему за то, что он юниксоид. Но он в сообществе потому, что он занимается юниксом и ему платят деньги.
  3. Негарантированная свобода входа-выхода. Сложно было войти, потому что требуется много знаний. Сложно было войти, потому что это делали люди, у которых была богатая научная культура, и они расчитывали на таких же. Это или учёный, или человек с университетским образованием как минимум.

Для юниксоида первичны интересы корпорации и вторичны интересы юникса.

Раздолбаев 80 процентов, и если они раздолбаи, но они пекут пироги — спасибо, если они раздолбаи, но круто хакают, так, что круто работает,

UNIX Linux
Научная культура. Никакой научной культуры по умолчанию. Она есть, но отнюдь не у всех. Это открытое сообщество, и раздолбаев тут не фильтруют
Культура документирования. ЮНИХ приходило с 8-книжием: руководство по установке, три руководства (пользователя, админа, программииста), три указателя (распечатанные маны), руководство по железкам В открытых сообществах очень важно информационное наполнение, и если нет информационного наполнения, то ... . Культура документирования в линух не имеется, но есть культура информационного пространства. Документирование тут не единственный способ получения информации. Каждый пользователь для себя выстраивает иерархию информационных
Связность. Низкая, но была. Можно передавать ленточки. Эта связность и создала сообщество. Он влияла в основном на распространения. Схема такая: Встретились два БСДшника, и у одного была более свежая версия, обменивались ленточками, и ещё полгода... Связность используется для разработки. Связность — инструмент разработки. Самый лучший пример — ядро. В результате в юнихе каждый умеет собирать систему из ничего, в линуксе этого не требуется. Если он умеет делать всё, то его рвут на части. За примером далеко ходить не надо.
Юниксоид — крупный специальист с хорошей зарплатой. И то, что он докладывает что-то в ОС, он не докладывает в сообщество, и уходит оно только в случае обмена. Работа идёт на работодателя. Для линуксоида, даже в том случае, если он использует линукс для своей работы, но когда он даёт обратную связь в дистрибутив, эта связь делается ради сообщества. Если человек нахакал и у него работает, но после того, как он дохакал, и появились новые версии, приходится всё переделывать заново. И теперь он пошлёт патчики и ему не придётся их применять в следующих версиях. И любое подобное действие полезно для сообщества.

Обратить внимание: это различие существенно, у него как положительные стороны, так и отрицательные. Эти самые отрицательные сторны выглядят отрицательными только по сравнению с юних. Если сравнивать с другими сообществами, то Линуксоиди не раздолбаи и не тупые. Это потому, что мы лишились бонуса в виде фильтра.

В юних-вей свои отрицателные стороны, которые робусловлены временем, в которое это происходило.

Главное различие в том, что человека приводит, почему он встраивается. В случае Линукса это не обязательно линукс. Но наша задача не выдать мотив, а принять его с его мотивом. В случае с сообществом старого разлива этот мотив понятен и угадываем. Именно из этого, из того, что мы устраиваем нашу разработку на этих принципах и растёт всё дальнейшее развитие.

Последнее: лектору кажется, что линуксовые принципы (ну, не линуксовые, а открытое сообщество), они формировались и росли во времена юниксовые они были замутнены (в скобках поправки).

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

В следующий раз будут более серьёзные вопросы.

Реклама: компания альтлинукс затеивает открытый лекторий по линукс для преподавателей. По четвергам в МГУ.


Спецкурс по Linux, весна 2007


01 02 03 04 05 06 07 08 09 10 11 12


Календарь

Февраль
16
Март
02 09 16 23 30
Апрель
06 13 20 27
Май
04 11

18 мая 2007 года прошёл экзамен по курсу. Краткий конспект экзамена.
22 мая 2007 года прошёл экзамен по курсу для студентов 3 курса и тех, кто не сдал экзамен 18 мая. Подробности здесь.
12 июня 2007 года (вторник) пройдёт экзамен по курсу. Информация об экзамене отсюда.


Эта статья является конспектом лекции.

Эта статья ещё не вычитана. Пожалуйста, вычитайте её и исправьте ошибки, если они есть.
Личные инструменты
Разделы