As an example of how it works in practice, a configuration I have regularly used in production servers is to have the RAID controller in a system configured with 2 arrays. The first has 2 identical disks connected and is configured as RAID1, i.e. mirrored. The 2nd has at least 3 disks (4 seems to be common) as is configured as a RAID5 array, i.e. distributed data with a parity check.
When the operating system is installed, the RAID1 array, which to the system appears to be a single disk the size of one of the drives, is used for the root partition, /etc, /usr, /var and swap, i.e. all the system stuff and the RAID5 array is used for /home, i.e. all the user data. The RAID5 array's size appears to be (n-1) times the size of a single disk (i.e. for 4 drives, the system sees a single 'disk' with a size of 3 times the size of a single drive).
In operation, the system sees 2 'disks'. If a drive fails, the RAID hardware simply stops using it and, usually, it can be replaced without stopping the server (hot-swapped), so the users are not affected by the fault.
The main reason for mirroring the system array is simply to get a slight performance boost and provide the ability to do 'tricks' like rapidly cloning a system by putting one mirror disk into a different server. In the past, I have also run systems where all the drives were configured as a single RAID5 array appearing to the operating system as a single big disk.
Software RAID works in the same way, but since the hardware doesn't usually allow for hot-swapping, the system usually needs to be shut down to replace a drive. Hence software RAID, while easier to set up, is actually harder to manage.
And you still need to have a good backup straegy in case 2 drives fail at once or the RAID controller itself fails!