No Linux, quando você cria um arquivo:
- Um inode é gerado. Este é um descritor que aponta para blocos de dados no disco que também armazena informações como propriedade, permissões, etc.
- Um link para esse inode é criado. Este é essencialmente o "nome do arquivo" e onde fica o resto do sistema de arquivos.
No começo, pode ser um conceito confuso, mas é bem simples. Os inodes existem como entradas de sinais para os dados reais, mas para usar qualquer um deles, você precisa dos hardlinks para mostrar a estrutura do sistema de arquivos.
Isso permite que você tenha vários hardlinks para um inode, por exemplo, contanto que eles estejam na mesma partição.
No Windows (e isso pode se tornar falso à medida que a Microsoft evolui seus sistemas de arquivos) o inode e hardlink não são separados, eles são um e o mesmo. Isso significa que quando você cria o arquivo, ele cria esse bloco.
Efeitos colaterais óbvios são que múltiplos hardlinks não existem, mas é mais do que isso - muitas vezes não é possível excluir um arquivo (que seria apenas remover o hardlink no Linux) que está bloqueado para abertura (que seria manipulado por inode data no Linux).
Mas além disso (bastante importante), eles são bem parecidos.
Acontece que, desde o Vista, o NTFS funciona muito bem com os sistemas de arquivos comuns do Linux. Ele suporta links físicos e diretos sugerindo que eles têm um objeto semelhante a inode entre dados e caminho.
Em suma: Não há muita diferença nos dias de hoje. Em versões mais antigas do Windows do que do Vista, minha resposta superada carrega.