Page 2 of 2

Re:SATA II disk and drivers: worth it?

Posted: Fri Jul 14, 2006 4:03 am
by kernel64
Well, by the time my system arrives it will be nearly 6 days old, and so obsolete too. Actually it is obsolete because it doesn't have PCI-X nor does it have SATA II ports, which is depressing. I spent AUD$100 on this motherboard, an ASUS P5P800-VM. That was all my budget would allow for. Had to get a disk, case, some RAM, a CPU and a DVD ReWriter, too. Why still make mobos with the old SATA I interface when 99% of new SATA disks are SATA II? So I will need to set the jumper to SATA I mode on the new Seagate 160GB SATA II disk I've bought. I wanted one with a 16MB cache, but again budget limits meant that this was it. Still, I did squeeze in a Pentium D processor which is very nice. It's a Pentium D 805 dual core with 1MB cache for each core.

I think I'll go for a SATA driver straight away. I'm sure a great deal of stuff can be ripped out the Linux drivers to reveal the basics. I find the specs to be more confusing than anything else to try and get the big picture and organise everything. From reading the ATA specs for example, I don't recall seeing that ATA_IDENTIFY had to be sent before issuing read/write commands, although it would have been in there somewhere.

I find that's a major problem with monster programming tasks like writing an OS. Getting lost in details is so easy. :( Getting the big picture, like using a divide and conquer approach is difficult.

Having said that, I have a book called Operating System Design: The XINU Approach (PC Edition) by Douglas Comer. It's a contender for the best OS design book with Tanenbaum's Operating Systems: Design and Implementation. Comer's book explains things like concurrency far better than any other OS book I've seen. The code is short and simple. It's not a great stretch of the imagination to apply the principles to a 32- or 64-bit system.

Edit: fix typos.

Re:SATA II disk and drivers: worth it?

Posted: Fri Jul 14, 2006 9:05 am
by JAAman
windows has come out with its own SATA driver already but so far they haven't deployed it. You need to press F6 during installation so as to inject your 3rd party drivers.
only on old copies of windows -- it is on my disks (i believe its on the sp2 slipstream -- though i could be wrong)
Actually it is obsolete because it doesn't have PCI-X
no PCI-X? only the expensive workstation boards do
i think you meant PCIe

the only reason i am correcting you here, is because ive seen alot of people use the wrong abreviation for PCI express -- alot of people use PCI-X

there are several "extensions" to PCI:
32bit, 33MHz (standard PCI)
64bit, 33MHz
32bit, 66MHz
64bit, 66MHz
64bit, 133MHz (PCI-X)

the proper abreviation for PCI express is PCIe

Re:SATA II disk and drivers: worth it?

Posted: Fri Jul 14, 2006 10:00 am
by Candy
kernel64 wrote: Actually it is obsolete because it doesn't have PCI-X nor does it have SATA II ports, which is depressing. I spent AUD$100 on this motherboard, an AUS P5P800-VM. That was all my budget would allow for. Had to get a disk, case, some RAM, a CPU and a DVD ReWriter, too. Why still make mobos with the old SATA I interface when 99% of new SATA disks are SATA II? So I will need to set the jumper to SATA I mode on the new Seagate 160GB SATA II disk I've bought. I wanted one with a 16MB cache, but again budget limits meant that this was it. Still, I did squeeze in a Pentium D processor which is very nice. It's a Pentium D 805 dual core with 1MB cache for each core.
That's a pretty exact match, for slightly less money. I got the 250GB Samsung SATA-II disk, also a Pentium D 805 (64bit + dualcore - pretty hard to beat for my OSdev purposes). Dito on all other components (A-open case, 1gb corsair ram, asus dvd rewriter, ati X1300 videocard - and I added a TV card with cx23882 chip for messing about with).
I think I'll go for a SATA driver straight away. I'm sure a great deal of stuff can be ripped out the Linux drivers to reveal the basics. I find the specs to be more confusing than anything else to try and get the big picture and organise everything. From reading the ATA specs for example, I don't recall seeing that ATA_IDENTIFY had to be sent before issuing read/write commands, although it would have been in there somewhere.
What're you going to read off the disk if you don't know what space there is? That's like walking through a mine field blindfolded.
I find that's a major problem with monster programming tasks like writing an OS. Getting lost in details is so easy. :( Getting the big picture, like using a divide and conquer approach is difficult.
Very true... It's also very easy to get lost in "acquiring a top-level insight"... I'm off implementing btw, got some idea :)

Re:SATA II disk and drivers: worth it?

Posted: Fri Jul 14, 2006 11:05 am
by Candy
Just now, it hit me. The new standard for SATA connected devices is with AHCI host controller interfaces. I just found on ATA-ATAPI.com that it was Intel who designed this. Intel, with the unfathomably unnavigable website and moving documents, but who always has a very up to date search button. Type AHCI and you receive:

The SATA Host Controller Interface documents.

I'm happy and off reading+printing.

Re:SATA II disk and drivers: worth it?

Posted: Fri Jul 14, 2006 11:24 am
by Kemp
I love how they try to keep different systems visibly seperate in the abbreviations department...

OHCI = USB
UHCI = USB
EHCI = USB

AHCI = SATA

::)

Re:SATA II disk and drivers: worth it?

Posted: Fri Jul 14, 2006 12:04 pm
by Candy
Kemp wrote: I love how they try to keep different systems visibly seperate in the abbreviations department...

OHCI = USB
UHCI = USB
EHCI = USB

AHCI = SATA

::)
You aren't the only one. Took me a few weeks to remember what AHCI was for, I only remembered - it doesn't fit the line... but what again was it...

Re:SATA II disk and drivers: worth it?

Posted: Fri Jul 14, 2006 12:05 pm
by kernel64
Candy wrote: That's a pretty exact match, for slightly less money. I got the 250GB Samsung SATA-II disk, also a Pentium D 805 (64bit + dualcore - pretty hard to beat for my OSdev purposes). Dito on all other components (A-open case, 1gb corsair ram, asus dvd rewriter, ati X1300 videocard - and I added a TV card with cx23882 chip for messing about with).
Very nice!
What're you going to read off the disk if you don't know what space there is? That's like walking through a mine field blindfolded.
The MBR for a start. :P

But yeah, I get your point! Didn't think of that! ;D
Very true... It's also very easy to get lost in "acquiring a top-level insight"... I'm off implementing btw, got some idea :)
Me too. I've seriously cut back on the stuff I want and actually decided on the kernel's intended purpose! Just as difficult as the code, in my experience.

I've also rearranged the way I'm doing things, doing most of the stuff in userland on existing OSes before sticking it in the kernel. The core of the kernel, i.e. the task scheduling, physical memory manager, IPC and so on will come last. Then there's device drivers, which I will lift from other OSes as much as possible. I will have file system, virtual memory manager, program loader, kernel support library and other code more or less done before I touch the core of the kernel. Networking comes in at the very end. :)