Лайфхакер
Лайфхакер
Лучшее
Рубрики
Рецепты
Подкасты
Сервисы
Колонки
Лучшее
Рубрики
Рецепты
Подкасты
Сервисы
Колонки
🎄 Ёлка Лайфхакера
Новости
Здоровье
Спорт и фитнес
Покупки
Технологии
Отношения
Кино
Реклама
МакрадарТехнологии
3 сентября 2014

Как функция многозадачности впервые появилась на Macintosh

Фото автора Кирилл Ераксин
Кирилл Ераксин

Как функция многозадачности впервые появилась на Macintosh

Абсолютно каждый современный человек пользуется функциями многозадачности на своих устройствах. И не важно, что это: смартфон, планшет или домашний компьютер. Большинство людей даже не задумываются над тем, как устроена работа системы с несколькими процессами одновременно: мы просто общаемся в сети, работаем с разными документами, слушаем музыку и смотрим сериалы, ловко перемещаясь между множеством запущенных программ. Данная история, автором которой является Энди Герцфелд, не содержит объяснения сложных тем по распределению памяти и других скучных технических руководств, но рассказывает о том, как и благодаря чему многозадачность появилась в компьютерах компании Apple.

Первым коммерческим продуктом, над которым я работал после ухода из Apple в марте 1984, был Thunderscan — достаточно дешевый сканер для Macintosh. Его создание проходило в сотрудничестве с крошечной компанией Thunderware. Работа началась в июне 1984 года, а к началу октября проект был практически завершен.

Том Петри, один из двух руководителей Thunderware (вторым был Виктор Булл, с которым я работал над термопринтером Silentype, ставшим первым проектом, созданным мной для Apple), устроил несколько презентаций для различных компьютерных журналов, чтобы снискать положительные отзывы, необходимые для продвижения продукта. 11 октября 1984 года я с Тимом отправился в офис в Хиллсборо, чтобы продемонстрировать Thunderscan для журнала Byte.

Рецензентом Byte был Джон Маркоф. Он же был автором рубрики о технологиях в San Francisco Chronicle. Джон считался одним из лучших журналистов, освещающих индустрию персональных компьютеров. Том рассказал о Thunderscan, а позже начал демонстрационное сканирование. Джон задал несколько вопросов, записанных в текстовом редакторе его IBM PC. Во время моего очередного ответа у него зазвонил телефон.

Извинившись, Джон нажал комбинацию клавиш на клавиатуре, после чего на экране компьютера текстовый редактор быстро сменился на другое приложение. Он разговаривал по телефону в течение минуты или двух, а затем, закончив беседу, вернулся к списку вопросов про Thunderscan с помощью всё той же комбинации клавиш.

«Что ты только что сделал? — я заинтересовался его программным обеспечением, — как ты смог переключиться на другую программу так быстро?»

«О, я использую Memory Shift. Разве ты с этим не сталкивался? — отвечал Джон, — Это утилита DOS, которая позволяет держать в памяти несколько приложений и быстро переключаться между ними. Я очень часто пользуюсь ей в последнее время». Он продемонстрировал процесс переключения несколько раз, чтобы показать мне скорость работы этой утилиты. 

«Знаете, думаю я смогу сделать что-то подобное для Macintosh», — выпалил я, прежде чем осознанно всё обдумал.

Поставки Macintosh 512K начались несколько недель назад. Я пробовал запустить несколько приложений одновременно на 512K, но был загнан в угол конфликтами памяти и другими потенциальными подводными камнями. Но теперь, после увиденного перераспределения памяти в действии, мне пришла в голову идея, которую, как казалось, не слишком сложно реализовать. «Да, было бы здорово», — согласился Джон. Я продолжал демонстрацию Thunderscan, но не мог полностью сконцентрироваться, думая о переключении между приложениями. Мне казалось, что создание такой утилиты — вполне выполнимая задача, результат которой будет чрезвычайно полезен. Том Петри заметил моё волнение из-за новой идеи. После презентации он отвёз меня домой и напомнил о моих обязательствах, взяв с меня обещание закончить альфа-релиз Thunderscan как можно скорее, прежде чем начинать что-то новое. Мы договорились о списке задач, которые я должен был выполнить за две ближайшие недели. Как только альфа-версия была готова, я смог взять небольшой перерыв для работы над переключателем приложений, чтобы позже вновь погрузиться в работу над Thundescan, готовя версию 1.0 к концу ноября. Полируя Thunderscan, я обдумывал нюансы разработки переключателя программ. Выбирая между загрузкой приложений в единую область, которая оптимально бы использовала память, и использованием отдельных зон для лучшей изоляции каждой программы, я остановился на втором варианте, хотя и не был уверен в правильности этого выбора. Предстояло решить много маленьких проблем. Самым важным было то, что приложения хранят в памяти достаточно глобальных переменных, которые должны быть заменены во время переключения, так как каждая программа имеет собственный набор таких переменных. Далеко не все моменты оказались для меня очевидными. Я знал, что мой первый опыт не будет идеальным, но я уверенно справлялся с отладкой всех неизбежных проблем. Через несколько дней после начала завершающей стадии работ над Thunderscan я получил очень интересный телефонный звонок от Джеффа Харберса который был менеджером приложений Macintosh в команде Microsoft. Он сообщил, что в Microsoft разрабатывается очень важный стратегический проект, и они думают, что я был бы идеальным кандидатом для его реализации. Джефф не стал раскрывать других подробностей по телефону, но предложил прилететь в Сиэтл, чтобы обсудить всё лично. Я был достаточно заинтригован, чтобы прекратить работу над Thunderscan и сесть в самолёт. Джефф подобрал меня в аэропорту, и мы направились в главное здание компании Microsoft, где к нам присоединился Нил Конзен — талантливый 23-летний программист под Macintosh. Я знал его со времен нашей совместной работы над добавлением функций к языку Ассемблер. Ему на тот момент было всего 16 лет. Джефф спросил меня, над чем я сейчас работаю. Я рассказал ему про Thunderscan, но когда упомянул об экспериментах с утилитой для переключения приложений у него отвисла челюсть. Джефф не мог поверить, что я действительно сказал это. 

«Это именно то, о чём мы хотели поговорить! Здорово, что Вы уже над этим работаете!», — воскликнул Джефф.

Он объяснил, что необходимо приложить много усилий, чтобы заставить работать приложения стабильно в небольших областях памяти Macintosh 128K. К тому же, Lotus недавно объявила о новом пакете программ Jazz для Macintosh 512K, который позволяет легко и быстро переключаться между его функциональными областями. Целью визита было убедить меня написать аналогичное приложение-коммутатор по контракту с Microsoft. Нил Конзен представил потенциальный проект разрабатываемой утилиты на доске. Он предложил использовать единую зону памяти, что я сразу отверг, рассказав об альтернативном подходе с отдельными областями, дающими наибольшую надёжность. Мой день в Microsoft завершился закрытым заседанием с Биллом Гейтсом. Джефф отвёл меня в его кабинет и, извинившись, оставил нас наедине. После дежурного обмена любезностями Билл посмотрел мне в глаза и спросил: «Ты действительно хороший программист, не так ли? Я думаю, ты действительно должен быть хорошим программистом». «Думаю, да», — ответил я, не понимая, почему он мне льстит. «Я тоже так думаю. Как ты считаешь, сколько времени потребуется, чтобы реализовать этот проект? Месяц или два? Мне кажется, хороший программист должен управиться с этим за пару месяцев». «Понятия не имею, — ответил я, — даже не понимаю, возможно ли это реализовать». «Давай разберёмся, — ответил он немного снисходительным тоном, — это не должно занять более десяти тысяч строк кода, а действительно хороший программист в состоянии писать не менее тысячи строк в неделю. Думаю, это займёт у тебя не более десяти недель». Я не знал, что ему ответить, поэтому просто молчал и слушал. «А как ты думаешь, сколько денег может заработать хороший программист? Мы платим нашим лучшим сотрудникам около двух тысяч долларов в неделю. Тебе не кажется, что тебе должны платить больше?» «Не знаю», — ответил я. Стало понятно, что Билл пытался настроить меня на очень быстрое написание этой утилиты. 

«Если ты будешь получать около четырёх тысяч долларов в неделю, — продолжил он, — то в итоге за десять недель ты можешь получить сорок тысяч».

Я сказал ему, что сделаю всё возможное для того, чтобы эта утилита хорошо работала с приложениями от Microsoft. Я хотел добиться этого в любом случае и без этого предложения, ведь программы Microsoft были очень популярны среди пользователей. Мы пожали друг другу руки, и я покинул кабинет на позитивной ноте. Вернувшись домой в Пало-Альто, я горел желанием разработать концепт утилиты для переключения программ, несмотря на кончающиеся сроки по подготовке Thunderscan. В конечном итоге я должен был создать пользовательский интерфейс для этой утилиты. Я работал без перерыва 20 часов подряд, разрабатывая ядро программы. Невероятно приятно было наблюдать постепенно улучшающуюся стабильность этой утилиты, решая очередные проблемы с памятью. Работая над своим проектом, я заметил Бада Триббла, вернувшегося в Apple в июле 1984 года на должность менеджера программного обеспечения после врачебной стажировки в университете Вашингтона и жившего недалеко от меня. Я пригласил Бада к себе, чтобы продемонстрировать быстрое переключение между MacPaint, MacWrite и MacDraw. Он был впечатлён, но, к моему удивлению, пожаловался, что переход происходит слишком быстро. 

«А если кто-то осуществит это переключение случайно? Это может вызвать путаницу, — сказал он мне, — может быть можно использовать анимацию для создания плавных переходов?».

Эта идея показалась мне действительно хорошей. Мы решили, что меняющиеся программы должны прокручиваться по горизонтали, а все запущенные приложения могут быть наглядно представлены в небольшой области экрана. Я быстро написал необходимый код и был поражен тем, насколько здорово программы проносились по экрану. Я демонстрировал этот концепт своим друзьям из Apple и некоторым простым пользователям. Абсолютно все положительно восприняли мой проект. К сожалению, мне катастрофически не хватало времени на доработку Thunderscan, но я всё-таки выполнил обещанное и он был готов в конце ноября. switcher_about После короткого отпуска пришло время вернуться к разработке утилиты для переключения приложений, которую я стал называть Switcher. В начала декабря у меня была реализована большая её часть, включая пользовательский интерфейс. В начале января 1985 года я получил телефонный звонок от Гая Кавасаки, который сказал мне, что компания Apple заинтересована в покупке Switcher. Первым этапом было проведение презентации продукта для Стива Джобса. Войдя в его кабинет, я немного волновался, оценивая свой проект в четверть миллиона долларов, но был уверен, что Стив никогда не заплатит мне столько. Я гордился своим детищем, и мне была интересна реакция Джобса на него. Запустив MacWrite, MacPaint, MacDraw и Finder, я преднамеренно продемонстрировал Switcher с выключенной анимацией, чтобы позже произвести более эффектное впечатление. Я быстро переключался между приложениями в обоих направлениях. 

«Хорошо, я увидел достаточно, — прервал меня Стив, — это здорово. Мы бы хотели интегрировать этот проект в Mac».

На мгновение он застыл и посмотрел на меня так пристально, будто хотел меня напугать. «Я не хочу, чтобы ты воспользовался Apple». «Что ты имеешь в виду?», — озадачившись его словами, я задал ему вопрос. «Ты не сможешь дописать программу без информации, которую можешь получить здесь. В итоге у тебя пропадёт желание заканчивать проект». «Программа готова ровно наполовину. Сомневаюсь, что если мне заплатят честно, то я не буду замотивирован на завершение работы», — я начал злиться. Осмотрев меня еще более серьёзным взглядом, Стив озвучил единственное число без каких-либо пояснений. «Сто тысяч долларов». «Не знаю, — ответил я ему, — думаю, что Switcher стоит намного дороже». 

«Не спорь со мной, — парировал Джобс, — это честная цена, и ты это знаешь».

Казалось, что я не имею никакой альтернативы, и мне пришлось капитулировать перед ценообразованием Стива. С ним действительно было очень трудно спорить. В конце концов при подписании окончательного соглашения с Гаем Кавасаки мне удалось получить бонус, который в будущем принёс мне ещё пятьдесят тысяч. Как и ожидалось, самой трудной частью в работе над Switcher было заставить его стабильно работать с приложениями Microsoft. Разработчики позволяли себе различные вольности с системой, уклонялись от общепринятых инструкций, что вызывало у меня определенные трудности. Мне необходимо было переводить псевдо-код в байт-код. Перевод с помощью шести команд для последующей отладки оказался довольно болезненным для Switcher. Одной из последних проблем, с которой я столкнулся до первого релиза Switcher в марте 1985 года, стала реализация возможности «убивать» зависшее приложение без необходимости завершать работу во всех сразу. Я добавил эту функцию вместе с возможностью мониторинга состояния запущенных программ. Мне необходимо было выбрать достаточно редкую комбинацию клавиш для запуска этой функции. Я выбрал четыре кнопки, на которые, как казалось, было очень сложно наткнуться случайно, но всё же был удивлен, когда получил телефонный звонок от Джеффа Харберса из Microsoft. gates_letter_t «Мне нравится эта функция принудительного завершения работы программ, но тебе придётся изменить сочетание клавиш, потому что мы используем такое при работе с Microsoft Word». Джефф пояснил мне, что Word является очень сложным редактором и имеет огромный диапазон сочетаний клавиш. Джефф не предложил ничего конкретного, но позвонил мне на следующий день, предложив другую комбинацию. 

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

Релиз готовой версии Switcher официально состоялся в апреле 1985 года. Я поддерживал несколько его версий после запуска, но в конце концов передал его Филу Голдману, талантливому программисту из Принстона, попавшему на работу в Apple. Он начал разрабатывать MultiFinder, который стал приемником Switcher в 1987 году.

via Folklore.org

Если нашли ошибку, выделите текст и нажмите Ctrl + Enter

Лучшие предложения

OnePlus 15R

Надо брать: новый субфлагман OnePlus 15R дешевле 39 000 рублей на AliExpress

42 отличных товара, которые часто покупают на AliExpress

36 отличных товаров, которые часто покупают на AliExpress

5 samyh populyarnyh vneshnih akkumulyatorov s AliExpress

5 самых популярных внешних аккумуляторов с AliExpress

Кроссовки от Golden Camel

Надо брать: качественные зимние кроссовки от Golden Camel за полцены

10 muzhskih zimnih kurtok so skidkami do 64%

10 мужских зимних курток со скидками до 64%

У этого шуруповёрта тысячи восторженных отзывов на маркетплейсах

У этого шуруповёрта тысячи восторженных отзывов на маркетплейсах

Находки AliExpress: самые интересные и полезные товары 2025 года

Находки AliExpress: самые интересные и полезные товары 2025 года

Апельсиновая Альфа-карта

Забираем дебетовую карту с кешбэком 7% и 5 000 баллов в «Пятёрочке»

Это интересно
3 вида киберугроз, которые могут серьёзно навредить бизнесу

3 вида киберугроз, которые могут серьёзно навредить бизнесу

Мой особенный друг: как взять из приюта питомца с особыми потребностями и не пожалеть

Мой особенный друг: как взять из приюта питомца с особыми потребностями и не пожалеть

Надо брать: «Имаджинариум» — культовая игра на ассоциации

Надо брать: «Имаджинариум» — культовая игра на ассоциации

проигрыватели на разный бюджет

Проигрыватель в подарок: 3 варианта на разный бюджет

Комментарии
Владимир Шахов
04.09.14 14:26
спасибо за статью) узнал как это происходило так сказать изнутри (:smile:)
Кирилл Ераксин
04.09.14 15:53
Пожалуйста!)
Что вы могли пропустить
Надо брать: новый субфлагман OnePlus 15R дешевле 39 000 рублей на AliExpress
Надо брать: новый субфлагман OnePlus 15R дешевле 39 000 рублей на AliExpress
0
9 января
Покупки
Технологии
9 приложений-шагомеров для Android, которые помогут стать активнее
9 приложений-шагомеров для Android, которые помогут стать активнее
0
9 января
Технологии
Технологии
Dreame представила умные кольца с вибрацией, ЭКГ и NFC
Dreame представила умные кольца с вибрацией, ЭКГ и NFC
0
8 января
Новости
Устройства
В ChatGPT появится раздел для консультаций по вопросам здоровья
В ChatGPT появится раздел для консультаций по вопросам здоровья
0
8 января
Новости
Технологии
Как оплачивать покупки в App Store в России
Как оплачивать покупки в App Store в России
0
8 января
iOS
iOS
Бюджетный iPhone 17e сменит «чёлку» на Dynamic Island и будет заметно мощнее
Бюджетный iPhone 17e сменит «чёлку» на Dynamic Island и будет заметно мощнее
0
7 января
Новости
Устройства
Сервисы и приложения, которые помогут вам достичь своих целей в новом году
Сервисы и приложения, которые помогут вам достичь своих целей в новом году
0
6 января
Технологии
Технологии
Представлен Honor Power2 — смартфон с батареей 10 080 мА·ч и дизайном iPhone 17 Pro
Представлен Honor Power2 — смартфон с батареей 10 080 мА·ч и дизайном iPhone 17 Pro
0
6 января
Новости
Устройства
Lego представила Smart Brick — деталь-компьютер, которая оживляет целые наборы
Lego представила Smart Brick — деталь-компьютер, которая оживляет целые наборы
0
6 января
Новости
Устройства
Названы 19 устройств Xiaomi, поддержка которых завершится в 2026 году
Названы 19 устройств Xiaomi, поддержка которых завершится в 2026 году
0
5 января
Новости
Устройства
Представлены умные очки Xreal 1S с функцией 3D-конвертации любого контента
Представлены умные очки Xreal 1S с функцией 3D-конвертации любого контента
0
5 января
Новости
Устройства
На CES 2026 показали настольную ИИ-лампу Obboto в виде сферы из Лас-Вегаса
На CES 2026 показали настольную ИИ-лампу Obboto в виде сферы из Лас-Вегаса
0
5 января
Новости
Устройства
Как установить «СберБанк Онлайн», «Т-Банк», «Альфа-Банк» и не только на iPhone
Как установить «СберБанк Онлайн», «Т-Банк», «Альфа-Банк» и не только на iPhone
0
5 января
Ликбез
Технологии
Представлен ретро-смартфон Clicks Communicator с QWERTY‑клавиатурой
Представлен ретро-смартфон Clicks Communicator с QWERTY‑клавиатурой
0
4 января
Новости
Устройства
Pebble перезапустила свои самые тонкие часы с новой моделью Pebble Round 2
Pebble перезапустила свои самые тонкие часы с новой моделью Pebble Round 2
0
4 января
Новости
Устройства

Новые комментарии

Аватар автора комментария
sergey panfёrov10 минут назад

0 / 0

Левиафан (фильм, 1989)
Страшно, но очень интересно: Collider назвал 10 лучших научно-фантастических хорроров
Аватар автора комментария
Timofei Valov16 минут назад

0 / 0

Ты что-то нормальное смотрела, что за дерьмо а не топ
10 лучших аниме-сериалов на Netflix, которые стоит увидеть  
Аватар автора комментария
Svetlana G3 часа назад

0 / 0

А чем занимается ваша жена?
Что я поняла, когда после долгого перерыва начала жить одна
Аватар автора комментария
andrew babey3 часа назад

0 / 0

копать снег
Как быстро скинуть то, что наели за новогодние каникулы
Добро пожаловать в научную фантастику! Как технологии меняют современные компании и жизнь их клиентов

Добро пожаловать в научную фантастику! Как технологии меняют современные компании и жизнь их клиентов

Лайфхакер
Информация
О проектеРубрикиРекламаРедакцияВакансииДля начинающих авторовО компании
Подписка
TelegramВКонтактеTwitterViberYouTubeИнициалRSS
Правила
Пользовательское соглашениеПолитика обработки персональных данныхПравила применения рекомендательных технологийПравила сообществаСогласие на обработку персональных данныхСогласие для рекламных рассылокСогласие для информационной программы
18+Копирование материалов запрещено.
Издание может получать комиссию от покупки товаров, представленных в публикациях