- Много пользователей — зачем?
- Что такое ядро?
- Взаимодействие приложений или одно большое приложение?
- Пользовательский интерфейс, на что обратить внимание?
- Как настольная система взаимодействует с внешней инфраструктурой?
- Каким образом хранятся данные?
- Есть ли другие отличия?
Много пользователей — зачем?
Linux изначально был спроектирован как многопользовательская система. При этом речь шлее не о том: что вычислительной машиной под Linux могут пользоваться несколько человек по очереди, а о реальной многопользовательской системе, когда несколько человек одновременно запускают свои приложения на одном и том же компьютере. Нужно ли это, если речь идет о настольной, персональной машине? Сейчас уже можно твердо сказать «да». Во-первых, настройки и данные, связанные с приложениями, поддерживаются независимо и тщательно для каждого пользователя, а это оказывается существенно при широко применяемом сейчас совместном доступе к приложениям и данным. Во-вторых, для каждого пользователя сохраняются независимо настройки его рабочего стола, каждый раз, выполнив процедуру регистрации, он получает привычное рабочее окружение.
Что такое ядро?
Основную часть ОС Linux принято называть ядром. В ядро входит самый нижний уровень функций операционной системы, как то: контроль аппаратных средств, запуск драйверов устройств, управление файловыми системами, создание процессов, управление памятью и другие базовые функции. Ядро Linux во многом походит на ядро UNIX.Ядро Linux имеет некоторые особенности, которые являются совершенно уникальными:
- ядро построено по модульному принципу
- на одном компьютере может быть установлено сразу несколько ядер
- разработка ядра Linux управляется централизовано
Ядро Linux не представляет собой монолитное образование, некоторые его части могут загружаться в процессе работы, такие части называются модулями. Если некоторые функции не требуются в текущий момент, то отвечающие за них модули не загружены и не занимают память.На одном компьютере может быть установлено сразу несколько ядер, но только одно из них работает в каждый момент времени. Эта особенность позволяет тестировать новые версии ядра, собирать более подходящую его конфигурацию и в то же время иметь возможность очень легко вернуться назад, к старой версии, которая гарантированно работала. Разработку ядра Linux до сих пор контролирует легендарный Линус Торвальдс. А это означает, что каждая версия ядра представляет собой один единственный объект.
Взаимодействие приложений или одно большое приложение?
Операционная система Linux далеко не так сильно интегрирована, как операционная система Windows. Фактически каждый дистрибутив состоит из ядра и сотен, если не тысяч отдельных программных пакетов, ассоциированных с этим ядром. Все программы изначально проектировались и проектируются так, чтобы допускать тесное взаимодействие, иначе системы не смогла бы работать. Но это не означает, что они должны взаимодействовать, интеграции между ними может и не быть.В некоторых случаях такое отсутствие обязательной интеграции на низком уровне может выглядеть как недостаток, но это качество дает разработчикам ПО более высокого свободу в выбора низкоуровневых приложений и возможность их замены впоследствии.Поскольку ядро Linux и почти все доступные приложения базируются на открытых стандартах, интеграция между ними выполняется легко, и работают они вместе надежно.
Пользовательский интерфейс, на что обратить внимание?
Как правило, пользователь общается с вычислительно машиной посредством графического монитора, мыши и клавиатуры. Так устроены почти все клиентские компьютеры, хотя внешний вид рабочего стола и функциональность могут различаться.Под Linux менеджер графической сессии является просто одним из приложений, он не является частью операционной системы. Это означает что, во-первых, вы можете выбирать менеджера рабочего стола (наиболее частый выбор — это KDE или GNOME) и, во-вторых, можно работать вообще без графического окружения, в алфавитно-цифровом режиме.
Как настольная система взаимодействует с внешней инфраструктурой?
Настольный компьютер редко работает сам по себе, он должен взаимодействовать с объемлющей инфраструктурой. Он нуждается в подключении к локальной сети, в доступе к серверам и другим общим ресурсам. Linux поддерживает все возможные сетевые протоколы, необходимые для такого взаимодействия.Важнейшим моментом при подключении компьютера к внешнему миру является проблема обеспечения безопасности. Ядро Linux имеет встроенный брандмауэр, который защищает компьютер от несанкционированного доступа извне и обеспечивает безопасную работу конечных пользователей и сохранность данных. Каким образом хранятся данные?Способ хранения данных в Linux кардинально отличается от способа, принятого в Windows. Файловая структура в Linux представлена одним деревом, при этом различные типы разделов, в том числе разделы на удаленных устройствах, выглядят однотипно. Здесь нет букв, приписанных к дискам. Такой подход позволяет, например, придерживаться одной и той же логической структуры каталогов на всех клиентских машинах. Существенным отличием в обращении с файлами является существование ссылок в большинстве файловых систем, с которыми работает Linux. По сути ссылки являются указателями на файлы или на целые каталоги. Существуют два вида ссылок: жесткие ссылки и символьные ссылки. Жесткая ссылка является просто еще одним именем, связанным с файлом, а символьная ссылка — это отдельно стоящий указатель. В том случае, если удален файл, символьная ссылка на него не удаляется, но начинает указывать в пустоту. Если число жестких ссылок на файл больше одной, то удаление одного имени не повлечет удаление файла. Реально он будет удален только после удаления последней жесткой ссылки.
Есть ли другие отличия?
Есть и другие особенности, отличающие Linux от других ОС для настольных компьютеров. В этом разделе мы рассмотрим разницу в работе с виртуальной памятью и уникальное для Linux понятие уровней выполнения (run levels).Работы с виртуальной памятью в каждой операционной системе происходит по своему, иногда это зависит даже от версии операционной системы. Особенностью Linux является то, что виртуальная память не будет использоваться до тех пор, пока есть возможность работать в реальной оперативной памяти. Windows, например, начинает перемещать информацию из оперативной памяти на диск и в других случаях, там существует практика превентивного свопинга. Во многих случаях такой подход приводит в снижению скорости выполнения операций.
В Linux принята также система кэширования, то есть, хранение недавно использованной файловой информации в оперативной памяти. В результате такой практики постоянно используется значительная часть оперативной памяти. В том случае, если дополнительная оперативная память требуется приложениям, система просто сокращает область кэширования. Концепция уровней выполнения является общей для UNIX/Linux-подобных операционных систем. Уровень выполнения определяет, какие системные сервисы будут запущены при начальной загрузке системы. Уровни выполнения нумеруются от 0 до 9. Например, уровень выполнения 3 соответствует загрузке всех системных сервисов, кроме графических. На уровне 5 стартует также и графическое окружение. Уровень 1 соответствует однопользовательскому режиму загрузки системы, в котором доступна только одна консоль и отключены практически все службы.
Статья расположена: