Что такое оболочка операционной системы
Перейти к содержимому

Что такое оболочка операционной системы

  • автор:

# Главная

Не все могут разрабатывать в этой области, многие даже не проходят стадию "Hello world!" в разработке ОС, но, возможно, вы пойдете дальше и создадите следующий Linux? Или Windows? Или ваши цели ниже — BolgenOS? Или даже CP/M?

Каковы бы ни были ваши цели, разработка ОС — это вершина программирования для самых отчаянных. Но вы не одиноки. На самом деле весь этот веб-сайт, включая форумы

(opens new window) и эту вики, посвящены разработке ОС. На форуме Вы можете найти помощь и единомышленников для исполнения своей цели.

Что Вам нужно, чтобы преуспеть в разработке ОС? Вы должны прочитать статью "Начало работы". Если вы собираетесь использовать C

(opens new window) в качестве основного языка, то Вам необходимо сначала настроить кросс-компилятор GCC

(opens new window) . И если вы предпочитаете использовать другие языки, то важно иметь некоторые аналогичные инструменты (например, компилятор), или если таких инструментов нет, часто только ваши усилия могут Вам помочь. Но использование языка, который Вы знаете может добавить некоторую мотивацию для вашей работы.

# Что такое операционная система?

Операционная система — это программное обеспечение, управляющее работой компьютера и его ресурсами. Среди прочего, есть один очень важный критерий, общий для всех операционных систем:

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

Другие основные функции операционных систем:

Основные функции операционных систем могут включать:

  • Управление памятью и другими системными ресурсами.
  • Установка политики безопасности и доступа.
  • Планирование и мультиплексирование процессов и потоков.
  • Динамический запуск и закрытие пользовательских программ.
  • Обеспечение базового пользовательского интерфейса и интерфейса прикладного программиста.

Не все операционные системы обеспечивают все эти функции. Однозадачные системы, такие как MS-DOS, не будут планировать процессы, в то время как встроенные системы, такие как eCOS, могут не иметь пользовательского интерфейса или могут работать со статическим набором пользовательских программ.

К операционным системам НЕ ОТНОСИТСЯ:

  • Оборудование компьтера.
  • Конкретное приложение, такое как текстовый процессор, веб-браузер или игра.
  • Набор утилит (например, инструменты GNU, которые используются во многих системах, производных от Unix).
  • Среда разработки (хотя некоторые операционные системы, такие как UCSD Pascal или Smalltalk-80, включают интерпретатор и IDE).
  • Графический пользовательский интерфейс (хотя многие современные операционные системы включают графический интерфейс как часть ОС).

Не смотря на то, что большинство операционных систем распространяются с такими инструментами, сами по себе они не являются обязательной частью ОС. Некоторые операционные системы, такие как Linux, могут выпускаться во многих различных сборках, называемых дистрибутивами, которые могут иметь различные наборы приложений и утилит и могут по-разному организовывать некоторые аспекты системы. Тем не менее, все они являются версиями одной и той же базовой ОС и не должны рассматриваться как отдельные типы операционных систем.

# Что такое ядро?

Ядро операционной системы — это то, что вы никогда не увидите в пользовательском интерфейсе. Ядро позволяет выполнять любые другие программы, кроме этого оно ещё обрабатывает события, генерируемые аппаратными средствами (называемые прерываниями) и программным обеспечением (называемые системными вызовами), и управляет доступом к ресурсам.

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

Системные вызовы инициируются программами пользовательского уровня для открытия файлов, запуска других программ и т.д. Каждый обработчик системного вызова должен будет проверить, являются ли переданные аргументы допустимыми, а затем выполнить внутреннюю операцию для завершения вызова.

Большинство пользовательских программ напрямую не выполняют системные вызовы (за исключением, например, программ разработанных на asm), а вместо этого используют стандартную библиотеку, которая выполняет работу по форматированию аргументов в соответствии с требованиями ядра и генерации системного вызова. (Например, функция C fopen() в конечном итоге вызывает функцию ядра, которая фактически открывает файл.)

Ядро обычно определяет несколько абстракций, таких как файлы, процессы, сокеты, каталоги и т.д., соответствующих внутреннему состоянию, которое оно запоминает о последних операциях, чтобы программа могла более эффективно выполняться.

# Что такое оболочка?

Оболочка — это специальная программа, которая обычно интегрируется в дистрибутив ОС и которая предлагает людям интерфейс работы с компьютером. То, как он выглядит для пользователей, может изменяться от системы к системе (командная строка, проводник файлов и т.д.), но концепция всегда одна и та же:

  • Позвольте пользователю выбрать программу для запуска и, при необходимости, предоставить ей аргументы для конкретного запуска.
  • Разрешите тривиальные операции с локальным хранилищем, такие как перечисление содержимого каталогов, перемещение и копирование файлов по всей системе.

Чтобы выполнить эти действия, оболочке, возможно, придется выполнить множество системных вызовов, таких как открыть файл "x"; открыть файл "y" и создать его, если он не существует; прочитать содержимое из "x", записать в "y", закрыть оба файла, записать "готово" в вывод.

Оболочка также может использоваться программами, которые хотят запустить другие программы, но не хотят делать это сами (например, заполнение шаблонов файлов, таких как *.mp3 , получение точного пути к программе и т.д.).

Современные оболочки также могут иметь различные дополнительные функции:

  • Автозавершение: при нажатии клавиши TAB (или любой другой предпочтительной клавиши) слово, которое вводит пользователь, будет дополнено допустимой командой оболочки, файлом, каталогом или чем-то еще. Нажатие клавиши автозаполнения несколько раз показываются другие возможности завершения.
  • Вставка символов: пользователь может перемещаться в том, что он ввел, с помощью клавиш со стрелками. При вводе новых символов в середине предложения символы будут "вставлены".
  • История: с помощью клавиш со стрелками вверх и вниз пользователь может просмотреть историю вводов.
  • Прокрутка: если строк больше, чем в консоли, сохраните выходные данные в буфере и разрешите пользователю прокручивать вверх и вниз.
  • Сценарии: некоторые оболочки имеют собственные языки сценариев. Примерами языков сценариев являются Bash

# Что такое графический интерфейс?

Пользовательский графический интерфейс является наиболее заметной частью любой операционной системы, в которой он есть. Его роль выходит за рамки простой библиотеки отрисовки, так как он должен уметь:

  • Перехватывать события пользовательского ввода (клавиатура, мышь и т.д.) и отправлять их в соответствующий объект.
  • Обновить внутреннюю информацию о том, что должно отображаться на экране, определяя, какие части экрана необходимо перерисовать.
  • Обновить видимое содержимое экрана, перерисовав необходимые части.
  • Сделать это так, чтобы чувствовать себя естественно, интуитивно и отзывчиво к пользователю.

# Рабочий стол, менеджер окон, библиотека виджетов

Сеанс KDE или Windows — это среда рабочего стола, то есть графическая оболочка, обеспечивающая функциональную среду для всех функций более низкого уровня.

Частью системы, ответственной за организацию окон различных запущенных программ, их изменение размера, закрытие, границы окон, полосы прокрутки и т.д. являются менеджером окон.

И наконец, у Вас есть подсистема, которая выполняет отрисовку элементов управления, отображение документов на экране и т.д. Это обычно называется библиотекой виджетов. Однако существуют альтернативы, обычно в форме декларативных языков (например, XUL Mozilla, QML QT, Dart).

# Темы на форуме про графический интерфейс

# Зачем нужно разрабатывать ОС?

Ещё раз повторяю — НЕ НУЖНО!

Существуют различные причины, по которым люди хотят разработать собственную операционную систему. У каждого отдельного разработчика могут быть свои собственные причины, но некоторые являются общими для некоторых (если не для большинства) разработчиков:

  • Полный контроль над машиной. При разработке приложения или другой программы пользовательского пространства разработчик должен учитывать код, написанный другими: операционной системой, библиотеками, другими программами и т.д. Некоторые хотят иметь полностью собственный код, который они знают от начала до конца.
  • Исследование. Довольно много проектов начинаются как дипломная или исследовательская работа, в то время как запуск операционной системы в качестве курсовой работы до третьего курса обычно считается плохой идеей (из-за коротких сроков), но как долгосрочный проект вполне подходит. Исследовательские работы обычно выполняются для улучшения существующих операционных систем. Однако распространенной ошибкой новичков является недооценка времени, необходимого для написания операционной системы с нуля.
  • Замены других операционных систем. Возможно, что у них нет конкретной функции, которую хочет разработчик. Быть может они просто отстой (Linux раздут, Windows нестабильна, BSD сложен и т.д.). Это может быть даже ради получения прибыли; у всех разные причины.
  • Это весело. Программирование на низком уровне — это не пустыню пылесосить весёлая и захватывающая задача, потому что вы должны делать абсолютно всё. Это может показаться более сложным (это так, не волнуйтесь), но по тем же причинам это более увлекательно. Вы знаете, как всё работает, как это всё пишется и как работает ваша программа.

К сожалению, многие проекты операционных систем закрываются по различным причинам, подробнее смотрите в списке ошибок начинающих.

Оболочка операционной системы

Оболочка операционной системы (от англ.  shell  — оболочка) — интерпретатор команд операционной системы, обеспечивающий интерфейс для взаимодействия пользователя с функциями системы.

В общем случае, различают оболочки с двумя типами интерфейса для взаимодействия с пользователем: текстовый пользовательский интерфейс (TUI) и графический пользовательский интерфейс (GUI).

Содержание

Командный интерпретатор

Для обеспечения интерфейса командной строки в операционных системах часто используются командные интерпретаторы, которые могут представлять собой самостоятельные языки программирования, с собственным синтаксисом и отличительными функциональными возможностями.

В операционные системы MS-DOS и Windows 9x включён командный интерпретатор command.com, в Windows NT включён cmd.exe, начиная с Windows XP (пакет обновления 2) доступен PowerShell, который является встроенным компонентом ОС начиная с Windows 7 и Windows 2008 Server.

В семействе командных оболочек UNIX наиболее популярны bash, csh, ksh, zsh, в UNIX-подобных системах у пользователя есть возможность менять командный интерпретатор, используемый по умолчанию.

Функции

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

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

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

Стандартный командный интерпретатор

Стандартом POSIX (ISO/IEC 9945) (Том 3. Оболочка и утилиты) определён язык оболочки, включающий конструкции последовательного (перевод строки, точка с запятой), условного ( if , case , || , && ) и циклического ( for , for in , while , until ) исполнения команд, а также оператор присваивания.

Стандартом также определён режим редактирования вводимых команд, являющийся подмножеством команд стандартного текстового редактора (vi).

Альтернативы

В UNIX-подобных системах наиболее распространены такие языки командных интерпретаторов как bash, sh и ksh, но также применяются альтернативные оболочки zsh, csh и tcsh, отличающиеся синтаксисом управляющих конструкций и поведением переменных.

Некоторые операционные системы поставляются с интерпретаторами собственных языков командных файлов (такими, как язык командных файлов MS-DOS и Windows, язык REXX в ОС OS/2)

Многие пользователи и разработчики программного обеспечения пользуются для автоматизации часто выполняемых последовательностей команд операционной системы интерпретируемыми языками программирования, например, Perl или Python.

Графическая оболочка

Графические оболочки для Windows

Последние версии операционной системы Windows используют в качестве своей оболочки интегрированную среду Проводника Windows. Проводник Windows представляет собой визуальную среду управления включающую в себя Рабочий стол, Меню Пуск, Панель задач, а также функции управления файлами. Ранние версии Windows 3.xx в качестве графической оболочки включают менеджер программ.

  • Операционная система
  • Текстовый интерфейс
  • Командные оболочки

Wikimedia Foundation . 2010 .

Полезное

Смотреть что такое «Оболочка операционной системы» в других словарях:

Оболочка UNIX — Командная оболочка UNIX (англ. Unix shell, часто просто «шелл» или «sh») командный интерпретатор, используемый в операционных системах семейства POSIX совместимые оболочки, восходящие к Bourne shell, появившемуся в Unix Version 7. Содержание 1… … Википедия

Командная оболочка — Оболочка операционной системы (от англ. shell оболочка) интерпретатор команд операционной системы (ОС), обеспечивающий интерфейс для взаимодействия пользователя с функциями системы. В общем случае, различают оболочки с двумя типами интерфейса для … Википедия

Оболочка — В астрономии: Оболочка газообразная область, окружающая одну или несколько звезд (или любых других астрономических объектов). В сопротивлении материалов: Оболочка  геометрическая форма тела, у которого один из размеров значительно меньше… … Википедия

Командная оболочка UNIX — (англ. Unix shell, часто просто «шелл» или «sh»)  командный интерпретатор, используемый в операционных системах семейства UNIX, в котором пользова … Википедия

Оболочка Windows — Проводник Windows это приложение, реализующее графический интерфейс доступа пользователя к файлам в операционной системе Microsoft Windows. Аналог Проводника имеется и в открытой графической оболочки пользователя Windows. Содержание 1 Об… … Википедия

Unity (оболочка рабочего стола) — У этого термина существуют и другие значения, см. Unity (значения) … Википедия

Командный процессор — Оболочка операционной системы (от англ. shell оболочка) интерпретатор команд операционной системы (ОС), обеспечивающий интерфейс для взаимодействия пользователя с функциями системы. В общем случае, различают оболочки с двумя типами интерфейса для … Википедия

Shell (командная строка) — Оболочка операционной системы (от англ. shell оболочка) интерпретатор команд операционной системы (ОС), обеспечивающий интерфейс для взаимодействия пользователя с функциями системы. В общем случае, различают оболочки с двумя типами интерфейса для … Википедия

9P — (или протокол файловой системы Plan 9 или Styx)  сетевой протокол, разработанный для распределённой операционной системы Plan 9 для организации соединения компонентов операционной системы Plan 9. Ключевыми объектами системы Plan 9 являются… … Википедия

Фоновая задача — (фоновой процесс)  это процесс, который работает в фоне, на заднем плане. Имеется в виду, что оболочка операционной системы, которая выполняет фоновый процесс, не ждёт завершения или окончания процесса, как это происходит с обычными… … Википедия

Оболочка операционной системы

  • Оболо́чка операцио́нной систе́мы (от англ. shell «оболочка») — интерпретатор команд операционной системы, обеспечивающий интерфейс для взаимодействия пользователя с функциями системы.

Связанные понятия

О программном обеспечении рассказывает другая статья.Переносимое приложение (также портативное, автономное, и — неточно, в качестве кальки — портированное; англ. portable application, portable app) — программное обеспечение, которое для своего запуска не требует процедуры установки и может полностью храниться на съёмных носителях информации, что позволяет использовать данное ПО на многих компьютерах. Переносимое приложение может быть настроено так, чтобы считывать свои конфигурационные настройки.

3.6 Оболочки операционных систем, их назначение, виды, функциональные возможности

Оболочки операционных систем— это программы, облегчающие работу пользователя с файлами и папками (каталогами) и предоставляющие ему ряд дополнительных сервисных услуг. Поскольку производимые с их помощью операции являются действиями над элементами файловой системы, их иногда называют файловыми менеджерами или файловыми диспетчерами.

Основные возможности большинства оболочек ОС следующие:

просмотр содержимого папки (диска) в различных форматах;

вывод информации о скрытых файлах и папках;

сортировка и фильтрация информации о содержимом папки (диска);

просмотр структуры диска (дерева папок);

переименование, копирование, пересылка, удаление и быстрый поиск файлов;

просмотр, создание, сравнение и синхронизация каталогов;

просмотр, создание и редактирование текстовых файлов;

архивация, обновление и разархивация архивных файлов, просмотр архивов;

запуск программ и создание пользовательских меню запуска.

Примерами оболочек ОС являются следующие программы: Norton Commander, Norton Navigator, NC for Windows, DOS Navigator, PC Shell, PowerDesk, FAR, Windows Commander, Windows Explorer (Проводник), ДИСКо Командир и др. При всем многообразии эти программы можно разделить на две большие группы. В первую входят программы, подобные программе «Проводник» с добавлениями некоторых полезных функций. Вторая группа представлена программами, имитирующими интерфейс самого популярного файлового менеджера прошлых лет — Norton Commander.

Программы первой группы популярны на Западе. Примером такой программы может служить PowerDesk, входящая в комплект утилит фирмы Mijenix. Большинство же пользователей «постсоветского пространства» отдают предпочтение файловым менеджерам второй группы. Эти программы позволяют видеть файлы и каталоги на двух панелях, которые идентичны по своим функциям, т.е. можно одновременно просматривать содержимое двух папок. Операции над файлами и каталогами в них производятся с помощью команд меню, функциональных клавиш и мыши. Кроме этого, оболочки типа «нортона» имеют командную строку, которую можно использовать для выполнения некоторых операций.

Рассмотрим функциональные возможности оболочек ОС на примере программы Total Commander (ранее Windows Commander) версии 6.50.

Total Commander— это классический двухпанельный файл-менеджер с графическим интерфейсом, выпускаемый компанией Christian Ghisler.

Кроме двух рабочих панелей, интерфейс Total Commander (рис. 3.6) содержит Панель инструментов, Панель с кнопками дисков «drive buttons», Окно выбора диска, Панель информации о выбранном диске, Строку состояния, Командную строку, Кнопки функциональных клавиш, которые при необходимости можно отключать.

Рис. 3.6. Окно программы Total Commander

Помимо основных возможностей, перечисленных выше, Total Commander выполняет следующие функции:

предоставляет возможность смены языка интерфейса;

поддерживает длинные имена файлов;

поддерживает стандартный набор архиваторов (ZIP, ARJ, LHA и RAR), а также архиваторы UC2 и ACE. Содержимое архивов показывается в виде каталогов, файлы которых можно просмотреть или даже запустить. Возможен просмотр самораспаковывающихся архивов;

поддерживает удаление в Корзину или минуя ее (при нажатой клавише <Shift>);

поддерживает Контекстное меню и технологию «Drag&Drop»;

содержит полнофункциональный встроенный FTP-клиент;

содержит программу просмотра Lister, которая позволяет не только просматривать текстовые файлы, но и работать с HTML страницами, просматривать рисунки, прослушивать аудио-файлы (для просмотра файлов других форматов можно использовать внешние программы);

позволяет производить настройку цветов (можно выбрать любые цвета палитры для панелей, текста, выделенных файлов и директорий, курсора и текста под ним) и шрифтов, используемых в рабочих и служебных панелях, а также изменить размер иконок на панелях;

предоставляет функции обмена данными между двумя компьютерами, сравнения файлов, синхронизации директорий и др.

Total Commander поддерживает как «нортоновские», так и «виндовские» комбинации «горячих клавиш» и способы проведения некоторых операций. Например, операцию копирования можно производить при помощи клавиши <F5> либо комбинациями <Ctrl>+<C> <Ctrl>+<V>. Эту же операцию можно провести используя Контекстное меню или технологию «Drag&Drop»;

Операции выделения файлов и каталогов и поиска внутри каталога также осуществляются как «нортоновскими», так и «виндовскими» методами.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *