This argument tells the kernel what device is to be used as the root filesystem while booting. The default of this setting is determined at compile time, and usually is the value of the root device of the system that the kernel was built on. To override this value, and select the second floppy drive as the root device, one would use root=/dev/fd1. (The root device can also be set using rdev(8).)
The root device can be specified symbolically or numerically. A symbolic specification has the form /dev/XXYN, where XX designates the device type (hd for ST-506 compatible hard disk, with Y in a-d; sd for SCSI compatible disk, with Y in a-e; ad for Atari ACSI disk, with Y in a-e, ez for a Syquest EZ135 parallel port removable drive, with Y=a, xd for XT compatible disk, with Y either a or b; fd for floppy disk, with Y the floppy drive number - fd0 would be the DOS A: drive, and fd1 would be B:), Y the driver letter or number, and N the number (in decimal) of the partition on this device (absent in the case of floppies). Recent kernels allow many other types, mostly for CD-ROMs: nfs, ram, scd, mcd, cdu535, aztcd, cm206cd, gscd, sbpcd, sonycd, bpcd. (The type nfs specifies a net boot; ram refers to a ram disk.)
Note that this has nothing to do with the designation of these devices on your file system. The /dev/ part is purely conventional.
The more awkward and less portable numeric specification of the above possible root devices in major/minor format is also accepted. (E.g., /dev/sda3 is major 8, minor 3, so you could use root=0x803 as an alternative.)
"ro and rw"
The ro option tells the kernel to mount the root filesystem as readonly so that filesystem consistency check programs (fsck) can do their work on a quiescent file system. No processes can write to files on the filesystem in question until it is remounted as read/write capable, e.g., by mount -w -n -o remount /. (See also mount(8).)
The rw option tells the kernel to mount the root filesystem read/write. This is the default.
The choice between read-only and read/write can also be set using rdev(8).
This is used to protect I/O port regions from probes. The form of the command is: