In the case of sound, the general chain goes as follows:
kernel->pci or usb bus->udev rules -> alsa or pulse ->
ubuntu config and application
You have this slightly wrong. ALSA is the the drivers for the
actual soundcard. Pulseaudio is an advanced sound server that sits
on top of ALSA to provide extra functionality, like mixing multiple
channels of audio together, and per application volume control, that
ALSA doesn't have. Pulse then exports out it's own ALSA connection
so that programs that don't know how to talk to pulse can still make
sound.
ALSA only programs would do: Sound source -> libALSA -> PulseAudio ->ALSA driver-> hardware
While pulse programs would do: Sound source -> PulseAudio ->ALSA driver->
Hardware
Pre-pulse was rather grim times for audio with many programs
grabbing the audio card exclusively so that nothing else would be
able to make sounds.