Операционная система это процессор
Частью программного обеспечения, наиболее тесно взаимодействующей с аппаратной частью компьютера, является системное программное обеспечение и, прежде всего операционная система.
Операционная система играет роль посредника между пользователем, программами и оборудованием компьютера. Она обеспечивает возможность запуска программ, поддерживает работоспособность устройств, предоставляет средства проверки и настройки различных компонентов. Чем гибче и многофункциональнее операционная система, тем больше возможностей она предоставляет, тем удобнее работать с компьютером.
Операционная система (ОС) – это комплекс (набор) программ, который обеспечивает взаимодействие всех устройств ЭВМ и позволяет пользователю осуществлять общее управление ЭВМ.
Главное назначение ОС – управление ресурсами, а главные ресурсы, которыми она управляет, – это аппаратура компьютера. ОС управляет вычислительным процессом и информационным обменом между процессором, памятью, внешними устройствами.
Поскольку все устройства компьютера работают одновременно, ОС обеспечивает разделение ресурсов, предотвращая тем самым опасность возникновения конфликтных ситуаций между компонентами вычислительной системы, способных привести к сбою в работе, потере или искажении информации.
ОС реализует много различных функций, в том числе:
- создает рабочую среду и поддерживает пользовательский интерфейс;
- обеспечивает выполнение команд пользователя и программных инструкций;
- управляет аппаратными средствами компьютера;
- обеспечивает разделение аппаратных ресурсов между программами;
- планирует доступ пользователей к общим ресурсам;
- обеспечивает выполнение операций ввода–вывода, хранения информации и управление файловой системой;
- осуществляет восстановление информации в случае аппаратных сбоев и программных ошибок.
Развитие операционных систем всегда следовало за развитием аппаратуры.
Операционная система - это комплекс взаимосвязанных системных программ, назначение которого - организовать взаимодействие пользователя с компьютером и выполнение всех других программ.
Операционная система выполняет роль связующего звена между аппаратурой компьютера, с одной стороны, и выполняемыми программами, а также пользователем, с другой стороны.
Операционную систему составляют:
- набор утилит, необходимых для эксплуатации операционной системы.
Операционная система обычно хранится во внешней памяти компьютера - на диске. При включении компьютера она считывается с дисковой памяти и размещается в ОЗУ. Этот процесс называется загрузкой операционной системы.
В функции операционной системы входит:
- осуществление диалога с пользователем;
- ввод-вывод и управление данными;
- планирование и организация процесса обработки программ;
- распределение ресурсов (оперативной памяти и кэша, процессора, внешних устройств);
- запуск программ на выполнение;
- всевозможные вспомогательные операции обслуживания;
- передача информации между различными внутренними устройствами;
- программная поддержка работы периферийных устройств (дисплея, клавиатуры, принтера и др.).
Операционную систему можно назвать программным продолжением устройства управления компьютера. Операционная система скрывает от пользователя сложные ненужные подробности взаимодействия с аппаратурой, образуя прослойку между ними. В результате этого люди освобождаются от очень трудоёмкой работы по организации взаимодействия с аппаратурой компьютера.
Требования к современным операционным системам:
- совместимость – ОС должна включать средства для выполнения приложений, подготовленных для других ОС;
- переносимость – обеспечение возможности переноса ОС с одной аппаратной платформы на другую;
- надежность и отказоустойчивость – предполагает защиту ОС от внутренних и внешних ошибок, сбоев отказов;
- безопасность – ОС должна содержать средства защиты ресурсов одних пользователей от других;
- расширяемость – ОС должна обеспечивать удобство внесения последующих изменений и дополнений;
- производительность – система должна обладать достаточным быстродействием.
Windows – это самая распространенная ОС на земле
Все ругают семейство этих операционных систем за «прожорливость» к ресурсам компьютера, низкую стабильность работы и утомляющую загрузку обновлений. Тем не менее этой ОС пользуются более 90% пользователей. И этому есть объяснение.
У Windows есть масса преимуществ перед конкурентами, приведем некоторые из них:
- надежная поддержка железа (видеокарт, аудиокарт, принтеров, видеокамер и т.д.);
- легкость в установке приложений и программ (программа скачивается, а затем устанавливается, кликнув два раза мышкой по установщику);
- дружелюбный интерфейс, использовать ОС в быту легко, освоит и ребенок (интуитивно понятный);
- большой выбор программ для windows (игры, графические и текстовые редакторы, антивирусы и т.д.).
Здесь перечислены основные достоинства, они дают объяснение, почему пользователи выбирают эту ОС.
Но существуют и некоторые минусы:
- долгая загрузка ОС;
- постоянные перезагрузки и необходимость установки обновлений (чтобы обеспечивать безопасность);
- возможная потеря данных или работоспособности компьютера при попадании вируса в систему.
Как видим, преимуществ больше, а главное заключается в удобстве.
Каждый пользователь без проблем способен в ней разобраться за пару часов, в этом секрет популярности.
Содержание
Файловые системы и структуры
Постепенная замена носителей с последовательным доступом (перфолент, перфокарт и магнитных лент) накопителями произвольного доступа (на магнитных дисках).
Файловая система — способ хранения данных на внешних запоминающих устройствах.
Функции
- Исполнение запросов программ (ввод и вывод данных, запуск и остановка других программ, выделение и освобождение дополнительной памяти и др.). в оперативную память и их выполнение.
- Стандартизованный доступ к периферийным устройствам (устройства ввода-вывода).
- Управление оперативной памятью (распределение между процессами, организация виртуальной памяти).
- Управление доступом к данным на энергонезависимых носителях (таких как жёсткий диск, оптические диски и др.), организованным в той или иной файловой системе.
- Обеспечение пользовательского интерфейса.
- Сохранение информации об ошибках системы.
- Параллельное или псевдопараллельное выполнение задач (многозадачность).
- Эффективное распределение ресурсов вычислительной системы между процессами.
- Разграничение доступа различных процессов к ресурсам.
- Организация надёжных вычислений (невозможности одного вычислительного процесса намеренно или по ошибке повлиять на вычисления в другом процессе), основана на разграничении доступа к ресурсам. : обмен данными, взаимная синхронизация.
- Защита самой системы, а также пользовательских данных и программ от действий пользователей (злонамеренных или по незнанию) или приложений.
- Многопользовательский режим работы и разграничение прав доступа (см.: аутентификация, авторизация).
Компоненты операционной системы:
Что нам понадобится?
- x86 компьютер (разумеется)
- Ассемблер NASM
- GCC
- ld (GNU Linker)
- GRUB
- Исходный код
Ну и неплохо было бы иметь представление о том, как работает UNIX-подобная ОС. Исходный код можно найти в репозитории на Github.
Для начала напишем небольшой файл в x86 ассемблере, который будет отправной точкой для запуска ядра. Этот файл будет вызывать внешнюю функцию на C, а затем остановит поток программы.
Как убедиться, что этот код послужит отправной точкой для ядра?
Мы будем использовать скрипт компоновщика, который связывает объектные файлы с целью создания окончательного исполняемого файла ядра. В этом скрипте явно укажем, что бинарный файл должен быть загружен по адресу 0x100000. Этот адрес, является тем местом, где должно быть ядро.
Первая инструкция bits 32 не является инструкцией сборки x86. Это директива для ассемблера NASM, которая указывает, что он должен генерировать код для работы на процессоре, работающем в 32-битном режиме. Это не обязательно требуется в нашем примере, однако это хорошая практика – указывать такие вещи явно.
Вторая строка начинается с текстового раздела. Здесь мы разместим весь наш код.
global - еще одна директива NASM, служит для установки символов исходного кода как глобальных.
kmain - это собственная функция, которая будет определена в нашем файле kernel.c. extern объявляет, что функция определена в другом месте.
Функция start вызывает функцию kmain и останавливает CPU с помощью команды hlt. Прерывания могут пробудить CPU из выполнения инструкции hlt. Поэтому мы предварительно отключаем прерывания, используя инструкцию cli.
В идеале необходимо выделить некоторый объем памяти для стека и указать на нее с помощью указателя стека (esp). Однако, GRUB делает это за нас, и указатель стека уже установлен. Тем не менее, для верности, мы выделим некоторое пространство в разделе BSS и поместим указатель стека в начало выделенной памяти. Для этого используем команду resb, которая резервирует память в байтах. После этого остается метка, которая указывает на край зарезервированного фрагмента памяти. Перед вызовом kmain указатель стека (esp) используется для указания этого пространства с помощью команды mov.
В kernel.asm мы сделали вызов функции kmain(). Таким образом, код на C начнет выполнятся в kmain():
Наше ядро будет очищать экран и выводить на него строку «my first kernel».
Для начала мы создаем указатель vidptr, который указывает на адрес 0xb8000. Этот адрес является началом видеопамяти в защищенном режиме. Текстовая память экрана – это просто кусок памяти в нашем адресном пространстве. Ввод/вывод для экрана на карте памяти начинается с 0xb8000 и поддерживает 25 строк по 80 ascii символов каждая.
Каждый элемент символа в этой текстовой памяти представлен 16 битами (2 байта), а не 8 битами (1 байт), к которым мы привыкли. Первый байт должен иметь представление символа, как в ASCII. Второй байт является атрибутным байтом. Он описывает форматирование символа, включая разные атрибуты, например цвет.
Чтобы напечатать символ с зеленым цветом на черном фоне, мы сохраним символ s в первом байте адреса видеопамяти и значение 0x02 во втором байте.
0 - черный фон, а 2 - зеленый.
Ниже приведена таблица кодов для разных цветов:
В нашем ядре мы будем использовать светло-серые символы на черном фоне. Поэтому наш байт атрибутов должен иметь значение 0x07.
В первом цикле while программа записывает пустой символ с атрибутом 0x07 по всем 80 столбцам из 25 строк. Таким образом, экран очищается.
Во втором цикле while символы строки «my first kernel» записываются в кусок видеопамяти. Для каждого символа атрибутный байт содержит значение 0x07.
Таким образом, строка отобразится на экране.
Мы собираем kernel.asm и NASM в объектный файл, а затем с помощью GCC компилируем kernel.c в другой объектный файл. Теперь наша задача – связать эти объекты с исполняемым загрузочным ядром.
Для этого мы используем явный скрипт компоновщика, который можно передать как аргумент ld (наш компоновщик).
Во-первых, мы устанавливаем выходной формат исполняемого файла как 32-битный исполняемый (ELF). ELF – стандартный формат двоичного файла для Unix-подобных систем на архитектуре x86.
ENTRY принимает один аргумент. Он указывает имя символа, которое должно быть точкой входа нашего исполняемого файла.
SECTIONS – самая важная часть, где мы определяем разметку исполняемого файла. Здесь указывается, как должны быть объединены различные разделы и в каком месте они будут размещаться.
В фигурных скобках, следующих за инструкцией SECTIONS, символ периода (.) – представляет собой счетчик местоположения.
Счетчик местоположения всегда инициализируется до 0x0 в начале блока SECTIONS. Его можно изменить, присвоив ему новое значение.
Как уже говорилось, код ядра должен начинаться с адреса 0x100000. Таким образом, мы установили счетчик местоположения в 0x100000.
Посмотрите на следующую строку .text:
Звездочка (*) является спецсимволом, который будет соответствовать любому имени файла. То есть, выражение *(.text) означает все секции ввода .text из всех входных файлов.
Таким образом, компоновщик объединяет все текстовые разделы объектных файлов в текстовый раздел исполняемого файла по адресу, хранящемуся в счетчике местоположения. Раздел кода исполняемого файла начинается с 0x100000.
После того, как компоновщик разместит секцию вывода текста, значение счетчика местоположения установится в 0x1000000 + размер раздела вывода текста.
Аналогично, разделы данных и bss объединяются и помещаются на значения счетчика местоположения.
Теперь все файлы, необходимые для сборки ядра, готовы. Но, поскольку мы намеренны загружать ядро с помощью GRUB, нужно еще кое-что.
Существует стандарт для загрузки различных x86 ядер с использованием загрузчика, называемый спецификацией Multiboot.
GRUB загрузит ядро только в том случае, если оно соответствует Multiboot-спецификации.
Согласно ей, ядро должно содержать заголовок в пределах его первых 8 килобайт.
Кроме того, этот заголовок должен содержать дополнительно 3 поля:
- поле магического числа: содержит магическое число 0x1BADB002, для идентификации заголовка.
- поле флагов: сейчас оно не нужно, просто установим его значение в ноль.
- поле контрольной суммы: когда задано, должно возвращать ноль для суммы с первыми двумя полями.
Итак, kernel.asm будет выглядеть таким образом:
Теперь создадим объектные файлы из kernel.asm и kernel.c, а затем свяжем их с помощью скрипта компоновщика.
запустит ассемблер для создания объектного файла kasm.o в формате 32-битного ELF.
Параметр «-c» гарантирует, что после компиляции связывание не произойдет неявным образом.
запустит компоновщик с нашим скриптом и сгенерирует исполняемое именованное ядро.
UNIX-подобная ОС с ее ядром почти поддалась. GRUB требует, чтобы ядро имело имя вида kernel-. Переименуйте ядро, к примеру, в kernel-701.
Теперь поместите его в каталог /boot. Для этого вам потребуются права суперпользователя.
В конфигурационном файле GRUB grub.cfg вы должны добавить запись такого вида:
Не забудьте удалить директиву hiddenmenu, если она существует.
Перезагрузите компьютер, и вы сможете наблюдать список с именем вашего ядра. Выберите его, и вы увидите:
Это ваше ядро! Оказывается, UNIX-подобная операционная система и ее составляющие не так уж сложны, верно?
- Всегда желательно использовать виртуальную машину для всех видов взлома ядра.
- Чтобы запустить это ядро на grub2, который является загрузчиком по умолчанию для более новых дистрибутивов, ваша конфигурация должна выглядеть так:
Если вы хотите запустить ядро на эмуляторе qemu вместо загрузки с помощью GRUB, вы можете сделать так:
Теперь вы имеете представление о том, как устроены UNIX-подобная ОС и ее ядро, а также сможете без труда написать последнее.
Этот термин применяется не только к обычным персональным компьютерам (ПК), но и к любым другим вычислительным системам — от смартфона до суперкомпьютеров
Что это за «зверь» такой, расскажем в данной статье.
Пакетный режим
Необходимость оптимального использования дорогостоящих вычислительных ресурсов привела к появлению концепции «пакетного режима» исполнения программ. Пакетный режим предполагает наличие очереди программ на исполнение, причём система может обеспечивать загрузку программы с внешних носителей данных в оперативную память, не дожидаясь завершения исполнения предыдущей программы, что позволяет избежать простоя процессора.
Эволюция и основные идеи
Предшественником операционных систем следует считать служебные программы (загрузчики и мониторы), а также библиотеки часто используемых подпрограмм, начавшие разрабатываться с появлением универсальных компьютеров 1-го поколения (конец 1940-х годов). Служебные программы минимизировали физические манипуляции оператора с оборудованием, а библиотеки позволяли избежать многократного программирования одних и тех же действий (осуществления операций ввода-вывода, вычисления математических функций и т. п.).
В 1950—1960-х годах сформировались и были реализованы основные идеи, определяющие функциональность ОС: пакетный режим, разделение времени и многозадачность, разделение полномочий, реальный масштаб времени, файловые структуры и файловые системы.
Linux – это надежность и безопасность везде
Эта операционная система (основанная на базе Unix) несколько отличается от предыдущей.
Главное сердце — это ядро, в котором установлена поддержка драйверов (для работы с другими устройствами). Главное понятие в данной ОС — это пакет, т.к. она полностью состоит из пакетов.
Если в виндовс каждое приложение занимает свою папку, то в Linux файлы лежат по разным папкам: запускающие программу находятся в одном месте, конфигурационные файлы, связанные с настройками программ, — в другой папке.
Такое хранение и расположение файлов путает пользователей, но, с точки зрения логики, такое разделение кажется разумным.
Осветим преимущества этой ОС:
- бесплатность системы (на сайте с выбранным дистрибутивом скачиваем необходимый образ, записываем на флешку и устанавливаем на компьютеры пользователей);
- программное обеспечение бесплатное (графические редакторы, текстовые и т.д.);
- модификация программ, если знаешь язык программирования, то можно смело писать собственные программы или изменять существующие;
- запуск программ и игр, предназначенных для системы windows, выполняется через эмуляторы (wine, виртуальные машины);
- благодаря архитектуре и сложной системе написания вирусов и активации их на Linux, она весьма надежна и безопасна, поэтому Unix-подобные системы стоят «на страже» большинства серверов.
Но и здесь не обойтись без минусов:
- неполная поддержка аппаратного обеспечения (видеокарт, аудиокарт, принтеров и т.д.), но ситуация постоянно улучшается, с каждым новым релизом поддерживается все больше устройств;
- меньшее количество игр и программ, разработчикам коммерческого ПО невыгодно вкладываться в бесплатные версии программ, поэтому они остаются в сегменте Windows;
- необходимость постоянного самообучения, при возникновении проблем с программой и драйверами ответы на вопросы необходимо искать на форумах, посвященных данной ОС, так как они неочевидны.
Выигрывает этот раунд Windows. Пользователи не захотят разбираться в новой системе, им нужен результат: «чтобы сразу все работало». Linux — это операционная система для любителей познавать новое.
Дистрибутивы Linux становятся все более «дружелюбными» к пользователю, предлагая приятный графический интерфейс, практичные менеджеры пакетов, пополняющийся комплекс игр и приложений (в начале использования новичкам подойдут дистрибутивы Ubuntu, Linux Mint).
Краткая характеристика некоторых операционных систем
ОС Linux – сетевая ОС, ядро которой разработано на базе ОС Unix. Linux распространяется в исходных кодах и применяется для создания серверов в вычислительных сетях и в Интернете.
ОС Unix – многопользовательская, многозадачная ОС, включает достаточно мощные средства защиты программ и файлов различных пользователей. ОС Unix является машинонезависимой, что обеспечивает высокую мобильность ОС и легкую переносимость прикладных программ на компьютеры различной архитектуры.
Важной особенностью и обширным набор сервисных программ, которые позволяют создать благоприятную операционную обстановку для пользователей – программистов (т.е. система особенно эффективна для специалистов – прикладных программистов).
Какую операционную систему выбрать
Итак, подведем итоги всего вышеизложенного. Вероятно, стало понятно, что такое ОС.
Операционная система — это главный компонент компьютера и любого подобного ему устройства.
- Если требуется простота и удобство установки программ, настройки периферии, тогда лучшим выбором будут ОС линейки Windows.
- Если же нравится изучать, как работает компьютер, понять происходящие в нем процессы, а также лучше понимать принципы его работы, тогда хорошим решением будет переход на linux.
- Для тех же, кому компьютер нужен только как рабочий инструмент, лучшим выбором будет MacOS.
Какую бы операционную систему вы не выбрали, главное, хорошо в ней разобраться, надеемся, что эта статья стала шагом на пути к полному взаимопониманию!
Эта статья относится к рубрикам:
Windows – это самая распространенная ОС на земле
Все ругают семейство этих операционных систем за «прожорливость» к ресурсам компьютера, низкую стабильность работы и утомляющую загрузку обновлений. Тем не менее этой ОС пользуются более 90% пользователей. И этому есть объяснение.
У Windows есть масса преимуществ перед конкурентами, приведем некоторые из них:
- надежная поддержка железа (видеокарт, аудиокарт, принтеров, видеокамер и т.д.);
- легкость в установке приложений и программ (программа скачивается, а затем устанавливается, кликнув два раза мышкой по установщику);
- дружелюбный интерфейс, использовать ОС в быту легко, освоит и ребенок (интуитивно понятный);
- большой выбор программ для windows (игры, графические и текстовые редакторы, антивирусы и т.д.).
Здесь перечислены основные достоинства, они дают объяснение, почему пользователи выбирают эту ОС.
Но существуют и некоторые минусы:
- долгая загрузка ОС;
- постоянные перезагрузки и необходимость установки обновлений (чтобы обеспечивать безопасность);
- возможная потеря данных или работоспособности компьютера при попадании вируса в систему.
Как видим, преимуществ больше, а главное заключается в удобстве.
Каждый пользователь без проблем способен в ней разобраться за пару часов, в этом секрет популярности.
Mac OS – это ОС, созданная для профессионалов
Это операционная система фирмы Apple, которую возможно установить лишь на компьютеры этой же фирмы.
Mac OS – это закрытая ОС на основе Unix-подобных систем (похожа на Linux), разница заключается в том, что исходный программный код закрыт, и она является платной операционной системой.
Плюс закрытой системы в том, что приложения доводятся до совершенства при работе под одну архитектуру, что увеличивает быстродействие приложений, увеличивая эффективное взаимодействие с памятью и другими процессами.
Есть и существенный минус — практически полное отсутствие игр для этой операционки. Компьютеры фирмы apple – это платформы, сделанные и созданные не для дома, а для работы.
Linux – это надежность и безопасность везде
Эта операционная система (основанная на базе Unix) несколько отличается от предыдущей.
Главное сердце — это ядро, в котором установлена поддержка драйверов (для работы с другими устройствами). Главное понятие в данной ОС — это пакет, т.к. она полностью состоит из пакетов.
Если в виндовс каждое приложение занимает свою папку, то в Linux файлы лежат по разным папкам: запускающие программу находятся в одном месте, конфигурационные файлы, связанные с настройками программ, — в другой папке.
Такое хранение и расположение файлов путает пользователей, но, с точки зрения логики, такое разделение кажется разумным.
Осветим преимущества этой ОС:
- бесплатность системы (на сайте с выбранным дистрибутивом скачиваем необходимый образ, записываем на флешку и устанавливаем на компьютеры пользователей);
- программное обеспечение бесплатное (графические редакторы, текстовые и т.д.);
- модификация программ, если знаешь язык программирования, то можно смело писать собственные программы или изменять существующие;
- запуск программ и игр, предназначенных для системы windows, выполняется через эмуляторы (wine, виртуальные машины);
- благодаря архитектуре и сложной системе написания вирусов и активации их на Linux, она весьма надежна и безопасна, поэтому Unix-подобные системы стоят «на страже» большинства серверов.
Но и здесь не обойтись без минусов:
- неполная поддержка аппаратного обеспечения (видеокарт, аудиокарт, принтеров и т.д.), но ситуация постоянно улучшается, с каждым новым релизом поддерживается все больше устройств;
- меньшее количество игр и программ, разработчикам коммерческого ПО невыгодно вкладываться в бесплатные версии программ, поэтому они остаются в сегменте Windows;
- необходимость постоянного самообучения, при возникновении проблем с программой и драйверами ответы на вопросы необходимо искать на форумах, посвященных данной ОС, так как они неочевидны.
Выигрывает этот раунд Windows. Пользователи не захотят разбираться в новой системе, им нужен результат: «чтобы сразу все работало». Linux — это операционная система для любителей познавать новое.
Дистрибутивы Linux становятся все более «дружелюбными» к пользователю, предлагая приятный графический интерфейс, практичные менеджеры пакетов, пополняющийся комплекс игр и приложений (в начале использования новичкам подойдут дистрибутивы Ubuntu, Linux Mint).
Комментарии и отзывы (7)
Знаю только Виндовс, причем с 95 и прочими «динозавриками» вплоть до ХР даже и не сталкивался. На сегодняшний день для меня лучше «Десятки» ничего нет, так что вопрос выбора не стоит.
А вот что предшествовало Виндовс 95, я и не помню. Но уверен, что это был какой-то дикий ужас.
Помню, что когда я учился в школе, то года с 1992-93 в программе была информатика, изучали какой-то язык программирования Бейсик. В котором я был полнейший ноль и так и не понял ничего. Что интересно, в 1997-98 годах я уже учился в ВУЗе и вместо того, чтобы обучать нас тонкостям того же Виндовс — долбили этот кошмарный, допотопный Бейсик))
И вот что еще запомнилось, как-то обходились без мышек. Да! Одной клавиатурой со стрелками!
Я помню Basic и это была ничуть не операционная система, а язык программирования. Абсолютно корявый и нефункциональный. Даже на начало девяностых годов. И чего было на нем детей в школе учить, непонятно. Только пугать. Работа хоть на самом корявом виндовз по сравнению с ним. дальше сами понимаете.
Сейчас задумался — интересно, почему Россия не создает свою собственную операционную систему по типу Виндовс? Ведь в стране куча самых опытных программистов, которые уж всяко могут придумать что-то круче американских аналогов.
Ничего нового в этой статье. То, что MacOS работает только на технике Apple, знает и ребенок. Я права?
Тут задали вопрос почему Россия не создает операционную систему. Россия создает и по типу Windows, и по типу linux. Но корнем этих систем всеравно остаётся английский язык. Помните как сказал Задорнов? Английский для передачи информации, а русский передает состояние души. Так русский более эмоциональный язык чем информативный.
Так что если системе придется переводить в код такие выражения как да не-ет, страшно красива, недоперепил, да и многое другое процессор скорее всего сгорит в попытке разобраться что эти выражения обозначают.
Какую операционную систему выбрать
Итак, подведем итоги всего вышеизложенного. Вероятно, стало понятно, что такое ОС.
Операционная система — это главный компонент компьютера и любого подобного ему устройства.
- Если требуется простота и удобство установки программ, настройки периферии, тогда лучшим выбором будут ОС линейки Windows.
- Если же нравится изучать, как работает компьютер, понять происходящие в нем процессы, а также лучше понимать принципы его работы, тогда хорошим решением будет переход на linux.
- Для тех же, кому компьютер нужен только как рабочий инструмент, лучшим выбором будет MacOS.
Какую бы операционную систему вы не выбрали, главное, хорошо в ней разобраться, надеемся, что эта статья стала шагом на пути к полному взаимопониманию!
Эта статья относится к рубрикам:
Разделение полномочий
Распространение многопользовательских систем потребовало решения задачи разделения полномочий, позволяющей избежать возможности изменения исполняемой программы или данных одной программы в памяти компьютера другой программой (намеренно или по ошибке), а также изменения самой системы прикладной программой.
Реализация разделения полномочий в операционных системах была поддержана разработчиками процессоров, предложивших архитектуры с двумя режимами работы процессора — «реальным» (в котором исполняемой программе доступно всё адресное пространство компьютера) и «защищённым» (в котором доступность адресного пространства ограничена диапазоном, выделенном при запуске программы на исполнение).
Mac OS – это ОС, созданная для профессионалов
Это операционная система фирмы Apple, которую возможно установить лишь на компьютеры этой же фирмы.
Mac OS – это закрытая ОС на основе Unix-подобных систем (похожа на Linux), разница заключается в том, что исходный программный код закрыт, и она является платной операционной системой.
Плюс закрытой системы в том, что приложения доводятся до совершенства при работе под одну архитектуру, что увеличивает быстродействие приложений, увеличивая эффективное взаимодействие с памятью и другими процессами.
Есть и существенный минус — практически полное отсутствие игр для этой операционки. Компьютеры фирмы apple – это платформы, сделанные и созданные не для дома, а для работы.
Операционная система: назначение и состав
На IBM-совместимых персональных компьютерах используются операционные системы корпорации Microsoft Windows 9х/МЕ, свободно распространяемая операционная система Linux. На персональных компьютерах фирмы Apple используются различные версии операционной системы Mac OS. На рабочих станциях и серверах наибольшее распространение получили операционные системы Windows NT/2000/XP и UNIX.
Операционные системы разные, но их назначение и функции одинаковые. Операционная система является базовой и необходимой составляющей программного обеспечения компьютера, без нее компьютер не может работать в принципе.
Операционная система обеспечивает совместное функционирование всех устройств компьютера и предоставляет пользователю доступ к его ресурсам.
Современные операционные системы имеют сложную структуру, каждый элемент которой выполняет определенные функции по управлению компьютером.
Управление файловой системой. Процесс работы компьютера в определенном смысле сводится к обмену файлами между устройствами. В операционной системе имеются программные модули, управляющие файловой системой.
Командный процессор. В состав операционной системы входит специальная программа - командный процессор, - которая запрашивает у пользователя команды и выполняет их.
Пользователь может дать команду запуска программы, выполнения какой-либо операции над файлами (копирование, удаление, переименование), вывода документа на печать и так далее. Операционная система должна эту команду выполнить.
Драйверы устройств. К магистрали компьютера подключаются различные устройства (дисководы, монитор, клавиатура, мышь, принтер и др.). Каждое устройство выполняет определенную функцию (ввод информации, хранение информации, вывод информации), при этом техническая реализация устройств существенно различается.
В состав операционной системы входят драйверы устройств, специальные программы, которые обеспечивают управление работой устройств и согласование информационного обмена с другими устройствами, а также позволяют производить настройку некоторых параметров устройств. Каждому устройству соответствует свой драйвер.
Технология "Plug and Play" (подключи и играй) позволяет автоматизировать подключение к компьютеру новых устройств и обеспечивает их конфигурирование. В процессе установки Windows определяет тип и конкретную модель установленного устройства и подключает необходимый для его функционирования драйвер. При включении компьютера производится загрузка драйверов в оперативную память.
Пользователь имеет возможность вручную установить или переустановить драйверы.
Графический интерфейс. Для упрощения работы пользователя в состав современных операционных систем, и в частности в состав Windows, входят программные модули, создающие графический пользовательский интерфейс. В операционных системах с графическим интерфейсом пользователь может вводить команды с помощью мыши, тогда как в режиме командной строки необходимо вводить команды с помощью клавиатуры.
Сервисные программы. В состав операционной системы входят также сервисные программы, или утилиты. Такие программы позволяют обслуживать диски (проверять, сжимать, дефрагментировать и так далее), выполнять операции с файлами (архивировать и так далее), работать в компьютерных сетях и так далее.
Справочная система. Для удобства пользователя в состав операционной системы обычно входит также справочная система. Справочная система позволяет оперативно получить необходимую информацию как о функционировании операционной системы в целом, так и о работе ее отдельных модулей.
Операцио́нная систе́ма, сокр. ОС (англ. operating system, OS ) — комплекс управляющих и обрабатывающих программ, которые, с одной стороны, выступают как интерфейс между устройствами вычислительной системы и прикладными программами, а с другой стороны — предназначены для управления устройствами, управления вычислительными процессами, эффективного распределения вычислительных ресурсов между вычислительными процессами и организации надёжных вычислений. Это определение применимо к большинству современных операционных систем общего назначения.
В логической структуре типичной вычислительной системы операционная система занимает положение между устройствами с их микроархитектурой, машинным языком и, возможно, собственными (встроенными) микропрограммами — с одной стороны — и прикладными программами с другой.
Разработчикам программного обеспечения операционная система позволяет абстрагироваться от деталей реализации и функционирования устройств, предоставляя минимально необходимый набор функций (см.: интерфейс программирования приложений).
В большинстве вычислительных систем операционная система является основной, наиболее важной (а иногда и единственной) частью системного программного обеспечения. С 1990-х годов наиболее распространёнными операционными системами являются системы семейства Windows и системы класса UNIX (особенно Linux и Mac OS).
Существующие операционные системы
Операционная система — это самая главная программа на ПК
Операционная система — это набор программ, при помощи которых функционирует компьютер. Без этого набора программ он не будет работать, оставаясь ненужной кучей «железок».
В компьютере, ноутбуке, планшете, телефоне обязательно есть операционная система.
Это интерфейс (мост) между «железом» в компьютерном блоке или корпусе телефона (процессором, памятью, жестким диском) и пользователем.
Она создана для управления всей работой компьютера, эффективного использования его ресурсов. ОС — это «Большой Босс», который выполняет следующие функции:
- управляет свободными ресурсами оперативной памяти, жестких дисков или карт памяти;
- руководит загрузкой процессора;
- распределяет потоки процессов для создания многозадачности (одновременное открытие нескольких программ);
- устанавливает, обновляет и удаляет (при помощи пользователя или автоматически) программы и приложения.
Для того чтобы пользователю было комфортно взаимодействовать с программным обеспечением (Microsoft Word, браузеры, игры и т.д.), операционные системы имеют графический интерфейс (графическую оболочку).
Первой по-настоящему популярной операционной системой была Windows 95 и главной ее фишкой был именно графический интерфейс, позволяющий управлять компьютером с помощью мыши, что сделало его доступным пониманию большего числа людей. Существовавшие до этого ОС требовали специфических знаний (команд), чтобы работать с ПК.
Основные виды операционных систем подразумевают деление на однозадачные и многозадачные. Современные ОС относятся ко второму типу, т.е. способны решать несколько задач одновременно.
Сюда же относятся самые популярные — Microsoft Windows, Linux, MacOS. У всех есть достоинства и недостатки. Рассмотрим каждую из них более подробно.
UNIX, стандартизация операционных систем и POSIX
К концу 1960-х годов отраслью и научно-образовательным сообществом был создан целый ряд операционных систем, реализующих все или часть очерченных выше функций. К ним относятся Atlas (Манчестерский университет), CTTS и ITSS (Массачусетский технологический институт, MIT), THE (Эйндховенский технологический университет), RS4000 (Университет Орхуса) и др. (всего эксплуатировалось более сотни различных ОС).
Наиболее развитые операционные системы, такие как OS/360 (IBM), SCOPE (CDC (англ.)) и завершённый уже в 1970-х годах Multics (MIT и Bell Labs), предусматривали возможность исполнения на многопроцессорных компьютерах.
Эклектичный характер разработки операционных систем привёл к нарастанию кризисных явлений, прежде всего, связанных с чрезмерными сложностью и размерами создаваемых систем. Системы были плохо масштабируемыми (более простые не могли использовать все возможности крупных вычислительных систем; более развитые неоптимально исполнялись на малых или не могли исполняться на них вовсе) и полностью несовместимыми между собой, их разработка и совершенствование затягивались.
Задуманная и реализованная в 1969 году Кеном Томпсоном при участии нескольких коллег (включая Денниса Ритчи и Брайана Кернигана), операционная система UNIX (первоначально UNICS, что обыгрывало название Multics) вобрала в себя многие черты более ранних систем, но обладала целым рядом свойств, отличающих её от большинства предшественниц:
- простая метафорика (два ключевых понятия: вычислительный процесс и файл);
- компонентная архитектура: принцип «одна программа — одна функция» плюс мощные средства связывания различных программ для решения возникающих задач («оболочка»);
- минимизация ядра (кода, выполняющегося в «реальном» (привилегированном) режиме процессора) и количества системных вызовов;
- независимость от аппаратной архитектуры и реализация на машиннонезависимом языке программирования (язык программирования Си стал побочным продуктом разработки UNIX);
- унификация файлов.
UNIX, благодаря своему удобству прежде всего в качестве инструментальной среды (среды разработки), обрела популярность сначала в университетах, а затем и в отрасли, получившей прототип единой операционной системы, которая могла использоваться на самых разных вычислительных системах и, более того, могла быть быстро и с минимальными усилиями перенесена на любую вновь разработанную аппаратную архитектуру.
В конце 1970-х годов сотрудники Калифорнийского университета в Беркли внесли ряд усовершенствований в исходные коды UNIX, включая работу с протоколами TCP/IP. Их разработка стала известна под именем BSD (Berkeley Software Distribution).
Задачу разработать независимую (от авторских прав Bell Labs) реализацию той же архитектуры поставил и Ричард Столлман, основатель проекта GNU.
Благодаря конкурентности реализаций архитектура UNIX стала вначале фактическим отраслевым стандартом, а затем обрела статус и стандарта юридического — ISO/IEC 9945 [1] (POSIX).
Только системы, отвечающие спецификации Single UNIX Specification, имеют право носить имя UNIX. К таким системам относятся AIX, HP-UX, IRIX, Mac OS X, SCO OpenServer, Solaris, Tru64 и z/OS.
Операционные системы, следующие стандарту POSIX или опирающиеся на него, называют «POSIX-совместимыми» (чаще встречается словоупотребление «UNIX-подобные» или «семейство UNIX», но оно противоречит статусу торгового знака «UNIX», принадлежащего консорциуму The Open Group и зарезервированному для обозначения только операционных систем, строго следующих стандарту). Сертификация на совместимость со стандартом платная, из-за чего некоторые системы не проходили этот процесс, однако считаются POSIX-совместимыми по существу.
К UNIX-подобным относятся операционные системы, основанные на последней версии UNIX, выпущенной Bell Labs (System V), на разработках университета Беркли (FreeBSD, OpenBSD, NetBSD), на основе Solaris (OpenSolaris, BeleniX, Nexenta), а также Linux, разработанная в части утилит и библиотек проектом GNU и в части ядра — сообществом, возглавляемым Линусом Торвальдсом.
Стандартизация операционных систем преследует цель упрощения замены самой системы или оборудования при развитии вычислительной системы или сети и упрощении переноса прикладного программного обеспечения (строгое следование стандарту предполагает полную совместимость программ на уровне исходного текста; из-за профилирования стандарта и его развития некоторые изменения бывают всё же необходимы, но перенос программы между POSIX-совместимыми системами обходится на порядки дешевле, чем между альтернативными), а также преемственность опыта пользователей.
Самым заметным эффектом существования этого стандарта стало эффективное разворачивание Интернета в 1990-х годах.
Комментарии и отзывы (7)
Знаю только Виндовс, причем с 95 и прочими «динозавриками» вплоть до ХР даже и не сталкивался. На сегодняшний день для меня лучше «Десятки» ничего нет, так что вопрос выбора не стоит.
А вот что предшествовало Виндовс 95, я и не помню. Но уверен, что это был какой-то дикий ужас.
Помню, что когда я учился в школе, то года с 1992-93 в программе была информатика, изучали какой-то язык программирования Бейсик. В котором я был полнейший ноль и так и не понял ничего. Что интересно, в 1997-98 годах я уже учился в ВУЗе и вместо того, чтобы обучать нас тонкостям того же Виндовс — долбили этот кошмарный, допотопный Бейсик))
И вот что еще запомнилось, как-то обходились без мышек. Да! Одной клавиатурой со стрелками!
Я помню Basic и это была ничуть не операционная система, а язык программирования. Абсолютно корявый и нефункциональный. Даже на начало девяностых годов. И чего было на нем детей в школе учить, непонятно. Только пугать. Работа хоть на самом корявом виндовз по сравнению с ним. дальше сами понимаете.
Сейчас задумался — интересно, почему Россия не создает свою собственную операционную систему по типу Виндовс? Ведь в стране куча самых опытных программистов, которые уж всяко могут придумать что-то круче американских аналогов.
Ничего нового в этой статье. То, что MacOS работает только на технике Apple, знает и ребенок. Я права?
Тут задали вопрос почему Россия не создает операционную систему. Россия создает и по типу Windows, и по типу linux. Но корнем этих систем всеравно остаётся английский язык. Помните как сказал Задорнов? Английский для передачи информации, а русский передает состояние души. Так русский более эмоциональный язык чем информативный.
Так что если системе придется переводить в код такие выражения как да не-ет, страшно красива, недоперепил, да и многое другое процессор скорее всего сгорит в попытке разобраться что эти выражения обозначают.
Этот термин применяется не только к обычным персональным компьютерам (ПК), но и к любым другим вычислительным системам — от смартфона до суперкомпьютеров
Что это за «зверь» такой, расскажем в данной статье.
Операционная система — это самая главная программа на ПК
Операционная система — это набор программ, при помощи которых функционирует компьютер. Без этого набора программ он не будет работать, оставаясь ненужной кучей «железок».
В компьютере, ноутбуке, планшете, телефоне обязательно есть операционная система.
Это интерфейс (мост) между «железом» в компьютерном блоке или корпусе телефона (процессором, памятью, жестким диском) и пользователем.
Она создана для управления всей работой компьютера, эффективного использования его ресурсов. ОС — это «Большой Босс», который выполняет следующие функции:
- управляет свободными ресурсами оперативной памяти, жестких дисков или карт памяти;
- руководит загрузкой процессора;
- распределяет потоки процессов для создания многозадачности (одновременное открытие нескольких программ);
- устанавливает, обновляет и удаляет (при помощи пользователя или автоматически) программы и приложения.
Для того чтобы пользователю было комфортно взаимодействовать с программным обеспечением (Microsoft Word, браузеры, игры и т.д.), операционные системы имеют графический интерфейс (графическую оболочку).
Первой по-настоящему популярной операционной системой была Windows 95 и главной ее фишкой был именно графический интерфейс, позволяющий управлять компьютером с помощью мыши, что сделало его доступным пониманию большего числа людей. Существовавшие до этого ОС требовали специфических знаний (команд), чтобы работать с ПК.
Основные виды операционных систем подразумевают деление на однозадачные и многозадачные. Современные ОС относятся ко второму типу, т.е. способны решать несколько задач одновременно.
Сюда же относятся самые популярные — Microsoft Windows, Linux, MacOS. У всех есть достоинства и недостатки. Рассмотрим каждую из них более подробно.
Разделение времени и многозадачность
Уже пакетный режим в своём развитом варианте требует разделения процессорного времени между выполнением нескольких программ.
Необходимость в разделении времени (многозадачности, мультипрограммировании) проявилась ещё сильнее при распространении в качестве устройств ввода-вывода телетайпов (а позднее, терминалов с электронно-лучевыми дисплеями) (1960-е годы). Поскольку скорость клавиатурного ввода (и даже чтения с экрана) данных оператором много ниже, чем скорость обработки этих данных компьютером, использование компьютера в «монопольном» режиме (с одним оператором) могло привести к простою дорогостоящих вычислительных ресурсов.
Разделение времени позволило создать «многопользовательские» системы, в которых один (как правило) центральный процессор и блок оперативной памяти соединялся с многочисленными терминалами. При этом часть задач (таких как ввод или редактирование данных оператором) могла исполняться в режиме диалога, а другие задачи (такие как массивные вычисления) — в пакетном режиме.
Классификация ОС
По числу одновременно выполняемых задач выделяют ОС:
- однозадачные (MS DOS, ранние версии PS DOS);
Многозадачность бывает:
- невытесняющая (Net Ware, Windows 95/98), когда активный процесс по окончании сам передает управление ОС для выбора из очереди другого процесса;
- вытесняющая (Windows NT, OS/2, UNIX) - решение о переключении процессора с одного процесса на другой принимает ОС.
По числу одновременно работающих пользователей ОС делят:
- однопользовательские (MS DOS, Windows 3х, ранние версии OS/2)
- многопользовательские (UNIX, Windows 2000, NT, XP, Vista). В многопользовательских системах присутствуют средства защиты информации пользователей от несанкционированного доступа.
В настоящий момент около 90% компьютеров используют ОС Windows.
Различают четыре основных класса операционных систем:
1. Однопользовательские однозадачные, которые поддерживают одну клавиатуру и могут работать только с одной (в данный момент) задачей;
2. Однопользовательские однозадачные с фоновой печатью, которые позволяют помимо основной задачи запускать одну дополнительную задачу, ориентированную, как правило, на вывод информации на печать. Это ускоряет работу при выдаче больших объёмов информации на печать;
3. Однопользовательские многозадачные, которые обеспечивают одному пользователю параллельную обработку нескольких задач. Например, к одному компьютеру можно подключить несколько принтеров, каждый из которых будет работать на "свою" задачу;
4. Многопользовательские многозадачные, позволяющие на одном компьютере запускать несколько задач нескольким пользователям. Эти ОС очень сложны и требуют значительных машинных ресурсов.
Операционная система для персонального компьютера, ориентированного на профессиональное применение, должна содержать следующие основные компоненты:
- программы управления вводом/выводом;
- программы, управляющие файловой системой и планирующие задания для компьютера;
- процессор командного языка, который принимает, анализирует и выполняет команды, адресованные операционной системе.
Каждая операционная система имеет свой командный язык, который позволяет пользователю выполнять те или иные действия:
- обращаться к каталогу;
- выполнять разметку внешних носителей;
Анализ и исполнение команд пользователя, включая загрузку готовых программ из файлов в оперативную память и их запуск, осуществляет командный процессор операционной системы.
Для управления внешними устройствами компьютера используются специальные системные программы — драйверы. Драйверы стандартных устройств образуют в совокупности базовую систему ввода-вывода (BIOS), которая обычно заносится в постоянное ЗУ компьютера.
Понятие
Существуют две группы определений операционной системы: «набор программ, управляющих оборудованием» и «набор программ, управляющих другими программами». Обе они имеют свой точный технический смысл, который связан с вопросом, в каких случаях требуется операционная система.
Есть приложения вычислительной техники, для которых операционные системы излишни. Например, встроенные микрокомпьютеры, содержащиеся во многих бытовых приборах, автомобилях (иногда по десятку в каждом), простейших сотовых телефонах, постоянно исполняют лишь одну программу, запускающуюся по включении. Многие простые игровые приставки — также представляющие собой специализированные микрокомпьютеры — могут обходиться без операционной системы, запуская при включении программу, записанную на вставленном в устройство «картридже» или компакт-диске.
Операционные системы нужны, если:
- вычислительная система используется для различных задач, причём программы, решающие эти задачи, нуждаются в сохранении данных и обмене ими. Из этого следует необходимость универсального механизма сохранения данных; в подавляющем большинстве случаев операционная система отвечает на неё реализацией файловой системы. Современные системы, кроме того, предоставляют возможность непосредственно «связать» вывод одной программы со вводом другой, минуя относительно медленные дисковые операции;
- различные программы нуждаются в выполнении одних и тех же рутинных действий. Например, простой ввод символа с клавиатуры и отображение его на экране может потребовать исполнения сотен машинных команд, а дисковая операция — тысяч. Чтобы не программировать их каждый раз заново, операционные системы предоставляют системные библиотеки часто используемых подпрограмм (функций);
- между программами и пользователями системы необходимо распределять полномочия, чтобы пользователи могли защищать свои данные от несанкционированного доступа, а возможная ошибка в программе не вызывала тотальных неприятностей;
- необходима возможность имитации «одновременного» исполнения нескольких программ на одном компьютере (даже содержащем лишь один процессор), осуществляемой с помощью приёма, известного как «разделение времени». При этом специальный компонент, называемый планировщиком, делит процессорное время на короткие отрезки и предоставляет их поочерёдно различным исполняющимся программам (процессам);
- оператор должен иметь возможность так или иначе управлять процессами выполнения отдельных программ. Для этого служат операционные среды — оболочка и наборы утилит — они могут являться частью операционной системы.
Таким образом, современные универсальные операционные системы можно охарактеризовать, прежде всего, как:
- использующие файловые системы (с универсальным механизмом доступа к данным),
- многопользовательские (с разделением полномочий),
- многозадачные (с разделением времени).
Многозадачность и распределение полномочий требуют определённой иерархии привилегий компонентов самой операционной системе. В составе операционной системы различают три группы компонентов:
-
, содержащее планировщик; драйверы устройств, непосредственно управляющие оборудованием; сетевая подсистема, файловая система; ; с утилитами.
Большинство программ, как системных (входящих в операционную систему), так и прикладных, исполняются в непривилегированном («пользовательском») режиме работы процессора и получают доступ к оборудованию (и, при необходимости, к другим ресурсам ядра, а также ресурсам иных программ) только посредством системных вызовов. Ядро исполняется в привилегированном режиме: именно в этом смысле говорят, что система (точнее, её ядро) управляет оборудованием.
В определении состава операционной системы значение имеет критерий операциональной целостности (замкнутости): система должна позволять полноценно использовать (включая модификацию) свои компоненты. Поэтому в полный состав операционной системы включают и набор инструментальных средств (от текстовых редакторов до компиляторов, отладчиков и компоновщиков).
Ядро — центральная часть операционной системы, управляющая выполнением процессов, ресурсами вычислительной системы и предоставляющая процессам координированный доступ к этим ресурсам. Основными ресурсами являются процессорное время, память и устройства ввода-вывода. Доступ к файловой системе и сетевое взаимодействие также могут быть реализованы на уровне ядра.
Как основополагающий элемент операционной системы, ядро представляет собой наиболее низкий уровень абстракции для доступа приложений к ресурсам вычислительной системы, необходимым для их работы. Как правило, ядро предоставляет такой доступ исполняемым процессам соответствующих приложений за счёт использования механизмов межпроцессного взаимодействия и обращения приложений к системным вызовам ОС.
Описанная задача может различаться в зависимости от типа архитектуры ядра и способа её реализации.
Объекты ядра ОС:
Пост-UNIX-архитектуры
Коллектив, создавший UNIX, развил концепцию унификации объектов операционной системы, включив в исходную концепцию UNIX «устройство — это тоже файл» также и процессы, и любые другие системные, сетевые и прикладные сервисы, создав новую концепцию: «что угодно — это файл». Эта концепция стала одним из основных принципов системы Plan 9 (название было позаимствовано из фантастического триллера «План 9 из открытого космоса» Эдварда Вуда-младшего), призванной преодолеть принципиальные недостатки дизайна UNIX и сменившей «рабочую лошадку» UNIX System V на компьютерах сети Bell Labs в 1992 году.
Кроме реализации всех объектов системы в виде файлов и размещения их на едином и персональном для каждого терминала вычислительной сети пространстве (namespace), были пересмотрены другие архитектурные решения UNIX. Например, в Plan 9 отсутствует понятие «суперпользователь», и, соответственно, исключаются любые нарушения режима безопасности, связанные с нелегальным получением прав суперпользователя в системе. Для представления (хранения, обмена) информации Роб Пайк и Кен Томпсон разработали универсальную кодировку UTF-8, на сегодняшний день ставшую стандартом де-факто. Для доступа к файлам используется единый универсальный протокол 9P, по сети работающий поверх сетевого протокола (TCP или UDP). Таким образом, для прикладного ПО сети не существует — доступ к локальным и к удалённым файлам единообразен. 9P — байт-ориентированный протокол, в отличие от других подобных протоколов, являющихся блок-ориентированными. Это также результат работы концепции: доступ побайтно — к унифицированным файлам, а не поблочно — к разнообразным и сильно изменяющимися с развитием технологий устройствам. Для контроля доступа к объектам не требуется иных решений, кроме уже существующего в операционной системе контроля доступа к файлам. Новая концепция системы хранения избавила администратора системы от изнурительного труда по сопровождению архивов и предвосхитила современные системы управления версиями файлов.
Операционные системы, созданные на базе или идеях UNIX, такие как всё семейство BSD и системы GNU/Linux, постепенно перенимают новые идеи из Bell Labs. Возможно, эти новые идеи ждёт большое будущее и признание ИТ-разработчиков.
Новые концепции были использованы Робом Пайком в Inferno.
На основе Plan 9 в Испании разрабатываются системы Off++ и Plan B, носящие экспериментальный характер.
К попыткам создать пост-UNIX-архитектуру можно также отнести разработку системы программирования и операционной среды Оберон в Швейцарской высшей технической школе (ETH Zurich) под руководством профессора Никлауса Вирта.
Что такое UNIX-подобная операционка? Это ОС, созданная под влиянием UNIX. Но прежде чем заняться написанием ядра для нее, давайте посмотрим, как машина загружается и передает управление ядру.
Большинство регистров x86 процессора имеют четко определенные значения после включения питания. Регистр указателя инструкций (EIP) содержит адрес памяти для команды, выполняемой процессором. EIP жестко закодирован на значение 0xFFFFFFF0. Таким образом, у процессора есть четкие инструкции по физическому адресу 0xFFFFFFF0, что, по сути, – последние 16 байт 32-разрядного адресного пространства. Этот адрес называется вектором сброса.
Теперь карта памяти чипсета гарантирует, что 0xFFFFFFF0 сопоставляется с определенной частью BIOS, а не с ОЗУ. Между тем, BIOS копирует себя в ОЗУ для более быстрого доступа. Это называется затенением (shadowing). Адрес 0xFFFFFFF0 будет содержать только инструкцию перехода к адресу в памяти, где BIOS скопировал себя.
Таким образом, код BIOS начинает свое выполнение. Сначала BIOS ищет загрузочное устройство в соответствии с настроенным порядком загрузочных устройств. Он ищет определенное магическое число, чтобы определить, является устройство загрузочным или нет (байты 511 и 512 первого сектора равны 0xAA55).
После того, как BIOS обнаружил загрузочное устройство, он копирует содержимое первого сектора устройства в оперативную память, начиная с физического адреса 0x7c00; затем переходит по адресу и выполняет только что загруженный код. Этот код называется системным загрузчиком (bootloader).
Затем bootloader загружает ядро по физическому адресу 0x100000. Адрес 0x100000 используется как стартовый адрес для всех больших ядер на x86 машинах.
Все x86 процессоры стартуют в упрощенном 16-битном режиме, называемом режимом реальных адресов. Загрузчик GRUB переключается в 32-битный защищенный режим, устанавливая младший бит регистра CR0 равным 1. Таким образом, ядро загружается в 32-разрядный защищенный режим.
Обратите внимание, что в случае обнаружения ядра Linux, GRUB получит протокол загрузки и загрузит Linux-ядро в реальном режиме. А ядро Linux сделает переключение в защищенный режим.
Реальный масштаб времени
Применение универсальных компьютеров для управления производственными процессами потребовало реализации «реального масштаба времени» («реального времени») — синхронизации исполнения программ с внешними физическими процессами.
Включение функции реального масштаба времени позволило создавать решения, одновременно обслуживающие производственные процессы и решающие другие задачи (в пакетном режиме и/или в режиме разделения времени).
Читайте также: