Гордеев А.В. Операционные системы (2-е изд., 2004) (1186250), страница 88
Текст из файла (страница 88)
Некоторые файловые системы, такие как EXT2FS, были созданы специально дляLinux. Поддерживаются также другие типы файловых систем, например Minix-1 иXenix. Кроме того, реализована система управления файлами на основе FAT, позволяющая непосредственно обращаться к файлам, находящимся в разделах с этойфайловой системой.
Поддерживается также файловая система ISO 9660 CD-ROMдля работы с дисками CD-ROM. Имеются системы управления файлами и на томах с HPFS и NTFS, правда, они работают только на чтение файлов. Созданы варианты системы управления файлами и для доступа к FAT32; эта файловая система в операционной системе Linux называется VFAT.Справедливости ради следует заметить, что в последнее время в Linux наметились тенденции всебольшего отхода от принятых в семействе UNIX стандартов и увеличения количества различий вразных дистрибутивах Linux. Эти различия распространяются и на структуру каталогов файловойсистемы, что приводит к определенным проблемам при переносе прикладных программ из однойсистемы Linux в другую.338Глава 10. Краткий обзор современных операционных системLinux, как и все UNIX-системы, поддерживает полный набор протоколов стекаT C P / I P для сетевой работы. Программное обеспечение для работы в Интернет/интранет включает драйверы устройств для многих популярных сетевых адаптеров технологии Ethernet, протоколы SLIP (Serial Line Internet Protocol), PLIP(Parallel Line Internet Protocol), P P P (Point-to-Point Protocol), NFS (Network FileSystem) и пр.
Поддерживается весь спектр клиентов и услуг TCP/IP, таких какFTP, telnet, NNTP и SMTP.Ядро Linux сразу было создано с учетом возможностей защищенного режима 32разрядных процессоров 80386 и 80486 фирмы Intel. В частности, в Linux используется парадигма описания памяти в защищенном режиме и другие новые свойствапроцессоров с архитектурой ia32. Для защиты пользовательских программ друг отдруга и операционной системы от них Linux работает исключительно в защищен1ном режиме , реализованном в процессорах фирмы Intel. В защищенном режиметолько программный код, исполняющийся в нулевом кольце защиты, имеет непосредственный доступ к аппаратным ресурсам компьютера — памяти и устройствам ввода-вывода.
Пользовательские и системные обрабатывающие программыработают в третьем кольце защиты. Они обращаются к аппаратным ресурсам компьютера исключительно через системные подпрограммы, функционирующие внулевом кольце защиты. Таким образом, пользовательским программам предоставляются только те услуги, которые реализованы разработчиками операционной системы. При этом системные подпрограммы обеспечивают выполнение толькотех функций, которые безопасны с точки зрения операционной системы.Как и в классических UNIX-системах, Linux имеет макроядро, которое содержитуже известные нам три подсистемы. Ядро обеспечивает выделение каждому процессу отдельного адресного пространства, так что процесс не имеет возможностинепосредственного доступа к данным других процессов и ядра операционной системы.
Тем более что сегмент кода, сегмент данных и стек ядра располагаются внулевом кольце защиты. Для обращения к физическим устройствам компьютераядро вызывает соответствующие драйверы, управляющие аппаратурой компьютера. Поскольку драйверы функционируют в составе ядра, их код будет выполняться в нулевом (привилегированном) кольце защиты, и они могут получить прямойдоступ к аппаратным ресурсам компьютера.В отличие от старых версий UNIX, в которых задачи выгружались во внешнююпамять на магнитных дисках целиком, ядро Linux использует аппаратную поддержку процессорами страничного механизма организации виртуальной памяти.
Поэтому в Linux замещаются отдельные страницы. То есть с диска в память загружаютсяте виртуальные страницы образа, которые сейчас реально требуются, а неиспользуемые страницы выгружаются на диск в файл подкачки. Возможно разделение страниц кода, то есть использование одной страницы, физически уже один раз загруженной в память, несколькими процессами. Другими словами, реентерабельностькода, присущая всем UNIX-системам, осталась. В настоящее время имеются ядрадля этой системы, оптимизированные для работы с процессорами Intel и AMU1Напомним, что только в этом режиме процессоры с архитектурой ia32 используют 32-разряднуюадресацию и имеют доступ ко всей оперативной памяти.Семейство операционных систем UNIX339последнего поколения, хотя основные архитектурные особенности защищенногорежима работы изменились мало. Уже разработаны ядра для работы с 64-разрядными процессорами от Intel и AMD.Ядро также поддерживает универсальный пул памяти для пользовательских программ и дискового кэша.
При этом для кэширования может использоваться всясвободная память, и наоборот, требуемый объем памяти, отводимой для кэширования файлов, уменьшается при работе больших программ. Этот механизм, называемый агрессивным кэшированием, позволяет более эффективно расходоватьимеющуюся память и увеличить производительность системы.Исполняемые программы задействуют динамически связываемые библиотеки(Dynamic Link Library, DLL), то есть эти программы могут совместно использовать библиотеку, представленную одним физическим файлом на диске. Это позволяет занимать меньше места на диске исполняемым файлам, особенно тем, которые многократно вызывают библиотечные функции.
Есть также статическиесвязываемые библиотеки для тех, кто желает пользоваться отладкой на уровнеобъектных кодов или иметь «полные» исполняемые программы, не нуждающиесяв разделяемых библиотеках. В Linux разделяемые библиотеки динамически связываются во время выполнения, позволяя программисту заменять библиотечныемодули своими собственными.Операционная система FreeBSDПомимо Linux к свободно распространяемым операционным системам семействаUNIX следует отнести FreeBSD. Принципиальное и самое важное различие между этими операционными системами заключается в том, что согласно принятомусоглашению в системы Linux каждый может внести свои изменения, но при этомобязан также сделать свой код открытым.
Не все компании на это согласны. Многие предпочитают воспользоваться исходными текстами и готовыми решениями,но не открывать секретов своего программного обеспечения, сделанного с помощью использованного открытого кода. Поэтому в настоящее время сложилась такаяситуация, что имеется уже несколько десятков компаний, занимающихся созданиемдистрибутивов для этой операционной системы.
Каждая компания, подготавливающая дистрибутив, помимо собственно операционной системы добавляет к немусвой инсталлятор 1 , утилиты, в том числе менеджер пакетов программ, конфигураторы и, наконец, большой набор прикладного программного обеспечения. При этомона привносит в систему свои изменения, не согласуя их с другими (за исключением самого ядра, работу над которым по-прежнему курирует Торвальдс). Такимобразом, можно констатировать, что у системы Linux как совокупности собственно операционной системы и программного обеспечения, поставляемого с ней, нетединого координатора. С одной стороны, это приводит к заметному прогрессу системы, она быстро реагирует на новые устройства и технологии. Сейчас уже накомпьютере с Linux можно играть в современные трехмерные игры, просматриПрограмма установки программного обеспечения на компьютер, в том числе программа установкиоперационной системы (от англ.
«install» — установить).340Глава 10. Краткий обзор современных операционных системвать видеофильмы, кодированные в соответствии с самыми современными форматами, слушать и писать музыку и т. д. С другой стороны, пользователи сталкиваются с проблемами переносимости приложений, созданных для этих (и другихUNIX-подобных) систем, поскольку нет единого координатора.В противоположность Linux операционная система FreeBSD имеет такого координатора — это университет в Беркли, Калифорния. Любой может изучить текстыкодов этой операционной системы и предложить внести в нее свои изменения, ноэто не означает, что так и будет сделано, даже если изменения разумны.
Толькокоординирующая группа BSD имеет на это право.Итак, FreeBSD — это тоже UNIX-подобная операционная система с открытым исходным кодом. Однако несмотря на то, что она родилась раньше и в той же меребесплатна, что и Linux, многие о ней даже не слышали. Дело в том, что эта операционная система не имеет такой раскрученной рекламы, как проект Linux, хотяистория BSD уходит корнями в более далекие годы. При этом необходимо заметить, что в плане производительности, стабильности, качества кода специалистыпрактически единодушно отдают предпочтение операционной системе FreeBSD.В частности, еще одним важным отличием FreeBSD от Linux является то, что ядроFreeBSD построено по принципам микроядерных операционных систем, тогда какLinux — это макроядерная операционная система.Сетевая операционная системареального времени QNXВспомним основные принципы, обязательная реализация которых позволяет создавать операционные системы реального времени (ОСРВ).