disk_device

Finishing up extended partitions

Blog post by bebop on Fri, 2009-08-14 13:12

Aloha Haiku Land!

I have been putting the finishing touches on support for Extended Partitions today. For those of you who do not know the Master Boot Record or an MBR can only contain 4 primary partitions. This leaves something to be desired when you want to run a bunch of operating systems or split your install across multiple partitions. There is a way however to get as many partitions as you want however by creating what is called an Extended Partition.

Extended Partitons are interesting because unlike the MBR that is just a table, Extended Partitions (actually Logical Partitions) form a Link List structure on the physical media. While this makes them more flexible it also adds a little more complexity to the scheme. So things took a little longer than I thought they would. I have however become pretty good using a hex editor (HUGS DiskProbe) which is something I have never used before.

The good news is that everything seems to be working well. There are probably still bugs. This is something that will need more testing so I would urge anyone who wants to test this out, to do so somewhere that does not contain critical data or make sure you have backups. *THIS COULD DESTROY EVERYTHING* -or at least you partition tables- but hopefully it will work as expected. On that note I have been able to use logical partition that DriveSetup created to install and run Haiku! It also seems to work pretty well with parted (gparted).

So to wind up my final days as a GSoC student I will be fixing UI bugs and looking for more bugs and starting on GPT write support.

Happy Hacking,
Bryce

Extended Partitions with DriveSetup

Blog post by bebop on Thu, 2009-07-23 09:41
DriveSetup with extended partitionsDriveSetup with extended partitions I few days ago a patch went into the tree that cleaned up most of the remaining issues with creating primary partitions. So I started working on getting extended partition support in DriveSetup. This has been an interesting task as the extended partition support is not nearly as complete as primary partition support. To make a long story short, I have been able to create an extended partition and logical partitions within. This code is just a hack at the moment and not fit for the public but hopefully in the coming days the code can be cleaned up and the bugs can be fixed and we will have extended partitions! For those of you who are like me and enjoy seeing pictures here is a screen shot. Ciao, Bryce

Another week down.

Blog post by bebop on Mon, 2009-06-22 10:10

Well another week has passed. I cannot say that to many eventful things have happened with my project. I have been working on getting all of the logic in DriveSetup to work the way I think that it should. I finally connected my development computer up to the network today though and thought I would post a screen shot. The two partitions were created with DriveSetup! Not a whole lot to look at but I pictures are always fun :)

DriveSetup Creating PartitionsDriveSetup Creating Partitions

In the beginning (or DriveSetup creation)

Blog post by bebop on Tue, 2009-06-16 02:08

Another week has gone by and I am glad to say that some progress has been made. Just a few minutes ago I was able to create a brand new partition from within DriveSetup. The setup is as follows: Create a new empty Intel partition map (thanks Stippi), in that map create a new partition that spans the whole disk. It works! After that I initialized the partition with BFS and can install Haiku on it.

This is far from a complete solution however, there are a few places were code that should not be commented out is commented out and a bunch of my debugging information is still in the code. Also one cannot yet set the size of the partition or where you want it on the disk and I suspect that being able to set these parameters will lead to some more bugs that I will get to track down.

In any case I am really excited because I can finally see visual progress in the work that I have been doing which I think makes anyone happy. So stay tuned and hopefully I will have a nice neat patch in the near future.
Ciao,
Bryce

p.s. BIG thanks to Bonefish.

Update DriveSetup/Disk_Device

Blog post by bebop on Wed, 2009-04-22 04:21

I live in Honolulu Hawaii, I enjoy Surfing, Swimming, Sun and Code. I am working on my BS in Computer Science at the University of Hawaii at Manoa and minoring in Geography. Next year will be my senior year. I have taken courses in concurrent programming as well as networking. Next year I will be taking an operating systems course. I also have some experience in machine architecture and optimization. My current side project is writing an application for the Geography Department, that is a complete suite of tools for stereogrammetry. My professional work has been work on an electronic medical health records system based on the United States Veterans Affairs VistA system. I have more recently worked for Nanopoint Imaging Inc. working on live cell imaging and microfluidics software.

Project: Finalize Design and Implementation of the Disk Device Framework and DriveSetup Application.
I would like to complete the implementation of the DriveSetup application for Haiku. The application is a key feature of Haiku and is currently in the Haiku bug tracker as an Alpha milestone.

To Complete this task will require:

Disk Device Framework:

  • Collaborate with mentors to finish work on the Disk Device Frame work.
    • Add partition/partition map creation to the Disk_Device API
    • Add partition/partition map deletion to the Disk_Device API
    • Finish Intel Partition Add on, in particular finish Extended Partition support.
  • Design and implement modules that the team deems necessary to complete the Disk Device framework.

    DriveSetup:

  • Update the DriveSetup UI to reflect the changes in the API
    • Add creation of Intel style partition maps.
    • Add creation of partitions of popular file system types.
    • Add deletion of partition maps and partitions.
  • Adapt DriveSetup to Haiku's layout system.
  • Apply MVP design pattern to all newly created code.

    Implementing the Intel style partition map (MBR) and extended partitions (EBR) can be done by following the data structures that have been well documented. The source code from Linux, and the BSD's as well as the various partition tools could be used as a starting point for integration into the operating system. The creation and deletion of these structures on disk will then be dependent on how well the implementation follows the data structures. Writing the DriveSetup application should then be a matter of creating a mock up then designing the correct views from the BeAPI.

    BeOS sparked my interesting in alternative operating systems way back in 8th grade. Since then I have watched Haiku/OpenBeOS and have always wanted to help but was unable to write code. Now that I have some experience as a paid programmer I feel that I can finally make a commitment to complete a project I set out to accomplish. I feel that I would be a good candidate for the project because I have experience in breaking a project into small tasks that can be completed by a fixed deadline. I have also become good at making time estimates on how long a particular task should take to be completed. I also believe that I have the technical skills to finish the project that I have outlined above, and would be excited to be given the chance to do so.

  • Syndicate content