L'écriture du logiciel en langage C, et non en assembleur comme c'était alors l'usage, était une grande innovation qui permit de porter le système sur une grande variété de machines. Bien entendu, une portion (environ 5%) du code dépend de l'architecture matérielle de l'ordinateur : gestion des entrées/sorties, interruptions, gestion mémoire... Mais le gros du système reste commun d'une machine à l'autre, ce qui simplifie le travail et garantit un comportement identique (portabilité). Il est ainsi infiniment plus simple de porter un logiciel d'une station Hewlett-Packard à une Sun (toutes deux sous UNIX), que d'un Macintosh (sous Mac OS) à un PC (sous Windows ou MS/DOS).
Depuis la fin des années 70, il existe deux grandes familles d'UNIX. D'une part une version développée essentiellement par l'université de Berkeley (Californie), et nommée UNIX BSD, d'autre part l'UNIX Système V commercialisé par ATT. De nombreuses autres versions ont vu le jour, qui sont le plus souvent une adaptation de BSD ou Système V par un fabriquant particulier :
AIX IBM, Bull (stations de travail, mainframes);
HP/UX Hewlett-Packard (stations);
SCO Unix SCO (PC);
OSF/1 DEC;
Solaris Sun MicroSystems (stations Sun et PC);
Linux Logiciel gratuit pour PC.
Ces différentes versions possèdent quelques incompatibilités. Pour y remédier, une norme a été proposée par l'IEEE, le système POSIX. La plupart des versions modernes d'UNIX sont des sur-ensemble de POSIX; un programme écrit en respectant POSIX sera donc portable sur toutes ces versions.
Les premières versions d'UNIX ne permettaient que le travail sur des terminaux alphanumériques (il n'en existait pas d'autres à l'époque). Un grand pas en avant a été fait avec le développement au MIT du système X Windows (X11). Ce système permet le multifenêtrage sur écran graphique et le développement d'interfaces utilisateurs sophistiquées et ``conviviales'' (inspirées du Macintosh). De nombreux environnements graphiques sont maintenant disponibles : Motif, OpenLook (Sun), etc.