Страницы

10 окт. 2013 г.

Чем Linux лучше Windows: фундамент

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

Linux — не идеальная операционная система и у неё есть свои недостатки. Но достоинства весьма ощутимы.

Я стараюсь руководствоваться фактами и быть объективным. Эта статья не о том, кому нужен Linux, а какие преимущества я в нём нашел.

Сам раньше был заядлым виндузятником и, перед тем как начать личное знакомство с этой операционной системой, я провёл немало времени в сомнениях. Что лучше? Стоит ли тратить время на линукс? Ведь некоторых программ под него не существует! Хочется попробовать, но зачем мне это надо? Ведь и так всё хорошо! Теперь, когда я достаточно освоился и успокоился, пришло время выразить свою точку зрения.


С первого взгляда может показаться, что отличий не так уж много. Те же прямоульные окна, знакомые браузеры (Firefox, Chromium, Opera), менюшки, панель задач, трей… словом всё то же самое, только шрифты другие. Однако это лишь внешность, под которой прячется что-то принципиально другое. Что же это? Культура, философия, подход, характер.

Вся мощь Unix в недрах Linux'а

Unix — это операционная система (далее — ОСь), расцвет которой пришелся на 70–80-е годы прошлого века. Для справки: MS-DOS появился в 1981. Разумеется, в то время компьютеры были редкостью и стоили очень дорого, а круг людей, работавших с ними, был ограничен. Поэтому отношение к компьютерам было более серьёзное, чем сейчас: машина предназначалась для работы, а не для развлечений. Большие ограничения накладывали технические параметры компьютеров — программистам приходилось сильно экономить ресурсы.

Unix быстро завоевала сердца программистов того времени.
  • Её появление оказалось настоящим прорывом в области вычислительной техники — это была первая многопользовательская система с разделением времени (time-sharing system).
  • Она была написана не на ассемблере, а на более понятном языке и распространялась в виде исходного кода. Это подняло интерес к данной ОСи в университетах.
  • Большое влияние оказало появление сообщества людей, заинтересованных в развитии системы.
  • Она оказалась удачно спроектирована: в основе лежали простые, понятные и надёжные абстракции (файлы, процессы, текстовые потоки). Эти идеи оказались настолько удачными, что ничего лучше них не придумано до сих пор.

Сейчас в чистом виде Unix не существует, но по её подобию создано несколько ОСей, включая Linux, поэтому между ними очень много общего. Поскольку делалось всё "для себя и друзей", а маркетологи не давили на разработчиков, Unix продолжала оставаться продуманной, надёжной конструкцией. Тогда-то строили на века, не то, что сейчас! Формат статьи не позволяет подробно описать Unix. Тем, кто заинтересовался историей или ищет подробных объяснений, я рекомендую книгу Эрика Реймонда "Искусство программирования для Unix".

Итак, главные черты Unix:

Единая файловая система. Никаких там дисков C:\, D:\, E:\ — когда вы работаете с файловой структурой, вас не должно волновать физическое расположение файлов.

В Windows после подключения нового жесткого диска или переразбивке старого сбиваются буквы разделов, из-за чего рушатся ссылки. В линуксе, если разделы примонтированы по-хорошему (через UUID'ы), такая ситуация исключена. Личный каталог пользователя o10n всегда будет жить по адресу /home/o10n, независимо от того, где он расположен физически (как правило на отдельном разделе винчестера). Отсюда следствие — любой каталог ФС можно вынести на отдельный раздел, причем это никак не отразится на путях к файлам. Неплохо, правда?

Порядок в файловой системе. Всё разложено по полочкам: бинарники лежат в одном месте, конфиги в другом, пользовательские файлы в третьем, логи в четвертом. Впрочем, с момента основания энтропия повысилась.

Виртуальные ФС: разработчики решили пойти дальше в сторону унификации (правило "всё есть файл") и предложили нам виртуальные файловые системы, такие как /dev, /sys, /proc, которые к файлам в привычном понимании не относятся. В частности, устройства (винчестеры, флешки) представлены в виде файлов. Вот почему iso-образ оптического диска можно примонтировать аналогично реальному диску в приводе. Да, это не совсем честно, но работать с такими штуками удобно. Например, за генератор случайных чисел отвечает "файл" /dev/random, а для заполнения определённой области нулями можно воспользоваться /dev/zero.

Чистая и стройная модель Unix'а постепенно обрастает усложнениями, нюансами и частными случаями. Простота нарушается. Ведь Linux — это не только Unix, как и Windows — не однопользовательская ОСь. ОСи проникают друг в друга и различия между ними стираются. А нынешняя тенденция к кроссплатформенности программ ещё больше стирает эти границы. Интерфейсы стабилизируются: окна, меню, вкладки, горячие клавиши. Новое слово в интерфейсах привносят планшеты и смартфоны, но их влияние на "большие ящики" пока что не доросло до критической отметки.

Сравнение философии

В своё время парни из Microsoft игнорировали лучшие черты Unix и пошли своей дорогой. Что ж, работой они будут обеспечены до конца своих дней.

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

Да, такой подход действительно удобен начинающим, однако в долгосрочной перспективе он проигрывает, поскольку порождает массу безграмотных юзверей. Такой подход не воспитывает, не дисциплинирует, не совершенствует навыки пользователя. Вам приходилось писать большие тексты в MS Word? Не думаю что вы использовали стили и автоматическое оглавление.

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

Из простого всегда можно сделать сложное. А вот наоборот редко случается.

Другая проблема Windows в том, что сейчас она используется существенно шире круга офисных задач. Когда-то всё, с чем работал пользователь, умещалось на рабочем столе. Ограничения, заложенные в самом начале, становятся препятствиями. Сегодня мы имеем проблемы, которые тогда никому и в голову не могли прийти, поскольку повысились требования. И перед проектировщиками стоит выбор: добавить новые концепции к уже существующим (вспоминаем что появилось в семёрке: библиотеки, запуск от имени администратора, списки переходов, UAC), либо начать с чистого листа, с учётом опыта прошлых версий. Потери через чур велики, ведь под старый вариант операционной системы уже написано множество программ. Что, всё надо переделывать? Согласятся ли любимые пользователи переучиваться? Сколько времени и денег уйдет? Винда стала многопользовательской не сразу и средства развивались постепенно. К этому моменту большая часть софта сформировалась без поддержки многопользовательности.

Open source — это не пустые слова

Коммерческое ПО отличается от опенсурса точно так же, как коммерческая музыка отличается от музыки любительской. Linux — не коммерческий продукт. Никакая корпорация не заинтересована в том, чтобы заполучить вас как пользователя и срубить на этом побольше бабла. Хотя возможно Valve… Никакая корпорация не пытается посадить вас на иглу.

Оказывается, это очень влияет. Когда вещь становится товаром, она теряет свой первоначальный смысл. Чтобы заинтересовать потенциальных покупателей, нужны полупрозрачные заголовки окон, закруглённые углы (которые в Windows 8 внезапно стали немодными), анимация и звуковые эффекты. Чтобы заставить пользователей перейти на новую версию винды, нужно в ней что-то улучшать. Но при этом нельзя сделать идеальную ОСь, ведь тогда нечего будет улучшать! На мой взгляд, Windows, как ОСь для офисных машин достигла своего апогея. Улучшать больше нечего.

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

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

Установка программ в линуксе заслуживает отдельного разговора. Идея репозиториев просто гениальна! Не надо ходить по интернету в поисках нужной программы и искать ссылку на скачивание.

Я делаю это так:
install firefox
Удалить программу так же просто, как и установить:
remove firefox
Или поставить обновления для всего:
update

Доступность программирования

Linux одобряет любительское программирование и мне это безумно нравится. Начать "программировать" совсем не сложно. Достаточно поиграться с командной строкой, после чего сами собой появятся первые скрипты. Соединил две команды в конвейер, сохранил в файл — вот тебе и программа! Живя в линуксе, вы всё время будете чуть-чуть программировать. В данном случае, программист — это не тот, кто пишет программы, а тот, кто формирует окружение под свои задачи, комбинирует инструменты. А сборка ОСи по частям (Arch или Gentoo) с настройкой всего и вся ощутимо поднимет ваши навыки и знания.

Для абсолютных новичков в программировании Linux привлекательнее: никаких идиотских проблем с кириллицей в консоли, плюс клёвые простые фишки вроде эскейп-последовательностей. Раскрасить выхлоп своей программы — проще простого!

Отношение к пользователю

Как операционная система смотрит на вас? Кто вы с её точки зрения? На это не обращаешь внимания, но оно работает. В винде вы — тупой, ничего не понимающий юзверь, которому лучше подсунуть красивые обои, чем инструкцию к реестру. Вам захотелось что-то настроить? Можете поменять цвета темы, обои, звуковые эффекты. Но я не дам поменять что-то серьёзнее. А вдруг вы случайно сломаете меня? Вы уверены, что хотите удалить этот файл, ведь восстановить его будет невозможно! Не ошиблись, нет? Согласны принять EULA? Вы обязаны с ним согласиться, иначе ничего не получите.

А вот линукс вас уважает. Первое, что меня зацепило — доброжелательное отношение к пользователю: тебя не пытаются на**ать. После загрузки установочного носителя можно проверить целостность содержимого или протестировать оперативную память. В user-friendly дистрах установочный носитель содержит полноценную ОСь, которую можно пощупать не устанавливая! На меня это произвело неизгладимое впечатление, если честно. Вот просто так, даже если вам ни разу не нужен линукс, запишите образ на флешку и загрузитесь с неё. На посмотреть. Для общего развития.

О недостатках

Главный вопрос, которого я пока не касался: если Linux такой хороший, то почему же его доля составляет около 10%? Основных причин три:

  1. у вас и так всё хорошо;
  2. надо переучиваться и учиться новому;
  3. некоторых программ под линукс нет.

Ссылки

Почитайте что думают другие люди по этому поводу.

обновлено 03.11.2013

Комментариев нет:

Отправить комментарий