Прежде, чем погрузиться с пучину событий 2017 г. стоит оглянуться назад и отметить важные события и тренды минувшего года. Попытка охватить все важные события мире Linux и открытого ПО одним постом была самонадеянной, так как год выдался богатый юбилеями, а некоторые из них прошли незамеченными на Хабре. Из-за этого задуманный дайджест пришлось разбить на части, этот посвящен значительным юбилеям 2016 г: Linux, Vim, KDE и Git.
![Happy Birthday](https://habrastorage.org/files/876/854/c07/876854c0746f4b2eb0db24c0c1ce6e4a.png)
25-летие Linux
25 августа 2016 г. состоялся 25-й День Рожденья Linux. В то время это было 10 тыс. строк кода и сообщение в новостную группу comp.os.minix
. По ссылке Хабра-пост посвященный этому событию, где изложена история создания и развития Linux, статистика релизов и любопытные факты.
![](https://habrastorage.org/files/fd0/cec/17b/fd0cec17b717468187b2078a8a751083.png)
Интересно, что Linux мог бы изначально называться Freax («free», «freak» и X (Unix)). Такое название своему проекту дал сам Линус. Но Ари Лемке (Ari Lemmke), который по просьбе Линуса выложил ядро на своем FTP-сервере, назвал директорию с ядром «linux».
А ведь все начиналось с программы эмуляции терминала. Нужна была программа, с помощью которой студент Линус Торвальдс мог бы соединяться с сервером своего ВУЗ-а, получать и отправлять почту, читать новости. Как настоящий хакер, он не сильно был привязан к внешнему миру и почти все свое время уделял программированию. Когда эмулятор терминала был готов, оказалось, что нужен еще и драйвер дисковода, чтобы скачивать и закачивать файлы. Соответственно, нужен был еще и драйвер файловой системы. Затем еще и еще функции.
Я крутился как белка в колесе: программирование – сон – программирование – еда (соленые сухарики) – программирование – сон – программирование – душ (на скорую руку) – программирование. К концу работы стало ясно, что моя программа превращается в операционную систему. И я стал думать о ней не как о программе эмуляции терминала, а как об операционной системе. Этот сдвиг произошел, вероятно, в дурмане одного из затянувшихся сеансов программирования. Было это днем или ночью? Не знаю. Сижу я в своем старом халате и работаю с программой эмуляции, снабженной дополнительными функциями. А потом вдруг понимаю, что этих функций стало так много, что программа превратилась в рабочую версию операционной системы.
Linus Torvalds, «Just for fun».
Затем еще следовало написать реализацию двух сотен системных вызовов, а для этого требовалось раздобыть откуда-то документацию POSIX стандартов. Век интернета еще не наступил, и это тоже было делом нетривиальным. Вот так по принципу каши из топора стала материализовываться ОС.
Vim 25 лет
В том же 1991 г. 2-го ноября Bram Moolenaar выкатил первую стабильную версию vim
после трех лет от начала работы над проектом. Ему нужен был обычный Unix vi
, но на его ПК Amiga эта программа не была портирована. Свое название vim первоначально получил от слов vi imitation, то есть имитация vi
. Еще спустя три года, после того, как vim 2.0 превзошел оригинал название поменялось на vi improved. В прошлом, юбилейном году вышел vim 8.0.
На сегодняшний день vim
поддерживает практически все мыслимые ОС и платформы.
- AmigaOS
- Atari MiNT
- BeOS
- DOS
- Mac OS
- NextStep
- OS/2, OSF
- RISC OS
- BSD
- Linux
- SGI
- Unix (IBM AIX, HP-UX, SGI IRIX, Sun Solaris, SCO OpenServer и другие)
- VMS
- Win16 (Microsoft Windows 3.x), Win32 (Windows 4.x и Windows NT)
- Apple iOS
- Android
Когда приверженцы редактора Notepad++
спрашивают меня что умеет делать vim
, я обычно отвечаю «это как Фотошоп, но для текста», и это сравнение производит должный эффект. Думаю, что не умею использовать и четверти возможностей vim
, но даже этого хватает для того, чтобы тащить довольно-таки трудозатратные и сложные проекты.
На снимке последняя из 724 страниц армяно-русского словаря, который мы оцифровали с помощью vim
. Возможно есть еще текстовые редакторы, в которых можно проверять орфографию по двум словарям одновременно, но мне они не известны.
:setlocal spell spelllang=hy,ru
![](https://habrastorage.org/files/721/9af/a1d/7219afa1d6ad42efa5d16fe0b90ea49b.png)
KDE 20 лет
В KDE также год был юбилейным, проекту исполнилось 20 лет. На Хабре это событие прошло незамеченным, необходимо восполнить этот пробел.
14 октября 1996 года Matthias Ettrich объявил о создании современного и полноценного свободного графического окружения, для рядовых пользователей, а не системных администраторов, в котором все приложения и элементы интерфейса имеют одинаковое оформление и общий стиль поведения.
- KDE 1.0 был выпущен 12 июля 1998 года — первый стабильный релиз.
- KDE 2.0 вышел в свет 23 октября 2000 года.
- KDE 3.0 — релиз 3 апреля 2002 года.
- KDE 4.0 — релиз 11 января 2008 года.
- KDE Frameworks 5 — дата выпуска 7 июля 2014 г.
- KDE Plasma 5 — аналогично 7 июля 2014 года.
Судьбоносным и верным решением было использование библиотеки Qt, новинки от компании Trolltech, призванной заменить ужасный Motif. В пользу Qt сыграли качество, открытость и кросс-платформенность графического тулкита. KDE Free Qt Foundation следит за тем, чтобы Qt и впредь оставался открытым и бесплатным для разработчиков свободного ПО.
Сегодня KDE — один из крупнейших проектов с открытым кодом. По данным Open Hub:
- Свыше 21 млн. строк кода
- Свыше 1.1 млн. коммитов от > 4200 разработчиков за все время
- Почти 30 тыс. коммитов от 375 разработчиков за последние 12 месяцев.
Оригинальный KDE 1.0.
Впрочем погонять ее можно и сегодня, накануне своего юбилея разработчики KDE Restoration Project портировали KDE 1.1.2 на современные дистрибутивы Linux.
Кодовая база KDE 1 адаптирована для сборки современными компиляторами и переведена на сборочный инструментарий Cmake. Исторический код помещён в штатные git-репозитории KDE, что позволяет любому желающему собрать KDE 1, воспользовавшись репозиториями qt1, kde1-kdelibs и kde1-kdebase. Для Fedora 25 собраны установочные пакеты с KDE 1, но они пока не готовы к публикации.
![](https://habrastorage.org/files/f5d/501/9ba/f5d5019bacfa4009a19a1b8f2d59b4bf.png)
KDE 2.0 пока никто не портировал, но можно на нее полюбоваться со старым Mandrake Linux 8.0.
$ qemu-system-i386 \
-M pc-0.10 -m 2048 \
-boot order=ad,menu=on \
-drive file=mandrake8.qcow2 \
-usb -net nic,model=rtl8139 \
-netdev user,id=slirp \
-vga cirrus \
-cdrom mandrake-8.0-i386.iso
KDE 2 на Mandrake Linux 8.0
![](https://habrastorage.org/files/3b7/529/8f6/3b75298f6bfd4da386b04ee46609ac24.png)
KDE 3.5 на Qt 3 до сих пор вполне популярен среди пользователей и продолжает развиваться в рамках проекта Trinity, LiveCD можно брать отсюда.
KDE 4 на мой взгляд трудно назвать ошеломительным успехом. Четверку выкатывали сырой и наспех, многие пользователи испытывали болевые ощущения от радикальной смены дизайна и нестабильности графического окружения. Linus Torvalds в панике бежал с KDE 4 на GNOME, где впрочем также не задержался.
![](https://habrastorage.org/files/b79/80e/6f3/b7980e6f37ed4dbca89cda178c92892f.png)
Будучи довольно долгое время верным адептом KDE, я на четверке столкнулся с таким количеством глюков, что мне пришлось временно наспех создать собственную базу знаний. Часто возникала необходимость удалить БД akonadi, чтобы KMail не падал с ошибкой, как на рисунке.
[user@localhost ~]$ aconadictl stop
[user@localhost ~]$ rm -rf $HOME/.local/share/akonadi/
[user@localhost ~]$ aconadictl start
Следует однако признать, что KDE 4.14 уже была довольно стабильным и комфортным для работы десктоп-окружением, а новые глюки перестали пополнять мою базу знаний в Г+.
KDE 5.8 Neon.
KDE Plasma 5 использует платформу KDE Frameworks 5 и библиотеки Qt 5 с применением OpenGL/OpenGL ES
для рендеринга с задействованием аппаратного ускорения, не меняя при этом привычные пользователю принципы взаимодействия и логику интерфейса.
Завершен переход всех компонентов Plasma 5 на QML
и технологию QtQuick 2
. Новый Qt 5 обеспечивает более гладкий вывод графики, используя возможности OpenGL
с задействованием средств ускорения графических операций на стороне GPU, что позволило снизить нагрузку на центральный процессор. Для систем не поддерживающих OpenGL
предусмотрен режим программного рендеринга.
Новая редакция оконного менеджера Plasma 5 KWin, избавлена от жесткой привязки к X11 и может работать как с традиционным X-сервером, так и с дисплейным сервером Wayland. Полноценную поддержку Wayland обещают к следующему выпуску. На Mir забили пока не ориентируются.
Из прочих изменений Plasma 5 стоит отметить унификацию, чистку и оптимизацию интерфейса, новую, более контрастную тему оформления Breeze и новый шрифт Oxygen. Улучшена поддержка high-DPI экранов, а оболочка стандартизирована для разных типов устройств (рабочих станций, устройств с сенсорными экранами и медиацентров) с возможностью переключения режимов на лету, без перезапуска.
Git 10 лет
7 апреля 2016 г. Git исполнилось 10 лет, это второе крупное начинание Линуса, тесно связанное с первым. Git появился на свет из-за необходимости найти замену проприетарному BitKeeper, к которому уже все привыкли, но который дальше уже нельзя было использовать.
Какое-то время все шло вроде бы неплохо, BitKeeper значительно облегчил жизнь разработчикам. Им не надо было больше заботиться о том, кто имеет права на какие изменение, каждый из них мог работать в своей ветке древа исходников, возможность распределенных слияний исходного кода давала значительную экономию усилий для всех. Подспудно, назревал кризис, который и привел к созданию Git.
![](https://habrastorage.org/files/1bd/082/0c2/1bd0820c25214ac6a6a1713a1d772dd1.png)