xg-scale

annotate windowsxp.tex @ 3:7ad41782e1ad

Иcправлены небольшие опечатки в xen/export
author Igor Chubin <igor@chub.in>
date Tue Jul 01 16:59:46 2008 +0300 (2008-07-01)
parents
children 4a790b55d005
rev   line source
igor@0 1 \section{Windows XP в Xen}
igor@0 2
igor@0 3
igor@0 4 Здесь рассматривается процедура подготовки и запуска домена с Windows в системе виртуализации Xen на платформе с аппаратной поддержкой виртуализации (HVM). Выполнять \textit{Windows в паравиртуальном режиме} (т.е. без использования аппаратных архитектурных расширений виртуализации) на сегодняшний день нельзя. Возможно, это можно будет сделать в будущем.
igor@0 5 Подробности на странице \htmladdnormallinkfoot{Windows в паравиртуальном домене Xen}{http://xgu.ru/wiki/Paravirtualized\_Windows}.
igor@0 6
igor@0 7 \subsection{Предварительные требования}
igor@0 8 В первую очередь, для установки Windows XP, как и любой другой системы с закрытым кодом, необходима поддержка центральным процессором технологии виртуализации Intel®Virtualization Technology (VT) или Pacifica (AMD). Таблицу поддержки аппаратной виртуализации процессорами можно найти \htmladdnormallinkfoot{здесь}{http://xgu.ru/wiki/xen/hw}.
igor@0 9
igor@0 10 Поддержка аппаратной виртуализации должна быть и у Xen.
igor@0 11 При сборке из исходных текстов понадобится установить в систему:
igor@0 12 \begin{itemize}
igor@0 13 \item \textbf{dev86} -- Ассемблер и компоновщик для реального режима 80x86. Этот пакет необходим для сборки кода BIOS, запускаемого в (виртуальном) реальном режиме. Если пакет dev86 недоступен для x86\_64, то можно использовать i386 версию.
igor@0 14 \item \textbf{LibVNCServer} -- Немодифицируемый VGA дисплей, клавиатуру и мышь можно виртуализировать с помощью библиотеки vncserver.
igor@0 15 \item \textbf{SDL-devel}, \textbf{SDL} -- Если пакеты SDL и SDL-devel не были установлены по умолчанию, то взять их можно из системы портов или скомпилировав из исходных текстов.
igor@0 16 \end{itemize}
igor@0 17
igor@0 18 \subsubsection{Замечание для пользователей Debian}
igor@0 19 При выполнении вышеуказанной процедуры на
igor@0 20 Debian GNU/Linux необходимо учесть, что
igor@0 21 пакет \textbf{dev86} в Debian разбит на два пакета -- \textbf{bin86} и \textbf{bcc} -- и перед компиляцией Xen из архива исходных текстов
igor@0 22 должны быть установлены оба эти пакета (\htmladdnormallinkfoot{подробнее}{http://lists.xensource.com/archives/html/xen-users/2006-02/msg00207.html}).
igor@0 23
igor@0 24 \begin{verbatim}
igor@0 25 $ apt-cache show bin86 bcc
igor@0 26 Package: bin86
igor@0 27 ...
igor@0 28 Description: 16-bit x86 assembler and loader
igor@0 29 This is the as86 and ld86 distribution written by Bruce Evans.
igor@0 30 It's a complete 8086 assembler and loader which can make 32-bit
igor@0 31 code for the 386+ processors (under Linux it's used only to create
igor@0 32 the 16-bit bootsector and setup binaries).
igor@0 33
igor@0 34 Package: bcc
igor@0 35 ...
igor@0 36 Description: 16-bit x86 C compiler
igor@0 37 This is a C-compiler for 8086 cpus which is important for the
igor@0 38 development of boot loaders or BIOS related 8086 code.
igor@0 39
igor@0 40 It is possible to run 8086 code under i386 Linux using an emulator,
igor@0 41 `elksemu', also included in this package.
igor@0 42 \end{verbatim}
igor@0 43
igor@0 44 \subsection{Конфигурационный файл домена}
igor@0 45 В терминологии Xen гостевые домены, исполняющиеся в режиме аппаратной виртуализации называются HVM-доменами.
igor@0 46 Для облегчения процесса конфигурирования такого домена служит образцово-показательный конфигурационный файл \texttt{/etc/xen/xmexample.hvm} (путь может отличаться).
igor@0 47 В нём помимо опций использующихся в паравиртуальных доменах
igor@0 48 есть и сугубо специфические:
igor@0 49 \begin{itemize}
igor@0 50 \item \textbf{kernel} -- VMX firmware loader, /usr/lib/xen/boot/vmxloader
igor@0 51 \item \textbf{builder} -- Функции сборки домена. VMX-домены используют vmx builder
igor@0 52 \item \textbf{acpi} -- Задействует ACPI VMX-домена, по умолчанию равно \dq{}0\dq{} (отключено)
igor@0 53 \item \textbf{apic} -- Задействует APIC VMX-домена, по умолчанию равно \dq{}0\dq{} (отключено)
igor@0 54 \item \textbf{pae} -- Задействует PAE VMX-домена, по умолчанию равно \dq{}0\dq{} (отключено)
igor@0 55 \item \textbf{vif} -- Опционально определяет MAC адрес и/или режим моста для сетевого интерфейса. Если значение MAC не указано, то назначается случайный адрес. Есть возможность задать параметр type=ioemu для использования ioemu в VMX NIC. Если это значение не определено, то vbd используется как в паравиртуальных(\dq{}нормальных\dq{}, с модифицированным ядром) доменах.
igor@0 56 \item \textbf{disk} -- Определяет дисковые устройства, к которым гостевой домен должен иметь доступ. Если для домена используется физический носитель в качестве диска, то он должен быть описан строкой типа:
igor@0 57 \end{itemize}
igor@0 58
igor@0 59 \begin{verbatim}
igor@0 60 phy:UNAME,ioemu:DEV,MODE,
igor@0 61 \end{verbatim}
igor@0 62
igor@0 63 где \textbf{UNAME} -- имя устройства, \textbf{DEV} -- имя диска, как его видит домен и \textbf{MODE} принимает значения \textbf{r} для read-only и \textbf{w} для read-write. Если это значение не определено, то ioemu используется как паравиртуальных доменах.
igor@0 64
igor@0 65 Если используется образ диска, то строка принимает вид:
igor@0 66
igor@0 67 \begin{verbatim}
igor@0 68 file:FILEPATH,ioemu:DEV,MODE
igor@0 69 \end{verbatim}
igor@0 70
igor@0 71 Если используется больше одного диска, то они разделяются запятой. Например:
igor@0 72
igor@0 73 \begin{verbatim}
igor@0 74 disk = ['file:/var/images/image1.img,ioemu:hda,w', 'file:/var/images/image2.img,ioemu:hdb,w']
igor@0 75 \end{verbatim}
igor@0 76
igor@0 77 \begin{itemize}
igor@0 78 \item \textbf{cdrom} -- Образ CD-ROM. По умолчанию, для Domain0 это значение равно /dev/cdrom. Внутри VMX-домена CD-ROM будет виден как /dev/hdc.
igor@0 79 \item \textbf{boot} -- Загрузка с floppy (a), hard disk (c) или CD-ROM (d).
igor@0 80 \item \textbf{device\_model} -- Инструмент эмуляции устройств для VMX-домена. Могут быть изменены параметры, приведенные ниже.
igor@0 81 \item \textbf{sdl} -- Задействует библиотеку SDL для отображения графики, по умолчанию равно \dq{}0\dq{} (отключено)
igor@0 82 \item \textbf{vnc} -- Задействует библиотеку VNC для отображения графики, по умолчанию равно \dq{}0\dq{} (отключено)
igor@0 83 \item \textbf{vncviewer} -- Если vnc=1 и vncviewer=0, пользователь может использовать vncviewer для подключения к VMX-домену. Например:
igor@0 84 \end{itemize}
igor@0 85
igor@0 86 \begin{verbatim}
igor@0 87 $ vncviewer domain0_IP_address:VMX_domain_id
igor@0 88 \end{verbatim}
igor@0 89
igor@0 90 \begin{itemize}
igor@0 91 \item \textbf{ne2000} -- Задействует режим совместимости ne2000, по умолчанию равно \dq{}0\dq{} (отключено, используется pcnet)
igor@0 92 \item \textbf{serial} -- Перенаправление последовательных портов гостевого домена на реальное устройство.
igor@0 93 \item \textbf{usb} -- Включение поддержки USB без указания специфического устройства. По умолчанию эта функция отключена, в случае же определения параметра usbdevice, ее необходимо задействовать.
igor@0 94 \item \textbf{usbdevice} -- Включение поддержки конкретных устройств. Например, поддержка мыши PS/2 через USB:
igor@0 95 \end{itemize}
igor@0 96
igor@0 97 \begin{verbatim}
igor@0 98 usbdevice='mouse'
igor@0 99 \end{verbatim}
igor@0 100
igor@0 101 \begin{itemize}
igor@0 102 \item \textbf{localtime} -- Установка локального времени. По умолчанию равно \dq{}0\dq{}, т.е UTC
igor@0 103 \item \textbf{enable-audio} -- Поддержка звука. Находится в разработке.
igor@0 104 \item \textbf{full-screen} -- Поддержка полноэкранного режима. Находится в разработке.
igor@0 105 \item \textbf{nographic} -- Другой способ перенаправить вывод на последовательный порт. В этом случае опции \rq{}sdl\rq{} или \rq{}vnc\rq{} не работают. Использование данного режима не рекомендуется.
igor@0 106 \end{itemize}
igor@0 107
igor@0 108 \subsection{Проверка на поддержку VMX}
igor@0 109 После загрузки самого Dom0 убедимся в наличии поддержки VMX (процессоры Intel):
igor@0 110
igor@0 111 \begin{verbatim}
igor@0 112 # xm dmesg | grep VMX
igor@0 113 (XEN) VMXON is done
igor@0 114 (XEN) VMXON is done
igor@0 115 ...
igor@0 116 (XEN) VMXON is done
igor@0 117 (XEN) VMXON is done
igor@0 118 (XEN) VMXON is done
igor@0 119 #
igor@0 120 \end{verbatim}
igor@0 121
igor@0 122 Если используется процессор AMD:
igor@0 123
igor@0 124 \begin{verbatim}
igor@0 125 # xm dmesg | grep -i svm
igor@0 126 (XEN) AMD SVM Extension is enabled for cpu 0.
igor@0 127 (XEN) AMD SVM Extension is enabled for cpu 1.
igor@0 128 \end{verbatim}
igor@0 129
igor@0 130 В общем случае:
igor@0 131
igor@0 132 \begin{verbatim}
igor@0 133 # xm info | grep caps
igor@0 134 hw_caps : 178bfbff:ebd3fbff:00000000:00000010:00002001:00000000:0000001f
igor@0 135 xen_caps : xen-3.0-x86_32p hvm-3.0-x86_32 hvm-3.0-x86_32p
igor@0 136 \end{verbatim}
igor@0 137
igor@0 138 hvm-3.0-x86\_32 говорит о том, что XEN успешно обнаружил процессор, который поддерживает технологии Intel VT или AMD-V.
igor@0 139
igor@0 140 Если у вас другое сообщение, то проверьте настройки BIOS и задействуйте поддержку аппаратной виртуализации,
igor@0 141 если она выключена.
igor@0 142
igor@0 143 \subsection{Создание дискового раздела для гостевой системы}
igor@0 144 Создаем образ диска Xen:
igor@0 145
igor@0 146 \begin{verbatim}
igor@0 147 # mkdir -p /root/xenimages
igor@0 148 # cd /root/xenimages
igor@0 149 # dd if=/dev/zero of=WS128.img bs=1M count=4096
igor@0 150 \end{verbatim}
igor@0 151
igor@0 152 Также необходимо создать iso-образ системы WinXP -- ServicePack2. В данном случае, разместим его в каталоге \texttt{/root/xenimages}.
igor@0 153
igor@0 154 На основе эталонного файла конфигурации создадим свой собственный:
igor@0 155
igor@0 156 \begin{verbatim}
igor@0 157 # cat /etc/xen/winXP128
igor@0 158 kernel = "/usr/lib/xen/boot/hvmloader"
igor@0 159 builder='hvm'
igor@0 160 memory = 512
igor@0 161 name = "WinXP128"
igor@0 162 vcpus=1
igor@0 163 pae=0
igor@0 164 acpi=0
igor@0 165 apic=0
igor@0 166 cpus = ""
igor@0 167 vif = [ 'type=ioemu, bridge=xenbr0' ]
igor@0 168 disk = [
igor@0 169 'file:/root/xenimages/winXP128.img,ioemu:hda,w',
igor@0 170 'file:/root/xenimages/en_winxp_pro_with_sp2.iso,ioemu:hdc:cdrom,r'
igor@0 171 ]
igor@0 172 on_poweroff = 'destroy'
igor@0 173 on_reboot = 'destroy'
igor@0 174 on_crash = 'destroy'
igor@0 175 device_model = '/usr/lib/xen/bin/qemu-dm'
igor@0 176 boot='d'
igor@0 177 sdl=0
igor@0 178 vnc=1
igor@0 179 vncviewer=0
igor@0 180 stdvga=0
igor@0 181 serial='pty'
igor@0 182 ne2000=0
igor@0 183 \end{verbatim}
igor@0 184
igor@0 185 Обратите внимание на то, что указан параметр boot=\rq{}d\rq{}, что необходимо для установки. Впоследствии его необходимо заменить на \dq{}boot=\rq{}c\rq{}\dq{}. Доступ к гостевому домену будет осуществляться через VNC, использование SDL не предполагается.
igor@0 186
igor@0 187 \subsection{Запуск домена и инсталляция гостевой системы}
igor@0 188 Начинаем установку и подсоединяемся к домену с помощью VNC -- сразу после создания домена подключаемся к нему с помощью vncviewer.
igor@0 189
igor@0 190 \begin{verbatim}
igor@0 191 # xm create -c /etc/xen/winXP128
igor@0 192 Using config file "/etc/xen/winXP128".
igor@0 193 Started domain WinXP128
igor@0 194 \end{verbatim}
igor@0 195
igor@0 196 Подключение к VNC:
igor@0 197
igor@0 198 \begin{verbatim}
igor@0 199 % vncviewer vermont:1
igor@0 200 \end{verbatim}
igor@0 201
igor@0 202 С установкой могут быть проблемы. Можно попробовать решить проблему так: на экране установки, предлагающем нажать F6 для установки SCSI или RAID контроллера, надо нажать F5 и выбрать пункт \texttt{Standard PC} из предложенного меню.
igor@0 203
igor@0 204 \begin{verbatim}
igor@0 205 ACPI Multiprocessor PC
igor@0 206 ACPI Uniprocessor PC
igor@0 207 Advanced Configuration and Power Interface (ACPI) PC
igor@0 208 Compaq SystemPro Multiprocessor or 100% Compatible PC
igor@0 209 MPS Uniprocessor PC
igor@0 210 MPS Multiprocessor PC
igor@0 211 Standard PC
igor@0 212 Standard PC with C-Step i486
igor@0 213 Other
igor@0 214 \end{verbatim}
igor@0 215
igor@0 216 После того, как программа установки Windows отформатирует диск и скопирует на него необходимые файлы, выполняется перезагрузка. Согласно нашему файлу конфигурации, виртуальная машина будет закрыта и нам предоставится удачная возможность отредактировать параметр \texttt{boot=\rq{}c\rq{}}, после чего запускаем виртуальную машину и соединяемся с консолью:
igor@0 217
igor@0 218 \begin{verbatim}
igor@0 219 # xm create -c /etc/xen/winXP128
igor@0 220 Using config file "/etc/xen/winXP128".
igor@0 221 Started domain WinXP128
igor@0 222 \end{verbatim}
igor@0 223
igor@0 224 VNC:
igor@0 225
igor@0 226 \begin{verbatim}
igor@0 227 % vncviewer vermont:2
igor@0 228 \end{verbatim}
igor@0 229
igor@0 230 Обратите внимание на параметр \rq{}:2\rq{}, так как изменился XenID (посмотреть его можно командой xm list). Не особо волнуйтесь насчет проблем VNC при работе с мышью. Как только вы завершите установку можно настроить службу терминального доступа и использовать Windows Remote Desktop или rdesktop. Если вы по-прежнему хотите использовать VNC, то обратитесь к этому разделу руководства.
igor@0 231
igor@0 232
igor@0 233 \subsection{Вопросы и ответы}
igor@0 234 Ниже приводятся выдержки из обсуждения \url{http://forum.sysadmins.ru/viewtopic.php?p=7941589\#7941589},
igor@0 235 в котором были затронуты многие распространённые вопросы, касающиеся запуска Windows в HVM-домене.
igor@0 236 Стиль дискуссии сохранён.
igor@0 237
igor@0 238 \textbf{Вопрос: Виртуалка начала бутиться с сидюка/винта, но при этом весь проц съела и черный экран виртуалки. Аптайм виртуалки увеличивается, значит сама виртуалка не повисла, наверно. Есть какие-нибуть идеи?}
igor@0 239
igor@0 240 Да, скорее всего виртуалка нормально работает.
igor@0 241 вы подключаетесь к экрану виртуалки через VNC,
igor@0 242 при смене разрешения экрана (а при загрузке винды
igor@0 243 именно это и происходит) его нужно передергивать,
igor@0 244 то есть закрывать и подключаться вновь.
igor@0 245
igor@0 246 \textbf{Вопрос: эникей не успевал нажать при буте с сидюка и виртуалка пытлас бутиться с пустого винта. А как вообще указать откуда она бутится?}
igor@0 247
igor@0 248 Да, в соответствии с вашим конфигом система пытается загрузиться с
igor@0 249 привода CDROM.
igor@0 250
igor@0 251 \begin{itemize}
igor@0 252 \item boot=\rq{}d\rq{} — загружатсья с CDROM\rq{}а (мнемоническое правило — «с диска D:» )
igor@0 253 \item boot=\rq{}c\rq{} — загружатсья с диска (мнемоническое правило — «с диска C:» )
igor@0 254 \end{itemize}
igor@0 255
igor@0 256 \textbf{Вопрос: а звук в виртуалке не настраивал? Или хотя-бы через rdesktop?}
igor@0 257
igor@0 258 Звук настраивали и всё работет.
igor@0 259 Звук действительно слушается именно через rdesktop,
igor@0 260 впрочем что и касается основной работы (кроме инсталляци) — работать лучше rdesktop.
igor@0 261
igor@0 262 При заходе через \textit{rdesktop}, для того чтобы
igor@0 263 звук проигрывался локально, используйте ключ \textit{-rsound}:
igor@0 264 \begin{verbatim}
igor@0 265 rdesktop -rsound 192.168.1.1
igor@0 266 \end{verbatim}
igor@0 267
igor@0 268 VNC (а точнее libvnc), с которым скомпилен Xen имеет множество ограничений и его стоит рассматривать как аврийный вариант. А так конечно же заходить на систему через rdesktop, сразу же после того как на ней поднимается стек TCP/IP. (или в крайнейм случае поставить полноценный VNC-сервер внутрь домена с Windows).
igor@0 269
igor@0 270 Если вы всё же используете встроенный VNC, то желательно отключить аппаратное ускорение мыши в Control Panel, или перейти на эмуляцию другого устройства (не мыши, а планшета) в Xen.
igor@0 271 Иначе у вас будет два курсора, одному из которых будет соответствовать ваша реальная мышь, а вторым виртуальная.
igor@0 272
igor@0 273 \textbf{Вопрос: Как поменять сд-имедж или диск физического привода не перезапуская виртуалки?}
igor@0 274
igor@0 275 Есть два метода. Один для дома для семьи (и он по умолчанию в новых версиях Xen блокируется и его надо явно разрешать) и второй
igor@0 276 промышленный.
igor@0 277
igor@0 278 Первый: в VNC окне нажать ctr-alt-2 что переключит вас на консоль qemu, дальше использовать eject и прочие команды (я думаю там всё понятно, если не понятно, спрашивайте), а потом когда выполнили свое дело, нажать ctrl-alt-1 (не F1! не путайте!) для возврата в консоль (графическую) гостевой операционной системы (подробнее: (Xen-devel) About change of CD-ROM).
igor@0 279
igor@0 280 Второй: использовать xm block-attach, xm block-detach
igor@0 281 (подробнее: Xen-block-attach).
igor@0 282
igor@0 283 Второй метод намного более правильный и более секюрный (первый блокируется из соображений безопасности ибо из консоли qemu можно намутить с доменом всё что угодно, и естественно, что это абсолютно не зависит от того, под каким юзером вы вошли в гостевой домен).
igor@0 284 Кроме того, второй метод позволяет менять не только сидюки, но и винту и сетевышки и всё что вашей душеньке угодно (особенно это касается PV-доменов, ибо у HVM с этим простора всё же поменьше).
igor@0 285
igor@0 286 \textbf{Вопрос: ОЗУ на серваке 4 или больше гигов? А то у меня х86\_64, с 4гигами ядро вешается на такой строчке:\dq{}agpgart: Detected an Intel 965G Chipset.\dq{}, с 3\rq{}мя гигами -- нормально.}
igor@0 287
igor@0 288 Это нормально.
igor@0 289 Точнее, это не совсем нормально, но это возможно.
igor@0 290
igor@0 291 Можно попробовать следующие решения:
igor@0 292
igor@0 293 \begin{enumerate}
igor@0 294 \item Использовать параметр ядра agp=off
igor@0 295 \item Добавить модуль intel\_agp в чёрный список незагружаемых модулей
igor@0 296 \item Включить в BIOS фичу Memory Remap Feature (если она есть); это должно быть в конфигурации северного моста.
igor@0 297 \item Использовать AMD
igor@0 298 \end{enumerate}
igor@0 299
igor@0 300 \textbf{Вопрос: На сервере 8Гб памяти, но больше 4 на гостевую систему в свободной версии xen не выделить(да и незачем особо). Поддержка PAE включена.}
igor@0 301
igor@0 302 Насколько я понимаю, речь идёт о гостевом HVM-домене (потому что если это PV-домен и он не видит >4G, то это странно вдвойне).
igor@0 303 Вероятно, вы имеете в виду баг \#971, из-за которого дейтвительно нельзя было увидеть больше 4G памяти в HVM домене.
igor@0 304 Если так, то он уже давно пофикшен и этой проблемы быть не должно.
igor@0 305
igor@0 306 Проверьте, что у вас:
igor@0 307 \begin{enumerate}
igor@0 308 \item Если в HVM-домене запускается Linux, ядро под которым запускается HVM-домен, имеет поддержку PAE. (это HVM, поэтому может работать и ядро без PAE на хосте с PAE, но конечно видеть >4G оно при этом не будет)
igor@0 309 \item Если в HVM-домене запускается Windows, в конфигурации загрузчика (boot.ini) присутствует ключ /PAE
igor@0 310 \end{enumerate}
igor@0 311
igor@0 312 \subsection{Дополнительная информация}
igor@0 313 \subsubsection{Описание процесса запуска Windows в домене XenU}
igor@0 314
igor@0 315 \begin{itemize}
igor@0 316 \item \htmladdnormallinkfoot{Windows XP в Xen}{http://xgu.ru/wiki/Windows\_XP\_в\_Xen} (рус.)
igor@0 317 \item \htmladdnormallinkfoot{Xen w/ IntelVT->Windows Success Report}{http://lists.xensource.com/archives/html/xen-users/2006-06/msg00452.html} (англ.)
igor@0 318 \item \htmladdnormallinkfoot{Запуск Windows XP в окружении Xen3}{http://dreamcatcher.ru/docs/xen3\_windows.html} (рус.)
igor@0 319 \item \htmladdnormallinkfoot{How to Install Windows on Xen 3.0}{http://www.xensource.com/files/xen\_install\_windows.pdf} (англ.)
igor@0 320 \item \htmladdnormallinkfoot{Building Xen from source on Ubuntu to run Windows}{http://linuxvirtualization.com/articles/2006/08/03/xen-on-ubuntu-for-windows} (англ.)
igor@0 321 \end{itemize}
igor@0 322
igor@0 323 \subsubsection{Проблемы производительности в виртуализированных машинах Windows}
igor@0 324 \begin{itemize}
igor@0 325 \item \htmladdnormallinkfoot{poor harddisk performance HVM domain}{http://lists.xensource.com/archives/html/xen-users/2006-05/msg00097.html} (англ.)
igor@0 326 \item \htmladdnormallinkfoot{By 2009, there will be three competitive hypervisor architectures ...}{http://www.stanford.edu/class/ee380/Abstracts/060125-stanford0601.pdf} (англ.)
igor@0 327 \item \htmladdnormallinkfoot{Intel® Virtualization Technology for Directed I/O}{http://www.intel.com/technology/itj/2006/v10i3/2-io/1-abstract.htm} (англ.)
igor@0 328 \item \htmladdnormallinkfoot{Optimizing Network Virtualization in Xen}{http://www.usenix.org/events//usenix06/tech/menon/menon\_html/index.html}. Aravind Menon, EPFL, Switzerland; Alan L. Cox, Rice university, Houston; Willy Zwaenepoel, EPFL, Switzerland. (англ.)
igor@0 329 \end{itemize}
igor@0 330