Как устроены операционные системы?
Итак, для начала давайте разберемся что же такое ОС (здесь и далее ОС - операционная система).
Википедия утверждает, что это комплекс взаимосвязанных программ, предназначенных для управления ресурсами компьютера и организации взаимодействия с пользователем.
В современных компьютерных технологиях есть примерная такая иерархия, где на самом низу устройства, на более высоком ОС, а на самом высоком уровне распологаются пользовательские программы.
Таким образом ОС дает некую абстракцию программистам чтобы не мучаться, аля "здесь нам нужно сдедать прерывание".
Изначально ОС - просто давали возможность запускать свои программы, потом появились файловые системы, многопоточность и т.д., но обо всем этом попозже.
Для понимания разберем процесс включения компьютера.
Вы нажимаете на кнопку включения и... опустим все тонкости и просто скажем, что BIOS [базовая система ввода-вывода] загружает ОС в память, как обычную программу (чем она, кстати и является).
Наша ОС начинает работать.
Что должна делать операционная система в первую очередь? Загружать в память наши программы. Тут ничего сложно, просто читать файлик исполняемой программы и просто загружать ее содержимое в память. Но тут мы натыкаемся на "читать файлик". Чтение файла - часть файловой структуры, которая в свою очередь - одна из важнейших частей операционной системы.
Представим что диск (не важно какой) - просто массив ячеек.
Ну, например,мы записали какие-то файлики, в какие-то места диска. И мы перезагрузили систему. Откуда ОС должна знать где и какие файлы находятся. Допустим вы запомнили на какой "ячейке" находится тот файл. Но вряд ли вы сможете помнить местоположение хотя бы 100 файлов, а ведь современные ПК оперируют куда более большим количеством файлов. Для того чтобы ОС знала, что, где и когда в начале записаны все данные о хранящихся файлах на диске. Современные (да и не старые) файловые структуры устроены в виде кластеров. Кластер - участок/сегмент запоминающего устройства. Все кластеры имеют одинаковый размер.
Ну, например,мы записали какие-то файлики, в какие-то места диска. И мы перезагрузили систему. Откуда ОС должна знать где и какие файлы находятся. Допустим вы запомнили на какой "ячейке" находится тот файл. Но вряд ли вы сможете помнить местоположение хотя бы 100 файлов, а ведь современные ПК оперируют куда более большим количеством файлов. Для того чтобы ОС знала, что, где и когда в начале записаны все данные о хранящихся файлах на диске. Современные (да и не старые) файловые структуры устроены в виде кластеров. Кластер - участок/сегмент запоминающего устройства. Все кластеры имеют одинаковый размер.Ну, например,мы записали какие-то файлики, в какие-то места диска. И мы перезагрузили систему. Откуда ОС должна знать где и какие файлы находятся. Допустим вы запомнили на какой "ячейке" находится тот файл. Но вряд ли вы сможете помнить местоположение хотя бы 100 файлов, а ведь современные ПК оперируют куда более большим количеством файлов. Для того чтобы ОС знала, что, где и когда в начале записаны все данные о хранящихся файлах на диске. Современные (да и не старые) файловые структуры устроены в виде кластеров. Кластер - участок/сегмент запоминающего устройства. Все кластеры имеют одинаковый размер.
Файлы находятся в таких кластерах, если они не помещаются в одном - разбиваются на несколько. Следующией состовляющей идёт ввод-вывод. Первые ОС имели терминальный интерфейс, гораздо позже начали появляться операционные системы с графическим интерфейсом. Но с того времени почти ничего не изменилось. Ввод-вывод обеспечивается драйверами устройств. Драйверы "общаются" с устройствами хоть и на почти самым низком языке, все равно общение происходит через ОС.
Важной частью является система управления программами. Современные компьютеры - многопоточны, т.е. одновременно могут работать сразу несколько программ. Основной задачей ОС тут является правильное распределение сколько и когда может работать какая-то программа. На первый взгляд это простая задача, но на самом деле все гораздо сложнее.
Файлы находятся в таких кластерах, если они не помещаются в одном - разбиваются на несколько. Следующией состовляющей идёт ввод-вывод. Первые ОС имели терминальный интерфейс, гораздо позже начали появляться операционные системы с графическим интерфейсом. Но с того времени почти ничего не изменилось. Ввод-вывод обеспечивается драйверами устройств. Драйверы "общаются" с устройствами хоть и на почти самым низком языке, все равно общение происходит через ОС.Важной частью является система управления программами. Современные компьютеры - многопоточны, т.е. одновременно могут работать сразу несколько программ. Основной задачей ОС тут является правильное распределение сколько и когда может работать какая-то программа. На первый взгляд это простая задача, но на самом деле все гораздо сложнее.Это всё. Точнее почти все - это основные структуры, но есть много более мелких.Теперь рассмотрим случаи из жизни. Windows, а также различные Unix-подобные системы попадают под наши определения. Давайте рассмотрим Android. Android - ОС компании Google, основанная на ядре Linux. Основное отличие от обычного Linux'а - это ВМ. Виртуальная машина Dalvik исполняет свой байт-код во время запуска. Правда сейчас байт-код компилируется под пооцессор, на котором стоит данный Android. Данная технология называется ART (Android RunTime). Это примечательная особенность Android - исполнение не машинного кода, а байт-кода (хоть и скомпилированного) дает защиту от вредоносных программ, и вообще от различных ошибок. Современные ОС прошли доволбную большую эволюцию - от простых загрузчиков, до мощных систем, которые сильно упрощают жизнь его пользователям. Файлы находятся в таких кластерах, если они не помещаются в одном - разбиваются на несколько. Следующией состовляющей идёт ввод-вывод. Первые ОС имели терминальный интерфейс, гораздо позже начали появляться операционные системы с графическим интерфейсом. Но с того времени почти ничего не изменилось. Ввод-вывод обеспечивается драйверами устройств. Драйверы "общаются" с устройствами хоть и на почти самым низком языке, все равно общение происходит через ОС.Важной частью является система управления программами. Современные компьютеры - многопоточны, т.е. одновременно могут работать сразу несколько программ. Основной задачей ОС тут является правильное распределение сколько и когда может работать какая-то программа. На первый взгляд это простая задача, но на самом деле все гораздо сложнее.Это всё. Точнее почти все - это основные структуры, но есть много более мелких.Теперь рассмотрим случаи из жизни. Windows, а также различные Unix-подобные системы попадают под наши определения. Давайте рассмотрим Android. Android - ОС компании Google, основанная на ядре Linux. Основное отличие от обычного Linux'а - это ВМ. Виртуальная машина Dalvik исполняет свой байт-код во время запуска. Правда сейчас байт-код компилируется под пооцессор, на котором стоит данный Android. Данная технология называется ART (Android RunTime). Это примечательная особенность Android - исполнение не машинного кода, а байт-кода (хоть и скомпилированного) дает защиту от вредоносных программ, и вообще от различных ошибок. Современные ОС прошли доволбную большую эволюцию - от простых загрузчиков, до мощных систем, которые сильно упрощают жизнь его пользователям.
и какие файлы находятся. Допустим вы запомнили на какой "ячейке" находится тот файл. Но вряд ли вы сможете помнить местоположениехотя бы 100 файлов, а ведь современные ПК оперируют куда более большим количеством файлов. Для того чтобы ОС знала, что, где и когда в начале записаны все данные о хранящихся файлах на диске. Современные (Да и не очень) файловые структуры устроены в виде кластеров. Кластер - участок/сегмент запоминающего устройства. Все кластеры имеют одинаковый размер. Файлы находятся в таких кластерах, если они не помещаются в одном - разбиваются на несколько.
.
Важной частью является система управления программами. Современные компьютеры - многопоточны, т.е. одновременно могут работать сразу несколько программ. Основной задачей ОС тут является правильное распределение сколько и когда может работать какая-то программа. На первый взгляд это простая задача, но на самом деле все гораздо сложнее. Важной частью является система управления программами. Современные компьютеры - многопоточны, т.е. одновременно могут работать сразу несколько программ. Основной задачей ОС тут является правильное распределение сколько и когда может работать какая-то программа. На первый взгляд это простая задача, но на самом деле все гораздо сложнее.
Это всё. Точнее почти все - это основные структуры, но есть много более мелких. Теперь рассмотрим случаи из жизни. Windows, а также различные Unix-подобные системы попадают под наши определения.
Давайте рассмотрим Android. Android - ОС компании Google, основанная на ядре Linux. Основное отличие от обычного Linux'а - это ВМ. Виртуальная машина Dalvik исполняет свой байт-код во время запуска. Правда сейчас байт-код компилируется под пооцессор, на котором стоит данный Android. Данная технология называется ART (Android RunTime).
Это примечательная особенность Android - исполнение не машинного кода, а байт-кода (хоть и скомпилированного) дает защиту от вредоносных программ, и вообще от различных ошибок.
Современные ОС прошли доволбную большую эволюцию - от простых загрузчиков, до мощных систем, которые сильно упрощают жизнь ее пользователям.