Робочі місця: анна воробьева, провідний розробник віртуальних машин в компанії parallels

Зміст:

Anonim

Дівчата процвітають в типово чоловічих заняттях, і цей факт вже давно перестав сприйматися як суспільний феномен. Сьогоднішня героїня рубрики Анна Воробйова може дати сто очок вперед будь-якому чоловіку ІТ-професіоналу. Вона - провідний розробник одного з ключових компонентів віртуальних машин в компанії Parallels. Саме час з'ясувати, як їй працюється в області системного програмування і чи є, на її погляд, місце дівчатам у командах софтверних інженерів.

Чим ви займаєтеся на роботі?

Я - провідний розробник core-команди в компанії Parallels. Core-команда займається створенням і удосконаленням так званого монітора віртуальної машини - центрального компонента віртуалізації у всій лінійці гіпервізорних продуктів Parallels. Саме в моніторі створюється ілюзорний процесор, пам'ять, всі пристрої.

Згодна, це кілька нетипове заняття для дівчини. За мою кар'єру в IT слід дякувати батьків - вони дуже турбувалися про майбутнє для свого цілком гуманітарного чада. Але вже в інституті (в МЕСІ) я зіткнулася справжніми IT-фанатиками, які були готові днями безперервно говорити про побудову операційних систем. Двоє найбільш просунутих хлопців пішли в Parallels, коли вона була зовсім маленькою компанією. Вони так захоплююче розповідали про рівень вирішуваних завдань і за тією атмосферою в колективі, що їх історії в кінцевому рахунку допомогли зробити вибір місця роботи.

Безперервний драйв навряд чи можливий в роботі. Праця софтверного інженера - не виняток. Трапляються як творчі підйоми, так і періоди творчої апатії. Але в цілому віртуалізація і хмарні обчислення не дають нудьгувати. У цій галузі постійно щось відбувається, потрібно відповідати цим новим викликам. Крім того, ми постійно вдосконалюємо свій код, свої технології, весь час чогось вчимося. Особливо багато дають поїздки на міжнародні конференції.

Наш монітор віртуальної машини загальний для всієї лінійки продуктів з гіпервізорной виртуализацией - Parallels Desktop, Parallels Workstation, Parallels Server. По суті монітор - це така мікро-операційна система, яка живе за своїми правилами, зі своїми аллокаторамі пам'яті, відкладеними викликами, таймерами і синхронізації. І при цьому монітор зовсім невидимий для хостовой операційної системи - додаток звертається до драйверу, драйвер починає роботу і - а тут магія! - ми вже в моніторі, а не в операційній системі. Власне, цей магічний перемикач контекстів з усіма його універсальність на голому асемблері - привід для моєї професійної гордості. Він, ну і ще сильно покращена щільність віртуальних машин на одиницю обладнання в серверному продукті Parallels Server Bare Metal. Ми там такого з пам'яттю накрутили, що любо-дорого подивитися.

В ході пошуку оптимальних рішень роботи Virtual Machine Monitor мені доводиться закопуватися дуже глибоко в ядро ​​операційних систем. Дізнайся про це розробники ОС, вони, напевно, дуже б здивувалися. Важко повірити, але навіть в системах від Apple час від часу бувають помилки. Під час нашої першої спортіровалі наш відомий серед «маководов» Parallels Desktop (PD) на 64-бітове додаток, хостової Mac OS стала сама по собі абсолютно хаотично перевантажуватися або повисати на смерть. Шукати помилку випало мені - ймовірно, в силу поєднання моєї відповідальності і загальної трудомісткості завдання. Діагностики при таких видах «падінь» не залишається, тому я сама шерсть стандартні «64-бітові» проблеми.

Після тривалих пошуків з'ясувалося, що MacOS для 64-бітових процесів може використовувати невірні дані, покладаючись на збережену копію. Операційна система при перемиканні на 64-бітний процес не повністю перевантажувала все регістри процесора (для тих, хто в темі, мова про GS і FS). Процесор працював на закешовану значеннях. А наш монітор віртуальної машини при роботі (як раз при тому магічному перемиканні) відновлював все регістри, в тому числі і невірні. Дані в цих регістрах були настільки критичні для ОС, що вона не могла навіть намалювати повідомлення про критичну помилку ядра (kernel panic), рекурсивно викликаючи обробник помилки. PD оновлював дані, покладаючись на те, що вони коректні. До честі Apple варто відзначити, що вони оперативно реагують на баги, і вже в Lion-е (менше ніж через рік) проблему полагодили.

Як виглядає ваше робоче місце?

Моє робоче місце можна описати як гармонійне поєднання безлічі «залізяк» і пачок зеленого чаю. Чай я люблю, а значний парк техніки - це сувора виробнича необхідність. Віртуалізація від Parallels - крос-платформний продукт, тому створювати і тестувати прототипи нових версій доводиться на самому різношерстому обладнанні.

Яке «залізо» використовуєте?

На великому столі (а також під ним) живуть:

Два десктопа - один на процесорі Intel, а інший - на процесорі AMD.

Сервер MacPro.

Лептоп MacBook.

На «залізі» встановлено цілий зоопарк систем - і MacOS X, Windows різних розрядностей і різних версій, і всілякі варіанти Linux.

До залозу взагалі і до гаджетам зокрема я була байдужа до минулої поїздки на WWDC (Apple Developer Conference), де безнадійно закохалася в iPhone. До речі, мій екземпляр девайса - трофейний. Я виграла його в ході професійного парі з співзасновником Parallels, а нині головою ради директорів Сергієм Белоусовим. Якось раз ми сиділи в ресторані. І ніяк не могли пригадати назву однієї з недавно представлених еппловскій технологій. Сергій погуглити, хмикнув і сказав: «Так, хто перший згадає, тому і iPhone». У кожного було по три спроби. Першою згадала я. А технологія називалася FaceTime.

Яке ПО використовуєте?

На локальному «залізі» встановлено штук 8-10 самих різних операційних систем. Образів ОС - незліченну кількість. І вони нічим не гірші, між іншим. Софт у мене в більшості специфічний - компілятори, отладчики, різні інтегровані середовища розробки (IDE), дизасемблери, профіліровщики, DebugKit-и. З улюблених засобів варто виділити дизассемблер IDA. У Parallels, крім того, широкий спектр інструментарію своєї розробки. Ми збираємо гостьові і моніторні дампи, ведемо лічильники продуктивності, логи, історію, ось зараз доробляємо свій дебагер. Системне програмування вимагає системного підходу до пошуку помилки.

Чи є конфігурація мрії?

Свої мрії про «залізі» навіть боюся озвучувати - так швидко вони збуваються:) Загальна побажання до «заліза» - побільше логічних CPU (від 16), побільше пам'яті (від 8 Гб). Але критичніше за все якість процесорних фич - чим свіже процесор, тим більше в ньому нових «іграшок» - EPT, Unrestricted, VT-D, TXT. Ну і спритний жорсткий диск. Все інше в більшості сучасних «залізяк» мене в загальному і цілому задовольняє.

Робочі місця: анна воробьева, провідний розробник віртуальних машин в компанії parallels