Operating System — Чтение на русском

Заголовки историй пока показаны по-английски; текст каждой истории — на русском.

Operating System — Wonder Inventions В середине двадцатого века первые электронные компьютеры были монументальными, занимающими целые комнаты машинами, триумфами инженерной мысли, но страдающими от…

В середине двадцатого века первые электронные компьютеры были монументальными, занимающими целые комнаты машинами, триумфами инженерной мысли, но страдающими от критической неэффективности. Каждое вычисление, каждая программа требовали тщательной ручной настройки высококвалифицированными операторами. В эту эпоху блестящие умы боролись со сложной логистикой, превращая сырое оборудование в функциональные инструменты. «Еще одно задание в очереди для Ай-Би-Эм семьсот четыре», — заметил старший оператор Томпсон, указывая на стопку перфокарт. «Нам потребуется двадцать минут только на то, чтобы поменять ленточные накопители и перенастроить коммутационную панель для следующей программы». «Значит, двадцать минут простоя центрального процессора», — вздохнул инженер Дэвис, просматривая системный журнал. «Это почти четверть часа на каждое задание, которое мы выполняем. Эта машина — чудо, но она тратит больше времени на ожидание нас, чем на вычисления». Томпсон серьезно кивнул. «Наши драгоценные вычислительные циклы ускользают в этих ручных переходах. Нам нужен более быстрый, более интегрированный способ управления этими операциями».

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

Трудоемкий процесс подготовки компьютера к каждой новой задаче был серьезным техническим и экономическим истощением. Каждая программа, будь то сложный научный расчет или простая сортировка данных, требовала полной ручной переинициализации машины. Это означало загрузку правильных компиляторов, настройку устройств ввода-вывода и создание разделов памяти — и все это до того, как могла начаться фактическая обработка данных. Это «время настройки» означало, что эти невероятно дорогие машины часто простаивали, ожидая вмешательства человека, их огромная вычислительная мощность временно бездействовала. «Посмотрите на это», — сказала техник Аня Шарма, женщина лет двадцати с небольшим, с темными, убранными назад волосами и сосредоточенным выражением лица, одетая в практичное серое рабочее платье, указывая на большое расписание, детализирующее использование машины. «Задача А завершается, затем у нас есть пятнадцатиминутный перерыв на перекалибровку, затем Задача Б, еще десятиминутный перерыв. Это как управлять фабрикой, где сборочная линия полностью останавливается между каждым отдельным предметом». Инженер Дэвис, поправляя очки, покачал головой. «Именно. Мы теряем часы ценных вычислений каждый день. Это «мертвое время» между процессами астрономическое. Машина ждет нас, и мы являемся ее узким местом». «Это просто неприемлемо для такого мощного инструмента», — добавил Томпсон, медленно расхаживая. «Нам нужна система, которая может управлять этими переходами автоматически, ставить задачи в очередь и сокращать это дорогостоящее время простоя».

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

Суровая реальность неэффективного использования машин подтолкнула к радикальному видению среди пионеров вычислительной техники. Что, если бы сама машина могла управлять своими собственными процессами? Идея заключалась в создании «главной программы», которая бы находилась в памяти компьютера, организуя выполнение других программ, управляя распределением ресурсов и минимизируя человеческое вмешательство. Эта концепция программы-«супервизора» или «монитора» была интеллектуальным предшественником операционной системы, обещая превратить хаотичные ручные операции в упорядоченный, автоматизированный рабочий процесс. «Нам нужна программа-супервизор, контроллер трафика для внутренних операций машины», — предложила доктор Эвелин Рид, блестящий ученый-компьютерщик лет тридцати с небольшим, с аккуратно уложенными каштановыми волосами, одетая в изысканный деловой костюм в стиле тысяча девятьсот пятидесятых годов. Она указала на сложную схему на доске. «Представьте себе резидентную программу, которая получает задания, загружает их, выполняет, а затем готовит машину к следующему — и все это без единого прикосновения человека между задачами». Инженер Дэвид Ким, молодой, серьезный программист лет двадцати с небольшим, с короткими черными волосами и в очках, одетый в накрахмаленную белую рубашку, выглядел задумчивым. «Программа для управления другими программами. Это звучит так, будто мы даем машине мозг для управления ее собственными делами. Сама сложность этого... защита памяти, обработка ввода-вывода, восстановление после ошибок...» Доктор Рид улыбнулась. «Именно. Как однажды заметил Леонардо да Винчи: «Простота — это высшая степень изощренности». Наша задача не просто автоматизировать, но и спроектировать эту систему с лежащей в ее основе элегантностью, способной справиться с присущей машине сложностью. Она должна казаться простой для программиста, даже если ее внутренние механизмы сложны».

Теоретические идеи начали объединяться в практические решения. Одной из самых ранних и влиятельных реализаций мониторной системы была система ввода-вывода…

Теоретические идеи начали объединяться в практические решения. Одной из самых ранних и влиятельных реализаций мониторной системы была система ввода-вывода GM-NAA, разработанная Робертом Патриком в General Motors и North American Aviation для IBM семьсот четыре в тысяча девятьсот пятьдесят шестом году. Эта новаторская система сделала решающий шаг, заменив ручную настройку автоматизированной последовательностью заданий. Это был фундаментальный скачок, превративший работу дорогостоящих мейнфреймов из процесса с ручной подачей в более непрерывный, пакетно-ориентированный рабочий процесс. «Система ввода-вывода GM-NAA действительно произвела революцию в наших операциях на IBM семьсот четыре», — объяснил Роберт Патрик, сосредоточенный инженер лет тридцати с небольшим, с короткими, практичными каштановыми волосами и очками, одетый в заправленную рубашку с коротким рукавом и галстук, своему посещающему коллеге в оживленной лаборатории. «Наша цель была проста: исключить ручное вмешательство между пакетными заданиями. Раньше мы теряли минуты между каждой программой». Его коллега, инженер Сара Чен, лет тридцати с небольшим, с короткими черными волосами и в строгой блузке, указала на диаграмму, показывающую «Резидентный монитор». «Значит, этот «монитор» остается в памяти. Он считывает карты управления заданиями, загружает пользовательскую программу, а затем возвращает управление, когда задание выполнено?» «Именно», — подтвердил Патрик. «Это непрерывный цикл. Сам монитор — это программа, но его задача — управлять выполнением других программ. Это значительно сокращает наше время простоя и увеличивает пропускную способность. Больше никаких возни с лентами или переключателями между каждым запуском».

Система ввода-вывода GM-NAA работала по простому, но глубокому принципу: пакетной обработке. Вместо того чтобы загружать по одной программе за раз, операторы…

Система ввода-вывода GM-NAA работала по простому, но глубокому принципу: пакетной обработке. Вместо того чтобы загружать по одной программе за раз, операторы объединяли несколько заданий, каждое из которых предварялось специальными управляющими картами, в один «пакет». Резидентная программа-монитор затем последовательно считывала эти управляющие карты, автоматически загружая нужную пользовательскую программу, выполняя ее, а затем очищая систему перед переходом к следующему заданию в пакете. Эта автоматизированная последовательность была монументальным шагом, поскольку она постоянно задействовала центральный процессор, минимизируя дорогостоящие периоды ожидания, которые преследовали ранние вычисления. «Вот как это работает», — объяснил Патрик, демонстрируя у консоли управления. «Мы готовим пакет программ, каждая из которых четко разграничена этими специализированными управляющими картами. Сама программа-монитор крошечная, но мощная. Она всегда работает в небольшой части памяти машины». Чен наблюдал, как стопка перфокарт подавалась в считыватель. «Значит, монитор считывает карту, идентифицирует программу, выделяет ресурсы, а затем передает управление пользовательской программе?» «Именно так», — подтвердил Патрик. «Как только пользовательская программа завершает свою задачу, она выполняет специальную инструкцию, которая возвращает управление нашему монитору. Затем монитор проверяет следующую карту задания, загружает следующую программу, и цикл продолжается. Эта автоматизированная передача является ключом к минимизации времени простоя. Мы превратили последовательность ручных остановок в плавный, непрерывный поток вычислений».

Хотя пакетная обработка значительно повысила эффективность, компьютер по-прежнему выполнял только одну программу за раз.

Хотя пакетная обработка значительно повысила эффективность, компьютер по-прежнему выполнял только одну программу за раз. Следующим логическим шагом стала мультипрограммирование: позволяющее нескольким программам одновременно находиться в памяти, при этом центральный процессор быстро переключался между ними. Это, в сочетании с разделением времени, которое расширило мультипрограммирование, позволяя нескольким пользователям взаимодействовать с компьютером одновременно, резко преобразовало вычисления из единой, пакетно-ориентированной задачи в мощную, интерактивную утилиту. Ранние усилия, такие как система CTSS (Compatible Time-Sharing System) Массачусетского технологического института в тысяча девятьсот шестьдесят первом году, были ключевыми, демонстрируя, что одна машина может эффективно обслуживать многих пользователей. «Настоящая задача заключалась в максимизации использования центрального процессора за пределами простой пакетной обработки», — объяснила доктор Элис Стерлинг, дальновидный ученый-компьютерщик лет сорока, с короткими, вьющимися седыми волосами и острыми, умными глазами, одетая в твидовый пиджак, своей команде в Массачусетском технологическом институте. «Почему центральный процессор должен простаивать, ожидая завершения операции ввода-вывода для одной программы, когда он мог бы работать над другой?» Молодой программист Майкл Чен, лет двадцати, с аккуратной стрижкой и нетерпеливым выражением лица, одетый в университетский свитер, наклонился вперед. «Значит, мы загружаем несколько программ в память одновременно, и операционная система быстро переключает центральный процессор между ними? Но как насчет конфликтов памяти? И как мы обеспечим справедливость между программами?» Доктор Стерлинг кивнула. «Отличные вопросы. Это требует сложного управления памятью и планирования центрального процессора. Операционная система становится арбитром, распределяющим ресурсы, давая каждой программе свою справедливую долю процессорного времени. Это основная обязанность ядра — критический уровень абстракции, который защищает программы друг от друга и от сложностей аппаратного обеспечения».

В основе каждой операционной системы лежит ядро, ее фундаментальный компонент. Ядро управляет наиболее критически важными ресурсами компьютера: центральным…

В основе каждой операционной системы лежит ядро, ее фундаментальный компонент. Ядро управляет наиболее критически важными ресурсами компьютера: центральным процессором, памятью и устройствами ввода-вывода. Оно действует как промежуточный слой, абстрагируя сложные детали аппаратного обеспечения от прикладных программ, обеспечивая согласованную и безопасную среду. Ключевые механизмы включают планирование центрального процессора, которое определяет, какая программа будет использовать процессор и как долго; управление памятью, выделяющее и защищающее сегменты памяти для каждой программы; и управление вводом-выводом, контролирующее связь с периферийными устройствами, такими как клавиатуры, дисплеи и хранилища. «Ядро — это мозг операции, первая программа, загружаемая в память, и последняя, покидающая ее», — объяснила новому инженеру-сотруднику ведущий архитектор доктор Лена Петрова, женщина лет сорока с небольшим, с седыми волосами, собранными назад, одетая в профессиональный, несколько строгий костюм. «Оно управляет всем: от планирования процессов — решения, чья очередь на центральном процессоре — до управления каждым байтом памяти и каждым периферийным устройством». Новый инженер, Алекс Джонсон, лет двадцати с небольшим, полный энтузиазма и внимательный, держащий толстое руководство, ответил: «Значит, когда программа запрашивает файл, именно ядро преобразует этот запрос в реальные дисковые операции, верно? И оно также предотвращает перезапись одной программой памяти другой?» «Именно так, Алекс», — подтвердила доктор Петрова, указывая на диаграмму, показывающую концентрические кольца. «Ядро работает в привилегированном «кольце ноль», давая ему абсолютный контроль, в то время как приложения работают в «кольце три». Этот механизм защиты является фундаментальным. Это означает, что неисправное приложение не может привести к сбою всей системы. Этот уровень абстракции делает современные вычисления стабильными и эффективными».

К концу тысяча девятьсот шестидесятых годов эволюция операционных систем достигла поворотного момента с созданием Unix в Bell Labs.

К концу тысяча девятьсот шестидесятых годов эволюция операционных систем достигла поворотного момента с созданием Unix в Bell Labs. Разработанная в основном Кеном Томпсоном и Деннисом Ритчи, Unix была задумана как более простая, элегантная и, что крайне важно, более портативная операционная система, чем ее предшественницы. Ее инновационный дизайн, в частности, акцент на интерфейсе командной строки, иерархической файловой системе и мощной концепции каналов для межпроцессного взаимодействия, сделал ее невероятно гибкой и адаптируемой. Эффективность и четкая архитектура Unix напрямую решали и устраняли проблемы «простоя» и неэффективности, выявленные в ранних вычислительных системах, обеспечивая беспрецедентное использование ресурсов. «Мы хотели что-то простое, элегантное и портативное», — объяснил Деннису Ритчи Кен Томпсон, сосредоточенный инженер лет двадцати с небольшим, с темными растрепанными волосами и в очках, одетый в повседневную рубашку на пуговицах. Они склонились над телетайпным терминалом, бумажный вывод которого прокручивался с кодом. «Multics был слишком амбициозным, слишком сложным. Нам нужна была система, где сама операционная система представляла собой набор небольших, целенаправленных инструментов». Деннис Ритчи, со своей характерной бородой и задумчивым выражением лица, лет двадцати с небольшим, одетый в простую рубашку, набрал команду. «И вот тут файловая система и каналы по-настоящему проявляют себя. Соединение программ, как водопровод — вывод одной становится вводом другой. Это создает огромную мощь из простоты». «Именно», — подтвердил Томпсон, не отрывая глаз от экрана. «Разработав надежное ядро и набор утилит, которые можно было легко комбинировать, мы открыли новый уровень производительности. Больше никаких потерянных циклов из-за сложной настройки; Unix эффективно оптимизирует время машины, беспрепятственно управляя процессами и позволяя разработчикам создавать сложные системы из простых компонентов».

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

Принципы, заложенные новаторскими операционными системами, такими как Unix, глубоко повлияли на следующее поколение вычислительной техники. По мере появления микропроцессоров, позволяющих создавать меньшие по размеру и более доступные компьютеры, потребность в надёжных и удобных операционных системах стала первостепенной. Такие системы, как CP/M, MS-DOS, а затем Apple DOS и Macintosh Operating System, привнесли сложное управление ресурсами и взаимодействие с пользователем в персональные компьютеры. Этот сдвиг демократизировал доступ к вычислительной мощности, переместив её из специализированных лабораторий и корпоративных центров обработки данных в дома, офисы и университеты по всему миру. «Это невероятно! Я могу вводить команды напрямую и сразу видеть результаты», — воскликнула молодая студентка Мария Родригес, лет двадцати с небольшим, с вьющимися чёрными волосами, одетая в повседневный свитер восьмидесятых годов, сидя за ранним компьютером Apple II в университетской лаборатории. — «Это не похоже на пакетные задания, которые описывают наши профессора. Я чувствую, что разговариваю с компьютером». Её однокурсник, Дэвид Ли, лет двадцати с небольшим, с прямыми чёрными волосами и задумчивым выражением лица, одетый в джинсовую куртку, наклонился. — «В этом сила операционной системы, Мария. Она управляет всем, что находится внизу, так что мы просто сосредотачиваемся на наших программах. MS-DOS на IBM PC или графический интерфейс на Macintosh делают это ещё проще. Это делает вычисления доступными для всех, а не только для специалистов». «Действительно», — заметила их профессор, доктор Элеонора Вэнс, лет пятидесяти, с элегантными седыми волосами и понимающей улыбкой, одетая в пиджак. — «ОС обеспечивает интуитивно понятный слой между нами и оборудованием. Она превратила инструмент для экспертов в утилиту для масс. Речь идёт не только о более быстрых вычислениях; речь идёт о расширении возможностей людей».

Сегодня операционные системы — это невидимые архитекторы нашего цифрового мира, незаменимый слой, лежащий в основе почти каждой технологии, с которой мы…

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