[haiku] Re: [GSoC] x86_64 application rough draft

  • From: Alan Burkes <firstakir@xxxxxxxxx>
  • To: haiku@xxxxxxxxxxxxx
  • Date: Wed, 7 Apr 2010 17:54:37 -0700

I just want to say that I personally am very much for his project idea. Even
if it isn't something that can't make it in R1, having x86_64 support is
something that I think is necessary for Haiku's long-term development in
order for it to be a "modern" OS. After all, essentially all x86 cpus being
built today by both AMD and Intel have 64-bit extentions, and even Microsoft
has a consumer x86_64 operating system.

On Apr 7, 2010 12:51 PM, "Nathan Mentley" <nathanmentley@xxxxxxxxx> wrote:

Hey, I haven't applied to the google summer of code before and I was hoping
to get some feed back on my application. Is this the kind of application
that open source groups like haiku are looking for? What should I leave
in... what should I include? I feel like I should post a list of references.
Is that not typical for a GSoC application?


 Anyway, Here's the application I have for the x86_64 port.


Name: Nathan Mentley

Email: nathanmentley@xxxxxxxxx

trac username: nmentley

Education: I won't be enrolled in classes during the summer.

Employment: If I'm accepted to the GSoC I won't be looking for additional
employment.

Conflicts: The only conflict during the summer would be a Benefit Concert
that a few friends of mine and I are setting up to raise money for UNICEF.
It's a one day event. It's taking place on July 23rd. I'll probably be busy
on the days leading up to the event, but I don't see this as a major
conflict that will prevent me from completing my project.

Time Commitment: I'm planning on spending at least 40 hours a week on my
project.

Internet Connection: For the first part of my summer I'll be staying at a
location with satellite high speed Internet and the second part I'll be
staying at a house with high speed cable Internet.

Previous Years: I haven't applied or been accepted for a previous GSoC.

Bio: I'm a second year computer science student at Eastern Michigan
University. I have pretty much from scratch developed a simple real mode x86
operating system that has support for mounting multiple fat file-systems and
it has a simple multitasking round robin system. I completed this task in a
few months solely on my free time while having a part time job and being a
full time student. This project has lead me to become extremely interested
in operating system, specifically, kernel development. I have completed
academic projects in Java, C++, C, and x86 ASM and I have been working on
personal projects in PHP, Java, C, and C++. I'm planning on releasing a
CMS\Blogging system I made in PHP under a CreativeCommons license in the
next few weeks. I was a BeOS R5 user many years ago and I'm extremely
interested in recreating BeOS and I'm hoping Haiku OS will someday become a
usable multimedia operating system like BeOS was.


 Project Title: Haiku OS x86_64 port

Goals: Goals to complete during the GSoC

   1.

         Modify the current x86 bootloader to add ELF64 support
         2.

         add the ability to start a x86-64 kernel by initiating the system
         in to long mode.
         3.

         I'm also planning on having the kernel itself to the x86_64
         platform.

 Goals to complete after the GSoC.

   1.

         Port kernel modules
         2.

         Port the userland libraries

Project Description: I'm planning on implementation the beginnings of the
x86_64 port of Haiku during the GSoC. I'll accomplish this task by initially
working on the haiku bootloader first. My current plan is to initialize the
system into long mode when the current bootloader initializes the system
into the 32bit protected mode. Which I believe is located in the first stage
of the bootloader. I'm also planning on modifying the ELF32 loader code to
support ELF64 binaries. I'm not worried about this process because the ELF
format is extremely well documented and if I've skimmed through the code
correctly it is located in the c code in the second stage of the bootloader.
I'm hoping to have the bootloader loading a simple hello world style 64bit
kernel early on in the project.

After I complete the bootloader part of the project I'm planning on working
on porting the Kernel. I'm pretty sure this is where the majority of the
work in this project will be. Most of the high language code shouldn't need
to be edited too much. I'm pretty sure I'll have to do major editing on the
elf.cpp part of the kernel and I'll probably have to add the needed x86_64
code in the kernel/arch/x86_64 folder. I'm hoping that I'll be able to use
the code in the kernel/arch/x86 folder as a base for the work. I'm aware
there will be more work than just modifying those files, but I'm pretty
positive that's where the majority of the work will be.

If I do happen to finish all this before the end of the summer I'll start
working on porting over modules and userland libraries, but at this time I
haven't spent too much time looking at that code.


Project interest: As I said before I've developed a simple x86 operating
system from scratch. I've been extremely interested in low level programming
for some time. I think the interest comes from realizing how little each cpu
cycle actually does and yet kernels and the additional libraries are able to
set up so much that makes making a GUI for a simple application insanely
easy.

In addition to my interest in kernel development I also was a BeOS R5 user
for many years. I've been following the Haiku Project ever since it was
called OpenBeOS and I'm extremely eager to help recreate a more modern
version of R5. That's why I'm interested in working on a 64bit version of
Haiku. I feel that eventually by the time Haiku becomes usable for more than
just developers we'll need a 64bit complaint version to really take full
advantage of most of the user base's systems.

I feel like I'm one of the best choices for this project because of my
experience with low level software development. I've worked on x86 asm in
bootloaders and I've developed a x86 kernel from scratch. I feel like these
are required skills to complete this project.



Thanks for any advice,
Nathan Mentley

Other related posts: