Port DragonFly to the AMD64 architecture
A Google Summer of Code project.
Student: Jordan Gordeev
Mentor: Matthew Dillon
What's this all about?
This project is about mixing DragonFly/i386 code and FreeBSD/amd64 code with human intelligence in order to produce DragonFly/amd64.
What I promised to deliver
1. Functioning 64-bit kernel (Linux emulation and NDIS wrapper support not included) - available by midterm
2. Working non-threaded 64-bit userland. - available by midterm
3. 64-bit SMP.
4. Working threaded 64-bit programs.
5. 64-bit vkernels.
6. 32-bit apps working on 64-bit kernels. - optional, if nothing goes wrong
Where's the code?
The code is in a Subversion repository available at svn://sometimes.studgrad.net/amd64.
What's the current status?
- The kernel crashes in the boot sequence soon after leavecrit.
- The serial console works.
- ddb supposedly works.
Current hot areas: pmap & vm code.
Various questions with answers
Q: How do I build a 64-bit kernel for testing?
A: Execute the following steps:
cd /usr/src
make TARGET_ARCH=amd64 TARGET_PLATFORM=pc64 buildworld
make TARGET_ARCH=amd64 TARGET_PLATFORM=pc64 KERNCONF=JG64 buildkernel
Your kernel is now in /usr/obj/usr/src/sys/AMD64_GENERIC/kernel.debug.
Q: How do I boot the 64-bit kernel?
A: Copy the 64-bit kernel to a convenient location, e.g. '/kernel64'. Reboot your 64-bit system and at the loader menu choose option 6 (escape to prompt). Enter the following commands:
unload
unset acpi_load
load /kernel64
boot
Q: I get an error when trying to boot the 64-bit kernel: "can't load file '/kernel64': input/output error". What's wrong?
A: Your boot loader isn't prepared to load a 64-bit kernel. You need to recompile and reinstall your boot loader.
If you've got other questions, add them here or e-mail me at jgordeev@dir.bg.
