Linux – это современная POSIX-совместимая и UNIX-подобная операционная система для персональных компьютеров и рабочих станций.
Linux – это свободно распространяемая версия UNIX, которая первоначально была разработана Линусом Торвальдсом (Linus Torvalds) в университете Хельсинки (Финляндия). Все компоненты системы, включая исходные тексты, распространяются с лицензией на свободное копирование и установку для неограниченного числа пользователей.
Linux был создан с помощью многих UNIX-программистов и энтузиастов из Интернета. К данному проекту добровольно подключились те, кто имеет достаточно навыков и способностей развивать систему. Большинство программ Linux разработано в рамках проекта GNU из Free Software Foundation в Кембридже, Массачусетс. Но в него внесли лепту также программисты всего мира.
Изначально Linux создавался как «самодельная» UNIX-подобная реализация для ПК типа IBM PC с процессором i80386. Однако Linux стал настолько популярен и его поддерживает такое большое число компаний, что в настоящее время имеется реализация этой ОС практически для всех типов процессоров и компьютеров на их основе. На базе ОС Linux создаются и встроенные системы, и суперкомпьютеры. Система поддерживает кластеризацию и большинство современных интерфейсов и технологий.
Linux поддерживает большинство свойств, присущих другим реализациям UNIX, плюс ряд тех, которых больше нигде нет. Linux – это полноценная многозадачная многопользовательская операционная система (точно так же, как и все другие версии UNIX). Это означает, что одновременно много пользователей могут работать на одной машине, одновременно выполняя много программ. Linux поддерживает различные типы файловых систем для хранения данных. Некоторые файловые системы, такие как файловая система ext2fs, были созданы специально для Linux. Поддерживаются также другие типы файловых систем, например Minix-1 и Xenix. Реализована также система управления файлами на основе FAT, позволяющая непосредственно обращаться к файлам, находящимся в разделах с этой файловой системой. Поддерживается и файловая система ISO 9660 CD-ROM для работы с дисками CD-ROM. Имеются системы управления файлами и на томах с HPFS и NTFS, правда, они работают только на чтение файлов. Созданы варианты системы управления файлами и для доступа к FAT32.
В отличие от старых версий UNIX, в которых задачи выгружались во внешнюю память на магнитных дисках целиком, ядро Linux поддерживает загрузку только нужных страниц. Т.е. с диска в память загружаются те сегменты программы, которые действительно используются. Возможно использование одной страницы, физически один раз загруженной в память, несколькими выполняемыми программами, т.е. реентерабельность кода, присущая всем UNIX-системам, сохранилась. В настоящее время имеются ядра для этой системы, оптимизированные для работы с процессорами Intel и AMD последнего поколения, хотя основные архитектурные особенности защищенного режима работы изменились мало.
Выполняемые программы используют динамически связываемые библиотеки, это означает, что выполняемые программы могут совместно использовать библиотечную программу, представленную одним физическим файлом на диске. В Linux разделяемые библиотеки динамически связываются во время выполнения, позволяя программисту заменять библиотечные модули своими собственными.
5.3. Семейство операционных систем OS/2 Warp
компании IBM
Семейство 32-разрядных ОС для IBM-совместимых компьютеров начало свою историю с появления первой OS/2 v 2.0 в 1992 году. Все ОС в своем названии имеют слово Warp, что переводится с английского как «основа».
OS/2 Warp 4.0 практически представляет собой OS/2 Warp 3.0 (вышедшую еще в 1994 г.) с несколько улучшенными параметрами для DOS-задач, обновленными элементами объектно-ориентированного интерфейса, и включает в себя:
• вытесняющую многозадачность (preemptive multitasking) и поддержку DOS-и Windows- (Win32s) приложений;
• по-настоящему интуитивно понятный и действительно удобный объектный пользовательский интерфейс;
• поддержку и встроенную разработку на языке Java;
• поддержку шрифтов True Type (TTF);
• управление голосом без предварительной подготовки (технология Voice Type);
• полную поддержку глобальных сетей Интернет и технологии intranet;
• средства построения одноранговых сетей и клиентские части для IBM LAN Server, Windows, Lantastic, Novell Netware 4.1 (в том числе поддержку службы каталогов);
• систему удаленного доступа через модемные соединения;
• Mobile File System для поддержки мобильных пользователей;
• стандарт автораспознавания аппаратных устройств Plug-and-Play (но без столь навязчивого механизма, который реализован в Windows);
• набор офисных приложений (базы данных, электронные таблицы, текстовый процессор, генератор отчетов, деловая графика, встроенная система приема/передачи факсимильных сообщений, информационный менеджер);
• полную MultiMedia поддержку, включая работу с видеокамерой, расширенную систему помощи WarpGuide.
Эта ОС является удобной и надежной средой при работе с базами данных, работе в сетях.
OS/2 Warp предлагает единый интерфейс для программирования прикладных программ (API), совместимый с рядом операционных систем, что позволяет снизить стоимость разработок.
Очень полезным, как для управления приложениями, так и для создания несложных собственных программ, является наличие системы программирования на языке высокого уровня REXX, который иногда называют языком процедур. Можно сказать, что это встроенный командный язык, служащий для тех же целей, что и язык для пакетных (batch) файлов в среде DOS, но он обладает несравнимо большими возможностями.
Модуль реализации механизмов виртуальной памяти в ядре OS/2 поддерживает большие, постраничные, разбросанные адресные пространства, составленные из объектов памяти. Каждый объект памяти управляется так называемым пейджером – задачей вне ядра, обеспечивающей резервное хранение страниц объекта памяти. Ядро управляет защитой памяти и ее распределением на основе объектов памяти абстрактным образом, вне зависимости от каких-либо конкретных аппаратных средств трансляции процессорных адресов. Каждое задание имеет свое собственное адресное пространство или отображение. Ядро ОС назначает объекты памяти, которые задание отобразило на диапазон адресов внутри адресного пространства.
Для поддержки операций ввода/вывода и доступа к внешним устройствам ядро ОС обеспечивает доступ к ресурсам ввода/вывода, таким как устройства с отображаемой памятью, порты ввода/вывода и каналы прямого доступа к памяти (DMA), а также возможность отражать прерывания на драйверы устройств, исполняемые в пользовательском пространстве.