Histórico.
De volta aos primeiros dias, antes de os computadores percorrerem a Terra, dois grupos de pessoas completamente independentes iniciaram o desenvolvimento em dois subsistemas de software separados.
Aproveitando os privilégios dos desenvolvedores, cada grupo escolheu nomes adoráveis para as partes de seus subsistemas. " ip.h " é esse nome.
Quando chegou a hora de fundir seus subsistemas, ambos os grupos queriam manter seus nomes adoráveis.
Ao colocar a cópia de ip.h , as necessidades do subsistema em um subdiretório facilitam para os desenvolvedores. Um usuário que deseja usar as definições na versão de netinet de ip.h precisa apenas de #include <netinet/ip.h> , enquanto um desenvolvedor que deseja compilar com a versão linux faz #include <linux/ip.h> .