UNИX, осень 2007, 02 лекция (от 12 октября)

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

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

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

Официальная страница: http://uneex.cs.msu.su/uneex/LecturesLinuxSoft2007/01_FirstStep Тема лекции: Что такое Linux

Идея состоит в том, чтобы человек не выслушивал наставления волосатого линуксоида, который и говорить-то не хочет, и смотрит на тебя как на одноклеточное, а в освоении большого набора знаний.

Ещё лектор работает на вечерней математической школе, и там поставили темой ОС Linux. Есть математика, физика и ОС Linux. Пришло 30 человек, из них 20 хотят знать, что такое ОС Linux. Один мальчик попался такой, 10 класс, сказал, что купил книжку по FreeBSD, купил дистрибутив, и теперь по книжке занимается. Почему эти лекции затеяны: раньше на подобных лекции половина была подобна этому мальчику, которы были готовы осваивать большой набор информации, и т д.

Содержание

Зачем Linux

Перед тем, как рассуждать, что такое Linux, зададимся вопросом, почему возникла такая ситуация, почему мы заинтересовались Linux'ом. Каждый человек, который скачивает Linux, должен задаться вопросом: «Зачем мне Linux?». Ответов на него довольно много, и прямо сейчас лектор попробует на них ответить:

  • «Было интересно». Мне интересно всё компьютерное, Linux это такая компьютерная штука, и мне это интересно. «Just for fun». Linux — штука интересная, в него интересно потыкать.
  • Для решения каких-то задач. Каких? Вот, мне сказали, что в Linux'е можно сделать так и так, и это просто, а иначе непросто, например, веб-сервера. И это так. Есть класс задач, которые разумнее, быстрее, безопаснее решать с помощью Linux и UNIX-подобных систем
  • «Хочу стать кем-то», «Нужно повышать компьютерную грамотность, иначе меня не возьмут в системные администраторы», и т. п. Для повышения квалификации. Это очень важная тема, потому что, опять-таки, представляется разумным изучать ОС, программное обеспечение, разработку ПО с помощью такой среды, где на все эти пункты не наложено никаких ограничений. Вообще, на свободном ПО изучать всё удобно.
  • Обеспечение лицензионной чистоты. Оказывается, то, что стоит 70 рублей, стоит не 70 рублей, несчастных таскают по судам, приходят прокурорские проверки… В нашем государстве работать со свободным ПО намного удобнее, чем с несвободным

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

А какой-такой, собственно, Linux? Это основной вопрос и про него говорить мы будем много. Пока его откладываем.

Какое железо под это потребуется? Бывает такое железо, у которого проблемы с Linux'ом, бывает и такое специфическое железо, у которого проблемы с любой ОС.

Для изучения Linux нужен Linux, нужно желание его изучать и нужен компьютер.

О порядке изложения

Теперь обратить внимание, в каком порядке лектор выложил вопросы. Сначала «Зачем?», потом выбрать, какой, подобрать аппаратное обеспечение так, чтобы комфортно решать задачу. Практически всегда бывает наоборот: компьютер имеется, люди добывают какой-то Linux, и в итоге выясняется, что Linux этот применить никак нельзя. По уму проблемы решают от задач к железу, к решению, по факту наоборот.

По этой причине лекция тоже построена задом наперёд. Будем решать проблемы по мере поступления.

В более или менее правильном порядке лектор попытался ответить на вопрос «Зачем?», более подробно на каждый подпункт лектор отвечать не будет сейчас, и неизвестно, войдёт ли это в курс.

Что такое Linux

Для начала, нужно ответить на вопрос: «что такое Linux?»

Linux — это ядро ОС

Существует много нечётких определений, что это такое, из них наиболее чёткое одно:

Linuxядро операционной системы.

История появления ядра находится гуглением фразы «Just for fun». Ядро — та часть операционной системы, которая обеспечивает доступ к ресурсам аппаратной части компьютера (внешние устройства и виртуальные ресурсы, которые реально есть, но физически их нет; процессорное время; виртуальная память…). По этой причине, те люди, которые используют Linux, вряд ли имеют в виду ядро. Поэтому ядро пока оставляется в стороне, и попробуем дать не столь чёткое, но и более подходящее определение: если мы хотим иметь Linux, то мы хотим иметь ОС. Но было бы глупо называть Linux ОС. Было бы правильнее называть Linux дистрибутивом. И это в качестве определения это и возьмём:

Linuxдистрибутив.

Linux — это дистрибутив

Дистрибутив — нерусское слово, написанное русскими буквами. Оно означает набор программных продуктов, который позволяет сделать операционную систему на базе ядра Linux на конкретном компьютере путём установки. Это узкое определение. Но, тем не менее, тот же дистрибутив офисных программ — набор программ, из которых можно сделать офисный пакет путём установки.

Теперь поговорим про дистрибутив, опишем его. Вот вам попал в руки блин, или вы скачали ISO-образ. Это набор, набор программных продуктов. Более того, можно сделать очень смелое заявление — с помощью этого набора можно сделать ОС. Звучит невероятно. Потому что, что такое ОС — набор ПО, которое позволяет пользователю решать его пользовательские задачи. Как бы сказать — когда за 150 долларов покупаем Windows, получаем не ОС для конечного пользователя, а среду для запуска программ. Это — ОС для системных интеграторов. Тут же утверждается, что при помощи этого набора можно решить 95 процентов пользовательских задач. Это значит, что вот в рюкзачке у лектора лежит десктопный дистрибутив, и на нём программ лежит много, даже больше, чем на типичном пиратском диске. Вот на одном DVD — порядка 4000 программ (пакетов).

Да, дистрибутив это ещё установка и манипуляция.

Linux — это сообщество

Далее, возникает вопрос. Кто авторы этого ПО? Например, ALT выпускает такой дистрибутив, что, он все эти программы написал? Конечно нет, существует множество авторов (upstream). Идея в чём: какие-то люди разрабатывают программные продукты, а сообщество дистрибутива занимается тем, что подгоняет эти программные продукты под единую базу (оформление, гайдлайны, установка-удаление).

Если авторов множество, то очевидно, что какие-то авторы какого-то OpenOffice или другого программного продукта не имеют желания адаптировать свои продукты под все триста существующих дистрибутов, это смерть на взлёте. Соответственно, должен найтись человек, который хочет пользоваться этим программным продуктом и этим дистрибутивом. Такой человек становится сопровождающим (maintainer). Множество мэнтейнеров образуют team. Это совершенно необязательно значит, что за это получают деньги, деньги можно получать за то, что это работает. И, ещё, выпускающие (core team) — команда, их интерес — сделать хороший дистрибутив, и в очень многих случаях это — работники компании. Хотя, существуют примеры очень успешных Linux-сообществ, core team которых не получают за это ни копейки.

На вопрос «Откуда берутся программы?» лектор ответил наполовину, поскольку абсолютно непонятно, почему это легально. Вопрос — где нас надули, почему это стоит 600 рублей, почему это может использоваться ещё в трёхстах дистрибутивов, почему говорят, что это хорошо, ведь говорят, что убил бобра — спас дерево. Возникает ещё один вопрос: что такое свободное ПО?

Свободное ПО

Ситуация очень простая. Существует очевидный зазор между распространением материальных объектов и информации. В первом случае можно отчитаться, что на изготовление 4 горшков было потрачено 4 кг глины, потрачено 4 часа горшечника и т. п. Есть линейная зависимость:

    1 горшок =      1 единица глины +     1 единица труда
1 000 горшков = 1 000 единиц глины  + 1 000 единиц труда

С экономической точки зрения — постоянная зависимость затрат от объёма. С программными продуктами другая зависимость:

    1 копия =     1 диск   + 1 труд программиста
1 000 копий = 1 000 дисков + 1 труд программиста

Линейной зависимости нет, диски стоят копейки, и основные затраты в труде программиста (хотя сейчас всё уже зависит от пиарщика). Существует забавная ситуация, как этим воспользоваться: сделать вид, что второго нет, и программисты делают горшки: один диск стоит 150 долларов, 1000 дисков стоит 150 000 долларов.

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

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

Правовладельцам выгодно как можно меньше распространять исходный код, в отличие от программиста.

Способы разработки

И тут начался водораздел на два противоположных направления разработки продуктов:

  • Закрытый. Любое распространение информации оценивается через пользу бизнесу и исходный код — последнее, чем они могут поделиться. Очень узкий круг разработчиков. Каждый новый разработчик должен подписать NDA, и корпорация должна его прокормить от начала до конца. Такой способ выгоден правовладельцу. Правовладелец существует, есть некая персона, которая владеет всеми правами на программный продукт. Только в этом случае можно продавать ПО
  • Открытый. Главное — распространение информации, в первую очередь — исходного кода. Сообщество организуется очень большое, идея состоит в том, что чем больше людей и чем грамотнее они организуются, тем лучше. Не существует некоего человека или организации, называемой правовладельцем, которая обладает всеми правами. Даже наоборот, в лицензии может быть прописано, что при получении продукта передаются все не исключительные права.

Существует свободное ПО и правовладельческое. Свободное ПО основывается на открытом способе разработки, правовладелеческое — на закрытом, есть 4 условия открытости ПО (как недавно лектор выяснил, что есть две формулировки, одна лекторская, одна каноническая):

  • Свобода использования
  • Свобода распространения
  • Свобода изучения и внесения изменений (как следует, наличие исходного кода)
  • Распространение изменённых версий — это именно тот рычаг, который приводит весь механизм в действие, то есть, если кто-то захочет сделать лучше, у него не будет преград

Именно при обеспечении этих 4 требований разработка может быть открытой, эффективной.

У этого определения существует один изъян: я человек, который желает раздавать программы как горшки, но я не хочу писать программу, что я делаю: я беру свободную программу, что-то хакаю, и закрыто продаю. Это разрешено 4 степенями свободы с лёгкостью. Поэтому во многих лицензиях в дополнение к этим 4 степеням приписывают одно ограничение: когда вы занимаетесь распространением с исп. GPL'ного продукта, то лицензия на распространение ПО должна быть не хуже GPL.

В прошлый раз возник вопрос о сущности Free Software и OpenSource. Лектор утверждал, что OpenSource включает Free Software, Никита Ющенко обратное. И действительно, лектор сегодня зашёл на http://opensource.org и выяснил, что прав он, там действительно 10 пунктов. — ещё один пункт (см. предыдущую лекцию)
Кроме СОПО, казахстанским братьям ещё 1000 долларов башляют.

Сразу же возникает вопрос об адекватной и эффективной модели ведения бизнеса на базе OpenSourse.

Третий пункт: Linux это сообщество. Этот пункт не мешает иметь в голове всем нам, когда изучаем Linux. Если в случае с Word авторы — это буковки в окне о программе, то в случае с Linux авторы не просто есть, а одна из них обязанностей — поддерживать программу, кроме того, есть пласт пользователей, которым эта программа небезынтересна. И при использовании Linux нужно включиться в сообщество (не нужно при этом по 5 часов заниматься этим Linux'ом добровольно-принудительно). Кроме того, в сообщество все эти люди именно пришли, и они пришли, потому что им надо, и им совсем не пофигу, если вы нашли ошибку, и сказали о ней, и это поведение отличается от закрытой модели разработки.

Коротко про оставшиеся вопросы

  • Выбор дистрибутива. Что-то вроде домашнего задания. Давайте не будем решать вопрос, какой дистрибутив нужен, мы можем составить список задач, пойти на http://distrowatch.com, и посмотреть, как идёт жизнь дистрибутивов, какие дистрибутивы бывают. Подсказка: одного DistroWatch недостаточно (для примера, см. информацию по ALT Linux). Тем не менее, это хороший ресурс. Выбор — какой понравится.
  • Пойдём с другой стороны — какие бывают дистрибутивы?
    • Не хотим сносить ту систему, которая стоит на машине. Самый простой вариант — live cd. Это дистрибутив Linux, который уже установлен внутри некоей виртуальной ФС на компакт-диске, которая при запуске разворачивается частично в память, частично читается с диска же. Таких дистрибутивов много, самый известный — Knoppix. В последнее время практически каждый дистрибутив имеет свой Live CD, часто с опцией установки. Недостатки: работает очень медленно, нужно довольно много памяти, проблемы с настройкой (есть вариант Live Flash)
    • Двухсистемная машина. Несложно установить две ОС на один компьютер. Придётся постоянно перегружаться. Нужно достаточно хорошо понимать, что такое разметка диска.
    • Всё снести, поставить Linux
    • Эмулятор. VMWare, VirtualBox. Работает довольно медленно и как-то неправильно

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


UNИX, осень 2007


01 02 03 04 05 06 07 08 09 10 11


Календарь

Октябрь
05 12 19 26
Ноябрь
02 09 16 23 30
Декабрь
07 14

Экзамены
21 декабря: информация, конспект
11 января: информация, конспект, быстрые вопросы


Эта статья является конспектом лекции.
Личные инструменты
Разделы