Возможности linux – зачем они нужны и как они работают? Часть 1 / OTUS. Онлайн-образование corporate blog / Habr

Содержание

Возможности Linux | KV.by

Папа может все, что угодно
Только мамой не может быть

Проводя аналогию с операционными системами, позволю себе заявить, что единственное, чему никогда не научатся «Форточки» — материнской любви к пользователю. Windows всегда будет закрытой системой, и в следующей, и через десять версий (дай ей Бог здоровья). Поэтому всегда останется в мире место для системы, о которой пользователь может узнать все из документации, или, на худой конец, покопавшись в прилагающихся исходниках, и за которую он никому ничего не будет должен.

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

Самое главное — многопользовательская многозадачность. Это значит, что несколько человек могут одновременно запускать свои программы, используя ресурсы системы на полную катушку. Кроме того, поддерживаются легковесные процессы (потоки), которые работают в пределах одной задачи и потому расходуют меньше памяти и быстрее запускаются. Многозадачность Linux работает стабильно, один процесс не может завалить всю систему, как это происходит в Windows 95. Более того, два процесса также не могут завалить систему…

Далее, Linux поддерживает множество платформ. Наиболее распространена версия Linux для процессоров Intel 386+, также поддерживаются платформы Motorola 680×0 (компьютеры Amiga и Atari, старые Маки), PowerPC, DEC Alpha, Sun SPARC, в настоящее время идет работа над версиями для процессоров MIPS и ARM, и ядром для встроенных систем, которое будет работать и на Intel 8086. Также с помощью специального модуля можно обеспечить совместимость Linux со SCO, SVR3 и SVR4 на уровне исполнимых файлов и с другими версиями Unix, совместимыми с POSIX или BSD, на уровне исходников.

Кроме работы на различных процессорах, Linux может также работать с многопроцессорными системами SMP (Symmetric Multi Processing) на платформах Intel и SPARC, и используется в некоторых специфических системах, например, в кластерах Beowulf и суперкомпьютерах Fujitsu AP1000+ на базе SPARC.

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

Чтобы не быть голословным, приведу в пример собственный компьютер, 5×86-133/16 Мб. Даже при выполнении такой ресурсоемкой задачи, как компиляция Pretty Good Privacy 5.0i на фоне просмотра документов HTML, размер свопа не превышал полумегабайта, и оставалось еще 2 Мб на кэш диска. Как в такой конфигурации работает Windows 95, не говоря уже об NT, объяснять не надо.

Среди прочих удобств стоит отметить динамически загружаемые библиотеки, сохранение образа разрушенного процесса для «посмертной» отладки, эмуляцию математического сопроцессора на уровне ядра, систему «виртуальных консолей», позволяющую работать в нескольких сессиях одновременно, и поддержку локализации (в том числе три русских раскладки (две koi8 и одна alt-codes (MS-DOS)) и множество русских шрифтов).

Linux использует собственную файловую систему, ext2 (разделы до 4 терабайт и имена файлов до 255 символов), но может также работать с файловыми системами других юниксов, с DOS FAT, Windows 95 VFAT, OS/2 HPFS, Macintosh HFS и всеми стандартными форматами CDROM. Более того, Linux можно установить на DOS-овский раздел, поверх которого развернута система UMSDOS, в каждый каталог записывающая файл с недостающими в FAT атрибутами вроде длинных имен и прав доступа.

Что касается сетевых возможностей, то в стандартное ядро Linux обычно включается поддержка протоколов TCP, IPv4, IPX, DDP (Appletalt) и AX.25 (любительские радиосети). Существуют также модули, позволяющие Linux выполнять функции клиента или сервера в сетях NetWare, и разделять диски и принтеры в сетях на основе протокола SMB (Session Message Block, известен также как NetBIOS или LanManager), который используется в сетях Windows 3.11/95/NT.

Минимальная конфигурация для Linux — 386SX-16, 1 Мб ОЗУ и дисковод, но рекомендуется 4 Мб ОЗУ для работы в текстовом режиме и 8 Мб — для X/Windows. Как я уже говорил, в клиентской конфигурации с запасом хватает AMD 5×86-133 и 16 Мб ОЗУ, больше нужно только для серверов или графических станций. Объем требуемого дискового пространства сильно зависит от набора используемых программ. Для базового набора системных утилит вполне достаточно 10 Мб, остальное добавляется на пользовательские файлы и программные пакеты, и может составить от 60 до 300 Мб.

Список поддерживаемого оборудования называется Linux Hardware Howto и занимает десятки страниц, найти его можно по адресу http://sunsite.unc.edu/mdw/ HOWTO/Hardware-HOWTO.html или в стандартном комплекте документации. Для примера скажу лишь, что новомодные 3D-акселераторы Voodoo и Riva 128 в Linux поддерживаются.

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

Графических программ под Linux также довольно много — от простых смотрелок до мощных редакторов и средств трехмерного моделирования и рейтрейсинга (в том числе и некоммерческих!). Более-менее полный список можно найти в Linux Graphics Mini-Howto на том же sunsite. То же со звуком — разного рода проигрывателей в дистрибутив Linux входит немало, а вот программу для серьезной звукозаписи придется поискать, а то и купить.

С базами данных дело обстоит сложнее. Конечно, их под Linux немало, в том числе свободная СУБД Postgres95, работающая с надмножеством SQL, но сколько бы их не было, мало кто решится переводить всю фирму со старого доброго FoxPro на неизвестно что. А для менее серьезных задач и база данных обычно не требуется.

Теперь о ложке дегтя. Действительно, Linux работает очень быстро. И все в ней можно настроить. Беда только в том, что многое в ней НУЖНО настраивать. Компании, занимающиеся разработкой и распространением дистрибутивов Linux, борются с этой проблемой с переменным успехом и предлагают заранее сконфигурированные пакеты, но всегда есть вероятность того, что придется лезть в систему руками. Такова цена за гибкость.

Дмитрий БОРОДАЕНКО,
[email protected]

Почему стоит полюбить Linux : возможности и трюки

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

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

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

Командная строка
Самая страшная ассоциация Линукса, которая нагоняет страх на всех юзеров — это командная строка. Пользователи ненавидят командную строку! Миф о том, что в линуксе все делается только с помощью команд на черном экране пересказывают миллионы чайников друг другу ночью, слушая потрескивание дровишек в торрент клиенте, докачивающем свежую порнушку. Сколько не объясняй чайнику, что свои любимые видеофильмы на немецком про любовь он сможет спокойно смотреть на линуксе, все равно распространенность мифа не дает побороть ужас неизвестного: «А вдруг не смогу?».

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

К примеру, возникла потребность скачать файл по ссылке. Требуется быстро выбрать директорию для сохранения и скачать файл.

Классическое решение: вставляем ссылку в браузер и кликаем, выбирая директорию для сохранения.

Решение из командной строки состоит из двух команд: изменить текущую директорию куда будет сохраняться файл и собственно скачивание файла
$ cd /tmp
$ wget http://example.com/das-ist-fantastich.avi

Что? Говорите преймущество неочевидно? Тогда представим что у нас есть список URL по которым надо скачать тысячу файлов. В командной строке для решения достаточно указать в каком файле или по какому URL лежит этот список:
$wget -i /tmp/spisok.txt

Командная строка удобна при составлении списков заданий. Следующая строка подождет два часа (7200 секунд) пока доиграет жена, запустит обновление системы, после чего запакует директорию /mnt/work в архив /tmp/work.tar.gz и запишет архив на DVD на восьмой скорости без создания файловой системы для экономии места:
sleep 7200; emerge -DuN world; tar -zcvf /tmp/work.tar.gz /mnt/work; cdrecord dev=/dev/sr0 speed=8 /tmp/work.tar.gz

В общем, командная строка ускоряет, облегчает и даже отстраняет пользователя от нудной работы. Из командной строки можно выполнять такие действия, которые казалось бы ну никакой логикой с ней не связаны. К примеру, обработка графических изображений. Следующая строка открывает изображение in.png , уменьшает его пропорционально до 800 пикселей по ширине и сохраняет в out.jpg с качеством «90». Эта манипуляция требует установленый пакет ImageMagick

$convert -quality 90 -resize 800 -strip in.png out.jpg

Следующий пример сложен, но способен сохранить вам дни и недели нудной работы в фотошопе, если требуется обработать тысячи изображений. Следующая строка находит с помощью команды find в текущей директории все файлы с расширением .jpg. Названия найденых файлов передаются через xargs команде convert как параметр {}. Эта команда в каждый найденый графический файл в координатах 80×80 вписывает время и дату съемки фотографии, которые берет из EXIF. Файл сохраняется с тем же названием в директорию /tmp :

$find . -iname «*.jpg» | xargs -l -i convert -font Arial -pointsize 72 -fill white -annotate +80+80 %[exif:DateTimeOriginal] {} /tmp/{}

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

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

Ведь действительно, если у компьютера задача просто захватывать видео с камеры, сохранять его на жесткий диск и предоставлять ограниченый доступ к видеоархивам через интернет, то зачем на этой системе графический интерфейс? Гораздо удобней для такой цели веб-интерфейс.

Удаленный запуск программ
Допустим на домашнем компьютере у меня в браузере прикреплены сертификаты для электронных платежей. С собой я их не ношу. С любого линукс-компьютера я подключаюсь на домашний линукс-компьютер командой
ssh -X login@homeip
и запускаю браузер
$opera
Происходит чудо: я вижу графический интерфейс моей оперы с домашнего компьютера. Захожу на нужные сайты, делаю необходимые платежи и закрываю браузер.

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

Уточню, что это не аналог Rdesktop протокола, который тупо подключается к рабочему столу. Окно удаленно-запущеного приложения выглядит абсолютно как окно локального.

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

Смотрим в каких группах состоим. Читай: какие права имеются у пользователя, под которым мы работаем в системе.
$groups
tty wheel uucp audio cdrom video usb users plugdev oper

Не хотим чтоб сотрудники использовали видеоускоритель для игры в 3D игры?
$gpasswd -d username video

Таким же макаром можно перекрыть доступ к звуковой карте, USB-портам, рекордеру дисков и т.п.

Использование песочницы
Если на очень важном сервере необходимо запустить приложение, которое является потенциальной брешью безопасности, то проблема решается созданием директории с упрощенным дубликатом linux системы. В эту директорию (назовем /mnt/sandbox ) скидывается программа и все необходимые программе части системы: например /bin, /sbin, /usr/sbin/, /var.

Запускаем вебсервер Apache, который теоретически через кривые скрипты сайтов может стать причиной взлома всю имеющейся системы

$chroot /mnt/sandbox /usr/sbin/apache

Если же злоумышленик через кривой скрипт получит доступ к серверу, то он будет ограничен директорией /mnt/sandbox. Если он получит пароли или даже сотрёт всё из этой директории, то на работу сервера за пределами этой директории его деятельность никак не повлияет.

Виртуальные машины
Предыдущий инструмент chroot — прост, но не решает проблему разделения ресурсов. Не только злоумышленик, но и обычный владелец сайт может разместить скрипт чрезмерно прожорливый к ресурсам, отобрав ценные ресурсы (память и процессорное время) у других пользователей и программ. Эта задача решается через виртуальные машины.

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

Одной из распространенных бесплатных программ для создания виртуальной машины является программа VirtualBox. Запустив VirtualBox мы можем создать вирутуальный компьютер, выделив место под жесткий диск, данные которого будут лежать в файле выделенного нами размера. Мы можем настроить для этого виртуального компьютера количество выделеной памяти, количество выделеных ядер процессора, выбрать ISO образ диска, который будет вставлен в виртуальный DVD. После настройки запускаем виртуальный компьютер, загружаемся с DVD-образа и устанаваливаем на виртуальный жесткий диск операционную систему. Вся прелесть такой виртуальной машины в том, что мы можем установить не только линукс, а любую операционную систему: Windows, Solaris, MacOS, FreeBSD.

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

KSM
Запуск вируальной машины вполне возможен на множестве других операционных систем. Почему это находится в статье про Linux? Linux превосходно справляется с запуском множества виртуальных машин! Одной из функций улучшающих эффективность запуска множества виртуальных машин на одном физическом компьютере является KSM — Kernel Samepage Merging.

Допустим мы запустили на одном компьютере 10 виртуальных Windows-машин, каждой из которых выделено по полгига памяти. Элементарная математика говорит о том, что сожрут они 5 гиг памяти. Чем же заняты эти пять гиг памяти? В основном дубликатом операционной системы Windows и дубликатами одинаковых программ, которые запущены на этих виртуальных машинах. Допустим из 512 мегабайт виртуальной машины 200 уходит на код одинаковой системы и программ. Подсистема KSM в линуксе отслеживает одинаковые страницы памяти и объединяет их таким образом, что они находятся в одном экземпляре для всех запущеных виртуальных машин. Таким образом можно серьезно сэкономить память предоставляя в аренду виртуальные хостинговые и виртуальные сервера на одном физическом сервере.

Драйвера
На производителей оборудования в плане драйверов под линукс надеяться пока не приходится: большинство производителей железа либо не делает дров под линукс либо делает что либо кривое чтоб отмахнуться. Драйвера различных устройств в линуксе как правило идут вместе с ядром и поддержка новых устройств появляется с выходом свежих ядер. Поэтому линукс всегда имеет поддержку всего распространенного оборудования.

Вся прелесть драйверов в линуксе заключается в том, что мизерный по размерам драйвер какого либо чипсета поддерживает устройства всех производителей. Скажем, если я знаю что материнская плата на чипе NVidia, то совсем нет необходимости разбираться кто является фирмой-производителем Asus, Palit, Gigabyte или еще какая то китайская контора. Очень удобно когда втыкаеш вебкамеру в USB и с большой вероятностью ядро ее определяет и тут же позволяет работать.

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

Оптимизация ядра и системы
Раз уж зашла речь о компилировании ядра под себя, то прийдется расказывать подробней.

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

Совковая лопата — глубокая, с закраинами. Предназначена для работы с сыпучими грузами. Для каждого вида груза разработана своя форма. Песочная — обычный прямоугольник; зерновая — то же увеличенной длины и ширины; растворная — с увеличенной глубиной. угольная, породная — заостренный треугольник.

Как думаете если такой элементарный инструмент как лопата имеет такое количество специализированных моделей, можно ли сделать универсальную операционную систему, которая со всеми задачами будет справляться идеально?

Правильный ответ: Gentoo Linux! Конечно же я немного утрирую насчет идеальности, но именно эта система дает невероятные возможности для тюнига такого инструмента как компьютер.

Сейчас раскажу каким образом. Программисты пишут на Си++ и потом его компилируют в бинарный код, который непосредственно выполняется процессором компьютера. Компиляция — очень сложный процесс, который имеет множество настроек. Чтоб бинарный код одинаково хорошо работал на всех компьютерах всегда главным условием идет универсальность. Именно с расчетом на универсальность поставляются почти все операционные системы. Я говорю о всех бинарных системах, которыми являются так же и большинство Linux систем: Arch, Ubuntu, Debian, Slackware.

В отличие от бинарных систем Gentoo Linux компилируется из исходных кодов во время установки в соответствии с настройками компилятора. Таким образом, я записываю настройки в файл /etc/make.conf:

CFLAGS=»-march=k8-sse3 -O2 -pipe»
CHOST=»x86_64-pc-linux-gnu»
ACCEPT_KEYWORDS=~amd64

При компиляции ядра и всех программ операционной системы компилятор будет использовать оптимизацию под процессор AMD Athlon64. В результате моя операционная система получает большой прирост производительности при работе на Атлонах, но будет хуже работать на процессорах Intel (или вообще не будет работать на Intel).

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

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

Работа под администраторскими правами
Как то раз меня вызвали в полицейское отделение и задали вопрос, знаю ли я человека с фотографии. Я человека знал. Он терся у меня в клубе и был клиентом. Об этом я и поведал сотрудникам полиции. На что они мне говорят
— А вот он пишет, что он у вас работает. Его принял на работу один из операторов. Вот читайте.
— А вам не режет глаза логическая ошибка. Каким образом оператор принял на работу человека с улицы?

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

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

Права на запись
Мне очень нравится принцип всех линукс программ: не записывать свои файлы где попадет. Для работы системы требуется запись в /tmp и в домашнюю директорию пользователя. В случае запуска более сложных программ требуется еще /var (например, mysql хранит в этой директории базу данных).

С использованием различных инструментов системы линукс можно подключить все необходимые для записи директории в память, на сетевой диск или на любой другой удобный носитель. Это позволяет легко и непринужденно запускать систему любым удобным способом: с CD, DVD, с флэшки и даже по сети с сервера.

Именно это свойство позволило мне сделать бездисковый компьютерный зал, где Linux загружается по сети с сервера. Такая схема позволяет работать пользователю абсолютно не замечая того факта, что на компьютере нет жесткого диска. А самое главное — на таких бездисковых станциях можно запускать OpenGL приложения и в частности игры. Это возможно потому что тут клиентский компьютер не является тонким клиентом, а использует в полной мере все свои ресурсы: процессор, память, графический адаптер. О своем интернет клубе под Gentoo Linux я подробно расказывал тут http://www.newmoldova.com/node/438 .

Обновления
Чтоб обновить систему я пишу команду

#emerge —sync; emerge -DuN world

Обновления в линуксе — это отличное событие. В программах появляются новые функции, убираются надоевшие глюки, улучшается производительность. С новыми ядрами добавляется поддержка нового оборудования и улучшается поддержка старого оборудования. Появляются новые возможности для тюнинга системы.

Я замерял и заметил, что после обновления Xorg сервера и драйверов nvidia тест glxgears показывает на одном и том же железе лучшие цифры. Разница не существенная, но прогресс есть всегда.

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

И самое главное, если вам надоели проблемы с вирусами, переходите на линукс. Linux — это единственное верное решение!

10 причин использовать Linux Mint

Какой дистрибутив Linux лучше для новичка? Спросите, и кто-нибудь обязательно порекомендует Linux Mint. Но почему? Этот дистрибутив основан на Ubuntu и появился намного позже неё. Linux Mint был основан в 2007 году и его основной целью было создание максимально удобного окружения для пользователей.

Кроме всех преимуществ Ubuntu, он содержит уже предустановленные драйвера и собственный набор приложений для управления системой. В этой статье мы рассмотрим 10 причин почему стоит использовать Linux Mint.

Содержание статьи:

10 причин использовать Linux Mint

1. Окружение Cinnamon похоже на Windows

Если вы умеете пользоваться Windows или Chromebook, вы будете чувствовать себя вполне уверенно с Cinnamon. В то время, как Gnome пытается быть похожим на Mac OS, KDE и Cinnamon сохраняют традиционный интерфейс. Кнопка открытия главного меню системы находится в левом нижнем углу. Системные индикаторы и время в правом нижнем. Окна имеют кнопки сворачивания, разворачивания во весь экран и закрытия. К основным опциям приложения можно получить доступ из стандартного меню. Для любителей гаджетов Windows 7 здесь тоже есть сюрприз, Linux Mint поддерживает десклеты, которые можно считать полноценным аналогом гаджетам.

Определённо, Linux Mint — это не Windows. Здесь отличается устройство файловой системы, формат программ, а программы созданные для Windows нельзя запускать в Linux без дополнительных прослоек совместимости, которые поддерживают далеко не все программы. Здесь есть множество вещей, которые вам придётся изучить, но интерфейс будет более-менее привычным.

2. Предустановленные приложения

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

Как и множество других дистрибутивов, Linux Mint поставляется вместе с браузером Firefox и офисным пакетом Libreoffice. Для отправки сообщений здесь есть Pidgin, а для редактирования фото — GIMP. Кроме того, разработчики Linux Mint создали свой набор приложений для управления системой, например, для обновления, резервного копирования и дополнительной настройки. Все эти программы тоже поставляются вместе с системой.

3. Центр приложений

В Linux Mint есть неплохой центр приложений, который называется Software Manager. Это простое и в то же время современное приложение, где вы можете найти все необходимые вам программы. Вы можете просматривать категории приложений, видеть сколько программ есть в каждой категории и выбирать источник для загрузки.

Ещё можно ставить программам оценки и писать отзывы, что поможет другим пользователям определить какие программы им нужны.

4. Простота в настройке

Ubuntu, Fedora и другие дистрибутивы, которые используют окружение Gnome не имеют такого большого количества настроек, как в Cinnamon. Все эти настройки спрятаны и для доступа к ним нужно устанавливать сторонее программное обеспечение. В Linux Mint просто выполнив клик правой кнопкой мышки по любому элементу рабочего стола, вы получите доступ ко множеству его настроек.

Несмотря на то, что Cinnamon основан на Gnome, здесь реализовано намного больше настроек в интерфейсе. Для этой оболочки существует множество тем панелей, приложений и иконок. Вы можете настроить Linux Mint так, как захотите ничего дополнительно не устанавливая.

5. X-Apps

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

Разработчики Linux Mint не разделяют этот подход. Они предпочитают программы, которые работают в привычном классическом интерфейсе. X-Apps — это подарок разработчиков Mint для всех, кто любит классический интерфейс. Фактически, это набор приложений аналогов Gnome Apps, которые могут работать в любом окружении без необходимости установки множества зависимостей. Сюда входят:

  • Xreader — просмотр PDF файлов и чтение книг;
  • Xplayer — воспроизведение видео и аудио файлов;
  • Xviewer, Pix — просмотр изображений;
  • Xed — текстовый редактор;

Все эти программы поставляются вместе с системой.

6. Простая установка проприетарного ПО

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

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

7. Однородный интерфейс приложений

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

Например, в Ubuntu некоторые приложения имеют окна, которые содержат только панель заголовка и элементы управления окном, а меню открывается по нажатию специальной кнопки. Другие же имеют также традиционное меню. В то же время большинство приложений Linux Mint придерживаются традиционного интерфейса и выглядят одинаково. Например, офисный пакет и программы для просмотра фото и видео имеют одинаковые элементы управления, расположенные в одинаковых местах.

8. Для Linux Mint не нужен мощный компьютер

Много людей переходят на Linux потому, что новая версия Windows требует больше ресурсов, чем их компьютер может предоставить. Linux менее требователен к ресурсам, однако, некоторым оболочкам всё же необходимо много оперативной памяти и вычислительной мощности процессора. С Linux Mint даже старый компьютер будет хорошо работать.

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

9. Linux Mint имеет все преимущества Ubuntu

Ubuntu — это самый популярный дистрибутив Linux, а это означает, что множество разработчиков будут создавать свои программы в первую очередь для Ubuntu. Например, компания Valve выпускает клиент Steam для Ubuntu и гарантирует совместимость поддерживаемых Linux игр только с Ubuntu. Такая же ситуация с GOG.com. И это касается не только игр. Разработчики нередко создают deb файл, а всех остальных отправляют собирать программу из исходников.

Linux Mint основан на Ubuntu, а это значит, что большинство кода этих дистрибутивов полностью совпадает. Пакеты, собранные для Ubuntu, будут отлично устанавливаться и работать в Linux Mint. Так что если вы хотите чтобы вам были доступны большинство программ, которые есть для Linux, но вам нравится классический интерфейс — Linux Minnt — ваш выбор.

10. Linux Mint — один из самых популярных дистрибутивов

Сама по себе популярность ничего нам не даёт. Однако, чем больше людей пользуется дистрибутивом, тем больше инструкций по нему есть в интернете и больше топиков о решённых проблемах на форумах. Если вы столкнулись с какой-либо ошибкой, то есть большая вероятность, что кто-то уже сталкивался с такой проблемой и успешно её решил. Опять же, из-за того, что Linux Mint основан на Ubuntu, множество решений из этого дистрибутива в Mint тоже будут работать.

Выводы

Linux Mint — один из самых популярных дистрибутивов. Его часто советуют использовать как новичкам, так и более опытным пользователям. У Linux Mint есть множество преимуществ, но также есть и недостатки. Если вы хотите попробовать эту систему, то вам достаточно скачать образ и установить его на свой компьютер. А вы используете Linux Mint? Почему вам нравится этот дистрибутив? Напишите в комментариях!

зачем они нужны и как они работают? Часть 1 / OTUS. Онлайн-образование corporate blog / Habr

Всем привет! Мы продолжаем запуски новых потоков по уже полюбившимся вам курсам и сейчас спешим сообщить о том, что у нас стартует новый набор по курсу «Администратор Linux», который запустится в конце апреля. К этому событию и будет приурочена новая публикация. С оригиналом материала можно ознакомиться тут.

Виртуальные файловые системы выполняют роль некой волшебной абстракции, которая позволяет философии Linux говорить, что «всё является файлом».

Что такое файловая система? Опираясь на слова одного из первых контрибьюторов и авторов Linux Робера Лава, «Файловая система – это иерархическое хранилище данных, собранное в соответствии с определенной структурой». Как бы то ни было, это определение в равной мере хорошо подходит для VFAT (Virtual File Allocation Table), Git и Cassandra (база данных NoSQL). Так что именно определяет такое понятие, как «файловая система»?

Основы файловой системы

Ядро Linux имеет определенные требования к сущности, которая может считаться файловой системой. Она должна реализовывать методы open(), read() и write() для постоянных объектов, которые имеют имена. С точки зрения объектно-ориентированного программирования, ядро определяет обобщенную файловую систему (generic filesystem) в качестве абстрактного интерфейса, а эти три большие функции считаются «виртуальными» и не имеют конкретного определения. Соответственно, реализация файловой системы по умолчанию называется виртуальной файловой системой (VFS).

Если мы можем открывать, читать и записывать в сущность, то эта сущность считается файлом, как мы видим из примера в консоли сверху.
Феномен VFS лишь подчеркивает наблюдение, характерное для Unix-подобных систем, которое гласит, что «всё является файлом». Подумайте, насколько странно, что тот маленький пример сверху с /dev/console показывает, как на самом деле работает консоль. На картинке изображена интерактивная Bash сессия. Отправка строки в консоль (virtual console device) отображает ее на виртуальном экране. VFS имеет другие, еще более странные свойства. Например, она дает возможность осуществлять поиск по ним.

Знакомые нам системы, такие как ext4, NFS и /proc имеют три важные функции в структуре данных С, которая называется file_operations. Кроме того, определенные файловые системы расширяют и переопределяют функции VFS привычным объектно-ориентированным способом. Как отмечает Роберт Лав, абстракция VFS позволяет пользователям Linux беспечно копировать файлы в или из сторонних операционных систем или абстрактных сущностей, таких как pipes, не беспокоясь об их внутреннем формате данных. Со стороны пользователя (userspace) с помощью системного вызова процесс может копировать из файла в структуры данных ядра с помощью метода read() одной файловой системы, а затем использовать метод write() другой файловой системы для вывода данных.

Определения функций, которые принадлежат к базовым типам VFS, находятся в файлах fs/*.c исходного кода ядра, в то время как подкаталоги fs/ содержат определенные файловые системы. В ядре также содержатся сущности, такие как cgroups, /dev и tmpfs, которые требуются в процессе загрузки и поэтому определяются в подкаталоге ядра init/. Заметьте, что cgroups, /dev и tmpfs не вызывают «большую тройку» функций file_operations, а напрямую читают и пишут в память.
На приведенной ниже диаграмме показано, как userspace обращается к различным типам файловых систем, обычно монтируемых в системах Linux. Не показаны такие конструкции как pipes, dmesg и POSIX clocks, которые также реализуют структуру file_operations, доступ к которым проходит через слой VFS.

VFS — это «слой оболочки» между системными вызовами и реализациями определенных file_operations, таких как ext4 и procfs. Функции file_operations могут взаимодействовать либо с драйверами устройств, либо с устройствами доступа к памяти. tmpfs, devtmpfs и cgroups не используют file_operations, а напрямую обращаются к памяти.
Существование VFS обеспечивает возможность переиспользовать код, так как основные методы, связанные с файловыми системами, не должны быть повторно реализованы каждым типом файловой системы. Переиспользование кода – широкоприменяемая практика программных инженеров! Однако, если повторно используемый код содержит серьезные ошибки, от них страдают все реализации, которые наследуют общие методы.

/tmp: Простая подсказка

Простой способ обнаружить, что VFS присутствуют в системе – это ввести mount | grep -v sd | grep -v :/, что покажет все смонтированные (mounted) файловые системы, которые не являются резидентами на диске и не NFS, что справедливо на большинстве компьютеров. Одним из перечисленных маунтов (mounts) VFS, несомненно, будет /tmp, верно?

Все знают, что хранение /tmp на физическом носителе – безумие! Источник.

Почему нежелательно хранить /tmp на физическом носителе? Потому что файлы в /tmp являются временными, а устройства хранения медленнее, чем память, где создается tmpfs. Более того, физические носители более подвержены износу при перезаписи, чем память. Наконец, файлы в /tmp могут содержать конфиденциальную информацию, поэтому их исчезновение при каждой перезагрузке является неотъемлемой функцией.

К сожалению, некоторые скрипты инсталляции Linux дистрибутивов создают /tmp на устройстве хранения по умолчанию. Не отчаивайтесь, если это произошло и с вашей системой. Выполните несколько простых инструкций с Arch Wiki, чтобы это исправить, и помните о том, что память выделенная для tmpfs , становится недоступной для других целей. Другими словами, система с гигантской tmpfs и большими файлами в ней может израсходовать всю память и упасть. Другая подсказка: во время редактирования файла /etc/fstab, помните о том, что он должен заканчиваться новой строкой, иначе ваша система не загрузится.

/proc и /sys

Помимо /tmp, VFS (виртуальные файловые системы), которые наиболее знакомы пользователям Linux – это /proc и /sys. (/dev располагается в общей памяти и не имеет file_operations). Почему именно эти два компонента? Давайте разберемся в этом вопросе.

procfs создает снимок мгновенного состояния ядра и процессов, которые он контролирует для userspace. В /proc ядро выводит информацию о том, какими средствами оно располагает, например, прерывания, виртуальная память и планировщик. Кроме того, /proc/sys – это место, где параметры, настраиваемые с помощью команды sysctl, доступны для userspace. Статус и статистика отдельных процессов выводится в каталогах /proc/.

Здесь /proc/meminfo — это пустой файл, который тем не менее содержит ценную информацию.

Поведение /proc файлов показывает, какими непохожими могут быть дисковые файловые системы VFS. С одной стороны, /proc/meminfo содержат информацию, которую можно посмотреть командой free. С другой же, там пусто! Как так получается? Ситуация напоминает знаменитую статью под названием «Существует ли луна, когда на нее никто не смотрит? Реальность и квантовая теория», написанную профессором физики Корнельского университета Дэвидом Мермином в 1985 году. Дело в том, что ядро собирает статистику памяти, когда происходит запрос к /proc, и на самом деле в файлах /proc ничего нет, когда никто туда не смотрит. Как сказал Мермин, «Фундаментальная квантовая доктрина гласит, что измерение, как правило, не выявляет ранее существовавшего значения измеряемого свойства.» (А над вопросом про луну подумайте в качестве домашнего задания!)
Кажущаяся пустота procfs имеет смысл, поскольку располагающаяся там информация динамична. Немного другая ситуация с sysfs. Давайте сравним, сколько файлов размером не менее одного байта есть в /proc и в /sys.

Procfs имеет один файл, а именно экспортированную конфигурацию ядра, которая является исключением, поскольку ее нужно генерировать только один раз за загрузку. С другой стороны, в /sys лежит множество более объемных файлов, многие из которых занимают целую страницу памяти. Обычно файлы sysfs содержат ровно одно число или строку, в отличие от таблиц информации, получаемой при чтении таких файлов, как /proc/meminfo.

Цель sysfs – предоставить свойства доступные для чтения и записи того, что ядро называет «kobjects» в userspace. Единственная цель kobjects – это подсчет ссылок: когда удаляется последняя ссылка на kobject, система восстановит ресурсы, связанные с ним. Тем не менее, /sys составляет большую часть знаменитого «stable ABI для userspace» ядра, которое никто никогда, ни при каких обстоятельствах не может «сломать». Это не означает, что файлы в sysfs статичны, что противоречило бы подсчету ссылок на нестабильные объекты.
Стабильный двоичный интерфейс приложений ядра (kernel’s stable ABI) ограничивает то, что может появиться в /sys, а не то, что на самом деле присутствует в данный конкретный момент. Листинг разрешений на файлы в sysfs обеспечивает понимание того, как конфигурируемые параметры устройств, модулей, файловых систем и т.д. могут быть настроены или прочитаны. Делаем логический вывод, что procfs также является частью stable ABI ядра, хотя это не указано явно в документации.

Файлы в sysfs описывают одно конкретное свойство для каждой сущности и могут быть читаемыми, перезаписываемыми или и то и другое сразу. «0» в файле говорит о том, что SSD не может быть удален.

Вторую часть перевода начнем с того, как наблюдать за VFS с помощью инструментов eBPF и bcc, а сейчас ждем ваши комментарии и традиционно приглашаем на открытый вебинар, который уже 9 апреля проведет наш преподаватель — Владимир Дроздецкий.

Вторая часть.

Основные особенности Linux

На сегодняшний день наиболее известными операционными системами для компьютеров являются семейства операционных систем Microsoft Windows и UNIX. Первые ведут свою родословную от операционной системы MS-DOS, которой оснащались первые персональные компьютеры фирмы IBM. Операционная система UNIX была разработана группой сотрудников Bell Labs под руководством Денниса Ричи, Кена Томпсона и Брайана Кернигана (Dennis Ritchie, Ken Thompson, Brian Kernighan) в 1969 году. Но в наши дни, когда говорят об операционной системе UNIX, чаще всего имеют в виду не конкретную ОС, а скорее целое семейство UNIX-подобных операционных систем. Само же слово UNIX (заглавными буквами) стало зарегистрированной торговой маркой корпорации AT&T.

В конце 70-х годов (теперь уже прошлого столетия) сотрудники Калифорнийского университете в Беркли внесли ряд усовершенствований в исходные коды UNIX, включая работу с протоколами семейства TCP/IP. Их разработка стала известна под именем BSD («Berkeley Systems Distribution»). Она распространялась под лицензией, которая позволяла дорабатывать и усовершенствовать продукт, и передавать результат третьим лицам (с исходными кодами или без них) при условии, что будет указано, какая часть кода разработана в Беркли.

Операционные системы типа UNIX, в том числе и BSD, изначально разрабатывались для работы на больших многопользовательских компьютерах — мейнфреймах. Но персональные компьютеры постепенно наращивали мощь своего аппаратного обеспечения, и в наши дни они уже превосходят по возможностям те мейнфреймы, для которых в 70-х годах разрабатывалась ОС UNIX. И вот, в начале 90-х годов студент хельсинкского университета Линус Торвальдс (Linus Torvalds) приступил к разработке UNIX-подобной ОС для IBM-совместимых персональных компьютеров.

25 августа 1991 года Линус написал, что он работает над (свободной) операционной системой для 386-х (486-х) компьютеров, и просит всех заинтересованных лиц сообщить, какие компоненты системы пользователи хотят видеть в первую очередь. Но, как видно из текста послания, оболочка bash и компилятор gcc у него уже работали. Работали они под управлением операционной системы Minix, которая была разработана профессором Э.Таненбаумом (Andy Tanenbaum) как учебное пособие для студентов-программистов. Minix работала на компьютерах с 286-ым процессором и послужила для Торвальдса прообразом новой ОС.

Файлы первого варианта Linux (версия 0.01) были опубликованы в Интернете 17 сентября 1991 года.В силу того, что исходные коды Linux распространяются свободно и общедоступны, к развитию системы с самого начала подключилось большое число независимых разработчиков. Благодаря этому на сегодняшний момент Linux — самая современная, устойчивая и быстроразвивающаяся система, почти мгновенно вбирающая в себя самые последние технологические новшества. Она обладает всеми возможностями, которые присущи современным полнофункциональным операционным системам типа UNIX. Приведем краткий список этих возможностей.

Затем, 5 октября 1991 г. была выпущена версия 0.02, которая уже работала. Л. Торвальдс не стал патентовать или иным образом ограничивать распространение новой ОС. С самого начала Linux распространяется на условиях, определяемых лицензией General Public License (GPL), принятой для программного обеспечения, разрабатываемого в рамках движения Open Source и проекта GNU. Надо сказать, что разработка Линуса Торвальдса представляла собой только ядро операционной системы. Это ядро «упало на подготовленную почву», в том смысле, что в рамках проекта GNU уже было разработано большое количество утилит разного рода. Но для превращения GNU в полноценную ОС не хватало ядра. Разработка ядра велась (оно называлось Hurd), но по каким-то причинам задерживалась. Поэтому появление разработки Л. Торвальдса было очень своевременным. Оно ознаменовало рождение операционной системы, распространяемой с открытыми исходными кодами.

Основные характеристики ОС Linux 

В силу того, что исходные коды Linux распространяются свободно и общедоступны, к развитию системы с самого начала подключилось большое число независимых разработчиков. Благодаря этому на сегодняшний момент Linux — самая современная, устойчивая и быстроразвивающаяся система, почти мгновенно вбирающая в себя самые последние технологические новшества. Она обладает всеми возможностями, которые присущи современным полнофункциональным операционным системам типа UNIX. Приведем краткий список этих возможностей.

Реальная многозадачность

Все процессы независимы; ни один из них не должен мешать выполнению других задач. Для этого ядро осуществляет режим разделения времени центрального процессора (ОС с разделением времени — time-sharing system), поочередно выделяя каждому процессу интервалы времени для выполнения. Это существенно отличается от режима «вытесняющей многозадачности», реализованной в Windows 95, когда процесс должен сам «уступить» процессор другим процессам (и может сильно задержать их выполнение).

Если говорить о процессах, то рождение новых процессов в системе организовано таким образом, что любой процесс запущенный пользователем, наследует права от процесса-родителя. А процесс-родитель, как раз обеспечивает вход пользователя под определенным логином (анонимного входа, как в Windows нет!). Таким образом, запустить процесс с привелегиями другого пользователя оказывается невозможно! Напомню, что в Windows процеы могут появляться не от родителей, а самостоятельно, что говорит явно не в пользу её безопасности.

Многопользовательский доступ

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

Свопирование оперативной памяти на диск

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

Страничная организация памяти

Системная память Linux организована в виде страниц объемом 4K. Если оперативная память полностью исчерпана, ОС будет искать давно не использованные страницы памяти для их перемещения из памяти на жесткий диск. Если какие-либо из этих страниц становятся нужны, Linux восстанавливает их с диска. Некоторые старые Unix-системы и некоторые современные платформы (включая Microsoft Windows) переносят на диск все содержимое ОП, относящееся к неработающему в данный момент приложению, (т. е. ВСЕ страницы памяти, относящиеся к приложению, сохраняются на диске при нехватке памяти) что менее эффективно.

Загрузка выполняемых модулей «по требованию»

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

Совместное использование исполняемых программ

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

Общие библиотеки

Библиотеки — наборы процедур, используемых программами для обработки данных. Существует некоторое количество стандартных библиотек, используемых одновременно более чем одним процессом. В старых системах такие библиотеки включались в каждый исполняемый файл, одновременное выполнение которых приводило к непродуктивному использованию памяти. В новых системах (в частности, в Linux), обеспечивается работа с динамически и статически разделяемыми библиотеками, что позволяет сократить размер отдельных приложений.

Динамическое кеширование диска

Кеширование диска — это использование части оперативной памяти для хранения часто используемых данных с диска, что существенно ускоряет доступ к часто используемым программам и задачам. Пользователи MS-DOS работают со SmartDrive, который резервирует фиксированные области системной памяти для кеширования диска. Linux использует более динамичную систему кеширования: память, зарезервированная под кеш, увеличивается, когда память не используется, и уменьшается, если системе или процессу пользователя требуется больше памяти.

100%-ное соответствие стандарту POSIX 1003.1. Частичная поддержка возможностей System V и BSD

POSIX 1003.1 (Portable Operating System Interface — интерфейс мобильной операционной системы) задаeт стандартный интерфейс Unix-систем, который описывается набором процедур языка Си. Сейчас он поддерживается всеми новыми ОС. Microsoft Windows NT также поддерживает POSIX 1003.1. Linux 100%-но соответствует POSIX. Дополнительно поддерживаются некоторые возможности System V и BSD для увеличения совместимости.

System V IPC

Linux использует технологию IPC (InterProcess Communication) для обмена сообщениями между процессами, использования семафоров и общей памяти.

Возможность запуска исполняемых файлов других ОС

Linux не является первой в истории операционной системой. Для ранее разработанных ОС, включая DOS, Windows 95, FreeBSD или OS/2, разработана масса различного, в том числе очень полезного и очень неплохого программного обеспечения. Для запуска таких программ под Linux разработаны эмуляторы DOS, Windows 3.1 и Windows 95. Более того, фирмой Vmware разработана система «виртуальных машин», представляющая собой эмулятор компьютера, в котором можно запустить любую операционную систему. Имеются аналогичные разработки и у других фирм. ОС Linux способна также выполнять бинарные файлы других Intel-ориентированных Unix-платформ, соответствующих стандарту iBCS2 (intel Binary Compatibility).

Поддержка различных форматов файловых систем

Linux поддерживает большое число форматов файловых систем, включая файловые системы DOS и OS/2, а также современные журналируемые файловые системы. При этом и собственная файловая система Linux, которая называется Second Extended File System (ext2fs), позволяет эффективно использовать дисковое пространство. Она поддерживает журналирование и распределение прав доступа.

Сетевые возможности

Linux можно интегрировать в любую локальную сеть. Поддерживаются все службы Unix, включая Networked File System (NFS), удалeнный доступ (telnet, rlogin), работа в TCP/IP сетях, dial-up-доступ по протоколам SLIP и PPP, и т. д… Также поддерживается включение Linux-машины как сервера или клиента для другой сети, в частности, работает общее использование (sharing) файлов и удаленная печать в Macintosh, NetWare и Windows.

Работа на разных аппаратных платформах

Хотя ОС Linux первоначально была разработана для ПК на базе Intel 386/486, сейчас она может работать на всех версиях Intel-овских микропроцессоров, начиная с 386 и кончая многопроцессорными системами на Pentium. Так же успешно Linux работает на различных клонах Intel от других производителей; в Интернете встречаются сообщения о том, что на процессорах Athlon и Duron от AMD Linux работает даже лучше, чем на Intel. Кроме того, разработаны версии для других типов процессоров — ARM, DEC Alpha, SUN Sparc, M68000 (Atari и Amiga), MIPS, PowerPC и других (отметим, что в настоящей книге рассматривается только вариант для IBM-совместимых компьютеров).

(Посещений: 2 892, из них сегодня: 1)

Понравилась публикация? Почему нет? Оставь коммент ниже или подпишись на feed и получай список новых статей автоматически через feeder.

К вопросу о популярности Linux-систем / Habr

Намерения

Linux не имеет такой большой популярности, как Windows. Я не буду приводить статистику, потому что статистики бывают разными. Я не хотел бы говорить об идеологии, это неминуемо приводит к холиварам. Не полезу в сегмент серверов — люди, разворачивающие их обычно довольно хорошо себе представляют, что они хотят от ОС. С вашего позволения, не буду затрагивать тему бесплатности, — не секрет, что большинство пользователей в России не тратят денег на лицензирование. Да и вообще, топик о людях, а не о системах. Сам я сторонник открытого ПО и стараюсь по мере возможностей заниматься его популяризацией и помогать разработчикам.

Топик — предложение сторонникам Linux вместе подумать, почему наши ОС не имеют популярности, сравнимой с другими системами.

Итак, Linux относительно непопулярен среди казуальных пользователей. Значит на то есть объективные причины. Для себя я разбил их на несколько групп, которые и описал ниже. Описание каждой причины сосотоит из двух пунктов: собственно формулировки и видимого для меня решения.

Причины
Исторические

Устоявшееся мнение, что Linux — это очень сложно

Пять лет назад я очень захотел посмотреть, что такое Linux. Мне выдали дистрибутив на CD, я начал ставить и затер весь жесткий диск. С английским тогда было у меня туго, я не смог разобраться в текстовом инсталляторе. После этого я три года не мог отделаться от мысли, что это не для меня, что мне никогда не разобраться и нечего «сувать свой нос» в мир отрытых ОС. Сейчас все гораздо проще — и локализация хорошая, и интерфейсы стали очень даже дружественными. Но люди до сих пор считают, что Linux — для специалистов.

Для себя я заметил, что это всего лишь страхи, не более. Когда на работу приходит новый человек и речь заходит о навыках работы с компьютером, после фразы «У нас тут везде используется Linux» он сразу киснет. А дальше самое интересное. С какого-то момента я придумал такую «обманку». Достаточно спросить «Ну вы с Windows работали?». Соискатель сразу же отвечает: «Да, конечно!». Если в этот момент улыбнуться и очень уверенно сказать «А, ну тогда с Linux в два счета разберётесь!» и быстро перейти к другой теме, то у человека тут же неминуемо пропадает всякий страх! Интересно, что люди, которым я так говорил (за последний год таких было около 15 человек, больше половины из них женщины) действительно очень быстро осваивались и ни разу (!) не обращались с какими-то проблемами. Те же, которым просто было объявлено, что им придется работать с Ubuntu, например, испытывали некоторый дискомфорт в первые два-три дня.

Под Linux мало софта

Это тоже очень верно с точки зрения исторической ретроспективы. В те времена, когда я легко и непринужденно затер свой жесткий диск, с интернетами были проблемы — я учился не в Москве и мне просто негде было взять софт. Да и об установке его речь не шла — в общаге просто не было людей, которые занимались бы этим вопросом. Зато передавались из рук в руки болванки с софтом под Windows. Сейчас, конечно, всё стало значительно проще.

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

— Выделил? Ну теперь наживай кнопку применить.
— Нажал.
— Ага. Отлично!
— А где здесь теперь сетап запускать?
— А всё. Уже все утановлено…
— Как так? В меню? Ну ка… Ну дык… это… Ах*еть!!!

🙂

После этого пользователь сам будет несколько часов сидеть и, периодически попискивая от восторга, ставить разное ПО, которое, скорее всего, ему никогда и не понадобится. Но миф о недостатке софта и сложности установки будет разбит.

Под Linux вообще нет игр!

Игры, конечно, есть. Но не все. И тут, очевидно, действительно слабое место.

UPD. Пользователь manny21 подсказал сайт с игрушками для пользы сообщества: igronomicon.org/top250

Социально-экономические

Предустановленные ОС

Именно по этой причине я пользуюсь Linux только два года из пятнадцати. Действительно, зачем что-то менять, если всё и так хорошо. Никакие аргументы здесь не помогут по той просто причине, что Windows-пользователи правы! Действительно, у них всё хорошо. И не надо парить их техническими подробностями о каких-то субъективных достоинствах/недостатках. Они счастливы, им удобно пользоваться Windows. Они правы на все 100%!

В данном вопросе популяризации (пропаганды) следует играть исключительно на таких чувствах, как любопытство и честолюбие. Таким образом, слабую сторону Linux-систем можно превратить в сильнейший мотиватор. Как бы между делом, сидя у костра с топоромгитаркой рассказать немного об альтернативах («Да ладно, Вась, ты шутишь, что ли? Правда что ли никогда не сталкивался? Ты же матерый компьютерщик — сто пятьсот лет с компами возшься»), пока что не переходя к подробностям. На самых интересных моментах (важно знать, чем интересуется человек в плане компьютеров, что его беспокоит) важно остановиться и пообещать дорасказать потом («Слушай, что-то мы тут заболтались, а дрова-то кончаются. Пойду, до леса сбегаю»). Только так можно заинтересовать человека, он потом сам вернется к разговору. И уже после того, как он будет заинтересован можно будет оперировать логикой, аргументами и фактами, не вызываю подсознательного отторжения.

Завязки на бизнес-использовании компьютеров в малых группах

В данном случае (особенно в регионах) большой вес имеет страх. Пару примеров с улыбкой о том, как «у нас в Москве посадили/оштрафовали за пиратские софтины — скоро и за вас возьмутся» и всё. Знакомому руководителю прочно забито в голову чувство страха. У него обязательно на лице появится задумчивость. В этот момент как бы в продолжение разговора посетовать, что лицензии дорого стоят, «буржуи совсем озверели — дерут втридорога». Хорошо, мол, что есть альтернатива, «а то не знаю, как бы мы занимались бизнесом» и быстренько свернуть на другую тему. Как ни странно, этот прием очень хорошо действует до сих пор.

Недостаток поддержек

Люди не хотят остаться одни. Чувство одиночества в буквальном смысле убивает. Важно дать понять им, что всегда найдутся те, кто, в случае чего, придет им не помощь. Ну и, конечно, самостоятельно по мере сил оказывать поддержку (хотя бы моральную) новичкам. Показать сообщество, помочь им не замкнуться на своих проблемах. Иначе, оставшись одиночестве, пользователь получит очень острые переживания, подсознательно связанные с альтернативными ОС.

Большую роль играет так же чувство вовлеченности. Много раз уже просматривал на Хабре баталии между сторонниками разных ОС. Но, почему-то, ни разу не видел упоминаний об этом сильнейшем аргументе. Я не про то, что каждый может переделать программу под себя. Я говорю о том, что потребность к творчеству в той или иной степени присутствует у всех людей. А ведь Linux — единственная ОС из «большой тройки», в создании которой пользователь может принять такое непосредственное участие! Об этом никогда не нужно забывать.

Позиционирование

Самый интересный и «вкусный» момент. Я часто за собой замечаю, что говорю о Linux как об некоей «альтернативной» ОС (этот топик не в счет, тут всё по сознанке :))

Важно перестать в общении с людьми указывать на «альтернативность» свободного ПО. Априори задавать тон дискуссии в ключе равенства. Следить за речью, упоминать Windows всего лишь как альтернативу другим системам. Это будет выглядеть естественно, если самому это твердо осознать. А для этого нужно раз и навсегда отказаться от холиваров, от постоянной необходимости кому-то что-то доказывать. В целом же, я не очень четко представляю себе рецепт, если кто-то из нас имеет опыт в создании образов, в позиционировании, то это будет замечательным дополнением.

Технические

Группа технических причин — наиболее объективна. Перечислять их смысла нет — достаточно посетить списки отчетов об ошибках и посетить сайты «мозговых штурмов». Частично она попрождена именно «свободностью» открытого ПО. Все люди видят решения задач по-разному, поэтому унификация и стандартизация становятся очень сложными задачами. Это один из аспектов проблемы, который я вижу.

На закуску

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

9 самых популярных оболочек рабочего стола Linux

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

1. KDE

Оптимизируйте рабочий стол Linux: KDE

KDE Plasma — пожалуй, самая продвинутая оболочка рабочего стола из всех. При этом она ещё и очень красива. KDE отличается огромным числом настроек — при желании систему можно трансформировать в подобие Windows, macOS, сделать её футуристичной и вычурной на вид или, наоборот, превратить свой рабочий стол в царство минимализма. Для KDE разработано множество тем, сторонних расширений и виджетов (здесь они именуются плазмоидами).

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

В комплекте с KDE вы получите кучу симпатичных и при этом крайне функциональных приложений. Например, Amarok — мощный аудиоплеер, способный по своим возможностям потягаться с iTunes; KGet — удобный загрузчик файлов из интернета; неплохой браузер Konqueror; универсальный мессенджер Kopete и KDE Connect, позволяющий соединять ваш смартфон на Android с десктопом.

  • Кому подойдёт: продвинутым пользователям, которым нужно много возможностей, и любителям «красивостей».
  • Преимущества: очень стильно и современно выглядит, чрезвычайно гибко настраивается, имеет огромное количество функций.
  • Недостатки: потребляет больше системных ресурсов, чем другие оболочки. Новичкам будет тяжело разобраться во всём изобилии настроек. Впрочем, оболочкой можно с комфортом пользоваться и в её стандартном виде.
  • Дистрибутивы: Kubuntu, openSUSE, Chakra.

2. GNOME

Оптимизируйте рабочий стол Linux: GNOME

Одно из самых популярных окружений рабочего стола в Linux. Интерфейс GNOME, видимо, ориентируется на устройства с сенсорными экранами: огромные значки и всплывающие меню, разворачивающийся список приложений, чем-то напоминающий Launchpad на macOS. Консервативным пользователям это покажется не очень-то привычным. Но GNOME определённо удобная и очень красивая оболочка. А если вас не устраивают все эти новомодные навороты, вы всегда можете переключиться в режим GNOME Classic.

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

Оболочка обладает такими встроенными инструментами, как системный поиск, календарь, файловый менеджер Nautilus, почтовый клиент Evolution, мультимедиа-проигрыватель Totem. При желании возможности GNOME можно увеличить с помощью сторонних расширений — их довольно много.

  • Кому подойдёт: обладателям систем с сенсорными экранами, планшетов и трансформеров, а также тем, кто привык к macOS.
  • Преимущества: красиво и современно выглядит, удобен и быстр, поддерживает много расширений, имеет большое количество настроек.
  • Недостатки: довольно тяжеловесный. Не всем пользователям придётся по душе интерфейс, ориентированный на сенсорные устройства.
  • Дистрибутивы: Ubuntu, Fedora, Antergos.

3. MATE

Оптимизируйте рабочий стол Linux: MATE

Когда-то GNOME 2 была эталоном минимализма и простоты. Но разработчики решили добавить крутых фич, и в итоге мы получили футуристичную GNOME 3, которая радует нас до сих пор. Тем не менее не всем нововведения в нём показались уместными, поэтому сообщество Linux создало MATE.

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

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

  • Кому подойдёт: обладателям старых и маломощных ПК либо тем, кто не хочет, чтобы красивый интерфейс отнимал много резервов.
  • Преимущества: очень быстрая и простая в использовании рабочая среда, которая потребляет мало ресурсов, но при этом неплохо настраивается.
  • Недостатки: интерфейс MATE может показаться чересчур консервативным и старомодным.
  • Дистрибутивы: Ubuntu MATE, Linux Mint MATE.

4. Cinnamon

Оптимизируйте рабочий стол Linux: Cinnamon

Это тоже форк GNOME, как и MATE. Вот только Cinnamon рассчитана всё же на более новые компьютеры. Эта графическая оболочка появилась в Linux Mint, но позже распространилась и в других дистрибутивах.

Главная особенность Cinnamon — её простота. В то время, как другие графические окружения пытаются стать чем-то особенным и непохожим на остальные интерфейсы, эта разработка старается быть как можно более дружелюбной к новичкам. Освоить её будет просто даже тем, кто ранее пользовался только Windows, поскольку внешне есть значительное сходство с операционной системой от Microsoft. Панель с открытыми приложениями внизу, слева главное меню и значки быстрого запуска, справа трей и часы.

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

  • Кому подойдёт: пользователям, мигрировавшим с Windows, и новичкам. А также тем, кто хочет простую и понятную графическую среду, чтобы работать, а не любоваться ею.
  • Преимущества: очень симпатичный внешний вид, в интерфейсе будет просто разобраться. Есть изрядное количество настроек и апплетов.
  • Недостатки: в официальном репозитории маловато тем. Впрочем, можно качать сторонние с того же Gnome Look и DeviantArt.
  • Дистрибутивы: Linux Mint.

5. Budgie

Оптимизируйте рабочий стол Linux: Budgie

Budgie позаимствовала док из macOS, боковую панель из Windows 10 и верхнюю панель с треем из GNOME, но выглядит при этом довольно самобытно и интересно. Фишка этой оболочки — удобная панель Raven с правой стороны экрана, управляющая плеером, уведомлениями, календарём и настройками системы.

Среда не может похвастаться обилием настроек, но будет проста и понятна даже для новичков. А если перетащить верхнюю панель вниз, то Budgie и вовсе будет напоминать интерфейс Windows 10.

  • Кому подойдёт: как новичкам, которые не хотят разбираться в настройках, так и опытным пользователям Linux, желающим чего-то непривычного.
  • Преимущества: комфортный и интуитивно понятный интерфейс. Хорошо смотрится даже на устройствах с небольшими экранами, например нетбуках.
  • Недостатки: довольно прожорлива в плане системных ресурсов, несмотря на то что настроек меньше, чем в GNOME и KDE.
  • Дистрибутивы: Solus Linux, Ubuntu Budgie.

6. LXDE

Оптимизируйте рабочий стол Linux: LXDE

Эта графическая среда пожертвовала красотой ради оптимизации и быстродействия. LXDE своим внешним видом смахивает на старые версии Mac OS X и работает даже на совсем древних и медленных компьютерах.

Если у вас в кладовке завалялся один такой, то установите на него Linux с LXDE и получите удобную рабочую лошадку для интернет-сёрфинга, хранения документов, просмотра фильмов и воспроизведения музыки.

  • Кому подойдёт: обладателям старых ПК, на которых притормаживают даже MATE и Xfce.
  • Преимущества: очень быстра. Запустится даже на самых древних устройствах.
  • Недостатки: интерфейс, прямо скажем, немного архаичный, хотя это можно поправить при помощи тем.
  • Дистрибутивы: Lubuntu.

7. Xfce

Оптимизируйте рабочий стол Linux: Xfce

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

В комплекте поставляется файловый менеджер Thunar с удобным вкладочным интерфейсом и встроенным инструментом для массового переименования файлов. При желании оболочку Xfce можно расширить с помощью сторонних модулей. Поддерживаются и темы оформления.

  • Кому подойдёт: универсальное окружение, которое могут использовать и обладатели старых компьютеров, и любители простых аскетичных интерфейсов.
  • Преимущества: очень легковесный вариант. При этом присутствует куда больше функций и настроек, чем в LXDE. Симпатично выглядит, хотя опять же неуловимо напоминает Mac OS X Tiger.
  • Недостатки: поедает больше системных ресурсов, чем LXDE.
  • Дистрибутивы: Xubuntu, Manjaro Linux.

8. Pantheon

Оптимизируйте рабочий стол Linux: Pantheon

Графическая оболочка Pantheon первоначально разрабатывалась для elementary OS. Её приоритеты — простота в освоении и красота. Создатели elementary OS прямо заявляли, что ориентировались на macOS. Pantheon и впрямь похож на эту систему, но есть и различия. Во-первых, по-другому расположены кнопки управления окном, хотя «Закрыть» и находится слева, как привыкли маководы. Во-вторых, от глобального меню разработчики отказались, сделав верхнюю панель прозрачной.

Pantheon просто освоить: настройки в ней немногочисленны, запутаться в этой оболочке очень сложно. А док-панель Plank, специально созданная для неё, красива и не занимает много памяти.

  • Кому подойдёт: пользователям macOS и новичкам, которые хотят простой и интуитивно понятный интерфейс.
  • Преимущества: очень быстрая, неплохо выглядит. Анимации окон и панелей смотрятся стильно и приятно.
  • Недостатки: настроить внешний вид системы не получится. Всё по заветам macOS.
  • Дистрибутивы: elementary OS.

9. Deepin Desktop Environment

Оптимизируйте рабочий стол Linux: Deepin Desktop Environment

Deepin Desktop Environment изначально создавалась китайскими разработчиками для одноимённой операционной системы, но позже перекочевала и в другие дистрибутивы Linux. Акцент в ней сделан на визуальную привлекательность и лёгкость в использовании. Оболочка выглядит современно и действительно стильно.

Особенность Deepin Desktop Environment — универсальная трансформируемая панель снизу. Она может превращаться в аналог таскбара Windows 10 или в нечто вроде дока macOS. И в том, и в другом режиме пользоваться ею очень удобно. Сбоку же разместилась ещё одна выдвигающаяся панель с настройками и уведомлениями.

  • Кому подойдёт: освоиться смогут все. Панель в Deepin легко трансформируется и в macOS-подобный док с Launchpad, и в панель задач Windows 10 с привычным для многих меню.
  • Преимущества: минималистичный и удобный интерфейс, который смотрится стильно и необычно. В нём легко разберутся даже новички.
  • Недостатки: куча предустановленных малополезных приложений от разработчиков Deepin.
  • Дистрибутивы: Deepin, Manjaro Linux.

Читайте также 🧐

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *