My OS has a protected mode driver for UHCI. This is the usb controller used on older computers with 2 usb ports on the back. Feel free to hack away. The folder /uhci contains about 20 files totaling 68,000 bytes of assembly code. Ive not attempted a driver for hard drives so not sure how much work that would be. There are other open source OS's with usb drivers. You just have to look.
I suggest downloading and studying the following:
For USB UHCI Universal Host Controller Driver Development:
*************************************************************************
[1] "Universal Serial Bus Mass Storage Class Bulk Only Transport", rev 1.0 Sept 1999 Usb Implementors Forum
[2] "Universal Serial Bus Specification", rev 1.1 1998 and rev 2.0, ch9 is most important
[3] Intel "82371AB PCI-ISA Xcelerator (PIIX4)" Controller Manual and "Universal Host Controller Interface (UHCI) Design Guide" rev 1.1, these are your hardware manuals
[4] "Working Draft American National Standard SCSI Block Commands (SBC-2)" Nov 2004 and the "SCSI Primary Commands (SPC-2)"
[5] "PCI Bios Spec" rev2.1
"Usb Simply Buffered Device Enumeration" and "Usb Simply Buffered Mass Storage Class - Bulk Only Transport" 2007 Shakthi Kannan, actual bytes from usb transactions
"USB Made Simple", web site with 7 part series.
"SnoopyPro" software for windows to view some usb transaction data.
LinuxBios usb_scsi_low.h
Beyond Logic "Usb in a Nutshell" excellent website
waste.org "PCI bus info and code from a programmers perspective"
TomT
http://code.google.com/p/tatos/