Интегрированная графическая среда KDE
Часто графическую среду KDE называют наиболее распространенной. Проект был основан в октябре 1996 года студентом Маттиасом Эттрихом, а в июле 1998 года выпущена версия 1.0. Сокращение образовано от K Desktop Environment. Она строится на основе инструментария разработки пользовательского интерфейса с именем Qt. Интересной особенностью последнего является свойство кроссплатформенности. Хотя эта среда разрабатывается для UNIX-подобных систем, но возможен ее запуск и на других платформах, например, с использованием cygwin под Microsoft Windows.
Интегрированная графическая среда GNOME
в рамках проекта GNOME создаются две вещи – рабочая среда GNOME, простая в использовании и привлекательная на вид среда рабочего стола; а также платформа разработки GNOME – расширяемая среда для создания приложений, тесно интегрируемых с рабочим столом.
Среда рабочего стола GNOME была построена на основе GTK+, созданной при разработке мощного графического пакета GIMP. Кроме того, используется еще много различных технологий и библиотек. Описываемая интегрированная среда может быть запущена на большинстве UNIX-систем, адаптирована для работы под управление Solaris, а также через специальный порт может быть запущена под Windows.
Win32 API
в ОС Windows между приложением и совокупностью системных вызовов (системных сервисов в терминологии Microsoft) расположен дополнительный абстрактный слой - программный интерфейс Win32 API. За счет этого Win32-приложение может работать практически во всех версиях Windows (см. рис. 1.5), несмотря на то, что сами системные вызовы в различных версиях системы различны и не документированы.
Win32 API подразделяются на следующие группы.
- Base Services - базовые сервисы отвечают за обеспечение доступа к ресурсам компьютера и интерфейс для работы с памятью, файлами, устройствами, процессами и потоками.
- Common Control Library - библиотека общих элементов управления для разработки оконных интерфейсов.
- Graphics Device Interface - вывод графики на дисплей и другие устройства.
- Network Services - сетевые сервисы.
- User Interface - интерфейс пользователя.
- Windows Shell - функции для работы с оболочкой.
- Windows System Information - информация о конфигурации системы Windows.
Unicode
В ОС Windows в качестве внутреннего формата для хранения и обработки текстовых строк используется Unicode. В Unicode каждый символ представляется 16-битным (двухбайтовым) кодом, что позволяет поддерживать разные языки и системы письменности (такие, как китайские и японские иероглифы).
Концепция процессов и потоков. Задание, процессы, потоки (нити), волокна
Одним из основных понятий, связанных с операционными системами, является процесс – абстрактное понятие, описывающее работу программы [10]. Все функционирующее на компьютере программное обеспечение, включая и операционную систему, можно представить набором процессов.
Мультипрограммирование (многозадачность, multitasking) – это такой способ организации вычислительного процесса, при котором на одном процессоре попеременно выполняются несколько программ. Чтобы поддерживать мультипрограммирование, ОС должна определить для себя внутренние единицы работы, между которыми будут разделяться процессор и другие ресурсы компьютера. В ОС пакетной обработки, распространенных в компьютерах второго и сначала и третьего поколения, такой единицей работы было задание. В настоящее время в большинстве операционных систем определены два типа единиц работы: более крупная единица – процесс, или задача, и менее крупная – поток, или нить. Причем процесс выполняется в форме одного или нескольких потоков.
с каждым заданием ассоциированы квоты и лимиты ресурсов, хранящиеся в соответствующем объекте задания. Квоты включают такие пункты, как максимальное количество процессов (это не позволяет процессам задания создавать бесконтрольное количество дочерних процессов), суммарное время центрального процессора, доступное для каждого процесса в отдельности и для всех процессов вместе, а также максимальное количество используемой памяти для процесса и всего задания. Задания также могут ограничивать свои процессы в вопросах безопасности, например, получать или запрещать права администратора (даже при наличии правильного пароля).
поток работает в пользовательском режиме, но когда он обращается к системному вызову, то переключается в режим ядра. После завершения системного вызова поток продолжает выполняться в режиме пользователя.
Процессы рассматриваются операционной системой как заявки или контейнеры для всех видов ресурсов, кроме одного – процессорного времени. Это важнейший ресурс распределяется операционной системой между другими единицами работы – потоками, которые и получили свое название благодаря тому, что они представляют собой последовательности (потоки выполнения) команд. Каждый процесс начинается с одного потока, но новые потоки могут создаваться (порождаться) процессом динамически. В простейшем случае процесс состоит из одного потока.