Oracle VM 3.2.7 で使われている Xen のバージョンを調べる
2.2 Oracle VM 3.1.1の新機能
2 Oracle VMの新機能
Xenハイパーバイザの更新: Xenはリリース4.1.2に更新されています。
と製品マニュアルに書かれている。
Note:1567537.1 Oracle VM 3.x major release/patch update version information
からリンクされている Oracle VM Server の MOS KB (Readme) を 3.2.8、3.2.7、3.2.6 と見ていくと、3.2.6 で Xen 4.1.3-25.el5.53 に上がっているようだ。
Oracle VM Server 3.2.7 の Dom0 で確認してみると、
# cat /etc/issue Oracle VM server release 3.2.7 Kernel \r on an \m # xm info ... xen_major : 4 xen_minor : 1 xen_extra : .3OVM
Xen 4.1.3 になっている。
Xen 4.1.3のソースを読む
Xen Project Source Repositories から xenbits.xen.org Git - xen.git/summary に行って、xenbits.xen.org Git - xen.git/commit から tree をクリックして、xenbits.xen.org Git - xen.git/tree を見れば良さそう。
Xen のソースを git リポジトリから clone する
- clone する
$ mkdir xen $ cd xen $ git clone git://xenbits.xen.org/xen.git Initialized empty Git repository in /home/yazekats/Documents/github/xen/xen/.git/ remote: Counting objects: 296060, done. remote: Compressing objects: 100% (64343/64343), done. remote: Total 296060 (delta 233240), reused 288747 (delta 226994) Receiving objects: 100% (296060/296060), 57.24 MiB | 402 KiB/s, done. Resolving deltas: 100% (233240/233240), done.
- 確認してみる
$ ls -l total 304 -rw-rw-r-- 1 yazekats yazekats 3070 Aug 31 16:30 CODING_STYLE -rw-rw-r-- 1 yazekats yazekats 19866 Aug 31 16:30 COPYING -rw-rw-r-- 1 yazekats yazekats 484 Aug 31 16:30 CREDITS -rw-rw-r-- 1 yazekats yazekats 9863 Aug 31 16:30 Config.mk -rw-rw-r-- 1 yazekats yazekats 10160 Aug 31 16:30 MAINTAINERS -rw-rw-r-- 1 yazekats yazekats 7809 Aug 31 16:30 Makefile -rw-rw-r-- 1 yazekats yazekats 9887 Aug 31 16:30 README -rwxrwxr-x 1 yazekats yazekats 120 Aug 31 16:30 autogen.sh drwxrwxr-x 2 yazekats yazekats 4096 Aug 31 16:30 config -rwxrwxr-x 1 yazekats yazekats 44826 Aug 31 16:30 config.guess -rwxrwxr-x 1 yazekats yazekats 35543 Aug 31 16:30 config.sub -rwxrwxr-x 1 yazekats yazekats 95633 Aug 31 16:30 configure -rw-rw-r-- 1 yazekats yazekats 896 Aug 31 16:30 configure.ac drwxrwxr-x 5 yazekats yazekats 4096 Aug 31 16:30 docs drwxrwxr-x 3 yazekats yazekats 4096 Aug 31 16:30 extras -rw-rw-r-- 1 yazekats yazekats 712 Aug 31 16:30 install.sh drwxrwxr-x 2 yazekats yazekats 4096 Aug 31 16:30 m4 drwxrwxr-x 3 yazekats yazekats 4096 Aug 31 16:30 misc drwxrwxr-x 2 yazekats yazekats 4096 Aug 31 16:30 scripts drwxrwxr-x 8 yazekats yazekats 4096 Aug 31 16:30 stubdom drwxrwxr-x 30 yazekats yazekats 4096 Aug 31 16:30 tools drwxrwxr-x 3 yazekats yazekats 4096 Aug 31 16:30 unmodified_drivers -rwxrwxr-x 1 yazekats yazekats 175 Aug 31 16:30 version.sh drwxrwxr-x 9 yazekats yazekats 4096 Aug 31 16:30 xen
/****************************************************************************** * ioport_emulate.c * * Handle I/O port access quirks of various platforms. */ #include <xen/config.h> #include <xen/init.h> #include <xen/sched.h> #include <xen/dmi.h> static void ioemul_handle_proliant_quirk( u8 opcode, char *io_emul_stub, struct cpu_user_regs *regs) { uint16_t port = regs->edx; uint8_t value = regs->eax; if ( (opcode != 0xee) || (port != 0xcd4) || !(value & 0x80) ) return; /* pushf */ io_emul_stub[0] = 0x9c; /* cli */ io_emul_stub[1] = 0xfa; /* out %al,%dx */ io_emul_stub[2] = 0xee; /* 1: in %dx,%al */ io_emul_stub[3] = 0xec; /* test $0x80,%al */ io_emul_stub[4] = 0xa8; io_emul_stub[5] = 0x80; /* jnz 1b */ io_emul_stub[6] = 0x75; io_emul_stub[7] = 0xfb; /* popf */ io_emul_stub[8] = 0x9d; /* ret */ io_emul_stub[9] = 0xc3;
低レイヤー感をビシビシ感じますねw