Как попасть в Microsoft

Андрей Артемьев работает в американском офисе Microsoft в Редмонде с 2015 года. Вакантное предложение он получил после студенческой стажировки в 2012 году, еще когда был студентом Белорусского государственного университета информатики и радиоэлектроники. За четыре года в компании он успел принять участие в разработке таких крупных проектов, как Xbox, Windows 10, Windows Live. Сейчас он специализируется на ядре операционной системы Windows нового поколения.

По словам Андрея, попасть на практику в Microsoft, Google или Apple непросто, но если вам удастся достойно пройти все этапы проверок и собеседований, то ваша стажировка может стать началом карьеры в одной из этих компаний.

«Я советую вам отправлять документы во все эти корпорации каждый год до тех пор, пока вы не получите приглашение. В 80% случаев ваша практика закончится предложением если не о работе, то о повторной и более длительной стажировке. Пробуйте, тем более, что визу в данном случае сделать не так уж сложно, чего нельзя сказать о разрешении на работу. У меня на его оформление ушел не один год, поэтому пока визовый процесс для вас наименее безболезненный — дерзайте», — поделился своим мнением Андрей Артемьев.

Открытая лекция представителя компании Microsoft Андрея Артемьева
Открытая лекция представителя компании Microsoft Андрея Артемьева

Как устроен компьютер изнутри

Операционная система Windows от Microsoft впервые была спроектирована в 1985 году. На сегодняшний день существует 1,5 миллиарда машин на Windows из них 900 миллионов используют версию Windows 10. За всю свою историю Windows поддерживал 8 различных архитектур. Изначально он создавался как гибкая операционная система, которая могла бы применяться на большом количестве устройств. Для примера, Windows использовался на умных браслетах, гаджетах, игровых приставках, очках дополненной реальности, на планшетах, серверных станциях, банкоматах и даже на автомобилях — Ford и Lincoln.

Если рассматривать Windows как экосистему, то на самом верху пищевой цепочки программирования находятся пользовательские программы. По сути, это всё, что вы пишите на Java, PHP. Уровнем ниже располагается сама операционная система, то есть механизмы, которые позволяют вашим программам работать, подчиняя железо написанному коду. Углубляясь еще на уровень ниже, мы достигаем архитектуры компьютера. На деле это архитектура материнской платы и ее прошивка. Далее следует микроархитектура, то есть архитектура процессора и микроконтроллеров. На ступень ниже расположены логические схемы, которые умеют выполнять простые логические операции. Еще глубже спрятаны цифровые схемы, которые оперируют уже нулями и единицами. Сами цифровые схемы состоят из аналоговых схем — это полупроводниковые радиоэлементы, которые работают по законам физики. И на последней ступеньке полупроводниковые элементы — транзисторы, диоды, резисторы.

Открытая лекция представителя компании Microsoft Андрея Артемьева
Открытая лекция представителя компании Microsoft Андрея Артемьева

Ум и сердце компьютера

Согласно классическому определению операционная система — это виртуальная машина, выполняющая роль менеджера ресурсов. Что касается пользовательской операционной системы, то у нее есть еще 3 дополнительных элемента: экосистема, платформа и инфраструктура.

Операционная система всегда рассматривается в двух плоскостях: клиентском и серверном (User mode и Kernel mode). За счет чего происходит это деление? Если учесть, что и клиент, и сервер используют одни и те же ресурсы, память, процессор, к тому же они располагаются на одном жестком диске. На деле для разведения сфер влияния клиента и сервера есть две основные возможности: режимы работы процессора (кольцо безопасности) и разделение памяти.

Кольцо безопасности подразумевает классификацию всех, вступающих в контакт с компьютером, на две категории — нулевой уровень (самый привилегированный) и третий уровень (менее привилегированный). В принципе в большинстве процессоров заложены 4 роли (уровня), но Windows использует только 2 из них в силу своей политики быть максимально гибкой платформой для разных устройств.

Жесткий диск. Источник: shutterstock.com
Жесткий диск. Источник: shutterstock.com

Соответственно, память, заложенная на жестком диске, разделена на код и данные пользователей. Доступ клиента в серверную часть ограничен.

Механика клавиатуры

Для того, чтобы понять, как работает клавиатура, нужно разобраться с тем, что из себя представляет клавиша. По сути, это медная пластина, которая расположена над двумя проводами, не соприкасающимися между собой. Когда вы нажимаете на клавишу, то цепь замыкается и появляется ток. Это напряжение улавливает микропроцессор, который лежит в основе клавиатуры. На него залита программа, которая в бесконечном цикле проверяет, поступает ли на каждую из клавиш напряжение, то есть оно подает на один контакт напряжение и смотрит, вернулось ли оно назад. Микропроцессор в свою очередь передает информацию компьютеру.

Материнская плата и жесткий диск

Материнская плата. Источник: shutterstock.com
Материнская плата. Источник: shutterstock.com

В основе компьютера всегда лежит материнская плата. По сути она напоминает примитивный организм, у которого нет сознания, но есть развитая нервная система в виде контроллеров. Микроконтроллеры, входящие в ее состав, сообщаются между собой через шины. Архитектура материнской платы включает два моста: северный и южный. На южном мосте замыкаются все медленные контроллеры – клавиатура, жесткий диск, USB. На северном мосте — все быстрые контроллеры: прерывание, оперативная и графическая память.

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