Senhor, acho que você tem um equívoco sobre o que é o bloqueio e o que é o mutex. Além disso, você tem um equívoco sobre o que é o Ubuntu.
Vamos começar com o último: o Ubuntu é uma distribuição baseada em Linux . Todo e qualquer componente de arquitetura de sistema de baixo nível é feito pelo kernel do Linux. O Ubuntu é apenas uma maneira de juntar diferentes peças de software, configurando, instalando e atualizando-as de maneira robusta, uniforme e fácil de usar. Sua pergunta, portanto, refere-se ao Linux e não ao Ubuntu.
Os mutexes são usados para garantir que os recursos comuns (como a memória) não sejam acessados e modificados por engano ao mesmo tempo. Como os processos em geral não compartilham recursos como memória (nem no Windows nem no Linux), o problema surge quando se usa threads , e não em processos. Isso é feito usando mutexes, você está certo nisso; aqui você encontrará mais informações sobre isso. Linux usa encadeamentos POSIX. No entanto, se você - como programador - usa mutexes ou outra coisa (como spinlocks ou seção crítica), isso depende de você, não do sistema (veja aqui ), seja Windows ou Linux.
Quanto aos processos, é necessário bloquear o arquivo, mas essa é uma história diferente. E sim, os processos são implementados de forma diferente no Windows e no Linux (mais importante, no agendamento; consulte esta apresentação para lançar alguma luz sobre isso).