Лайфхакер
Лайфхакер
Лучшее
Новости
Жизнь
Рецепты
Здоровье
Кино
Технологии
Покупки
Лучшее
Новости
Жизнь
Рецепты
Здоровье
Кино
Технологии
Покупки
Куда поехать на выходные
Добрые новости
Стыдные вопросы
Есть мнение
Норм или стрём
Личный опыт
Объясняем за минуту
Сервисы
МакрадарТехнологии
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
Это интересно
5 ИИ-навыков, которые работодатели ждут от кандидатов

5 ИИ-навыков, которые работодатели ждут от кандидатов

От станка до зарплаты: 7 необычных экскурсий, которые помогут школьнику понять, какую выбрать профессию

От станка до зарплаты: 7 необычных экскурсий, которые помогут школьнику понять, какую выбрать профессию

Как начать заниматься спортом, если вы живёте в небольшом городе: 5 простых и доступных способов

Как начать заниматься спортом, если вы живёте в небольшом городе: 5 простых и доступных способов

Чем различаются сахарный диабет 1‑го и 2‑го типа и почему это важно знать

Чем различаются сахарный диабет 1‑го и 2‑го типа и почему это важно знать

Комментарии
Владимир Шахов
04.09.14 14:26
спасибо за статью) узнал как это происходило так сказать изнутри (:smile:)
Кирилл Ераксин
04.09.14 15:53
Пожалуйста!)
Что вы могли пропустить
Litejam представила гитару с RGB-подсветкой, которая сама учит играть
Litejam представила гитару с RGB-подсветкой, которая сама учит играть
0
Вчера
Новости
Устройства
В России утвердили обязательные для предустановки приложения на 2027 год
В России утвердили обязательные для предустановки приложения на 2027 год
0
Вчера
Новости
Технологии
Seeed Studio показала электронный блокнот‑стикер с ePaper и магнитным креплением на стену
Seeed Studio показала электронный блокнот‑стикер с ePaper и магнитным креплением на стену
0
Вчера
Новости
Устройства
40 лучших онлайн-игр для Android и iOS в 2026 году — только бесплатные хиты
40 лучших онлайн-игр для Android и iOS в 2026 году — только бесплатные хиты
0
Вчера
Технологии
Технологии
OnePlus подтвердила выпуск смартфона OnePlus 16 с тремя важными улучшениями для геймеров
OnePlus подтвердила выпуск смартфона OnePlus 16 с тремя важными улучшениями для геймеров
0
31 июля
Новости
Устройства
В Chrome для Android появилась персонализация главного экрана
В Chrome для Android появилась персонализация главного экрана
0
31 июля
Браузеры
Новости
Tecno показала концепт смартфона с «нулевыми рамками» и сравнила его с iPhone 17 Pro
Tecno показала концепт смартфона с «нулевыми рамками» и сравнила его с iPhone 17 Pro
0
31 июля
Новости
Устройства
Блогер построил для своего кота стадион с 30 тысячами кресел и голосовым управлением
Блогер построил для своего кота стадион с 30 тысячами кресел и голосовым управлением
0
31 июля
Новости
Технологии
В Великобритании создали «первую в мире систему безболезненных татуировок»
В Великобритании создали «первую в мире систему безболезненных татуировок»
0
31 июля
Новости
Технологии
Друг, который висит на шее: ИИ-кулон Friend обновился и научился разговаривать
Друг, который висит на шее: ИИ-кулон Friend обновился и научился разговаривать
0
31 июля
Новости
Устройства
Доступен в России без костылей: как пользоваться бесплатным чат-ботом DeepSeek
Доступен в России без костылей: как пользоваться бесплатным чат-ботом DeepSeek
0
31 июля
Ликбез
Технологии
Casio показала часы-кольцо CRW‑H001 с пульсометром и вибрацией
Casio показала часы-кольцо CRW‑H001 с пульсометром и вибрацией
0
30 июля
Новости
Устройства
Аналитики подтвердили, что теория о «мёртвом интернете» уже стала реальностью
Аналитики подтвердили, что теория о «мёртвом интернете» уже стала реальностью
0
30 июля
Новости
Технологии
В «Яндекс Картах» появились ИИ-маршруты для прогулок — вот где их найти
В «Яндекс Картах» появились ИИ-маршруты для прогулок — вот где их найти
0
30 июля
Новости
Технологии
Лучшие смартфоны июля
Лучшие смартфоны июля
0
30 июля
Устройства
Устройства

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

Аватар автора комментария
Sergey Gorovoy1 час назад

0 / 0

уже смотрел 2 ленты - "обсессию" и "закулисье реальности". обе очень крутые, понравились.
Названы 20 самых популярных фильмов и сериалов у пиратов в июле
Аватар автора комментария
Николай2 часа назад

0 / 0

Даже не устанавливал 😏😁😁😁
В России утвердили обязательные для предустановки приложения на 2027 год
Аватар автора комментария
Viktor Sorokin3 часа назад

0 / 0

Фуфло какое-то. При скачивании пишет, что ваш Яндекс Браузер устарел. Попробовал на «Фирефох» — такая же байда. И предлагают скачать и установить новые браузеры. На новых такая же байда: ваш браузер устарел, и так по кругу. Полное дерьмо.
Новые шпионские функции в Windows 7 и 8 и способ с ними справиться
Аватар автора комментария
Viktor Sorokin3 часа назад

0 / 0

Туфта какая-то. При скачивании ваш браузер устарел. И предлагают скачать новый браузер. В новом браузере такая же фигня ваш браузер устарел и так по кругу . На баловка
Новые шпионские функции в Windows 7 и 8 и способ с ними справиться
Поваренная книга донора. 15 простых и полезных рецептов, которые поддержат организм до и после сдачи крови

Поваренная книга донора. 15 простых и полезных рецептов, которые поддержат организм до и после сдачи крови

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