coLinux
Advertisement

Some comments, what we needs to do to run coLinux under a 64 bit Windows, for example Windows Vista 64 or Windows Server 2008 64bit.

General

  • The most difference are the size for type int and long
type 32 bit 64 bit used in
sizeof(int) 4 bytes 4 bytes
sizeof(long) 4 bytes 8 bytes co_rc_t
sizeof(int*)
sizeof(long*)
sizeof(void*)
4 bytes 8 bytes
  • Casts from pointer to int would be have problems. And we have such codings.
  • Some of coLinux structs are not 64bit save.
  • The size of all structs that give from user land programs to kernel space and to the Linux side needs to check the size. Or we would break the compatibility to 32 bit versions.
  • Need a gcc that builds 64 bit code. Is mingw64 available? Last I have seen, the gcc is usable, but without libraries.

NT-Kernel driver 'linux.sys'

  • Driver must digital sign for Vista or Windows Server 2008 64bit.
  • 'Testsign' would be usable for developments and home users. The user must enable Test-signing in the boot config. Developers needs the Windwos Driver Kit and description from MS or this here.
  • Driver install code for "colinux-daemon --install-driver" needs to review. I assume this would no longer work and we need to create a *.inf file. The inf-file needs also included in the driver sign.
  • Passage page code needs complete rework. We have more registers with double size.

Linux kernel

  • The native kernel is ok.
  • All the coLinux hacks with memory allocations needs to review.
  • Proxy-Interrupt handler needs rewritten.

TAP Win32

  • TAP Win32 won't work on XP64 - you need TAP Win64 (see http://openvpn.se/development.html)
  • Rebuild our driver source with target 64 bit should work.
  • Driver must digital sign for Vista or Windows Server 2008 64bit. Testsign would be usable.

<HenryNe>: A self compiled TAP-Win64 I have successfully installed on Windows Server 2008 64bit with enabled Test-signing. I can not say about working.

WinPCAP

  • WinPCAP 3.1 won't work, but the 3.2Alpha1 will install correctly.
Advertisement