Форум программистов, компьютерный форум, киберфорум
Обо всем!
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.67/3: Рейтинг темы: голосов - 3, средняя оценка - 4.67
 Аватар для GulgDev
132 / 118 / 29
Регистрация: 09.07.2019
Сообщений: 1,071

Что из себя представляет ОС, и как она устроена?

19.05.2020, 12:39. Показов 643. Ответов 5
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Я сегодня поинтересовался, как устроена операционная система, каким образом она работает, как можно её создать, и является ли она приложением. Объясните, пожалуйста, что и как.
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
19.05.2020, 12:39
Ответы с готовыми решениями:

Как пользоваться Invoke и что он из себя представляет?
Расскажите пожалуйста, как пользоваться Invoke'ом, что он из себя представляет, с чем его едят?

Что из себя представляет код в стеке, и как его использовать
Гугл мне по этому поводу не помог, поэтому спрашиваю тут: что из себя представляет из себя код в стеке, как его использовать(вызвать там и...

что из себя представляет пользовательская система сайта(хз как сказать правильно)
Извините за такой нубовский вопрос, но все же. Как сделать БЕЗОПАСНО, чтобы если пользователь не прошел авторизацию, то этому пользователю...

5
4217 / 3059 / 583
Регистрация: 21.01.2011
Сообщений: 13,203
19.05.2020, 14:17
Цитата Сообщение от Hyppoprogramm Посмотреть сообщение
Объясните, пожалуйста, что и как
Ты полагаешь, что это можно объяснить в рамках форума? Слишком много букв.
0
Житель Земли
 Аватар для DenNik
3004 / 3026 / 390
Регистрация: 26.07.2011
Сообщений: 11,465
Записей в блоге: 1
19.05.2020, 14:20
GOOGLE > Что из себя представляет ОС, и как она устроена?
ты не поверишь!!!!
1
Модератор
Эксперт NIX
 Аватар для NeoMatrix
8532 / 3388 / 105
Регистрация: 24.05.2011
Сообщений: 14,619
Записей в блоге: 8
19.05.2020, 15:59
Цитата Сообщение от Hyppoprogramm Посмотреть сообщение
является ли она приложением
Нет. Приложениями по определению являются программы, которые работают поверх ОСи и без которых ОСь вполне полноценно работоспособна.
То бишь, все компоненты, входящие непосредственно в ОСь и являющиеся её неотъемлемой частью называются СИСТЕМНЫМИ, а те компоненты, которыми, обычно, пользуется юзер - являются ПРИЛОЖЕНИЯМИ. Приложения используют встроенные системные компоненты, системные компоненты, обычно, не нуждаются в приложениях, но могут использовать в некоторых случаях, встроенные системные приложения. Например, для настройки какой-нибудь системной компоненты может быть использовано (встроенное/стороннее) приложение. Но компонента вполне работает и без него.
Системные компоненты - демоны (службы), драйвера железок, серверы 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
 Аватар для GulgDev
132 / 118 / 29
Регистрация: 09.07.2019
Сообщений: 1,071
19.05.2020, 16:14  [ТС]
Спасибо, теперь имею некое представление об ОС.
0
Неэпический
 Аватар для Croessmah
18149 / 10731 / 2067
Регистрация: 27.09.2012
Сообщений: 27,035
Записей в блоге: 1
20.05.2020, 19:48
Таненбаум Эндрю, Бос Х. "Современные операционные системы"

Не по теме:

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

2
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
20.05.2020, 19:48
Помогаю со студенческими работами здесь

Что представляет из себя база данных на хостинге и как ее подключать к php-файлам
Я недавно выложил свой сайт в интернет. Ранее заходил на него с помощью денвера и там база данных располагалась в...

Модуль cisco VIC-2FXO что из себя представляет и как его настроить
Друзья, помогите понять что из себя представляет модуль cisco VIC-2FXO. Как его настроить? Для чего он нужен?

Что из себя представляет ковариация?
Объясните пожалуйста наглядно, что из себя представляем ковариация и коэффициент корреляции. Добавляю картинку, на которой сделал...

Что из себя представляет CMS
Доброго времени суток! Учу Web только полтора месяца, заметил что очень часто фигирирует аббревиатура CMS. Пытался...

Что представляет из себя WikiLeaks?
Портал существует с декабря 2006 года и уже успел вызвать большой резонанс. Авторы сайта (Джулиан Ассанж и команда) заявляют свое...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
Новые блоги и статьи
Уведомление о неверно выбранном значении справочника
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/
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru