Вопрос В чем разница между дистрибутивами Linux?


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

Чтобы быть более конкретным, предположим, что я просто заинтересован в производительности определенной C ++-программы (серийной или параллельной), которую я написал. Предположим, что у меня установлены Ubuntu и Fedora на одном настольном компьютере, оба из которых имеют одну и ту же версию ядра Linux, будет ли производительность программы одинаковой для обеих операционных систем?

Связанный с этим вопрос заключается в том, почему некоторые Unix, подобные OS'е, такие как FreeBSD (который не является дистрибутивом GNU / Linux), более предпочтительны для серверных платформ, чем другие.


5
2017-11-06 17:49


происхождения


Эта веб-страница (что я создал) также может вас заинтересовать, поскольку он описывает большое количество [в основном более известных] дистрибутивов Linux в общем виде (включены логотипы и ссылки): lumbercartel.ca/resources/os/linux.pl - Randolf Richardson
В чем различия между основными дистрибутивами Linux? Я заметлю? - Ƭᴇcʜιᴇ007


ответы:


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

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

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


3
2017-11-06 17:55



В качестве альтернативы не-gui-дистрибутивам, скажем, я придерживаюсь определенной программы, вы рекомендуете мне переключиться на виртуальный терминал, который не является графическим интерфейсом (CTRL + ALT + F1 в Ubuntu), чтобы избежать статистического шума? - smilingbuddha
К сожалению, я не думаю, что это помогло бы: (.Индивидуальные графические интерфейсы (по хорошим и чувствительным причинам, я имею в виду) «раздутые» с фоновыми задачами, которые очень часто помогают пользователю на рабочем столе (я хочу получать уведомления об обновлениях, автоматический поиск беспроводной сети и т. д. и т. д.), но не помогают тестировщику. :) И они запускаются, даже если вы скрываете GUI. Если вам нужен серьезный сравнительный тест для ваших программ на C ++ (вы точно настраиваете?), То переходите к дистрибутиву без GUI. Затем отключите сетевое взаимодействие, cron и любую ненужную службу ... - gd1
Помните, что вы всегда можете уменьшить эффект статистического шума с небольшим статистическим анализом. Отбросьте ненормальные тесты (если вы получите 1,1 мс, 1,2 мс, 98 мс, 1,1 мс, затем отбросьте третью и ПОСЛЕ того, чтобы вычислить среднее значение) - gd1
Техническая фраза для процедуры @ gd1 предполагает "исключение выбросов", - dmckee