
Немного истории
47 постов
47 постов
10 постов
180 постов
4 поста
3D Monster Maze — приключенческая игра, разработанная по оригинальной идее JK Greye и запрограммированная Malcolm Evans. Первоначально она была выпущена в 1982 году для Sinclair ZX81 и требовала использования расширения памяти ZX81 на 16 КБ. Это одна из первых 3D-игр, разработанных для домашних компьютеров, а также одна из первых игр, содержащих многие элементы, которые сегодня можно было бы отнести к survival horror .
Игра использует квадратный лабиринт 16 на 18, который процедурно генерируется при каждом прохождении. В начале игры в лабиринт случайным образом помещается тираннозавр . Цель состоит в том, чтобы выбраться из лабиринта, не дав тираннозавру поймать вас. Когда игрок начинает двигаться, тираннозавр начинает преследовать его. По мере развития игры тираннозавр может либо стать более активным (по мере приближения игрока), либо заснуть (если игрок отойдет достаточно далеко). Если тираннозавр установит визуальный контакт с игроком, он будет неустанно преследовать его, пока не потеряет из виду.
Процедурная генерация относится к созданию контента алгоритмически по мере запуска игры. Этот контент обычно сосуществует со стандартным, авторским контентом; эти два не являются взаимоисключающими.
Ранние игры Много лет назад, когда компьютерные игры только начинали вставать на ноги, ограничения памяти не позволяли разработчикам выпускать игры с большим количеством готового контента. В результате контент, такой как карты, создавался на лету с использованием алгоритмов.
Термин «случайный» иногда используется взаимозаменяемо с «процедурно-сгенерированный», но разработчики предпочитают последний термин, потому что, например, в игре Pitfall есть мировая схема, которая сгенерирована процедурно. Но это не воспринималось игроком как случайность, потому что сгенерированная комната была бы детерминированной, учитывая количество « экранных шагов » игрока в игровой мир и фиксированное случайное начальное семя.
Однако сегодня технологии достигли точки, когда разработчики могут тратить время на моделирование текстур, персонажей, зданий и т. д., а затем помещать их в игру (после предварительного рендеринга в игровом движке). По мере того, как технологии продолжают развиваться, а технические возможности продолжают расти, возникает своего рода потребительский спрос, который заставляет художников тратить еще больше времени на создание высокодетализированных объектов. Сегодня игроки, как правило, ожидают высокодетализированных окружений и большего от игр, поэтому художникам приходится тратить больше времени на отдельные аспекты, такие как персонажи и здания, чтобы оправдать ожидания.
Небольшой перечень игр с процедурной генерацией:
Borderlands - Процедурный генератор создает оружие. В финальной версии игры более 17 000 000 уникальных пушек.
Left 4 Dead 1 и 2 — размещение врагов, размещение оружия и многое другое генерируется процедурно.
The Elder Scrolls III: Morrowind — использует процедурную анимацию для эффектов воды.
Just Cause — игровой мир был процедурно сгенерирован.
Elite — Практически весь контент игры был создан процедурно.
Но вернемся к 3D Monster Maze. Уровень бдительности тираннозавра сообщается игроку с помощью нескольких строк текста в нижней части экрана:
РЕКС ЛЕЖИТ В ОЖИДАНИИ: тираннозавр стоит в лабиринте и не знает, где находится игрок.
ОН ОХОТИТСЯ ЗА ВАМИ: тираннозавр движется, но не знает, где находится игрок.
ШАГИ ПРИБЛИЖАЮТСЯ: тираннозавр слышит, как игрок движется к нему.
РЕКС УВИДЕЛ ВАС: тираннозавр заметил игрока и начал преследование.
БЕГИТЕ , ОН ПОЗАДИ/СЛЕ ВАС: тираннозавр находится в одном шаге от поимки игрока.
По умолчанию игрок способен двигаться быстрее Ти-Рекса, и поэтому обычно может убежать от монстра, если только не застрял в тупике .
Очки можно получить всякий раз, когда тираннозавр активно ищет игрока, а также за каждый шаг в лабиринте, который делает игрок. Больше очков начисляется за побег из лабиринта и загрузку нового лабиринта. Если игроку удается сбежать из лабиринта, ему говорят, что он «приговорен к вечному скитанию по лабиринту» и может либо продолжить игру в другом лабиринте, либо подать апелляцию. Апелляции имеют 50% шанс быть отклоненными, что означает отправку обратно в лабиринт. Успешная апелляция заканчивает игру и сбрасывает ZX81.
Современную игровую сборку не хочется представлять без разгона. Студии рисуют графику с заделом на передовые графические ускорители, а производители железа будто специально выпускают поколение за поколением ровно под эти игры, не оставляя пользователям запаса прочности хотя бы на несколько лет. Так сложилась культура современного гейминга. Но почти любой юзер может вытащить из своей сборки дополнительную мощность, причем совершенно безопасно и безвозмездно. Если ее не вытащили на заводе за нас.
Первоначальное значение термина «оверклокинг» имеет несколько иное понимание разгона комплектующих. Вольтмоды, паяние перемычек, моддинг BIOS уже в прошлом. Сейчас разгон это жмакнул кнопку и готово. Но, какова работа, таков и результат. Если раньше с помощью разгона можно было добиться чуть ли не двукратной прибавки, то сейчас это не более 10–15 %. И то, учитывая полное отсутствие разгона из коробки. Тем не менее, если эта мощность есть и готова к работе, почему бы ею не воспользоваться.
Так, оверклокинг превратился из разгона комплектующих в настройку комплектующих. Это так, потому что свежие модели видеокарт имеют ограничения, которые не снимаются штатными безопасными способами. А в рамках этих ограничений мы можем только управлять поведением карты, но не можем добраться до предельных возможностей кремния.
Новые видеокарты сильно напичканы автоматикой, которая берет полный контроль над управлением мощностью. Хваленый турбобуст Nvidia устроен таким образом, что максимальная частота графического чипа ограничена лишь температурными условиями. Ниже температура — выше стабильная частота. Выше температура — ниже частота. Цифры меняются порогами, где прописаны соотношения частот и вольтажей.
С AMD ситуация повторяется. Только вместо температурных рамок алгоритм ставит ограничение на энергопотребление. То есть, чем выше ватты, тем ниже частота. И все же, с радеонами разгон еще имеет отголоски прошлого, когда ограничение в частоте и вольтаже ставил кремний, а не прошивка. Только для этого нужно редактировать биос карты, зашивать новые соотношения частот и вольтажей.
Более того, производители комплектующих научились «плохому» и теперь разгоняют железки еще на конвейере. Например, RTX 2070 Super в исполнении Palit имеет базовую частоту выше заводской почти на 100 МГц. В нормальных температурных рамках частота и вовсе колеблется в пределах 1950–2050 МГц. Больше из этих карт не выжать, поэтому задача современного оверклокера — заставить турбобуст удержать стабильную частоту как можно выше. Ну и подкрутить память, у которой запас по мегагерцам не тронут заводом.
Видеокарта — как отдельный компьютер. У нее есть свой блок питания, свой процессор, свои материнская плата и оперативная память. Поэтому удача в разгоне ложится не только на плечи силиконовой лотереи, но и на качество обвязки графического чипа:
Раз — качество цепей питания. Видеокарты верхнего ценового сегмента потребляют от 200 Вт на заводских настройках. Это сказывается на температуре элементов системы питания, а также на стабильности регулировки вольтажа.
Два — силиконовая лотерея. Возможности графического чипа ограничены качеством кремния, из которого он построен. Чем оно выше, тем больше шансов стабилизировать высокую частоту на низком вольтаже и при меньшем нагреве.
Три — видеопамять. Хотя чипы памяти тоже принимают участие в силиконовой лотерее, основной частотный потенциал пока задается одним фактором: производитель. Так, для каждого производителя памяти есть примерная максимальная частота:
Samsung — самая качественная и способная память. Легко переваривает прибавку +1000 МГц и даже выше. При этом работает с низкими таймингами.
Micron — менее удачные чипы, но тоже неплохо гонятся от +500 до +900.
Hynix — самые неудачные для разгона чипы. Почти ничего не умеют, максимум +300 МГц к общей частоте. При это греются сильнее предыдущих и имеют самые высокие тайминги.
Три с половиной — система охлаждения. Мы заставляем графический чип и память работать на повышенных частотах, а значит тепловыделение будет тоже выше. Крайне желательно выбирать видеокарту с хорошим охлаждением не только чипов, но и с отдельным радиатором для мосфетов (системы питания).
Мы уже разобрались, что штатные возможности видеокарт хорошо контролируются автоматикой и не готовы отдать полное управление настройками пользователю. Тем не менее, эти лимиты можно обойти с помощью вольтмодов и модифицированных прошивок. Когда в конструкцию видеокарты вносятся изменения: впаиваются дополнительные элементы и ставятся перемычки. В этом случае можно обойти встроенные лимиты и вдоволь насладиться разгонным простором. Главное, держать поблизости огнетушитель. Остальные манипуляции с картой безопасны.
Для удобства понадобится такой набор программ:
MSI Afterburner — утилита-комбайн. Вообще, у каждого производителя есть свое ПО для управления видеокартой, но афтербернер твердо стоит в рядах разгонщиков и используется для всех графических ускорителей как универсальная утилита.
GPU-Z — показывает любую информацию о видеокарте, начиная от ревизии чипа и заканчивая энергопотреблением на втором разъеме дополнительного питания.
Unigine Heaven — довольно практичный тест стабильности. Вообще, это игровой бенчмарк, но его можно включить на бесконечную прокрутку и хорошенько прогреть видеокарту.
3DMark TimeSpy Stress Test — для окончательного тестирования видеокарты. Это тестовый отрезок из основного бенчмарка, который повторяется 20 раз. Система замеряет количество кадров во время каждого прогона и сравнивает итоговые цифры. Если отклонение в производительности между прогонами минимально — система стабильна. Если процент стабильности ниже 95 %, снижаем разгон.
Настройка охлаждения. Чтобы видеокарта работала в прохладе и могла держать высокую частоту, необходимо подкрутить кривую вентиляторов в Afterburner. Для этого открываем программу и нажимаем на значок шестеренки, затем выбираем вкладку «кулер» и включаем пункт «Включить программный пользовательский режим»:
Настройка скорости вентиляторов индивидуальна для каждого типа системы охлаждения. Если это модель с одним вентилятором, то придется выкручивать обороты посильнее. Если топовая с несколькими вентиляторами и массивным радиатором — ориентируемся на такое соотношение температуры к оборотам вентиляторов: 40/60, 60/80, 70/95. С такой настройкой кулеры будут быстрее реагировать на изменения температуры и избавят от кратковременных скачков.
Снимаем температурные лимиты и ограничение энергопотребления. Для этого выставляем три верхних ползунка в AB, как на скриншоте, и нажимаем кнопку «применить»:
ВНИМАНИЕ!!! Если вы не обладаете специализированными навыками и ваше оборудование не обеспечено высокотехнологичной системой охлаждения, данные действия могут привести к полному выходу Вашего оборудования из строя!!!
"БУДТЕ ПРЕДЕЛЬНО ВНИМАТЕЛЬНЫ И ОСТОРОЖНЫ, ОЦЕНИТЕ ВСЕ РИСКИ ПЕРЕД ВЫПОЛНЕНИЕМ ЛЮБЫХ ДЕЙСТВИЙ, СВЯЗАННЫХ С ОТКЛЮЧЕНИЕМ РАЗЛИЧНЫХ ЗАЩИТНЫХ ОГРАНИЧЕНИЙ."
Находим максимум для графического чипа. Открываем бенчмарк Unigine Heaven и MSI Afterburner таким образом, чтобы во время теста было удобно менять настройки в AB:
Запускаем тест на таких настройках:
Как только видеокарта нагреется до рабочей температуры, переходим к подбору частоты. Для этого двигаем ползунок Core Clock вправо. Например, до цифры +40:
Тест не выключаем. После применения частоты замечаем, что максимальная частота поднялась с 1980 МГц до 2010 МГц. При этом температура поднялась на 3 градуса. Оставляем систему в таком режиме на несколько минут, чтобы удостовериться, что частота дается видеокарте без проблем. Далее прибавляем по 10-20 МГц и следим за тестом.
Как только он начнет зависать или показывать артефакты, снижаем частоту ядра на 10-20 МГц и снова запускаем тест. Если бенчмарк крутится без проблем 10 минут и дольше, считаем, что максимальная частота для графического процессора найдена. Подбираем частоту памяти. Частота памяти подбирается аналогичным способом. Но мы знаем примерные возможности всех разновидностей чипов, поэтому с настройкой проще. Для этого переходим в GPU-Z на основную вкладку и находим графу Memory type:
В этом экземпляре установлены чипы Micron. Значит, примерный рабочий диапазон значений колеблется от +500 до +900. От этого и будем отталкиваться.
Снова запускаем тест и выставляем ползунок Memory Clock на значение +500:
Крутим тест пять минут, а затем прибавляем к памяти еще 100 МГц. И так, пока тест не начнет сыпать артефактами или вылетать. Запоминаем глючное значение и спускаемся на 100 МГц ниже. Тестируем 5–10 минут и считаем, что максимальная частота для памяти тоже найдена.
Для данного экземпляра RTX 2070 Super максимальная частота ядра составила 2050 Мгц при температуре 65 °C. Если температура находится ниже этой отметки, частота поднимается до 2080–2100 МГц. Это и есть работа того самого турбобуста Nvidia. Стабильная частота памяти получилась ровно 7900 МГц, то есть +900 по афтербернеру. Пропускная способность поднялась почти на 60 Гб/с:
Тестовый стенд:
Материнская плата: Asus Maximus VIII Hero Coffeemod
Процессор: Intel Core i7 9700k 5.0 ГГц
ОЗУ: Ballistix AES 16 Гб 4000 МГц CL16
Видеокарта: Palit RTX 2070 Super GameRock Premium
Накопитель: SSD Samsung
Assassin’s Creed Valhalla
Средний фпс в разгоне всего на 4 кадра выше, чем на автомате с Turboboost. Это заслуга высокой частоты памяти. При этом температура разогнанной карты отличается на 3 °C. Энергопотребление выше на 13 Вт. Стоит сказать, что игра новая и ведет себя странно. Виной тому слишком сырая версия или неоптимизированные драйверы. Тем не менее, прошлая Odyssey берет от видеокарты намного больше, чем Valhalla.
Assassin’s Creed Odyssey
Разница 7 кадров в среднем количестве кадров, то есть почти 10 %. Интересно, что разгон принес больше пользы в 1 % и 0.1 % кадров. Здесь разница до 60 %. Что удивляет сильнее, так это те же температуры, что и в Valhalla, при большем энергопотреблении. Одним словом, аномалия. Хотя фпс оправданно выше в этом ассассине при 10 Вт разницы с Valhalla.
Horizon Zero Dawn
Все как по книжке: 12 % прирост производительности, 14 % прибавка в ваттах. Привычные 3 °C разницы.
Shadow of the Tomb Raider
Удивительно, но на средний фпс настройка видеокарты влияет так себе. А 1 % и 0.1 % стабильно показывают 8–12 % прибавки во всех тестах. Видимо, частота памяти сильнее влияет на стабильность фреймрейта, нежели на максимальную мощность. Много кадров не выиграли, но подняли энергопотребление и температуру чипа. Так себе разгон, скорее «кукурузный».
Red Dead Redemption 2
Тут тоже без сюрпризов. Все те же 8–9 % прибавки фпс, но выше температура и энергопотребление.
World of Tanks Encore
Здесь и вовсе 6 % разницы, а нагрев как в RDR2. Но энергопотребление выше. То ли тест кукурузный, то ли разгон.
3DMark Fire Strike Extreme
Игровые тесты показывают мизерное увеличение производительности вместе с несоизмеримым повышением температуры и энергопотребления. Этим грешат все современные видеокарты, начиная с поколения Pascal, которые почти не дают дополнительные кадры в обмен на повышение частоты. Все потому, что максимальные возможности графического чипа уже используются автоматически «из коробки».
Но такой разгон может оказаться очень эффективным, если видеокарту не разгоняли на заводе. В таком случае она покажет больше производительности, чем модель от конкурентов. Другое дело, если отключить турбобуст и обойти запреты, чтобы управлять частотой на низком уровне, не взирая на повышенные температуры и лимиты энергопотребления. Но с видеокартами Nvidia такое не пройдет из-за аппаратных ограничений. За неимением таковых, пользователи нашли способ настроить карту так, чтобы при меньших температурах и меньшем потреблении она работала даже лучше, чем в «умном» турбобусте. Способ избавиться от такого кукурузного разгона: снизить рабочий вольтаж и подобрать стабильную частоту. Это называется андервольтинг. Но об этом как ни будь в другой раз.
Самым большим плюсом в OS/2 2.0 была сама система. Переход на 32-х разрядную архитектуру снял множество ограничений существовавших в DOS и OS/2 1.x – в первую очередь по работе с памятью. Вместе с тем система не была “полностью” 32-х разрядной – многие части оставались 16-ти разрядными – в первую очередь по соображениям совместимости и экономии времени. Для ускорения разработки, к примеру, драйвера графической подсистемы (драйвера видеокарт и принтеров для Presentation Manager) в OS/2 2.0 были 16-ти разрядными и были заменены 32-х битными версиями только в OS/2 2.1. Требованиями совместимости диктовалось использование 16-ти разрядных драйверов физических устройств (Physical Device Driver, PDD) совместимых с OS/2 1.3. Аналогичным образом многие фрагменты ядра были 16-ти битными для обеспечения поддержки приложений написанных для OS/2 1.x. Основные же элементы системы были полностью новыми и 32-х разрядными – к примеру поддержка множества виртуальных DOS машин (Multuply Virtual DOS Machine, MVDM) и менеджер памяти с поддержкой пейджинга. Более того основная часть кода была написана на C, а не на ассемблере как в OS/2 1.x.
Вторым существенным моментом стал новый интерфейс пользователя под названием Workplace Shell (или WPS для краткости) являвшийся радикальным уходом от концепций заложенных в GUI OS/1.x и Windows. Новый интерфейс был объектно-ориентированным и в нем все стало объектом – диск, принтер, программа и так далее. Манипуляции с объектами проводились с помощью drag-n-drop – перемещение, копирование, печать и уничтожение. В WPS широко использовалась правая кнопка мыши – для открытия контекстных меню и выполнения операций по перетаскиванию объектов.
Для оперционной системы OS/2 2.0 была зарегистрирована торговая марка “Интегрирующая платформа” (The Integrating Platform). Это название напрямую намекало на уникальную возможность OS/2 2.0 исполнять существующие DOS, Windows и OS/2 1.x приложения одновременно с новыми 32-х разрядными родными приложениями. В отличии от OS/2 1.x в версии 2.0 поддержка DOS была превосходной. Система полностью использовала появившийся в 386 и последующих процессорах виртуальный 8086 режим (Virtual 8086 mode). Злые языки компьютерного мира одно время утверждали, что этот режим был реализован в 386-м процессоре шокированными инженерами Intel – слухи о мучениях при программировании поддержки в OS/2 1.x действительно распространились весьма широко и облегчение страданий программистов на аппаратном уровне было поистине обычным состраданием. Кроме того, что пользователь теперь мог запускать не только несколько полноэкранных и оконных сессий DOS появилась возможность создавать “специальные” DOS сессии в которых использовалась не встроенная поддержка DOS, а предоставлялась возможность запустить DOS 4.0, DOS 5.0, DR-DOS и так далее.
Поддержка Windows приложений логическим образом вытекала из поддержки DOS. Полноэкранная Win-OS/2 сессия просто исполняла Windows 3.0 в рамках виртуальной DOS машины. Оконные сессии Win-OS/2 требовали более нетривиального подхода в связи с тем, что им было необходимо взаимодействовать с PM/WPS приложениями. Выход из ситуации был реализован написанием специальной версии экранного драйвера для Win-OS/2. Такой подход, хотя и обеспечил хорошую производительность, но имел существенный недостаток – это сделало процесс написания драйверов видокарт для OS/2 намного более сложным и дорогим занятием и было одной из причин малого количества драйверов для OS/2. Производителю приходилось помимо создания видеодрайвера для OS/2 дополнительно предоставлять специфическую OS/2 версию драйвера для Windows. Более логичным было бы написание “транслирующего” драйвера преобразовывавшего вызовы функций Win-OS/2 в вызовы PM – тогда от производителя требовалось бы написание только OS/2 версии видеодрайвера.
На первых порах OS/2 2.0 столкнулась с той же проблемой что и OS/2 1.x до нее – недостатком родных приложений. Система прекрасно справлялась с запуском DOS, Windows и OS/2 1.x приложений, но на первых порах ощущалась нехватка родных 32 разрядных программ.
OS/2 2.1, 2.11, 2.11 SMP – Надежная платформа, эпоха зрелости.
Выпуск версии OS/2 2.1 в мае 1993 года явился следствием эволюционного развития версии 2.0. Внешний вид не претерпел существенных изменений, разработчики продолжали трудиться над “внутренностями” системы. Из видимых конечному пользователю изменений стоит отметить смену версии Win-OS/2 с 3.0 на 3.1 и появление нового компонента под названием Multimedia Presentation Manager/2 (MMPM/2) добавившего в графический интерфейс пользователя различные мультимедийные возможности – звуковые схемы, воспроизведение мультимедийных файлов и тому подобное.
В ноябре 1993 выходит специальная версия OS/2 for Windows не содержащая кода Win-OS/2 а использующая уже установленную на компьютере копию Windows 3.x. Таким образом снижалась цена конечного продукта (IBM платила лицензионные отчисления Microsoft за использование кода Windows в Win-OS/2). Вместе с тем эта версия продемонстрировала ситуацию на рынке. Используя свое монопольное положение Microsoft с помощью манипуляций в сфере ценовой политики держала производителей клонов PC под жестким контролем, запрещая им предустанавливать на продаваемые компьютеры операционные системы отличные от DOS/Windows собственного производства. Позже такая политика была признана незаконной, но OS/2 это уже не помогло. Выпустив OS/2 for Windows фирма IBM пыталась разрешить проблему без нарушения OEM соглашений производителей компьютеров с Microsoft.
Несмотря на жесткий прессинг со стороны Microsoft времена OS/2 2.1 и 2.11 были отмечены ростом количества приложений написанных специально для OS/2. IBM достигла соглашения с несколькими крупными производителями программного обеспечения о разработке OS/2 версий их приложений. В число таких компаний входили Borland, Lotus, Novell и тогда еще самостоятельная WordPerfect. IBM в некоторых случаях даже субсидировала отдельные разработки. В то же время Microsoft проявляла не меньшую активность, однако не заключая договора или оплачивая разработку, а напротив шантажируя разработчиков ПО угрозами закрыть доступ к бета версиям и информации о Windows, если они будут разрабатывать свои продукты под отличные от Windows платформы.
OS/2 Warp. Золотая эра.
В октябре 1994 выходит OS/2 Warp – самая популярная и самая распространенная версия OS/2. Внутренне система незначительно отличалась от OS/2 2.11 за исключением расширенной поддержки оборудования и исправлением ошибок – хороший пример того, что грамотно спроектированный и продуманный продукт не нуждается в лихорадочном переписывании многих элементов кода. Наиболее серьезные изменения касались исключительно улучшению простоты использования конечным пользователем.
Новые изменения и улучшения включали в себя:
• OS/2 Warp поддерживала новый улучшенный формат
Упадок OS/2 начался после проигрыша в конкуренции с Microsoft. 21 мая 1990 года Microsoft выпустила новую версию своей операционной системы (а фактически всё ещё операционной оболочки, надстройки над DOS) Windows 3.0. За первый месяц её копий было продано больше, чем копий OS/2 за целых три года.
Последняя версия OS/2 Warp 4 для ПК вышла в 1996 году, а серверная версия OS/2 4.5 — в 1999 году. Последней версией серверной ветки системы можно считать OS/2 Warp Server for e-business 4.53, которая вышла в виде обновления в 2003 году.
Почему OS/2 не выдержала конкуренции с Windows? Тут всё просто и понятно. Причиной была политика IBM, не предпринимавшей особых усилий для того, чтобы побудить разработчиков создавать программы для OS/2. В результате этого для OS/2 было написано недостаточное их количество, особенно ориентированных на домашнего пользователя, в том числе игр.
На последний факт, кстати, стоит обратить внимание разработчикам российских дистрибутивов Линукса, особенно в версиях для процессоров российской разработки, таких как Эльбрус и Байкал. В перспективе для увеличения продаж может потребоваться выход и на розничный рынок, и игры для этого очень-очень понадобятся, впрочем, как и программы с вменяемым интерфейсом. А чтобы всё это уже было к нужному времени, начинать писать нужно уже сейчас.
Несмотря на прекращение работы над системой самой IBM, её продолжали развивать другие компании. Так, обновлённая OEM-версия операционной системы IBM OS/2 Warp 4.5, разработанная и продвигаемая на рынке американской компанией Serenity Systems International и голландской компанией Mensys B.V, увидела свет в 2001 году. Систему назвали eComStation.
eComStation развивали вплоть до 2013 года, а в 2019 году было объявлено о прекращении поддержки.
Поскольку исходный код OS/2 закрыт и принадлежит IBM, и открывать его она не хочет (были две петиции, первая из которых проигнорирована а на вторую был получен отказ) то в ноябре 2015 года компанией Arca Noae было заключено лицензионное соглашение с IBM на выпуск и продажу нового дистрибутива для современного аппаратного обеспечения — ArcaOS 5.0.
Первая версия вышла в 2017 году, и до 2020-го ежегодно выходили новые релизы с 5.0 до 5.0.6. Примечательно, что разработка системы продолжается.
Сейчас это может показаться кому-то странным, но Windows системы существовали не всегда. Ещё не так давно доминирование продукта Microsoft было не настолько очевидным, а на рынке операционных систем имелся один весьма и весьма перспективный продукт компании IBM под названием OS/2.
Краткая информация.
OS/2 — операционная система фирмы IBM. Особой популярностью в качестве домашней ОС никогда не пользовалась, оставаясь в тени Windows. OS/2 представляет собой самостоятельную линию развития операционных систем, отличаясь от Windows NT существенно меньшей требовательностью к ресурсам компьютера, а от Linux/Unix – принципиальной разнице в подходе к разработке и большей схожестью графического интерфейса пользователя с Windows.
История.
1981. Microsoft покупает 86-DOS у компании Seattle Computer Products. Удовлетворение запросов IBM к операционной системе для PC привело к некоторым изменениям после чего она и выпущена под торговой маркой MS-DOS.
1984. Появляется процессор Intel 80286. В IBM принимается решение что операционная система DOS морально устарела и совместно с Microsoft начинает разработку OS/2.
Декабрь 1987. Появилась OS/2 1.0 (кодовое название CP/DOS). Эта версия не имела графической оболочки (работала только в текстовом режиме) и имела достаточные улучшения относительно DOS, например, там была расширена поддержка оперативной памяти. Выводить информацию на экран могла только одна программа, хотя другие программы могли выполняться в фоновом режиме.
Ноябрь 1988. OS/2 1.0 Extended Edition и OS/2 1.1 Standard Edition. Версия OS/2 1.1 SE (кодовое название Trimaran) обладает графической оболочкой Presentation Manager. Требования к оперативной памяти — минимум 3, а лучше 6 Мегабайт. Версия под названием OS/2 1.10 Extended Edition (OS/2 1.10 EE) появившаяся позднее и стоящая 795 долларов включала так же Database Manager и Communications Manager.
Октябрь 1989. OS/2 1.20 SE и EE (кодовое название Sloop). Впервые предложена улучшенная файловая система HPFS. Появилось средство двойной загрузки Dual Boot, а в расширенной версии 1.2 — мощный язык REXX. Этот год является переломным моментом в истории OS/2 – альянс начинает разваливаться (в основном из-за “подковерных игр” менеджеров Microsoft). Microsoft, обеспокоенная завоеванием рынка операционных систем, берет на себя разработку следующей, полностью 32-х разрядной OS/2 3.0. IBM концентрируется на разработке OS/2 2.0. Это, по сути, «развод» — разрабатываемая фирмой Microsoft OS/2 3.0, даже не сохраняет своего названия и демонстрируется на выставке ComDex'91 под именем Windows NT — первая Windows с вытесняющей многозадачностью.
Декабрь 1990. OS/2 1.3 (кодовое название Cutter) — версия, работающая на процессоре 80286 и последняя, выходящая в двух вариантах стандартной и расширенной редакции (Язык REXX присутствует уже в обеих редакциях). Из новшеств — поддержка масштабируемых шрифтов Adobe Type Manager. Эта версия также в ряду последних, продаваемых фирмой Microsoft. Все новые изменения внесены в подавляющем большинстве программистами IBM, система претерпела существенную переработку и ощутимо улучшилась ее производительность.
Апрель 1992. OS/2 2.0 (кодовое название Cruiser). Первая 32-х разрядная версия OS/2. Минимальные требования – процессор 80386SX, 4 Мб оперативной памяти. Поддержка SAA (System Application Architecture) — унифицированной архитектуры прикладных программ. OS/2 2.0 – первая версия, официально поддерживаемая не только на компьютерах IBM, но и на компьютерах других фирм. Она претерпела большие реконструкции после разрыва партнерских отношений с Microsoft по разработке. Появился удобный объектноориентированный интерфейс WorkPlaceShell («рабочий стол», рабочее место) базирующийся на архитектуре SOM (System Object Model), появилось гибкое средство загрузки Boot Manager, серьезно усовершенствована поддержка DOS и Windows приложений (Windows приложения запускаются с использованием Win-OS/2), а также 32-разрядный программный интерфейс. Появилась и возможность использования более 16Мб оперативной памяти. Отдельно выходят обновления для средств мультимедиа.
Май 1993. OS/2 2.1 (кодовое название Borg). Добавлена поддержка приложений Windows 3.1 (до этого поддерживалась Windows 3.0). В поставку включены средства мультимедиа и значительно обновлен список поддерживаемых аппаратных устройств. Требования к оперативной памяти — минимум 8 Мбайт.
Ноябрь 1993. OS/2 for Windows (кодовое название Ferengi). Отсутствует Win-OS/2 – вместо нее используется уже ранее установленная пользователем Windows 3.1, обновлены драйвера.
Февраль 1994. OS/2 2.11. В основным исправлены различные ошибки. Также существует отдельным набором исправлений FixPack XR 06200 для OS/2 2.1.
Июль 1994. OS/2 2.11 SMP. В этой версии была добавлена поддержка многопроцессорных (до 16 процессоров) систем.
Октябрь 1994. OS/2 Warp 3.0 (кодовое название Warp). Изменения коснулись лишь улучшения производительности системы, понижения требования к оперативной памяти до 4 Мбайт. Расширен спектр поддерживаемых аппаратных устройств. В GUI появился новый эелемент — LaunchPad (Панель инструментов, «стартовая площадка») — эффективное и гибкое средство, отлично вписавшееся в объектноориентированную модель интерфейса. С OS/2 Warp 3.0 поставляется бесплатный пакет «BonusPak», включающий:
• средства ревизии аппаратного обеспечения,
• расширенные средства просмотра мультимедиа, обработки движущегося видео, полнофункциональную работу с факсом (при наличии факс-модема),
• достаточно мощный пакет офисных приложений (включая текстовый процессор, электронные таблицы, базу данных, построения графиков) и персонального органайзера,
• средство проведения конференций в сетях,
• доступ к сетям CompuServe и Internet.
Май 1995. OS/2 Warp Connect. В базовую систему включена полная поддержка сетевой функциональности, поддержка одноранговых сетей.
Сентябрь 1996. OS/2 Warp 4.0 (кодовое название Merlin). В этой версии включено полное управление голосом, средства голосового ввода текста, встроенные механизмы Java, OpenDoc, средства работы в глобальной сети Internet и другие передовые технологии, разработанные корпорацией IBM. Сильно изменен дизайн системы и более удачно (относительно предыдущих версий) проработана сетевая подсистема.
1999 год. OS/2 WarpServer for e-Business (кодовое название Aurora) — сокращенно OS/2 WSeB. Внешне OS/2 осталась практически без изменений, однако внутренние переработки носили весомый характер. Появилась поддержка журналируемой файловой системы JFS, взятой из AIX (IBM версия UNIX), сняты ограничения на объем виртуальной памяти, появилась мощная программа для управления томами под названием LVM (Logic Volume Manager).
Весной 2000-го года американская компания Serenity Systems объявляет о том, что ей достигнуто партнерское соглашение с IBM о выпуске новой клиентской версии OS/2. Правда, эта клиентская версия полностью меняет свое название — новый клиент называется eComStation (сокращенно eCS). Официально продажи eCS 1.0 начались в июле 2001 года.
По сути, это новая модификация OS/2, в которой изменен интерфейс за счет включения в базовую систему приложения Styler/2 а также процесс инсталляции. Добавлено новое средство распределенной инсталляции ПО под названием WiseMachine.
OS/2 1.0 – Начало.
Эволюция OS/2 началась очень давно. Наиболее важным моментом предыстории OS/2 следует считать появление IBM Personal Computer или просто IBM PC (название отлично демонстрирует полное отсутствие изобретательности IBM в деле присвоения наименований выпускаемым продуктам). Создатели IBM PC к сожалению допустили громадную ошибку недооценив популярность своего продукта и соответственно его влияния на развитие индустрии. О том насколько восторженно было воспринято появление новой платформы свидетельствует хотя бы тот факт, что, при начальных планах продать 250 тысяч PC за пять лет, фирма IBM продала большее количество систем ещё до официального выпуска продукта на рынок.
Что же касается программного обеспечения то IBM решила нанять стороннего производителя для написания операционной системы для своего PC. К сожалению описание полудетективной истории о том как была выбрана фирма Microsoft и операционная система DOS выходят за рамки рассмотрения OS/2. MS(PC)-DOS как и сам PC была весьма открытой системой. Интерфейсы DOS и BIOS были хорошо документированы и сторонние производители могли легко использовать и расширять их – вот почему DOS и по сей день используется в некоторых задачах.
Вместе с тем DOS и BIOS имели один очень большой недостаток. Они отнюдь не были “звездной командой” и что еще хуже – не использовали аппаратную часть PC на полную мощность. Это означало что многие программы для полного использования аппаратных возможностей обращались к устройствам напрямую, минуя DOS.
Рассвет IBM PC.
Но невзирая на все свои недостатки в 1980 году IBM PC стал популярным инструментом. Аппаратный и программный рынки росли с невиданной скоростью. Казалось бы все было прекрасно — но пользователи PC были недовольны. Основыне причины тому были следущие:
Различные программы либо никак не взаимодействовали друг с другом, либо взаимодействие лежало на примитивном уровне.
Пользователь не мог делать несколько задач одновременно. Как некое подобие многозадачности были придуманы резидентные программы.
Логическим итогом всего хаоса проблем было то, что окружение DOS было нестабильным. Не было никакой защиты ни памяти, ни других ресурсов и любой процесс мог делать что угодно с любым куском памяти или манипулировать с оборудованием – элементарный рецепт катастрофы.
Архитектура DOS имела серьезные ограничения при работе с памятью. “640Kb будет достаточно для каждого” — выражение Билла Гейтса в 1981 году. Возможно это и было правдой в 1981, но никак не в 1984. Естественно, как только нехватка памяти стала очевидной, были придуманы различные способы обойти “проблему 640”, но все они никак не могли считаться решением.
Некоторые из существовавших проблем могли быть решены программно с помощью лучше спроектированной операционной системы. Но другие требовали аппаратной поддержки для того чтоб решение было эффективным или в принципе реализуемым. И эта поддержка была реализована в 1984 году под названием IBM AT (Advanced Technology). AT дествительно сильно продвинулась по сравнению со своими предшественниками – PC и XT. И помимо огромной массы различных усовершенствований самым заметным (и важным) было применение нового центрального процессора – Intel 80286. Хотя 80286 был 16-ти разрядным как и его прародители однако он имел одну очень важную особенность: защищенный режим работы (protected mode). 8086 имел только один режим который позже назовут real mode (видимо в связи с тем что в отличии от защищенного режима все адреса памяти соответствовали физическим адресам). После инициализации 286 работал в реальном режиме практически полностью совместимом с 8086 отличаясь лишь большей скоростью и расширенным набором инструкций. В этом режиме 286 мог как и 8086 адресовать (обращаться к) 1Мб памяти (на самом деле 1Мб + 64Кб – но в данном случае это неактуально). В защищенном режиме 286-й мог адресовать 16Мб памяти. Это было очень много учитывая что PC с 16Мб памяти стали стандартом де-факто лишь более чем 10 лет спустя. Но еще большим плюсом было то что защищенный режим был действительно защищенным. Это означало что доступ к памяти не был “свободным для всех” — вместо этого существовало 4 уровня (или кольца) защиты и менее привелигерованный процесс не мог нанести повреждения блокам памяти принадлежащим более привелигированным компонентам. Таким образом пользовательские программы не могли намеренно или случайно перезаписать к примеру код операционной системы. Дополнительно приложения были защищены друг от друга. Точно так же некоторые инструкции процессора были теперь ограничены и могли быть выполнены только кодом с достаточными правами – такими как ядро операционной системы или драйвер устройства. При попытке нарушить защиту возникала исключительная ситуация перехватываемая операционной системой которая обычно прекращала работу “провинившегося” приложения. Все проверки защиты выполнялись на аппаратном уровне с минимальными накладными расходами для операционной системы.
Как IBM так и Microsoft полностью осознавали проблемы вызываемые работой DOS в реальном режиме и работали над их решением. Двумя наиболее заметными продуктами которые в итоге появились стали IBM TopView и Microsoft Windows. TopView была текстовой многозадачной оболочкой для DOS и в сущности идейным прародителем позднейшей намного более успешной оболочки DesqView производства компании Quarterdeck. Microsoft Windows являлась графическим многозадачным окружением работавшим поверх DOS. Впервые анонсированная в 1983 версия 1.0 появилась в 1985. Она была более чем плохой и вполне заслуженно не приобрела сколько-нибудь широкой популярности. Это была попытка Microsoft сделать PC более похожим на компьютеры Macintosh фирмы Apple работавшими под управлением операционной системы MacOS с весьма развитым графическим интерфейсом пользователя. Версия Windows 2.0 вышла в 1987 и была немного лучше (и очень походила внешним видом на OS/2 1.1).
Взросление.
В это же время Microsoft работала над полностью новой операционной системой рассчитаной заменить DOS. В январе 1983-го года началась разработка новой многозадачной MS-DOS системы. Название проекта изменялось несчетное количество раз. В августе 1985 IBM присоединяется к проекту и фирмы подписывают соглашение о совместной разработке дающее обеим компаниям право на продажу конечного продукта. Немного погодя проект перименовывается в CP/DOS – от Control Program/DOS. Но, даже это был не финал процесса выбора имени еще нерожденного ребенка. Незадолго до выпуска продукт переименовывается в OS/2 – видимо для соответствия новой линейке персональных компьютеров IBM под названием PS/2 (Personal System/2).
Интересно то, что OS/2 1.0 не были реализованы очень многие планируемые особенности и самым заметным было отсутствие графического интерфейса пользователя Presentation Manager (кодовое имя Winthorn).
И все же OS/2 1.0 являлась радикальным рывком в сторону от DOS и имела множество особенностей и возможностей, которые DOS никогда не смогла бы иметь и которые были реализованы в других операционных системах намного позже.
• Вытесняющая многозадачность (preemptive multitasking).
• Многопоточность (multithreading).
• Средства взаимодействия между процессами (Inter Process Communication – IPC) такие как разделяемая память (shared memory), каналы (pipes), семафоры (semaphores) и очереди (queues).
• Поддержка виртуальной памяти (virtual memory, swapping) — теоретически до 1Гб виртуальной памяти.
• Полностью защищенный режим работы.
• Динамическое подключение библиотек (dynamic linking, DLLs).
• Поддержка до 16Мб оперативной памяти.
Одной из самых неприятных помех для разработчиков было то что они столкнулись с необходимостью поддержки DOS. Ни одна из проблем не являлась непреодолимой, но их комбинация была убийственной. IBM и Microsoft расплачивались за непродуманные решения принятые при разработке DOS в 1981 году. К тому же огромная популярность DOS произвела эффект бумеранга – разработчики вынуждены были поддерживать DOS приложения в OS/2 чтобы иметь хоть какие-то шансы на завоевание рынка.
В конце-концов разработчики OS/2 нашли решение как исполнять DOS в защищенном режиме хотя в процессе поиска решения и столкнулись с огромным количеством проблем. Окончательный выход выглядел следующим образом: имелась одна-единственная полноэкранная сессия DOS которая не могла выполняться в фоновом режиме (с другой стороны приложения OS/2 работали в фоне при активном сеансе DOS). Реализация подобного подхода требовала частого переключения между защищенным и реальным режимами (при активной DOS задаче). Это в свою очередь повлекло за собой огромное количество усилий по сохранению производительности на приемлимом уровне. Одним из примеров дополнительных ухищрений были драйвера устройств самой OS/2 – они должны были поддерживать работу как в защищенном так и в реальном режиме для уменьшения количества переключений.
Код DOS применяемый в OS/2 базировался на коде MS-DOS/PC-DOS, но с многочисленными модификациями. Так, к примеру, код обеспечивавший работу с файловой системой работал только в защищенном режиме. Иными словами при обращении к файлу вся операционная система переключалась в защищенный режим. Впрочем впоследствии такой подход оказался большим плюсом – когда были релизованы инсталлируемые файловые системы оказалось что DOS сессия OS/2 не имеет никаких проблем с доступом к (например) файловой системе HPFS.
Весь же защищенный код был написан “с нуля” со всеми теми приятными особенностями которые были описаны ранее. Ядро и системные библиотеки в основном были написаны на ассемблере по следующим двум причинам:
• Производительность – OS/2 должна была работать на IBM AT с 6Мгц процессором.
• Ограничения по памяти – OS/2 должна была работать при наличии только 1Мб ОЗУ.
В новой операционной системе было особенно не на что посмотреть – интерфейс было исключительно текстовым (обещанный Presentation Manager был все еще в стадии разработки) и внешний вид весьма походил на DOS. Но после нажатия Ctrl+ESC появлялся Program Selector – утилита позволявшая запускать новые задачи и переключаться между существующими. Теоретически существовало 16 сессий, но поскольку сама OS/2 занимала часть из них пользователь имел доступ к 12 сессиям.
С точки зрения пользователя OS/2 1.0 имела несколько существенных недостатков. Некоторые были исправлены в более поздних версиях серии 1.x, на исправление других понадобилось куда больше времени:
• Максимальный размер раздела 32Мб. Хотя возможно в 1987 году это было и не критично. OS/2 1.1 превысила это ограничение (хотя и базировалась на FAT), а OS/2 1.2 поставлялась уже с HPFS.
• Отсутствовала поддержка двойной загрузки (dual boot) или менеджера загрузки (Boot Manager). Dual Boot появился в версии 1.1, Boot Manager был реализован в версии 2.0
• Не было возможности обойти обработку файла CONFIG.SYS. Это было напастью всех версий серии 1.x. В сочетании с отсутствием Boot Manager-а это означало что если система не могла загрузиться (например, некорректный драйвер), то единственным шансом спасти ситауацию (и данные) была загрузочная дискета. Окончательно проблема была решена только в OS/2 Warp.
• Полное отсутствие механизма замены находящихся в использовании динамических библиотек (DLL). Это сделало установку исправлений системных DLL (таких как драйвера Presentation Manager) более чем затрундительным занятием. В OS/2 2.x ситуация разрешилась с помощью недокументированых вызовов API.
На рынке операционных систем OS/2 пребывала в состоянии безнадежной битвы за широкое распространение. Ее признанию мешало несколько факторов:
• OS/2 считалась требовательной к ресурсам (рекомендовалась AT с 2Мб ОЗУ хотя для работы было достаточно одного мегабайта).
• Совместимость с DOS на самом деле была далеко не на выском уровне. С другой стороны само наличие поддержки DOS было маленьким чудом поскольку препятствий этому было неисчислимое множество.
• Непомерно высокие цены. Возможно, маркетологи IBM и Microsoft имели какие-то свои особые соображения, но продажа набора разработчика (SDK – software development kit) за тысячи долларов отнюдь не помогала росту популярности операционной системы (первая версия Microsoft SDK for OS/2 вышедшая в апреле 1987 стоила три тысячи долларов).
• Ложные представления о новом продукте. Возможно самый большой ложный миф заключался в том, что OS/2 могла работать только на оборудовании IBM. Дела обстояли абсолютно иначе — даже версии OS/2 продаваемые самой IBM поддерживали оборудование сторонних производителей.
Резюмируя можно сказать что OS/2 1.0 не достигла абсолютного успеха (иначе сегодня большинство компьютеров работало бы под управлением OS/2), но и не стала оглушительным провалом. OS/2 внесла большое количество новых (и по большей части хороших) концепций в мир PC. Также OS/2 1.x выстроила солидный фундамент для OS/2 2.x которая в свою очередь была большим шагом в истории PC. Большинство концепций впервые появившихся в OS/2 1.x доказали свою обоснованность и не претерпели существенных изменений в последующих релизах. Программисты IBM и Microsoft без сомнения не заслуживают ничего, кроме уважения за проделанную работу.
OS/2 1.1 – Ранние годы.
Следующим релизом OS/2 стала вресия 1.1. Единственной причиной, по которой версию пронумеровали не как 2.0, вероятно было то, что графический интерфейс пользователя (GUI – Graphical User Interface) был обещан в версии 1.0, но не был закончен вовремя. Как забавный факт следует отметить, что Windows 1.0 разрабатывалась как Interface Manager и приобрела новое имя благодаря менеджерам игравших с именами не взирая на протесты программистов.
Presentation Manager имел кодовое имя Winthorn и практически полностью был написан в отделении IBM Hursley Labs. Программирование для PM было весьма схоже с программированием под Windows, однако, имелись и отличия:
• Прежде всего самое заметное было в различии координатных систем. В то время как координаты 0,0 в Windows были привязаны к верхнему левому углу экрана (что логично для знающего, как работает аппаратная реализация графики на архитектуре PC) в PM координаты 0,0 были привязаны к нижнему левому углу экрана (что логично для того, кто знает как работает координатная система в математике или физике).
• В Windows все графические операции передавались в так называемому Device Context. PM также использовал DC, но дополнительно имел еще один уровень абстракции называвшийся Presentation Space, что предоставляло большую гибкость.
• OS/2 имела гораздо более мощные функции рисования в своем графическом программном интерфейсе (Graphics Programming Interface, GPI) — наследие мейнфреймов. Некоторые из концепций GPI позднее были перенесены в Windows NT (но не в Windows 95).
• Общая программная модель в OS/2 была намного проще и не выглядела как набор “быстрых и грязных исправлений” (quick and dirty hack) что справедливо по отношению к программной модели Windows.
Помимо появления GUI другие изменения включали полную реализацию именованных каналов, которой не было в OS/2 1.0. Также была добавлена поддержка “больших” томов FAT (BigFAT). Теоретически поддерживались тома размеров до 2Гб, хотя практический лимит был несколько ниже.
После запуска OS/2 1.1 встречала пользователя следующим экраном:
Достаточно странным фактом было то, что OS/2 1.1 не имела нормального текстового редактора с GUI интерфейсом – даже такого, как notepad в Windows. Вместо него было текстовое приложение E.exe, запускаемое из командной строки.
В любом случае, OS/2 1.1 была технически очень интересной и занимательной программой. Она обладала намного большими возможностями чем любая операционная система для персональных компьютеров в то время. Windows и MacOS даже в перспективе не имели того, что было в OS/2 – ни вытесняющей многозадачности, ни многопотоковости, ни виртуальной памяти.
Естественно, что системе были присущи и недостатки. Хотя и поддерживалось большинство тогдашних стандартов для вывода графики (CGA, EGA, VGA) но поддержка других была весьма слабая, если вообще существовала. Поддержка принтеров была чисто номинальная – несколько принтеров и плоттеров производства IBM и все.
Под OS/2 существовали различные приложения – в том числе такие как Microsoft Word, Lotus 1-2-3 и QuattroPro. Однако все они были текстовыми за исключением Microsoft Excel 2.2.
OS/2 1.2 – Развитие.
В конце 1989 Microsoft и IBM выпускают версию OS/2 1.2 – очень важное событие во всей истории OS/2 поскольку именно в версии 1.2 были реализованы практически все возможности обещаные в OS/2 еще до ее появления. В OS/2 1.2 разработчики наконец отказались от файловой системы FAT и реализовали инсталлируемые файловые системы (Installable File System, IFS) и высокопроизводительную файловую систему HPFS (High Perfomance File System).
HPFS была разработана “с нуля” Гордоном Литвином (Gordon Letwin) — ведущим разработчиком OS/2 в Microsoft. Новая файловая система весьма превосходила FAT, а также снимала множество ограничений:
• Отсутствовал печально известный лимит “8.3” на имена файлов – 8 символов на имя и 3 на расширение. Имена файлов могли быть длиной до 255 символов и допускали значительно больший диапазон допустимых к использованию символов – в частности пробел.
• Поддержка расширенных аттрибутов (Extended Attributes, EA). Каждый файл или директория могли иметь до 64Кб EA связанных с ним – там могла храниться любая информация – иконки, описания, информация для программы-каталогизатора и так далее.
• Поддержка больших дисков. FAT поддерживала разделы до 2Гб размером. HPFS поддерживала тома до 64Гб и была ограничена на то время лишь драйверами жестких дисков.
• Устойчивость к фрагментации. В то время как разделы FAT требовали регулярной дефрагментации для предотвращения иногда ощутимых потерь в производительности, HPFS пыталась использовать для файлов непрерывные фрагменты, сохраняя фрагментацию на минимальном уровне.
• Уменьшение потерь дискового пространства. Наибольший FAT диск в 2Гб размером использовал для хранения данных элементы размером 64Кб, чем вызывались большие потери дискового места (иногда до 50%). HPFS использовала сектора размером 512 байт таким образом резко уменьшая потери.
• Высокая отказоустойчивость. Если таблица FAT на дисковом разделе разрушалась в результате инцидента вся остальная информация на диске превращалась в гору бесполезного мусора поскольку вся информация о размещении файлов была сконцентрирована в FAT. HPFS дублировала часть информации и хранила структуру диска связно в обеих направлениях (от каталога к подкаталогу или файлу и наоборот). В результате, повреждения одной области не оказывали никакого влияния на весь остальной раздел. К примеру, не смотря на повреждение сектора с директорией – все файлы в ней оставались доступны.
Существовало две версии HPFS — “чистая” HPFS и HPFS386. Последняя, используемая в Microsoft LAN Manager (и IBM LAN Server) была более производительной, допускала значительно увеличенные размеры кэша и имела несколько расширений необходимых для серверов – к примеру встроенную систему разграничения доступа ( Access Control List, ACL) и систему ограничения директорий. В общем судьба HPFS оказалась весьма успешной – она практически в неизменном виде перешла в OS/2 2.0, и с некоторыми вариациями была использована в Windows NT под именем NTFS. Подобная история произошла с файловой системой UFS операционной среды SunOS 4.x. После революционного перехода на полностью новую ветку unix фирма Sun, имея богатый положительный опыт, без больших изменений оставила UFS в своей новой ОС. Это наглядный пример того, что удачные решения предшественников остаются в силе.
OS/2 GUI также получил новый внешний вид, весьма схожий с вышедшей через несколько месяцев Windows 3.0
Наиболее значимым различием между OS/2 1.2 и Windows 3.0 было то, что Windows не была операционной системой как таковой и исполнялась поверх MS-DOS (и даже могла быть запущена в DOS сессии OS/2). Также Windows содержала больше различных приложений (по большей части бесполезных, ну может быть за исключением Solitaire). OS/2 была более бизнес-ориентированной и при сравнении имела несколько спартанской вид. Отчасти это послужило тому, что Windows получила большее распространение среди конечных пользователей.
OS/2 1.3 – последняя из 16-битных ОС.
После исторического разрыва совместной разработки OS/2, вызванного нежеланием Microsoft делить прибыль от продаж оперционной системы с IBM, основной процесс по модернизации OS/2 происходил в IBM (хотя Microsoft и полностью сконцентрировалась на Windows некоторые вынужденные изменения в систему все же вносились). Версия 1.3 была практически идентична 1.2 по предоставляемым возможностям, но включала многочисленные улучшения производительности и удобстве использования.
Наконец во всех редакциях OS/2 присутствовал язык программирования REXX разработанный Майком Коулишоу (Mike Cowlishow) из IBM UK.
Язык изначально создавался для достижения четырех главных целей:
• легкой понимаемости (читаемости) написанных на нем программ, что облегчает работу программистам, пользователям и сопровождающему персоналу
• поддержка быстрого, эффективного и аккуратного программирования за счет обеспечения максимально естественной формы представления данных и управляющих структур языка
• обеспечения надежной и эффективной реализации языка на разнообразных платформах
• высокой применимости языка в системном и прикладном ПО
И все эти задачи были успешно решены. Таким образом операционная система получила мощный и гибкий инструмент, сравнимый с различными языками написания скриптов в UNIX подобных системах. Это несомненно являлось очень большим преимуществом, особенно в сравнении с более чем скромным набором возможностей которые предлагались при написании пакетных файлов в DOS и ранних версиях OS/2.
OS/2 2.0 – 32-х битная революция.
Пока в 1988 году IBM и Microsoft усердно трудились над OS/2 1.2 в IBM началась работа по разработке кардинально переработанной операционной системы. Итак, хотя версию 1.3 IBM совершенствовала исключительно своими силами, в тоже время под руководством ведущего разработчика Майкла Когана (Michael S. Kogan) уже полным ходом шли работы над версией 2.0. В марте 1992 операционная система была полностью готова и выпущена на рынок под названием OS/2 2.0 GA (General Availability – публично доступная). Приставка GA появилась не случайно. В это время шли яростные “словесные войны” между IBM и Microsoft и в одной из перепалок вице-президент Microsoft Стив Балмер пообещал публично съесть флоппи-диск если IBM умудрится выпустить OS/2 2.0 до конца 1991 года. Поскольку зрелище обещало быть достаточно интересным в ноябре 1991 была выпущена ограниченным тиражом OS/2 2.0 LA (Limited Availability – ограниченно доступная). К сожалению, господин Балмер не сдержал своего слова и OS/2 2.0 LA пришлось использовать как простую beta версию, каковой она в сущности и являлась.
В виду текстовых ограничений
ПРОДОЛЖЕНИЕ СЛЕДУЕТ...
Геймеры бывают разные: одним важен сюжет, а графика остается на втором плане, другие готовы отдать все, чтобы выжать из компьютера как можно больше заветных кадров в секунду. Но, как активно и часто они ни улучшают для этого игровую систему, визуально не все оказывается гладко: как ни крути, в играх остаются разрывы изображения. Производители нашли, как это исправить — при помощи технологий адаптивной синхронизации кадров, например, VRR. Что это такое и чем отличается от остальных технологий.
Представим, что монитор включается и выключается шесть раз в секунду, то есть, работает с частотой 6 Гц. За это время видеокарта успевает подготовить шесть кадров. Они работают синхронно: каждый кадр отображается ровно в момент включения дисплея, поэтому на экране показывается вся информация без изменений. Если видеокарта способна подготовить за тот же промежуток времени не шесть, а семь кадров, то монитор с частотой развертки 6 Гц не сможет отобразить все отрисованные кадры в правильном порядке, но кое-как попытается это сделать. Так как один кадр всегда остается лишним, в какой-то момент на дисплее окажется изображение, составленное из двух кадров, наложенных друг на друга.
Это явление известно как «тиринг». Оно проявляется независимо от мощности процессора, видеокарты, а также «крутости» телевизора и монитора. В результате постоянного «подселения» лишних кадров к тем, которые попали по адресу во время включения монитора, в непрерывном геймплее возникают сдвиги и разрывы. Чтобы исправить это и вернуть игровому процессу плавность, производители придумали технологии синхронизации частоты кадров. Среди уже известных способов, есть и совсем новые — например, VRR.
Вспомним основные технологии:
V-Sync — программный способ синхронизации кадров. Технология поддерживается на уровне софта, поэтому может быть включена в любой игре и любом проекте. Принцип работы прост до безумия: драйвер считывает частоту обновления монитора и ограничивает количество кадров, выдаваемых видеокартой, до этого значения. Например, при частоте развертки монитора 60 Гц вертикальная синхронизация ограничит график кадров на отметке 60 fps. Для большинства игровых задач этого достаточно: разрывы исчезают, картинка становится плавной.
Безупречная работа этой функции продолжается ровно до тех пор, пока видеокарта способна обрабатывать необходимое количество кадров в секунду. Если же графический ускоритель снизит частоту хотя бы до 59 fps, то V-Sync автоматически установит ограничение, кратное двум. Тогда на экране станут отображаться не 59 или 60 кадров, а ровно 30 — так, чтобы монитор снова работал синхронно с каждым кадром. В этом и заключается главный недостаток вертикальной синхронизации, который удается обойти с помощью новых технологий.
G-Sync — фирменная технология синхронизации кадров NVIDIA, которая значительно отличается от программного метода. В этом случае не кадры подгоняются под частоту монитора, а частота монитора устанавливается динамически таким образом, чтобы каждое включение монитора соответствовало одному готовому кадру. Естественно, технология обладает ограничениями: работа синхронизации возможна в пределах от 30 fps до 240 fps. И пока тандем не выходит за рамки этих ограничений, все выглядит идеально. Стоит видеокарте сфальшивить и опустить частоту кадров ниже минимума, как волшебный «джисинк» превращается в обычную вертикальную синхронизацию.
Работа этого метода зависит от аппаратных возможностей монитора и видеокарты. Для активации G-Sync пользователю необходимо подружить совместимый дисплей с «зеленым» ускорителем не старше 10-го поколения. Ограничения обусловлены проприетарностью технологии: NVIDIA разрешает использовать свои наработки только в рамках лицензии, расходы на ее приобретение производители мониторов перекладывают на покупателей. Туда же они включают стоимость дополнительного модуля — что-то вроде отдельного компьютера в корпусе монитора, который отвечает за работу синхронизации. Отсюда завышенная стоимость мониторов с поддержкой этой функции.
FreeSync — технология синхронизации кадров от компании AMD. По традиции производитель превращает сложные вещи в простые и делает дорогое волшебство доступным каждому. Поэтому «красная» технология работает так же хорошо, как G-Sync, но не требует установки дополнительного компьютера в монитор, а также разрабатывается в открытом порядке — без лицензий и «переплат».
Вторая версия FreeSync поддерживает расширенный диапазон частот от 9 Гц до 240 Гц. При этом для активации синхронизации кадров подойдет не только фирменный ускоритель, но также любые видеокарты NVIDIA не старше 10-го поколения. Таким образом, для использования этой технологии достаточно обладать подходящим монитором или телевизором.
VRR (Variable refresh rate) — относительно свежая технология адаптивной синхронизации. На самом деле, это собирательное название для всех алгоритмов синхронизации. Поэтому для технологии, о которой идет речь, лучше использовать название HDMI Forum VRR.
Приставка «HDMI» в расшифровке аббревиатуры говорит о том, что VRR является частью одноименного стандарта передачи данных. И это не первая попытка создать технологию, привязанную к разъему. Ранее функцию под названием VESA Adaptive Sync получил стандарт DisplayPort — те же «кадры», только в профиль. С появлением новой версии HDMI телевизоры и передающие устройства научились понимать высокую частоту развертки в разрешении 4К, автоматически распознавать контент и подстраивать работу телевизора под игры, а также регулировать частоту обновления экрана динамически, как это делают игровые мониторы с поддержкой G-Sync и FreeSync. Соответственно, VRR работает идентично перечисленным выше технологиям, но имеет несколько преимуществ.
VRR может работать не только на устройствах с поддержкой HDMI 2.1, но также и через HDMI 2.0. Даже в таком режиме пользователь получает эффект плавной картинки. Отличие только в максимальном разрешении и частоте развертки. Если HDMI 2.1 переваривает до 120 fps в разрешении 4К, то HDMI 2.0 ограничен частотой 60 Гц.
С появлением VRR производителям игровых консолей больше не нужно использовать дополнительное ПО в прошивке, чтобы реализовать работу FreeSync или G-Sync. Все уже давно предусмотрено в HDMI, который они, в любом случае, реализуют в своих системах. Более того, производителям телевизоров также можно вздохнуть полной грудью и избавиться от забот по реализации проприетарных технологий синхронизации частоты.
При подключении ПК или консоли к телевизору с поддержкой FreeSync режим HDR Dolby Vision отключается. Технология синхронизации AMD является отдельной функцией и занимает часть ширины потока HDMI, поэтому некоторые полезные надстройки деактивируются. С VRR такого не случится. Для этой технологии адаптивной частоты выделен собственный канал, используя который, функция не мешает работе остальных сигналов и потоков.
Даже на начальном этапе распространения функции большинство видеокарт и современных телевизоров оказываются совместимыми с VRR. Технология привязана к стандарту передачи данных и не может быть «вырезана» производителем телевизора или графического ускорителя. Поэтому она поддерживается не только новыми устройствами, но даже прошлогодними видеокартами типа NVIDIA RTX 2000 или AMD Radeon RX 5000 серии. Ходят слухи, что в будущем поддержку новой технологии получат даже устройства со встроенной графикой Intel.
VRR активно интегрируется в телевизоры LG, начиная с моделей 2020 года, а также в модели Samsung серий Q80 и Q90 и новее. Поддержка технологии заявлена и производителями игровых консолей: Xbox One, Xbox Series и PlayStation 5. До обновления ПО предыдущие консоли Microsoft работали только с Freesync, а прошлые устройства Sony до сих пор довольствуются обычной вертикальной синхронизацией.
Для активации VRR необходима не только аппаратная совместимость комплектующих, но и программная поддержка со стороны операционной системы. VRR появилась в Windows 10 после обновления до версии 1903, где функция существует как дополнение к G-Sync и FreeSync, а не отдельная самостоятельная технология.
Разработчики заявляют, что включение опции не влияет на работу остальных технологий синхронизации, а лишь дополняет их в тех проектах, где нет поддержки других алгоритмов. Например, в играх с DirectX 11, а также в случаях, когда режим работы G-Sync не покрывает задачи пользователя: не хватает диапазона поддерживаемых частот, или поддержка G-Sync и FreeSync просто отсутствует в мониторе.
Чтобы включить адаптивную синхронизацию частоты в Windows 10, необходимо:
Установить монитор с поддержкой технологий G-Sync или FreeSync;
Установить видеокарту не старше NVIDIA GeForce GTX 10xx или AMD Radeon RX 5xx;
Обновить Windows до майской версии 1903;
Проверить версию HDMI-кабеля: она не должна быть ниже HDMI 2.0.
После этого отправляемся в Настройки:
Система:
Дисплей:
Настройки графики:
И нажимаем «Включить VRR»:
Чтобы убедиться в работе VRR, подключим игровую сборку с графическим ускорителем NVIDIA RTX 2070 Super к телевизору линейки LG 916NANO и запустим игру без поддержки G-Sync или FreeSync. Панель обладает разрешением 4К, а также поддерживает современные плюшки: HDR, Dolby Vision, HFR, LFC и все актуальные технологии синхронизации частоты кадров. Не забываем проверить настройки в панели управления видеокартой. Для AMD ищем пункт FreeSync, а для NVIDIA надстройку G-Sync:
После успешной активации режима адаптивной надстройки частоты телевизор сообщит об изменении профиля работы, после чего в игровых настройках графики необходимо отключить классическую вертикальную синхронизацию. Правильная настройка покажет себя в геймплее. Если все настроено верно, в игре исчезнут разрывы изображения и смена кадров станет плавной.
Очередная технология адаптивной синхронизации не обещает стать единственным решением, которое заполнит рынок и вытеснит остальные методы. Наоборот, каждый производитель развивает собственный стандарт, улучшает его и модернизирует, что играет на руку пользователю и производителям аксессуаров. Выбирай любую технологию и все равно попадешь в цель. Появление VRR на рынке игровых устройств не стало революцией, как это было с выходом технологии NVIDIA. Но кое-что полезное новый алгоритм все-таки принес — это глобальная стандартизация и упрощение технологий, что помогает активно «въезжать» на рынок игровых устройств даже самым бюджетным моделям телевизоров и мониторов. Как ни удивительно, это снова идет на пользу потребителю — профит, да и только.
Максимальная частота обновления экрана — один из основных маркетинговых и технических показателей монитора. Технология перегрузки пикселей (Overdrive) позволяет снизить время отклика и увеличить частоту обновления. Но порой ее применение ухудшает «картинку» вместо ее улучшения. Variable Overdrive призвана устранить этот недостаток.
Частота обновления экрана тесно связана со временем отклика пикселя. Этот параметр показывает, как быстро пиксель изменит свой цвет после поступления на него соответствующего сигнала. Здесь следует подробнее рассмотреть пиксель экрана монитора. Если грубо, то он представляет собой жидкокристаллический элемент, за которым расположен источник света.
ЖК-элемент меняет свою прозрачность в зависимости от поданного на него напряжения. Когда на кристалл не поступает напряжение, он «закрыт», свет не проходит и пиксель остается черным. Когда на кристалл поступает напряжение, он «открывается» и начинает пропускать свет. Скорость «открывания-закрывания» кристалла и есть, в первом приближении, — время отклика пикселя.
Дьявол, как говорится, таится в мелочах. Сначала временем отклика считалось время полного открытия/закрытия пикселя. То есть, время, затраченное на переход от полностью черного цвета к полностью белому и обратно. Black-to-Black или BtB. Но тут маркетологи заметили, что закрывание и открывание пикселя происходят неравномерно. Основные затраты времени идут на первые и последние 10% шкалы времени — когда пиксель только начинает или заканчивает изменение. Они тут же заявили: «В реальности один и тот же пиксель на соседних кадрах редко меняет яркость на 100%, так что показатель GtG достовернее расскажет о скорости отклика». GtG (Gray-to-Gray) — это время, за которое пиксель меняет цвет с 90% черного на 90% белого и обратно на 90% черного.
По замыслу маркетологов, такая хитрость должна была сразу втрое-вчетверо улучшить этот показатель без малейших вложений в производство. Но сразу «не прокатило». Дело в том, что если дать на пиксель напряжение, соответствующее яркости «90% белого», то до нужного положения он открывается намного медленнее, чем при 100% напряжения.
Чтобы убрать эту досадную задержку, была разработана технология Overdrive, быстро распространившаяся на все мониторы. Суть ее довольно проста. Например, нам надо сменить цвет пикселя с черного на 50% серый. Если подать 50% напряжения, цвет пикселя изменится на нужный, но не так быстро, как хотелось бы. Поэтому электроника на короткое время подает на пиксель все 100%. Как только цвет пикселя приближается к нужному, напряжение снижается до 50%.
В итоге нужный цвет пикселя устанавливается за минимальный промежуток времени. Основная задача технологии Overdrive заключается в подборе времени «перегрузки». Если время будет меньше, чем надо, скорость отклика пикселя снизится, и на экране начнут появляться шлейфы за движущимися объектами. Если время будет слишком высоко, пиксель на короткое время будет открываться сильнее, чем нужно. В результате движущиеся объекты обзаведутся светящейся «короной».
Подобрать правильное время «перегрузки» несложно. Нетрудно догадаться, что оно тесно связано с частотой обновления экрана. Чем выше частота обновления, тем меньше оно должно быть. Если монитор работает всегда на одной частоте — проблем нет. Но что делать, если частота меняется? Так в игровых мониторах появилась настройка Overdrive. В разных моделях она называется по-разному (Overdrive, SmartResponse, Response Time Acceleration, Advanced Motion Accelerator), но суть одна — подстроить время «перегрузки» пикселей под частоту обновления.
Но тут возникли проблемы с технологиями FreeSync и G-Sync. Они меняют частоту обновления экрана в зависимости от FPS в игре. Вот только время «перегрузки» пикселей при работе технологии Overdrive на таких мониторах остается одним и тем же. Привет, артефакты и короны.
Решение лежало, что называется «на поверхности». Нужно подстраивать время «перегрузки» пикселя под текущую частоту обновления экрана. Что и было сделано в новой технологии Variable Overdrive. Как она работает? Монитор с технологией Variable Overdrive анализирует скорость обновления изображения и автоматически изменяет параметры «перегрузки» пикселей.
При более высоких скоростях обновления, монитор автоматически уменьшает время «перегрузки». При падении частоты обновления время Overdrive увеличивается. Это сводит к минимуму «пересвечивание» пикселей при изменении цвета и позволяет сохранить максимальную четкость изображения при любой частоте обновления экрана.
Технология поддерживается всеми NVIDIA G-SYNC и G-SYNC Ultimate мониторами. Мониторы, не содержащие в себе специального чипа NVIDIA, но совместимые с технологий G-Sync (G-Sync compatible ) поддержки Variable Overdrive не имеют.
Если у вас монитор с поддержкой G-SYNC, но вы не уверены, относится он к NVIDIA G-SYNC мониторам, или нет, поищите свою модель в списке на сайте NVIDIA. Обратите внимание на столбец Variable Overdrive применительно к своему монитору.
Если там значится «Yes», то технология Variable Overdrive будет работать на вашем мониторе. Даже на тех моделях, которые были выпущены до ее появления. Вся электроника для использования технологии в мониторе есть, потребуется только обновить драйвера, если вы этого еще не сделали.
С AMD FreeSync все сложнее. Совместимость с FreeSync (ни одна из трех ступеней) не гарантирует поддержки Variable Overdrive. AMD оставляет это на усмотрение производителя. Поэтому по каждой FreeSync-совместимой модели информацию придется искать самостоятельно.
Технология Variable Overdrive — одна из наиболее значимых инноваций для геймеров и просто любителей динамичных игр. Она позволяет добиться максимальной четкости изображения на быстрых мониторах с поддержкой технологий динамической частоты обновления (FreeSync и G-Sync). К сожалению, пока немногие мониторы поддерживают эту технологию.
Недавно компания NVIDIA представила технологию G-SYNC Pulsar, которая повышает четкость движущегося изображения в играх. Как она работает, и в чем ее отличия от схожей ULMB 2?
Большинство современных ЖК-мониторов имеют светодиодную подсветку. Реализуют ее по-разному. Есть варианты без мерцания (Flicker-Free), есть варианты с использованием широтно-импульсной модуляции (ШИМ). Последняя предполагает мерцание диодов на постоянной высокой частоте.
Изображение на мониторе обновляется с определенной частотой кадров. Но пиксели матрицы при этом переключают цвета не моментально. Между переходом от одного цвета к другому всегда есть определенная задержка. При этом подсветка или горит постоянно, или мерцает на гораздо более высокой частоте. Из-за этого глаз замечает не только моменты отображения нужных кадров, но и моменты изменения цветов пикселей между ними. Нами это воспринимается как размытие в движении. Чем быстрее движение на экране, тем сильнее заметен данный эффект.
На старых мониторах с электронно-лучевой трубкой луч развертки является одновременно и лучом подсветки. Поэтому никакого рассинхрона между подсветкой и обновлением пикселей картинки нет. То же самое — с устаревшими плазменными телевизорами. А вот всех современных устройств, панели которых производятся по технологии LCD, проблема касается. Первым шагом к ее решению стала технология Overdrive, или разгон матрицы. Она заключается в повышении напряжения, которое подается на пиксели. За счет этого ускоряется их переключение. Скорость отклика и смазывание движущейся картинки благодаря этому уменьшаются.
Однако слишком высокое напряжение приводит к появлению артефактов изображения. Так что бесконечно увеличивать его не получится. При этом проблему смазывания овердрайв все равно не решает до конца. Поэтому на помощь пришли другие технологии, работающие в тандеме с овердрайвом.
В 2006 году появилась технология Black Frame Insertion (BFI). Тогда подсветка экрана осуществлялась с помощью нескольких люминесцентных ламп. Они мерцали на частотах, в два-три раза превышающих частоту обновления матрицы.
BFI снижает частоту мерцания (стробирования) подсветки, синхронизируя ее с частотой обновления матрицы. Благодаря этому лампы включаются в момент полностью обновленной картинки. После показа одного кадра лампы снова гаснут. Заново они загораются только в момент вывода следующего кадра.
Глаз человека не замечает быстрых отключений подсветки. Это происходит из-за эффекта остаточного изображения на сетчатке. Но при частоте 60 Гц (стандарт для ЖК-панелей того времени) становится заметно мерцание экрана. К тому же, понижение частоты мерцания подсветки воспринимается глазом как сильное снижение яркости. Поэтому ни BFI, ни ее аналог Samsung MPA не снискали популярности.
После перехода на LED-подсветку производители мониторов стали использовать аналогичные технологии, но под другими именами. Так появились Samsung Motion Blur Reduction, LG 1ms Motion Blur Reduction, ASUS Extreme Low Motion Blur, BenQ's DyAc, Acer VRB и прочие. Мерцание на LED-панелях стало чуть менее заметным. Однако проблема ощутимого снижения яркости оставалась.
В 2014 году NVIDIA выпустила схожую технологию устранения размытия. Она получила название Ultra Low Motion Blur (ULMB). ULMB поддерживает несколько режимов стробирования подсветки — 85, 100 и 120 Гц. Благодаря этому мерцание стало еще менее заметным. Однако матрицы экранов в те годы были не такими быстрыми, как сейчас. Поэтому поддержки ULMB на максимальной частоте у многих мониторов не было. ULMB оставалась свойственна проблема всех предыдущих технологий стробирования — фиксированная частота кадров и мерцания. Если ПК не в состоянии постоянно выдавать стабильную частоту кадров в игре, размытия было не избежать. Причина проста: несоответствие FPS и частоты обновления/мерцания монитора.
Еще до ULMB в мониторах появилась технологии адаптивной синхронизации кадров: сначала NVIDIA G-SYNC, а затем и ее конкурент AMD FreeSync. Их суть в переменной частоте обновления монитора, которая может регулироваться в соответствии с FPS в игре. Обе технологии относятся к разновидностям Variable Refresh Rate (VRR), принцип их работы довольно схож. VRR поддерживается не только компьютерами, но и консолями текущего поколения.
Синхронизация кадров игры и панели монитора убирает размытие, вносимое несоответствием FPS и частоты обновления экрана. Но все еще остается размытие, вносимое подсветкой. А ULMB одновременно с G-SYNC не работает. Поэтому приходилось выбирать что-то одно: либо переменную частоту кадров, либо постоянную — со стробированием подсветки.
Для наилучшего результата нужно было объединить переменную частоту кадров с переменной скоростью стробирования. Первыми это попробовали сделать в ASUS. В 2019 году они презентовали технологию ASUS Extreme Low Motion Blur Sync. Она научилась работать одновременно с G-SYNC, подстраивая мерцание подсветки под текущую частоту кадров.
За ней подтянулась и ViewSonic. Компания представила аналогичный режим в мониторах под собственным названием Pure XP. В обеих случаях реализация оставляла желать лучшего. При высокой частоте кадров обе технологии часто страдают от эффекта перекрестных помех и гостинга.
В 2023 году NVIDIA анонсировала вторую версию Ultra Low Motion Blur — ULMB 2. Она имеет несколько ключевых отличий от предшественницы.
Обновление пикселей на экране происходит после прохода сигнала вертикальной развертки. Сигнал проходит по кадру быстро, но не мгновенно. Поэтому пиксели верхних строк начинают обновляться чуть раньше нижних. Если включение подсветки приходится на момент, когда часть пикселей обновилась не до конца, возникнет эффект перекрестных помех. Часть изображения начинает двоиться. Такой проблемой нередко страдают все предшествующие реализации стробирования подсветки.
Для устранения эффекта теперь используется Variable Overdrive — технология переменного разгона пикселей. С ее помощью ULMB 2 может переключать пиксели строк с разной скоростью, в зависимости от положения на экране. Переключение синхронизируется так, чтобы создать более широкое окно для импульса подсветки. Благодаря этому подсветка зажигается в точно отведенное время. Это устраняет перекрестные помехи, ранее вызывавшие двоение картинки.
Первая версия ULMB держала подсветку отключенной 75% времени. Все-таки скорость переключения пикселей на момент выхода технологии была достаточно высокой. За счет более быстрых современных матриц и применения вертикально-зависимого овердрайва окно работы подсветки у UMLB 2 куда шире. Поэтому период времени ее работы увеличивается. Благодаря этому значительно повышается яркость монитора.
Более частые и продолжительные импульсы мерцания становятся практически незаметными для человеческого глаза. К тому же, они повышают плавность и четкость. NVIDIA утверждает, что с новой технологией эффективная четкость изображения увеличивается вчетверо. Монитор с ULMB2 при частоте 120 Гц выдает такую же четкую картинку в движении, как и обычный монитор с частотой 480 Гц. Для топовых моделей с физической частотой обновления панели в 360 Гц заявлена эффективная частота в 1440 Гц.
После анонса ULMB2 проходит менее года, и вдруг NVIDIA вновь анонсирует свою следующую разработку — G-SYNC Pulsar. «Новая» технология включает в себя все, что есть в ULMB2, добавляя работу с G-SYNC. Это позволяет использовать все преимущества ULMB2 с переменной частотой обновления монитора.
Тандем решает проблему появления размытости при FPS ниже частоты обновления панели. G-SYNC работает в диапазоне от 30 Гц до максимальной частоты, поддерживаемой монитором. Подсветка и овердрайв пикселей теперь адаптируются к этим условиям. Поэтому технологию вертикально-зависимого овердрайва на новых слайдах теперь называют «адаптивным овердрайвом».
Наверняка и ULMB2 разрабатывалась с учетом переменной частоты обновления. Для ранее выпущенных мониторов с ее поддержкой уже заявлено обновление прошивки с поддержкой G-SYNC Pulsar. Однако в NVIDIA по каким-то причинам предпочли представить эти технологии отдельно друг от друга.
Технологии стробирования подсветки обеспечивают менее размытое и более плавное изображение при неизменной частоте обновления экрана. Они долго страдали двумя проблемами: сильным снижением яркости и заметным глазу мерцанием. Теперь эти болячки обещают уйти в прошлое.
Но, как и в случае других технологий компании NVIDIA, такое решение вряд ли станет массовым. Скорее всего, G-SYNC Pulsar останется уделом топовых дисплеев. Дело в том, что для ее работы требуется специальная плата G-SYNC, которая устанавливается в мониторы и удорожает их производство. Возможно, в будущем появятся более простые и дешевые альтернативы этой технологии.
Трехмерная фотограмметрия— преобразование серии цифровых фотографий в трехмерную модель при помощи специализированного программного обеспечения. Для создания модели достаточно вооружиться фотоаппаратом и компьютером с предустановленным софтом. Объект для съемки может быть любым, лучше всего подходят рельефные объекты, скульптуры и т.п. Фотограмметрия — настоящая находка для владельцев 3D-принтеров, разработчиков игр, особенно для тех, кто еще не завел себе 3D-сканер. Этот метод позволит использовать принтер не только для создания шаблонных моделей из интернета, но и для распечатки уникальных объектов.
Именно она помогает преодолеть основное препятствие на пути начинающих владельцев 3D-принтеров — отсутствие понимания того, где взять 3D-модели для работы.
Обычно, чтобы получить модель для печати на 3D-принтере требуется сфотографировать объект максимально возможное количество раз с максимально возможным качеством. Рекомендуется делать 3 прохода: сначала сфотографировать объект со всех сторон с расстояния 2-3 метра для захвата общей формы, потом с расстояния около полуметра для фиксации мелких деталей, и в конце уделить внимание проблемным зонам: темным, труднодоступным или тонким элементам.
Этот тип сканирования может сильно выручить, если вы занимаетесь обрисовкой объектов: есть такие детали, которые сложно измерить линейкой или штангенциркулем из-за их геометрической формы и других особенностей. Это особый случай, когда легче отрисовать объект по готовой 3D-модели (даже в очень низком качестве), чем пытаться угадать с размерами и изобразить что-то похожее.
Попробуем применить метод фотограмметрии для быстрого создания трехмерной модели без профессиональной техники, какого-либо специального оборудования и максимально быстро.
Разрешение фотографий должно быть как можно выше, поэтому лучше всего подойдет, конечно же, профессиональная зеркальная фотокамера. Для простых объектов достаточно и обычного смартфона с хорошей камерой.
Место съемки должно иметь равномерное освещение. Любое искажение пагубно повлияет на конечный результат и осложнит постобработку фотографий. В первую очередь стоит уделить внимание теням и бликам: программа не сможет корректно распознать объект при неравномерном освещении с резкими тенями. Поэтому никакой вспышки и только матовые поверхности на фоне.
Для фотограмметрии существует программа Agisoft PhotoScan. Она платная, но с 30 дневным триалом. Этого достаточно, чтобы ознакомиться с азами технологии. В мануале можно найти множество рекомендаций по созданию фотографий и их обработке, чтобы добиться максимального качества 3D-объекта.
Снимать объект нужно на равномерном фоне. Для фотографирования мелких вещей подойдут софтбоксы (осветители с рассеивателями). Они равномерно осветят место съемки и устранят резкие тени. Но такое оборудование тоже есть не у каждого, поэтому для быстрой оцифровки подойдут и домашние лампы.
В качестве фона возьмем однотонный матовый силиконовый коврик для ручных работ. Одна из его поверхностей не имеет рисунка, она-то и нужна.
В идеале на один объект желательно делать фото в количестве 50–100 штук при хорошем освещении, низком ISO, в высоком разрешении (скажем 5000 х 8000) и иметь для их обработки мощный компьютер.
Однако поскольку в приоритете скорость — начальный набор инструментов для этой статьи прост донельзя: смартфон двухлетней давности, обычный домашний ПК, силиконовый коврик и солнечный свет.
1. Сканировать будем домик, напечатанный на 3D-принтере. Чтобы оценить степень сложности оцифровки объектов, достаточно сделать пару десятков фотографий с разного ракурса. Съемку ведем на одинаковом расстоянии. Между ракурсами должен быть интервал, но не слишком большой: программа не сможет состыковать фото, если между кадрами будет много недостающих элементов.
2. Полученные фото загружаем в программу.
Если компьютер средней мощности, а фотографий не слишком много (для тестовой попытки 18 штук будет достаточно) — обработка пройдет быстро, около пары минут.
3. Теперь нужно зайти в пункт меню «обработка» и выровнять фотографии с высокой точностью.
На этом этапе можно определить, все ли распознается правильно.
4. После прогрузки всех ракурсов получилось некое облако точек.
На удивление, даже для тестовой попытки с небольшим количеством фотографий и далеко не профессиональным оборудованием и условиями съемки, PhotoScan правильно определила ракурсы абсолютно всех фотографий — об этом свидетельствуют зеленые галочки под каждой картинкой.
5. Может возникнуть ситуация, когда программа делает ошибки в определении местонахождения фотографий.
В этом случае для корректной обработки необходимо поставить на каждой из фотографий маркеры-подсказки, по которым софт сможет ориентироваться. К примеру, поставим пару маркеров на первых двух фотографиях. Один из них будет стоять на углу крыши дома, второй установим в основании.
6. Далее программа автоматически доставит маркеры на остальных фотографиях, если сумеет распознать на них один и тот же объект.
Если есть несовпадения, придется вручную передвигать маркеры на нужное место. На всех снимках маркеры нужно подтверждать, кликнув мышкой по точкам. Стоит отметить, что маркеры помогают, но не дают гарантии, что ракурс будет распознаваться правильно.
7. Для проверки результата нужно еще раз составить облако точек с такой же высокой точностью. Устанавливаем галочку «сбросить текущее выравнивание».
8. После второго прохода облако точек показывает примерно ту же картину, что и до установки маркеров.
Вывод таков: информации было достаточно изначально, поэтому проводить этап с ручной установкой маркеров необходимо только если фотография (или несколько) некорректно определилась.
9. Следующий этап — построение более плотного облака точек.
Настройки детализации нужно выставить на уровень «Высокая». В «максимальной» смысла нет, так как перед нами стоит задача быстро добиться приемлемого результата. Иначе процесс оцифровки затянется в несколько раз.
10. Через пятнадцать минут на мониторе можно разглядеть довольно четкий рисунок фигурки. Правда, вместе с фигуркой присутствует немного голубого фона.
С фоном придется поработать чуть позже. А на этом этапе нужно окончательно конвертировать облако точек в трехмерный объект. Для этого надо зайти в подпункт «обработка» и выполнить операцию «построить модель». Тип поверхности — произвольный (3D), исходные данные — плотное облако точек. Количество полигонов нужно установить на максимум, а после этого требуется только нажать кнопку «ОК».
11. Результат.
Получилось неплохо, но модель портит голубой фон.
12. Чтобы избавиться от фона, нужно вручную обрезать его на всех фотографиях в одном из редакторов изображений.
Agisoft PhotoScan поддерживает маски для каждой фотографии (это специальный канал изображения, который будет сообщать программе что обрабатывать, а что трогать не стоит). Обрезка — нудное занятие, автоматизировать его не получится, однако результат окупит все старания.
13. Импортируем маски в программу.
Важное замечание: чтобы не делать нудную работу по добавлению маски к каждой фотографии, сохраняйте маски с тем же именем, что и оригинал, приписывая в конце имени файла «_mask».
14. Далее нужно перейти в программу, затем выделить все изображения и выбрать правой кнопкой мыши опцию «маски — импорт масок».
В диалоговом окне нужно выставить режим «из файла», операция «замена». Шаблон имени файла нужно оставить неизменным. «Применение» — весь проект. Нажимаем кнопку «ОК» и выбираем папку с масками.
15. После добавления масок при просмотре фотографий будет виден выраженный белый контур.
Это свидетельствует о правильном добавлении файлов в программу. В разделе фотографии можно кликнуть на иконку «показать маски».
16. Теперь нужно заново проделать операции по преобразованию фотографий в облако точек: «выровнять фотографии», затем «построить плотное облако точек».
17. Голубой фон пропал, лишь плотное облако точек обрисовывает фигуру. Осталось преобразовать их в 3D-модель и оценить окончательный результат.
Если пытаться сделать фотограмметрию на камеру телефона, итог вряд ли сильно впечатлит вас, однако приемлемых результатов добиться все-таки можно. Многое зависит от самой модели: ее текстуры, отражающей способности, цвета, дизайна.
Свои коррективы вносит и фон, на котором производится фотосъемка объекта. Так, глянцевый материал отражает много света на текстуру модели, поэтому лучше использовать матовые однородные фоны.
Если же учесть все нюансы, то можно добиться действительно качественных результатов. Следует помнить, что 3D-модель, полученная с помощью фотограмметрии в домашних условиях, почти наверняка потребует доработки в 3D-редакторе.
Тем не менее, такой метод сканирования может сэкономить вам уйму времени при моделировании сложных деталей. Кроме того, он служит альтернативой трехмерному сканеру, покупка которого сильно ударила бы по карману.