====== Piotr JaroszyƄski: Usermode debugging under Linux ====== ===== Project Plan ===== ==== Summary ==== Allow gPXE to run as a usermode application under Linux on both i386 and x86_64. Hence opening new debugging possibilities and shortening the development cycle considerably. [[..:notes/implementation_details|Implementation details]] [[..:notes/usermode_explained|How usermode under Linux is done]] ==== Tasks ==== === Already done === * Add a ''linux'' ''PLATFORM'' * Link against hacked ''stdlib'' * Add linker scripts for ''i386'' and ''x86_64'' with tables support * Add the necessary subsystems for a tap network driver * ''CONSOLE_LINUX'' * ''TIMER_LINUX'' * ''UACCESS_LINUX'' * ''UMALLOC_LINUX'' * ''NAP_LINUX'' * ''SMBIOS_LINUX'' (empty) * Add a tap network driver * Add command-line arguments allowing configuration of the tap driver * Drop the stdlib dep * Implement ''syscall()'' and ''linux_*'' on top of it where possible * Implement ''linux_realloc'' * Implement ''_start'' * Make it not too hard to switch to linking to stdlib for debugging purposes === Current === * Making gPXE valgrindable === Planned for near future === * Research how to map gPXE's driver API to hardware via kernel