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

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

10 магазинов со стильной и необычной одеждой на AliExpress

10 магазинов со стильной и необычной одеждой на AliExpress

Дебетовая карта с кешбэком Ozon банк

Получаем скидки до 30% на Ozon с бесплатной картой маркетплейса

«Velikaya kitajskaya rasprodazha» na AliExpress: skidki do 90%, pochti na vsyo

«Великая китайская распродажа» на AliExpress: скидки до 90% почти на всё

Видеорегистратор с двумя камерами

Надо брать: недорогой видеорегистратор с двумя камерами

10 tovarov dlya dachnogo sezona

10 товаров для дачного сезона, которые нужно купить уже сегодня

Топ-10 смартфонов, которые стоит купить на Великой китайской распродаже от AliExpress

Топ-10 смартфонов, которые стоит купить на Великой китайской распродаже от AliExpress

10 мелочей для кухни, которые решают много бытовых проблем

10 мелочей для кухни, которые решают много бытовых проблем

3D-принтер Flashforge AD5X

Удобный для новичков 3D-принтер Flashforge AD5X отдают со скидкой 41%

Это интересно
Как сегодня в России создают новые лекарства и учатся «заживлять» трещины в металле

Как сегодня в России создают новые лекарства и учатся «заживлять» трещины в металле

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

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

Куда поехать за классным сувениром: 7 точек Золотого кольца с удивительными народными промыслами

Куда поехать за классным сувениром: 7 точек Золотого кольца с удивительными народными промыслами

Как найти покупателей без помощи социальных сетей

Как найти покупателей без помощи социальных сетей

Комментарии
Владимир Шахов
04.09.14 14:26
спасибо за статью) узнал как это происходило так сказать изнутри (:smile:)
Кирилл Ераксин
04.09.14 15:53
Пожалуйста!)
Что вы могли пропустить
Aulumu выпустила брутальный пауэрбанк M10 с поддержкой трёх типов зарядки
Aulumu выпустила брутальный пауэрбанк M10 с поддержкой трёх типов зарядки
0
Вчера
Новости
Устройства
Топ-10 смартфонов, которые стоит купить на Великой китайской распродаже от AliExpress
Топ-10 смартфонов, которые стоит купить на Великой китайской распродаже от AliExpress
0
Вчера
Покупки
Устройства
Canva научилась делить «плоские» изображения на редактируемые слои с помощью ИИ
Canva научилась делить «плоские» изображения на редактируемые слои с помощью ИИ
0
Вчера
Веб-сервисы
Новости
Почему люди скупают старые iPod в 2026 году и какой вариант стоит искать
Почему люди скупают старые iPod в 2026 году и какой вариант стоит искать
0
Вчера
Технологии
Технологии
Как iPad, но с компромиссами: появились новые подробности о складном iPhone
Как iPad, но с компромиссами: появились новые подробности о складном iPhone
0
Вчера
Новости
Устройства
Слияние двух платформ: Microsoft раскрыла первые детали гибридной консоли Xbox Project Helix
Слияние двух платформ: Microsoft раскрыла первые детали гибридной консоли Xbox Project Helix
0
Вчера
Новости
Устройства
Looking Glass представила фоторамку, превращающую любые изображения в голограммы
Looking Glass представила фоторамку, превращающую любые изображения в голограммы
0
11 марта
Новости
Устройства
Кризис памяти ударит по экранам iPhone 18 Pro и смартфонов на Android
Кризис памяти ударит по экранам iPhone 18 Pro и смартфонов на Android
0
11 марта
Новости
Устройства
В пару кликов: как загрузить любые свои треки в «Яндекс Музыку»
В пару кликов: как загрузить любые свои треки в «Яндекс Музыку»
0
11 марта
Технологии
Технологии
Xiaomi раскрыла график выхода HyperOS 3.1 — обновление получат 56 устройств
Xiaomi раскрыла график выхода HyperOS 3.1 — обновление получат 56 устройств
0
11 марта
Android
Новости
iRobot представила компактный робот‑пылесос Roomba Mini — он как игрушечный
iRobot представила компактный робот‑пылесос Roomba Mini — он как игрушечный
0
11 марта
Новости
Устройства
«Mac для масс»: крупные СМИ расхвалили бюджетный MacBook Neo в первых рецензиях
«Mac для масс»: крупные СМИ расхвалили бюджетный MacBook Neo в первых рецензиях
0
11 марта
Новости
Устройства
Как проверить, не написал ли текст ИИ, и есть ли в этом смысл
Как проверить, не написал ли текст ИИ, и есть ли в этом смысл
0
11 марта
Ликбез
Технологии
В Photoshop появился ИИ-помощник, который сам редактирует изображения
В Photoshop появился ИИ-помощник, который сам редактирует изображения
0
11 марта
Новости
Технологии
В ChatGPT появился Shazam: бот теперь умеет определять и находить песни
В ChatGPT появился Shazam: бот теперь умеет определять и находить песни
0
10 марта
Новости
Технологии

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

Аватар автора комментария
Виктор Медведев25 минут назад

0 / 0

Ну хоть на обед время появится
Дни на Земле увеличиваются с рекордной скоростью за последние 3,6 миллиона лет
Аватар автора комментария
RUbY21362037 минут назад

0 / 0

друг постоянно зовет гулять, я ему пишу что ВСЕГДА занят. Я скинул ему расписание того, когда я занят. Так он именно в это время пишет мне "го гулять". Если отказать, он начнет орать и выпрашивать написать почему. Если я напишу что я на даче, он попроси скинуть видео. Если я напишу что не хочу, он обижается и потом обзывает. Если я напишу что я занят, он напишет "всегда занят, времени на друга нет. Если напишу что плохо, он говорит "докажи". Как я докажу что я болею??? Что за друг такой...
10 признаков, что друзья вас используют
Аватар автора комментария
Evialroot38 минут назад

0 / 0

Первое место заняла картина «Грешники» 🤣🤣🤣 Дальше можно не читать ))
Collider назвал 10 лучших хорроров последних 5 лет — в списке два фильма Зака Креггера
Аватар автора комментария
Kremlina Nova57 минут назад

0 / 0

Не люблю бестактных людей. Они то и хоть говорят правду, но порой это очень обидно.
5 ловушек в общении, которые мешают договориться
Подарки, которые сближают: 5 товаров с распродажи Авито для второй половинки  

Подарки, которые сближают: 5 товаров с распродажи Авито для второй половинки  

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