Bootable Cd's

Question about which tools to use, bugs, the best way to implement a function, etc should go here. Don't forget to see if your question is answered in the wiki first! When in doubt post here.
Jabus10

Bootable Cd's

Post by Jabus10 »

All the tutorials i have seen for os development use floppy disks and my computer dosen't have a floppy drive. Do you just use debug or partcopy to write to the cd. Secondly when i have a bootable disk i would want to load the kernel from it and i don't know the driver code for cd drives (ie 00 for floppy A: and 01 for floopy b) Any help would be greatly appreciated. Thanks.
User avatar
Solar
Member
Member
Posts: 7615
Joined: Thu Nov 16, 2006 12:01 pm
Location: Germany
Contact:

Re:Bootable Cd's

Post by Solar »

*sigh*

You can't write to a CD using either debug or partcopy. It's a read-only media, see? And even if you have a CD-R/CD-RW, the file format and driver protocol are completely different from that used on floppy. They are, for that reason, also adressed very differently by the BIOS. There are two different ways to boot from a CD that I know of - El Torito and floppy emulation. It's not just a matter of changing a number here and there.

I would recommend you use a floppy image file and an emulator like Bochs for your first steps.
Every good solution is obvious once you've found it.
hendric

Re:Bootable Cd's

Post by hendric »

Some software suck as WINISO will be helpful.Or burning your image into the disk manually.If you think floppy too small for you,try the raw hard disk image.I think it cool and I'm now using it to hold my kernel.Debugging your kernel under BOCHS's a good idea. ;)
Candamir

Re:Bootable Cd's

Post by Candamir »

If I were you, I'd also check the GRUB manual and check the section 'Creating a bootable CD-Rom' (or something like that). I think that's what you'd like, isn't it? The only thing you need is mkisofs and a tool to write .iso images to cds (if you don't want to use BOCHS).

Candamir
Darkhack

Re:Bootable Cd's

Post by Darkhack »

It's not just about testing your OS. I'm sure most everyone uses Bochs or some kind of tool to test/debug an operating system, but from time to time you also need to test on a real system. Bochs still isn't perfect and every so often, things will work in Bochs that won't work on a real machine. Also if you plan on distrubuting your OS to others, then you almost have to use a CD because of the lack of floppy drives in newer computers. Storage size is another issue, if you are farther along and require more than 1.44mb of storage. So simply telling someone "use bochs" isn't always a good enough answer for what they really need to do.
User avatar
Brendan
Member
Member
Posts: 8561
Joined: Sat Jan 15, 2005 12:00 am
Location: At his keyboard!
Contact:

Re:Bootable Cd's

Post by Brendan »

Hi,

IMHO one of the best ideas is to have some form "boot specification" that specifies the state of the computer before the kernel (or whatever) is started - something that defines that state of everything for the transition between the boot loader and the rest of the OS. Then you can have many different boot loaders and many different disk images that all comply with your "boot specification".

That way the OS itself won't care where it was booted from or what code booted it - you can have one boot loader for floppy, one for CD-ROM, one for GRUB, some for a specific embedded systems (that copy the OS from ROM or flash memory), one for TFTP, etc.


Cheers,

Brendan
For all things; perfection is, and will always remain, impossible to achieve in practice. However; by striving for perfection we create things that are as perfect as practically possible. Let the pursuit of perfection be our guide.
Dex4u

Re:Bootable Cd's

Post by Dex4u »

Even when emulating a floppy on CD, you still need a ATAPI driver, as if not, you need a ramdisk, as once you have loaded your kernel and moved to pmode emulation stops, so you can not load anything else from the image.
A simple ATAPI driver is much easier, than a fdd or Hdd if you include the file sys that you also need.
viral

Re:Bootable Cd's

Post by viral »

hello....
Its true that most of us are making our OS not only to run in bochs and feel good by seeing it, but to also distribute it among friends and share it.
There must be a way of writing kernel in CD and having a bootloader which will load it.
Please throw some light on this area too....
User avatar
Solar
Member
Member
Posts: 7615
Joined: Thu Nov 16, 2006 12:01 pm
Location: Germany
Contact:

Re:Bootable Cd's

Post by Solar »

Lather. Rinse. Repeat.

There are two ways of making a CD-ROM bootable, one being floppy emulation, the other being the El Torito standard.

Floppy emulation means that a floppy image - which might be a copy of a real floppy - is embedded in the CD. When booting off that CD, this floppy image is installed as a kind of overlay over the real floppy, and can be addressed as such. If the code contained on that floppy image includes a driver for the CD-ROM, voila. How you do that is basically what OS design is all about, isn't it?

El Torito I know nothing about as I've never tried it, but it should be comparatively easy to google for relevant information.
Every good solution is obvious once you've found it.
Dex4u

Re:Bootable Cd's

Post by Dex4u »

Basically you open your burn software and click on the make cd bootable, then point it to a floppy image or a floppy drive with a booable floppy in, it will add 2 files to the CD, once burnt it than bootable.
You can do the same with a Hdd image.
viral

Re:Bootable Cd's

Post by viral »

Hello...
Is is that easy to write a floppy image to CD!! But than the CD will only emulate floppy and it wont be using whole 700 mb space... I havent tried yet but i guess i must have ATAPI driver by which i'll read CDs.. And first it should be written to Floppy image and then on CD. So this way after booting... our kernel will access CD...
User avatar
Solar
Member
Member
Posts: 7615
Joined: Thu Nov 16, 2006 12:01 pm
Location: Germany
Contact:

Re:Bootable Cd's

Post by Solar »

Yes, that is what we have been telling you. ;)
Every good solution is obvious once you've found it.
octavio

Re:Bootable Cd's

Post by octavio »

El torito bios specification can load the kernel directly anywhere on the first megabyte of ram ,this way you can
forget about floppy and fat12 drivers, you only need a atapi
cd driver. There is also the hard disk emulation wich can use all the 700MB of the cd using int13h in real mode.
I use the first option on my OS ,there are also bios services
to translate the bios device number (in register dl ) to the
hardware disk number (ide 1/2 master/slave).
viral

Re:Bootable Cd's

Post by viral »

Hello....
I am starting to code a fresh ATAPI driver. My kernel is a multitasking C++ kernel with:
* Intruppt Management System
* Multitask floppy driver
* Driver management module

Right now i am studying the manuals. Can anyone suggest the steps to start it? I mean somethin like:

1. Install an ISR at ATAPI_INT_NO
2. Configure DMA
3. Send command to controller

Anything like that? I dont know much about this, so please give some long discription....
octavio

Re:Bootable Cd's

Post by octavio »

start by something easier, write a hard disk driver with polling instead of interrupts and pio instead of dma. The atapi protocol is a bit complex.
Post Reply