110 likes | 337 Views
Chimera project. Vizovitin Nicolay Khlebnikov Sergey Kolbin Dmitry Sizov Mikhail. Scientific adviser: Irtegov D.V. The parts. Idea: mix OpenSolaris and Windows OpenSolaris sources (ON) Windows Research Kernel (WRK) – some kernel parts of Windows 2003 SP1
E N D
Chimera project Vizovitin Nicolay Khlebnikov Sergey Kolbin Dmitry Sizov Mikhail Scientific adviser: Irtegov D.V.
The parts Idea: mix OpenSolaris and Windows • OpenSolaris sources (ON) • Windows Research Kernel (WRK) – some kernel parts of Windows 2003 SP1 • Other open-source projects like Wine and ReactOS
Building OpenSolaris personality Terms: • Zone • Container • BrandZ infrastructure; brands Brands: • native • lx (Linux kernel 2.4) • sn1 (Solaris N-1 testing brand)
Our goal Create new win brand, that supports execution of Windows applications on top of OpenSolaris kernel
System call emulation: global zone Global zone (native) Solaris process { … open() … } userland kernel Solaris kernel Syscall handler if (p->p_brand) p->p_brand->b_syscall(); else rval = do_native_syscall(); return to userspace open() { … return (fd); }
System call emulation: win zone Windows zone Win brand support library win_NtCreateFile(args) { fd = open(win2sol(args)) if (fd < 0) return (sol2win(errno)) else return (fd) } Windows process { … NtCreateFile() … } userland kernel Windows brand module Solaris kernel win_syscall() { trampoline to userland } Syscall handler if (p->p_brand) p->p_brand->b_syscall(); else rval = do_native_syscall(); return to userspace struct win_brand_ops { win_syscall() win_proc_exit() win_initlwp() … } open() { … return (fd); }
Previously on the project • Learned to build Windows kernel • Extensive documentation of WRK sources • Attempts to build ON (OpenSolaris)
During this summer • Almost entirely new project team • Learned to build ON (OpenSolaris) • Studied BrandZ operation • Created basic win zone • win brand kernel module • win brand support library • zone configuration files • support for syscalls via sysenter • Created number of test programs
Plans on project development • Finish PE loader implementation • Emulation code for Windows system calls • Create minimal Windows environment in the zone • Allowing other technics for entering the kernel (int 2e, syscall) • Improve brand support library