В этой статье даны рекомендации по выбору ОС для построения А/В плеера на базе компьютера.
Если расположить с точки зрения получения лучшего качества звука существующие ОС в порядке от худшей к лучшей, то список будет выглядеть так: Windows, OS X, GNU/Linux .
Даже если оптимизировать процессы и службы в Windows, то она все равно будет проигрывать по качеству звучания OS X. Да, можно попытаться использовать серверную версию Windows, создать в оперативной памяти рамдиск для размещения там музыкального контента, назначить плееру приоритет реального времени и жестко распределить процессы по ядрам процессора. Но есть ряд «НО». Первое — не все это смогут сделать. Второе — даже это не даст существенного преимущества перед OS X.
Для большинства пользователей, не имеющих глубоких познаний в компьютерной сфере, хорошим выбором будет покупка готового компьютера Mac Mini на котором уже будет установлена OS X. Тем более что на рынке б/у компьютеров можно найти недорогой экземпляр.
Если же вы являетесь более или менее опытным пользователем ПК, то стоит попробовать поставить какую-нибудь ОС из семейства GNU/Linux. Я бы порекомендовал начать с ОС Lubuntu, т.к. ее графический интерфейс ближе всего похож на такой в ОС Windows XP. Пользователям, привыкшим работать в ОС Windows, будет легче освоиться в новой для них ОС. Но основной ее плюс заключается не в знакомом графическом интерфейсе, а в ее легковесности. Эта ОС использует довольно легкое окружение рабочего стола – LXDE. В ней предустановленно небольшое количество программ. В фоне работает мало служб. Из-за этого процессор крайне мало загружен, а ОС в оперативной памяти занимает около 200МБ. А теперь ради интереса посмотрите в диспетчере задач нагрузку на ресурсы компьютера в вашей ОС. Очевидно, что меньшая нагрузка на ресурсы железа компьютера идет звуку только на пользу. И ведь никто не мешает после того, как вы немного освоитесь в этой ОС удалить программы и отключить некоторые службы. Это, несомненно, даст прирост в качестве звука. Еще эта ОС примечательна тем, что не использует тяжеловесную систему вывода звука, как Pulse Audio. Вывод звука идет напрямую через ядро ОС при использовании системы вывода звука ALSA. Но и это еще не все. Вы можете заменить универсальное (generic) десктопное ядро ОС на ядро с поддержкой реального времени (мягкого реального времени). Для этого достаточно открыть терминал и написать там команду sudo apt-get install linux-lowlatency после выполнения которой, просто перезапустить компьютер. Тем самым вы получите компьютер уже сильно превосходящий по качеству вывода звука Mac Mini с его OS X.
Наверное у многих есть опасения насчет процесса установки программ в ОС GNU/Linux, а также ассортимент имеющихся программ. Ставить программы в Lubuntu даже легче, чем в Windows. Найти информацию о том, как это делается можно найти на сайтах выбранного вами дистрибутива и на соответствующих форумах.
Из программ плееров я бы посоветовал поставить jRiver Media Center и KODI. Думаю это лучшие программы-мультимедийные плееры для этой ОС. Но никто вам не мешает поставить и использовать MPD плеер с какой-нибудь графической оболочкой. Или вообще управлять им через сеть с вашего планшета или телефона. Тут выбор за вами. Но помните, что все программы звучат по-разному!
Все вышеперечисленные ОС являются десктопными. Они были изначально разработаны для выполнения широкого круга задач на любом железе компьютера. Такая универсальность, конечно, не идет звуку на пользу. Если же вы хотите «выжать» максимум из железа компьютера, то вам необходимо использовать специализированные ОС, которые изначально разрабатывались под задачи связанные с высококачественным выводом звука.
Наиболее простая, но и универсальная (универсальность — плохо), это ОС Ubuntu Studio. Я бы не рекомендовал ее использовать. Она скорее разрабатывалась для людей профессионально занимающихся созданием музыки, а не ее прослушиванием.
Я бы скорее рекомендовал попробовать ОС Audiophile Linux. Эта ОС создавалась энтузиастом как раз для высококачественного воспроизведения звука. Он применил довольно много решений по оптимизации ОС под задачи высококачественного вывода звука. Эта ОС использует еще более легковесное окружение рабочего стола, чем Lubuntu. Соответственно еще меньше расходует ресурсов компьютера. Плюс она уже содержит ряд установленных плееров и сопутствующих программ, как например риппер CD дисков. Эта ОС по качеству звучания опережает все рассмотренные ранее ОС.
Другим представителем ОС из семейства GNU/Linux изначально разрабатываемых для вывода звука является проект еще одного энтузиаста — TinyMPD. Эта ОС не имеет привычного графического интерфейса. Все управление плеером осуществляется с помощью планшета или смартфона. При загрузке компьютера ОС полностью размещается в оперативной памяти, занимая при этом какие-то мегабайты. Автор этой ОС также провел довольно большую работу по оптимизации ОС. Но эта ОС, на мой взгляд, больше подходит уже более опытным пользователям ПК знакомым с ОС GNU/Linux, т.к. работа с ней требует определенных знаний работы в консоли.
Какая из этих двух ОС лучше я не скажу, т.к. их сравнение между собой некорректно. Слишком они разные. Одна имеет графический интерфейс и разные предустановленные программы плееров, а другая нет. В последней есть только плеер на основе MPD и вы с этим больше ничего не поделаете.
Но даже эти ОС, в какой-то степени, являются универсальными, так как они способны работать на разном компьютерном железе. Еще больших результатов можно добиться только при изначальной постройке ОС под определенное компьютерное железо. Такой подход позволяет хорошо оптимизировать ОС. По такому пути, кстати, идет компания Apple. Вы видели Хакинтош на материнской плате с процессором от AMD?
ОС GNU/Linux состоят из ядра Linux и набора программ GNU. За счет комбинирования программ и ядер получается то многообразие ОС GNU/Linux. Например, на базе ОС Debian компания Canonical разработала свою собственную ОС Ubuntu взяв за основу которую, китайские товарищи сделали очень красивую ОС Linux Deepin.
Рассмотрим это подробнее. ОС GNU/Linux обычно состоит из бесплатных программ с открытым исходным кодом. Код программ можно изменять под себя, получая на выходе уже программы, обладающие заложенными в них во время изменения кода дополнительными функциями. Самих программ существует множество. Например, неотъемлемая часть ОС — процесс System V init, который может быть реализован программой Upstart или программой Systemd. Поменяли окружение рабочего стола с KDE на Gnome и получили ОС с совершенно другим по внешнему виду рабочим столом и набором программ. Существуют даже ОС изначально предполагающие их самостоятельную сборку под себя. Это Arch Linux и Gentoo Linux. Чтобы наглядно увидеть, про что я говорю, вы можете посмотреть многочасовые видео по пошаговым сборкам разных вариантов ОС на базе Arch Linux и Gentoo Linux.
Понимая это, и имея опыт работы в сфере аудио, а также определенные знания ОС GNU/Linux, мы решили собрать свою собственную ОС под заранее выбранное оптимальное компьютерное железо.
Разработанная нами ОС основывается на Ubuntu Server. После запуска установленной ОС Ubuntu Server имеется черный экран консоли с приглашением залогинится и начать работу. Отсутствую какие-либо графические программы. Более того, нет даже программы, способной хоть что-то отображать на экране кроме текста и псевдографики. Нет и звуковой системы. Есть лишь возможность настройки проводного выхода в Интернет. За такой минимализм нами и была выбрана эта ОС за основу, т.к. она позволяла начать сборку требуемой ОС с чистого листа. Второй причиной, почему была выбрана именно эта ОС, было наличие большого числа программ в репозиториях общих для всех Debian-подобных ОС. Также сказался больший опыт работы в Debian-подобных ОС, чем, например, в Arch Linux.
Из исходных кодов с kernel.org нами было собрано ядро с поддержкой жесткого реального времени. Из ядра была убрана поддержка большого числа периферии не связанной как-то с выводом звука. Была отключена поддержка процессоров и других устройств фирм AMD, Power PC, IBM, Apple… Код ядра стал поддерживать только десктопные процессоры фирмы Intel, тогда как изначально по умолчанию в ядре использовался универсальный generic код. Были отключены функции динамического управления частотой процессора и режимами динамического управления питанием различных устройств. Были выбраны оптимальные настройки работы оперативной памяти и планировщиков. Отключена поддержка большого числа не нужных файловых систем. Полностью отключена поддержка сети и внешних USB накопителей. Всего не перечислить, да и не всем это будет понятно. Скажу, что эта работа заняла около года и продолжается до сих пор…
Каждое изменение в коде ядра прослушивалось в разных системах разными людьми. Так нам удалось, на сколько это было возможно, не предвзято оценить произведенные изменения с точки зрения получения лучшего качества звука. Ядро получилось не универсальным, с точки зрения поддержки различных платформ и устройств, но дающем возможность процессам ОС и железу компьютера исключительно качественно воспроизводить мультимедийный контент.
Так как работа по оптимизации только кода ядра ОС была проделана колоссальная, то вряд ли мы где-нибудь опубликуем или скажем в приватной беседе все произведенные нами изменения кода штатного универсального ядра.
Но не только ядром с поддержкой жесткого реального времени оптимизированного под определенное оборудование примечательна наша ОС.
«Лишние» ядра процессоров были программно отключены так, что если процессор изначально был 4-х ядерный, то ОС видит лишь два его ядра. Минимизация источников ВЧ шума всегда идет на пользу звуку. Поэтому изначально лучше использовать 2-х ядерные процессоры, что мы и делаем.
Процессы ОС и процессы плеера были жестко разделены по разным ядрам процессора. Целое ядро процессора было изолировано от выполнения процессов ОС. Таким образом, процессы ОС не мешают выполнению процессов плеера. Это связано с выделением и распределением кванта процессорного времени. Такое разделение позволило существенно повысить качество звучания.
При помощи скриптов процессам ОС задаются низкие nice, rt и другие типы приоритетов. А процессам плеера, напротив, высокие приоритеты. Плеер работает с приоритетами для планировщиков соответствующих работе в реальном времени.
Для подключения внешнего аудио ЦАП используется наш контроллер USB-AD. Этот контроллер использует шину PCI Express для связи с материнской платой, а затем с процессором. Но эту же шину используют и другие устройства компьютера. При помощи специального скрипта всем устройствам, работающим с шиной PCI Express, назначается низкий приоритет. Таким образом, им «дозволяется» меньшее время монополизировать шину PCI Express. А для адреса на шине, по которому находится контроллер платы USB-AD, задается наоборот высокий приоритет. Получается, что плате USB-AD «дозволено» полностью монополизировать шину PCI Express, что минимизирует всевозможные задержки.
Была произведена оптимизация настроек звуковой системы ALSA с учетом передачи звука через наш контроллер USB-AD.
Были оптимизированы настройки монтирования файловых системы.
Для отображения пользовательского графического интерфейса был выбран один из самых минималистичных оконных менеджеров – Openbox. В купе с минимально требуемом для работы ОС количеством служб, это дало занятие оперативной памяти компьютера всего на 82МБ и нулевую загрузку процессора.
Конечно это не все, что было проделано при разработке ОС для получения максимального результата. Просто не хотелось бы вас «грузить» непонятными терминами и тем более давать пошаговое руководство по сборке подобной ОС. Поймите правильно.
Все эти настройки сделали нашу ОС совершенно не универсальной, но существенно превосходящей по уровню звука другие подобные ОС. Чтобы как-то ее приблизить по универсальности и удобству использования к другим ОС, мы ее разделили на два режима работы. Первый – бескомпромиссный — предназначенный только для прослушивания музыки, второй – универсальный — предназначенный для копирования с внешних носителей файлов и с возможностью выхода в Интернет. Но даже в универсальном режиме наша ОС по удобству пользования уступает десктопным версиям других традиционных ОС.
У нашей ОС нет привычного установщика, как в других ОС. Она поставляется уже установленной и настроенной при покупке у нас готового А/В плеера. Это еще и продиктовано тем, что раскрыться в полной мере наша ОС может лишь при использовании специального компьютера. Для питания компонентов компьютера мы используем линейные стабилизированные источники питания. Для тактирования критически важных с точки зрения звучания компонентов компьютера мы используем специальный мастер-генератор. По питанию в нашем компьютере стоят специальные фильтры. Как для сетевого питания, так и для питания накопителей (SATA3F SSD и SATA3F HDD). ОС установлена на малошумящую CF карту памяти, а не на HDD диск. Для подключения накопителей используются изготовленные нами SATA кабели.
Если все же попробовать установить нашу ОС в обыкновенный домашний ПК, изначально собранный под компьютерные игры, то из этого ничего хорошего не выйдет. Это будет подобно тому, как если бы вы стали ездить на спорткаре по разбитым сельским дорогам…