Today's strictly mechanical question:
Before a browser can do anything else, it has to hit up the DNS to translate the requested hostname into a numerical address.
How does it find the DNS in the first place? Is this something that is built into the browser? Or is there an uber-DNS where the browser goes to get a current list of places to try?
Next question: Once the browser has a list, how does it decide what order to check? Is it hard-coded somewhere, or does the browser "learn" based on success rates of earlier queries?