Asadar, se punea problema conceperii unui sistem de operare universal, care sa poata functiona, teoretic, pe orice tip de masina – sistemul UNIX. Pentru aceasta era nevoie de un limbaj care sa exploateza toate posibilitatile unei masini, dar care nu putea fi limbajul de asamblare, deoarece el este specific masinii – o noua implementare presupunea rescrierea integrala a sistemului. Din aceasta dilema s – a putut iesi construind un limbaj de nivel inalt (initial limbajul B, ulterior C ) care introducea si concepte de nivel scazut, hardware ( registru, adresa, locatie de memorie absoluta etc.).
Mai bine de 90 % din sursele primului sistem de operare UNIX ( implementat pe o masina PDP – 7 ) au fost scrise utilizand limbajul C, iar pentru restul modulelor, s – a apelat la limbajul de asamblare. Sistemul astfel obtinut a fost distribuit impreuna cu codul sursa si cu descrierea noului limbaj folosit, cu intentia vadita de a – l transforma intr – un sistem de operare universal. Succesul nu a sosit imediat, dar era asigurat de noua metoda de lucru. Programatorii au fost incitati sa dezvolte acest sistem, extinzandu – l cu noi module si sa il implementeze pe alte masini prin rescrierea acelei minime parti ( sub 10 % ) in limbaj de asamblare... „C” devenea un limbaj de referinta.