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

От доставки продуктов до тушения пожаров: как дроны помогают решать повседневные задачи

ИГРА: Настоящие чемпионы. Найдите своего идеального союзника в мире еды

ИГРА: Настоящие чемпионы. Найдите своего идеального союзника в мире еды

Как обновить квартиру: 6 простых шагов к свободному пространству и уютному дому

Как обновить квартиру: 6 простых шагов к свободному пространству и уютному дому

Это что-то с чем-то: 5 продуктов из «ВкусВилла», которые вы не найдёте в масс-маркете

Это что-то с чем-то: 5 продуктов из «ВкусВилла», которые вы не найдёте в масс-маркете

Комментарии
Владимир Шахов
04.09.14 14:26
спасибо за статью) узнал как это происходило так сказать изнутри (:smile:)
Кирилл Ераксин
04.09.14 15:53
Пожалуйста!)
Что вы могли пропустить
«Бесконечное» охлаждение ПК: на Computex 2026 показали долговечную альтернативу термопасте
«Бесконечное» охлаждение ПК: на Computex 2026 показали долговечную альтернативу термопасте
0
Вчера
Новости
Технологии
10 новых приложений для iOS: лучшее за май
10 новых приложений для iOS: лучшее за май
0
Вчера
iOS
iOS
На смартфонах Xiaomi заработал встроенный AirDrop для отправки файлов на устройства Apple
На смартфонах Xiaomi заработал встроенный AirDrop для отправки файлов на устройства Apple
0
Вчера
Android
Новости
В AnTuTu назвали самые мощные Android-смартфоны мая — в топе Red Magic с разогнанным чипом
В AnTuTu назвали самые мощные Android-смартфоны мая — в топе Red Magic с разогнанным чипом
0
Вчера
Новости
Устройства
Футбол, бездорожье и котики: 10 лучших игр для Android и iOS в мае
Футбол, бездорожье и котики: 10 лучших игр для Android и iOS в мае
0
1 июня
Технологии
Технологии
Самая странная утечка: неанонсированные смарт-часы Pixel Watch 5 нашли на дне океана
Самая странная утечка: неанонсированные смарт-часы Pixel Watch 5 нашли на дне океана
0
1 июня
Новости
Устройства
Новая эра ПК: Nvidia анонсировала RTX Spark — «самый эффективный чип в истории», заменяющий видеокарту
Новая эра ПК: Nvidia анонсировала RTX Spark — «самый эффективный чип в истории», заменяющий видеокарту
0
1 июня
Новости
Технологии
Как определять растения, животных и грибы с приложением iNaturalist 
Как определять растения, животных и грибы с приложением iNaturalist 
0
31 мая
Технологии
Технологии
15 аксессуаров Baseus и Ugreen, которые подешевеют на большой распродаже AliExpress
15 аксессуаров Baseus и Ugreen, которые подешевеют на большой распродаже AliExpress
0
30 мая
Устройства
Устройства
Американец превратил ChatGPT в своего цифрового клона с помощью данных из Reddit и Google
Американец превратил ChatGPT в своего цифрового клона с помощью данных из Reddit и Google
0
30 мая
Новости
Технологии
Honor представила игровой смартфон Win Turbo с гигантской батареей на 10 000 мА⋅ч
Honor представила игровой смартфон Win Turbo с гигантской батареей на 10 000 мА⋅ч
0
29 мая
Новости
Устройства
В корзину: 15 смартфонов, которые подешевеют на грядущей распродаже AliExpress
В корзину: 15 смартфонов, которые подешевеют на грядущей распродаже AliExpress
0
29 мая
Устройства
Устройства
На замену Booking и Airbnb: 12 сервисов для поиска отелей и квартир в России
На замену Booking и Airbnb: 12 сервисов для поиска отелей и квартир в России
0
29 мая
Веб-сервисы
Как жить
10 лучших аккумуляторных триммеров для травы, чтобы косить в своё удовольствие
10 лучших аккумуляторных триммеров для травы, чтобы косить в своё удовольствие
0
29 мая
Технологии
Технологии
Представлены смартфоны Xiaomi 17T и 17T Pro — оба с 5‑кратным перископом
Представлены смартфоны Xiaomi 17T и 17T Pro — оба с 5‑кратным перископом
0
28 мая
Новости
Устройства

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

Аватар автора комментария
Алексей Лыскин2 часа назад

0 / 0

Сделайте свой рейтинг фильмов и сериалов, рейтинг лайфхакера, где смогут голосовать пользователи лайфхакера, а также рейтинг книг
Неочевидный выбор: 10 забытых киношедевров 90-х по версии Collider
Аватар автора комментария
Алексей Лыскин2 часа назад

0 / 0

Ничего не покупать😂
Как максимально сэкономить на AliExpress в июне
Аватар автора комментария
Mikhail Malanin2 часа назад

0 / 0

Одна только сраная приставу чая реклама и невозможность оставить коммент как гость отбивает все желание комментировать это и Ваш сайт. Отвратительный сайт. Отвратительный дизайн
В сериал «Гарри Поттер» добавят персонажа, которого не было в фильмах — актрису на роль уже выбрали
Аватар автора комментария
TPM TPM6 часов назад

0 / 0

Мне уже довольно давно хочется приобрести автодом или какое-то другое передвижное жилье. Правда, я не хотел бы в нем жить постоянно, но в путешествие на месяц другой в таком доме я бы с удовольствие съездил. У меня как-то с детства вызывает чувство уюта небольшое пространство, в котором все есть. А уже со взрослого возраста вызывает восхищение компоновка - кажется невероятным, что все можно разместить в маленьком фургоне. Критика подобного образа жизни мне вообще не ясна. Правда, я и сам порой могу высказать мнение, о котором меня не спрашивают, но прямо и настойчиво учить других людей жизни я считаю неуместным. Каждый имеет право жить так, как считает нужным.
Почему мы собрали вещи и стали путешествовать в автодоме: 5 личных причин
Как начать карьеру в телекоме: 3 реальные истории от сотрудников Т2

Как начать карьеру в телекоме: 3 реальные истории от сотрудников Т2

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