Where does an ARM based system find its OS?
The bootloader is indeed the code that gets executed from the reset vector. How it finds the operating system is up to the individual design of the bootloader. For example, it may


read it from the first sectors of an SD card (like the MS-DOS bootloader)
read from the start of an EPROM/Flash memory
read bytes from a UART and interpret as an XMODEM download
it may configure itself as a USB mass storage device and wait for a download (some LPC parts can do this).