[hfs-user] Thanks for the Tip.

Biswaroop Banerjee biswaroopban@yahoo.co.in
Fri, 8 Feb 2002 11:28:32 +0530


This is a multi-part message in MIME format.

------=_NextPart_000_0030_01C1B093.BD147480
Content-Type: text/plain;
	charset="iso-8859-1"
Content-Transfer-Encoding: quoted-printable

  Sir,

    I thank you for giving me a good pointer to start my
  adventure. I am already going through the B* tree
  information and start gathering information from your named
  sources too.=20
  I came to know that you are in Apple. I want to give you
  a more clear picture of my plans.
 =20
  Aim of the Project : To create a Hybrid CD image which can be =
afterwards written to a Blank CD/DVD to make a Hybrid CD/DVD.

 Platforms : The Image file is generated on Windows9x and =
Windows2000,WinXP and WIN NT4.0

Brief Operational View : The end user will select a list of files from a =
Windows formatted volume . This is taken care by the Front End (Visual =
C++).

According to the  Filesystem specs for HFS and ISO9660 the filenames of =
the selected files will be checked.

A file will be opened to write the Image. Upto the first 16 =
sectors(1sector =3D 2048 bytes) the file will contain HFS specific data =
structures namely=20
 1. HFS volume recognizition sequence in the first 512 bytes of the =
file.
 2. Volume Bitmap .
3.  Catlog File
4.  Extents Overflow file.

        The space requirements for the above data structures can be =
found out beforehand since we will be targetting Disc at once writng =
method and we already
     know which files to be written to the HFS volume.

In the 16 th sector the Primary Volume descriptors for ISO9660 will be =
written and then the data for ISO9660 filesystem and then the data =
corresponding
 to the HFS volume will be dumped.

This implementation  overview is my understanding and I would request =
you all for and Comments and Suggestions .

 I have the source code for mkhybrid  for  guidance. I want to have =
suggestion on that too. Is it similar too the ' Darwin' code.

 Waitng for your suggestions and inputs  eagerly.
 regards
 Biswaroop


 =20

  ----- Original Message -----=20
  From: Patrick Dirks=20
  To: hfs-user@lists.mars.org=20
  Cc: Biswaroop Banerjee=20
  Sent: Friday, February 08, 2002 12:26 AM
  Subject: Re: [hfs-user] Algorithm of B* tree Implementation


  "The algorithm" is a bit hard to lay out in an e-mail message - it's =
wrapped up in a series of design and implementation aspects. Read up on =
B*-Trees and you should have a good idea what the data structure's =
supposed to look like at any given time. Read "Inside Macintosh" and =
you'll find a more detailed explanation of the exact details of the =
HFS/HFS+ B*-Tree structure. More helpful than "Inside Macintosh", =
perhaps, is the tech note that Apple's published on the subject - "must =
read" for anyone implementing a version of HFS/HFS+. I can't remember =
the tech note number offhand but it's freely available through Apple's =
web site - do a search there.

  Finally, note that the Darwin code, which Apple has open sourced, =
includes a complete "C" implementation of the B*-Tree code as part of a =
UNIX kernel. Sign up as a Darwin developer and check out a copy of the =
sources. It's in the "xnu" project in the "hfs" directory inside the =
"bsd" directory of "xnu". That's the ultimate answer right there.

  Hope that helps,
  -Pat Dirks.

  On Thursday, February 7, 2002, at 02:04 AM, Biswaroop Banerjee wrote:


    Hi All,
    =20
      Can anybody of you give me the algorithm of implementating a B* =
tree which is the prominent data structure in a HFS formatted volume.
    =20
    Waiting  for your help.
     Regards
    Biswaroop Banerjee.
    =20
    =20
    The essence of Success lies in its Struggle
                                                                     =
-Bisban=20


------=_NextPart_000_0030_01C1B093.BD147480
Content-Type: text/html;
	charset="iso-8859-1"
Content-Transfer-Encoding: quoted-printable

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML><HEAD>
<META http-equiv=3DContent-Type content=3D"text/html; =
charset=3Diso-8859-1">
<META content=3D"MSHTML 5.50.4134.600" name=3DGENERATOR>
<STYLE></STYLE>
</HEAD>
<BODY bgColor=3D#ffffff>
<DIV><FONT face=3DArial size=3D2>&nbsp; Sir,</FONT></DIV>
<DIV><FONT face=3DArial size=3D2></FONT>&nbsp;</DIV>
<DIV><FONT face=3DArial size=3D2>&nbsp;&nbsp;&nbsp; I thank you for =
giving me a good=20
pointer to start my</FONT></DIV>
<DIV><FONT face=3DArial size=3D2>&nbsp; adventure. I am already going =
through the B*=20
tree</FONT></DIV>
<DIV><FONT face=3DArial size=3D2>&nbsp; information and start gathering =
information=20
from your named</FONT></DIV>
<DIV><FONT face=3DArial size=3D2>&nbsp; sources too. </FONT></DIV>
<DIV><FONT face=3DArial size=3D2>&nbsp; I came to know that you are in =
Apple. I want=20
to give you</FONT></DIV>
<DIV><FONT face=3DArial size=3D2>&nbsp; a more clear picture of my=20
plans.</FONT></DIV>
<DIV><FONT face=3DArial size=3D2>&nbsp; </FONT></DIV>
<DIV><FONT face=3DArial size=3D2>&nbsp; Aim of the Project : To create a =
Hybrid CD=20
image which can be afterwards written to a Blank CD/DVD to make a Hybrid =

CD/DVD.</FONT></DIV>
<DIV><FONT face=3DArial size=3D2></FONT>&nbsp;</DIV>
<DIV><FONT face=3DArial size=3D2>&nbsp;Platforms : The Image file is =
generated on=20
Windows9x and Windows2000,WinXP and WIN NT4.0</FONT></DIV>
<DIV><FONT face=3DArial size=3D2></FONT>&nbsp;</DIV>
<DIV><FONT face=3DArial size=3D2>Brief Operational View : The end user =
will select a=20
list of files from a Windows formatted volume . This is taken care by =
the Front=20
End (Visual C++).</FONT></DIV>
<DIV><FONT face=3DArial size=3D2></FONT>&nbsp;</DIV>
<DIV><FONT face=3DArial size=3D2>According to the&nbsp; Filesystem specs =
for HFS and=20
ISO9660 the filenames of the selected files will be =
checked.</FONT></DIV>
<DIV><FONT face=3DArial size=3D2></FONT>&nbsp;</DIV>
<DIV><FONT face=3DArial size=3D2>A file will be opened to write the =
Image. Upto the=20
first 16 sectors(1sector =3D 2048 bytes) the file will contain HFS =
specific data=20
structures namely </FONT></DIV>
<DIV><FONT face=3DArial size=3D2>&nbsp;1. HFS volume recognizition =
sequence in the=20
first 512 bytes of the file.</FONT></DIV>
<DIV><FONT face=3DArial size=3D2>&nbsp;2. Volume Bitmap .</FONT></DIV>
<DIV><FONT face=3DArial size=3D2>3.&nbsp; Catlog File</FONT></DIV>
<DIV><FONT face=3DArial size=3D2>4.&nbsp; Extents Overflow =
file.</FONT></DIV>
<DIV><FONT face=3DArial size=3D2></FONT>&nbsp;</DIV>
<DIV><FONT face=3DArial =
size=3D2>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; The=20
space requirements for the above data structures can be found out =
beforehand=20
since we will be targetting Disc at once writng method and we=20
already</FONT></DIV>
<DIV><FONT face=3DArial size=3D2>&nbsp;&nbsp;&nbsp;&nbsp; know which =
files to be=20
written to the HFS volume.</FONT></DIV>
<DIV><FONT face=3DArial size=3D2></FONT>&nbsp;</DIV>
<DIV><FONT face=3DArial size=3D2>In the 16 th sector the Primary Volume =
descriptors=20
for ISO9660 will be written and then the data for ISO9660 filesystem and =
then=20
the data corresponding</FONT></DIV>
<DIV><FONT face=3DArial size=3D2>&nbsp;to the HFS volume will be=20
dumped.</FONT></DIV>
<DIV><FONT face=3DArial size=3D2></FONT>&nbsp;</DIV>
<DIV><FONT face=3DArial size=3D2>This implementation&nbsp; overview is =
my=20
understanding and I would request you all for and Comments and =
Suggestions=20
.</FONT></DIV>
<DIV><FONT face=3DArial size=3D2></FONT>&nbsp;</DIV>
<DIV><FONT face=3DArial size=3D2>&nbsp;I have the source code for=20
<STRONG>mkhybrid</STRONG>&nbsp; for&nbsp; guidance.&nbsp;I want to have=20
suggestion on that too. Is it similar too the ' Darwin' =
code.</FONT></DIV>
<DIV><FONT face=3DArial size=3D2></FONT>&nbsp;</DIV>
<DIV><FONT face=3DArial size=3D2>&nbsp;Waitng for your suggestions and =
inputs&nbsp;=20
eagerly.</FONT></DIV>
<DIV><FONT face=3DArial size=3D2>&nbsp;regards</FONT></DIV>
<DIV><FONT face=3DArial size=3D2>&nbsp;Biswaroop</FONT></DIV>
<DIV><FONT face=3DArial size=3D2></FONT>&nbsp;</DIV>
<DIV><FONT face=3DArial size=3D2></FONT>&nbsp;</DIV>
<DIV><FONT face=3DArial size=3D2>&nbsp; </FONT></DIV>
<DIV><FONT face=3DArial size=3D2></FONT>&nbsp;</DIV>
<BLOCKQUOTE dir=3Dltr=20
style=3D"PADDING-RIGHT: 0px; PADDING-LEFT: 5px; MARGIN-LEFT: 5px; =
BORDER-LEFT: #000000 2px solid; MARGIN-RIGHT: 0px">
  <DIV style=3D"FONT: 10pt arial">----- Original Message ----- </DIV>
  <DIV=20
  style=3D"BACKGROUND: #e4e4e4; FONT: 10pt arial; font-color: =
black"><B>From:</B>=20
  <A title=3Dpwd@apple.com href=3D"mailto:pwd@apple.com">Patrick =
Dirks</A> </DIV>
  <DIV style=3D"FONT: 10pt arial"><B>To:</B> <A =
title=3Dhfs-user@lists.mars.org=20
  href=3D"mailto:hfs-user@lists.mars.org">hfs-user@lists.mars.org</A> =
</DIV>
  <DIV style=3D"FONT: 10pt arial"><B>Cc:</B> <A =
title=3Dbiswaroopban@yahoo.co.in=20
  href=3D"mailto:biswaroopban@yahoo.co.in">Biswaroop Banerjee</A> </DIV>
  <DIV style=3D"FONT: 10pt arial"><B>Sent:</B> Friday, February 08, 2002 =
12:26=20
  AM</DIV>
  <DIV style=3D"FONT: 10pt arial"><B>Subject:</B> Re: [hfs-user] =
Algorithm of B*=20
  tree Implementation</DIV>
  <DIV><FONT face=3DArial size=3D2></FONT><BR></DIV>"The algorithm" is a =
bit hard to=20
  lay out in an e-mail message - it's wrapped up in a series of design =
and=20
  implementation aspects. Read up on B*-Trees and you should have a good =
idea=20
  what the data structure's supposed to look like at any given time. =
Read=20
  "Inside Macintosh" and you'll find a more detailed explanation of the =
exact=20
  details of the HFS/HFS+ B*-Tree structure. More helpful than "Inside=20
  Macintosh", perhaps, is the tech note that Apple's published on the =
subject -=20
  "must read" for anyone implementing a version of HFS/HFS+. I can't =
remember=20
  the tech note number offhand but it's freely available through Apple's =
web=20
  site - do a search there.<BR><BR>Finally, note that the Darwin code, =
which=20
  Apple has open sourced, includes a complete "C" implementation of the =
B*-Tree=20
  code as part of a UNIX kernel. Sign up as a Darwin developer and check =
out a=20
  copy of the sources. It's in the "xnu" project in the "hfs" directory =
inside=20
  the "bsd" directory of "xnu". That's the ultimate answer right=20
  there.<BR><BR>Hope that helps,<BR>-Pat Dirks.<BR><BR>On Thursday, =
February 7,=20
  2002, at 02:04 AM, Biswaroop Banerjee wrote:<BR><BR>
  <BLOCKQUOTE><?fontfamily><?param Arial><?smaller>Hi =
All,<?/smaller><?/fontfamily><BR>&nbsp;<BR><?fontfamily><?param =
Arial><?smaller>&nbsp;=20
    Can anybody of you give me the algorithm of implementating a B* tree =
which=20
    is the prominent data structure in a HFS formatted =
volume.<?/smaller><?/fontfamily><BR>&nbsp;<BR><?fontfamily><?param =
Arial><?smaller>Waiting&nbsp;=20
    for your help.<?/smaller><?/fontfamily><BR><?fontfamily><?param =
Arial><?smaller>&nbsp;Regards<?/smaller><?/fontfamily><BR><?fontfamily><?=
param Arial><?smaller>Biswaroop=20
    =
Banerjee.<?/smaller><?/fontfamily><BR>&nbsp;<BR>&nbsp;<BR><?fontfamily><?=
param Arial><?smaller>The=20
    essence of Success lies in its=20
    =
Struggle<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&=
nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&n=
bsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nb=
sp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbs=
p;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp=
;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;=20
    =
-Bisban&nbsp;<?/smaller><?/fontfamily><BR></BLOCKQUOTE></BLOCKQUOTE></BOD=
Y></HTML>

------=_NextPart_000_0030_01C1B093.BD147480--