The problem you're describing is most commonly referred to as bootstrapping (and its' relationship to the chicken and egg problem). That specific link is for compilers, but you have the same problem in many areas - hardware, operating systems, etc., with similar solutions.