|
132 / 118 / 29
Регистрация: 09.07.2019
Сообщений: 1,071
|
|
Что из себя представляет ОС, и как она устроена?19.05.2020, 12:39. Показов 643. Ответов 5
Метки нет (Все метки)
Я сегодня поинтересовался, как устроена операционная система, каким образом она работает, как можно её создать, и является ли она приложением. Объясните, пожалуйста, что и как.
0
|
|
| 19.05.2020, 12:39 | |
|
Ответы с готовыми решениями:
5
Как пользоваться Invoke и что он из себя представляет?
|
|
4217 / 3059 / 583
Регистрация: 21.01.2011
Сообщений: 13,203
|
||
| 19.05.2020, 14:17 | ||
|
0
|
||
|
Модератор
|
||
| 19.05.2020, 15:59 | ||
|
То бишь, все компоненты, входящие непосредственно в ОСь и являющиеся её неотъемлемой частью называются СИСТЕМНЫМИ, а те компоненты, которыми, обычно, пользуется юзер - являются ПРИЛОЖЕНИЯМИ. Приложения используют встроенные системные компоненты, системные компоненты, обычно, не нуждаются в приложениях, но могут использовать в некоторых случаях, встроенные системные приложения. Например, для настройки какой-нибудь системной компоненты может быть использовано (встроенное/стороннее) приложение. Но компонента вполне работает и без него. Системные компоненты - демоны (службы), драйвера железок, серверы GUI и приложений, звука, сетевой стек, и т.п., без чего компьютер не будет являться полноценным универсальным устройством. Хотя, для того, чтобы компьютер выполнял какую-нибудь узкоспециализированную задачу, некоторые системные компоненты ему могут быть не нужны. К примеру, промышленному компьютеру, управляющему производственной линией, совсем не нужен медиасервер. Многие компьютеры обходятся вообще без графического процессора и, соответственно, без всех обращающихся к GPU программных компонент - без драйвера видео, без сервера GUI, без всяких там видеоприложений и без всех входящих в эту требуху программок, типа шрифтов и полупрозрачностей. Но в любой ОСи есть компонента, собирающая все драйвера железа в один аппаратный слой и строящая на этом аппаратном слое уровень виртуализации, поверх которого и строится уровень сервера приложений. И уже всякие приложения обращаются к этому серверу за правами доступа (данные запросы сервер приложений перенаправляет к серверу аутентификации или к серверу доступа), за выделением адресов в памяти, за выделением пространства в файловой системе, за выделением пространства на HDD и прочими другими необходимыми приложению ресурсами, в том числе и связанными с разделяемым/монопольным доступом к некоторым программным и аппаратным компонентам. Таким образом, если вы проектируете ОСь, то вам необходимо создать в обязательном порядке несколько (довольно много таки) системных компонент, которые будут слаженно работать и предоставлять доступ к программным и аппаратным ресурсам, любым сторонним и/или встроенным приложениям с учётом предоставленных прав. 1. Ядро системы - принимает запросы от всех компонент и перенаправленных сервером приложений и выдаёт соответствующий ответ. Представляет собой уровень виртуализации или является его неотъемлемой частью. Может включать в себя отдельные или вообще все драйвера аппаратных и программных устройств, а может держать их отдельно и (пере)направлять предназначенные именно к данному устройству запросы. Обязано являться самой быстроисполняемой компонентой системы. Обычно пишется на C, C++ и/или ASM (любой подходящий диалект). Живёт во время работы системы в оперативке и исполняется непосредственно на процессоре, заведует всем железом и зоопарком программ. 2. Файловая система, в которой хранятся абсолютно все программные и аппаратные ресурсы системы в виде файлов. С описанием типа каждого файла, списка прав на каждый файл/каталог, обеспечивающая нужный режим доступа конкретного приложения, компоненты и/или ядра к каждому файлу/каталогу. Часть ФС может находиться исключительно в оперативке и пересоздаваться при каждом запуске системы, часть ФС может быть вообще виртуальной - описывать исключительно виртуальные сущности, типа процессов, виртуальных визуальных и звуковых объектов, которые не занимают нигде ни в RAM, ни на HDD ни байта, но эти объекты имеют описание прав доступа. 3. Демоны - программы, похожие (или являющиеся - это не особенно важно) на приложения, которые работают в фоне, не имеют никакого видимого интерфейса (уж графического - иметь точно не обязаны) и строят различные интерфейсы для доступа приложений, других компонентов к программным и/или аппаратным ресурсам системы, выполняют самую тривиальную и рутинную работу системы (например, как демон "cron" в линухах, аналог которому "планировщик задач" в виндах - просто считает время и запускает/останавливает процессы по расписанию и/или по событиям), сервер приложений, серверы GUI, audio, auth, eth-wifi и тому подобные. 4. Оболочка пользователя. Это может быть, как текстовый интерфейс типа Bash или CMD, так и GUI - DE какой нибудь или вообще какой-нибудь 5D или электромеханический интерфейс - насколько хватит фантазии. Основное требование: пользователю компьютера обязано быть доступно управление и пользование всеми задокументированными возможностями и ресурсами компьютера. 5. Драйверы. Либо вы присобачиваете предоставленные производителями бинарные драйверы устройств под другие ОСи, либо пишете свои. Во втором случае возможно использование открытых исходников под любые другие ОСи и/или даташиты устройств. Каждое устройство должно предоставлять ресурсы, как минимум, в минимальной стандартной конфигурации. То бишь, любая мышка должна бегать по экрану согласно движениям устройства по столу и соответственно реагировать на удар по почкам, любой моник должен выдавать положенные разрешения, любая клава должна передавать в систему соответствующие написанным на кнопках символам коды, а не абы что и т.д. Если коротко, то это, в общем всё. Но учтите, что это очень и очень кропотливая работа, требующая очень нехилых знаний о работе и взаимодействиях устройств и прочих компонент на примере других ОСей. Кроме того, поймите меня правильно: сама по себе голая ОСь никому никуда не нужна. Пользователям нужны именно приложения. На какой они платформе работают - конечного юзера интересует постольку поскольку. Кроме того, ОСь обязательно должна учитывать архитектуру процессора и наличие тех или иных конструктивных особенностей аппаратной платформы, а следовательно, разрабатываться под конкретную линейку конечных устройств. У вас вряд ли получится написать одинаково работающее ядро системы для x86, 64x и ARM процессоров, с учётом имеющихся на борту устройства объёмов оперативы и "дискового пространства" (в кавычках потому, что по сути, юзера и даже весьма продвинутого юзера (!) не интересует, какой тип накопителя у него в устройстве обеспечивает это "дисковое пространство" - флеш-накопитель, HDD, SSD или вообще что, а для архитектора ОСи это имеет существенное значение). Немаловажное значение имеет также и распространение (текущая популярность) чипсетов и контроллеров, на которых выполняется львиная доля передачи данных внутри системы - если вы в своей системе будете писать под чипсеты пятилетней давности - ваша система попросту не взлетит в контексте распространения. Самое правильное для абсолютного новичка в этом деле будет тотальное изучение вот этой книжки и участие в разработке и поддержке каких-нибудь открытых ОСей, типа линуксов. И после успешного сотрудничества в этой области с наличием хотя бы годовалого опыта - попытка написания альтернативы для хорошо изученной древней оси под натуральное железо. И уже только после успешного завершения этого - проба пера под современные архитектуры. Без наличия такого багажа знаний, опыта и терпения браться за современное железо и современные технологии - абсолютно тухлое дело. И, упаси вас Ктулху следовать стопами Попова.
3
|
||
|
132 / 118 / 29
Регистрация: 09.07.2019
Сообщений: 1,071
|
|
| 19.05.2020, 16:14 [ТС] | |
|
Спасибо, теперь имею некое представление об ОС.
0
|
|
|
Неэпический
|
|
| 20.05.2020, 19:48 | |
|
Таненбаум Эндрю, Бос Х. "Современные операционные системы"
2
|
|
| 20.05.2020, 19:48 | |
|
Помогаю со студенческими работами здесь
6
Что представляет из себя база данных на хостинге и как ее подключать к php-файлам Модуль cisco VIC-2FXO что из себя представляет и как его настроить Что из себя представляет ковариация? Что из себя представляет CMS Что представляет из себя WikiLeaks? Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Уведомление о неверно выбранном значении справочника
Maks 06.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "НарядПутевка", разработанного в конфигурации КА2.
Задача: уведомлять пользователя, если в документе выбран неверный склад. . .
|
Установка Qt Creator для C и C++: ставим среду, CMake и MinGW без фреймворка Qt
8Observer8 05.04.2026
Среду разработки Qt Creator можно установить без фреймворка Qt. Есть отдельный репозиторий для этой среды: https:/ / github. com/ qt-creator/ qt-creator, где можно скачать установщик, на вкладке Releases:. . .
|
AkelPad-скрипты, структуры, и немного лирики..
testuser2 05.04.2026
Такая программа, как AkelPad существует уже давно, и также давно существуют скрипты под нее. Тем не менее, прога живет, периодически что-то не спеша дополняется, улучшается. Что меня в первую очередь. . .
|
Отображение реквизитов в документе по условию и контроль их заполнения
Maks 04.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеСпецтехники", разработанного в конфигурации КА2.
Данный документ берёт данные из другого нетипового документа. . .
|
|
Фото всей Земли с борта корабля Orion миссии Artemis II
kumehtar 04.04.2026
Это первое подобное фото сделанное человеком за 50 лет. Снимок называют новым вариантом легендарной фотографии «The Blue Marble» 1972 года, сделанной с борта корабля «Аполлон-17». Новое фото. . .
|
Вывод диалогового окна перед закрытием, если документ не проведён
Maks 04.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2.
Задача: реализовать программный контроль на предмет проведения документа. . .
|
Программный контроль заполнения реквизитов табличной части документа
Maks 02.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2.
Задача:
1. Реализовать контроль заполнения реквизита. . .
|
wmic не является внутренней или внешней командой
Maks 02.04.2026
Решение:
DISM / Online / Add-Capability / CapabilityName:WMIC~~~~
Отсюда: https:/ / winitpro. ru/ index. php/ 2025/ 02/ 14/ komanda-wmic-ne-naydena/
|