Eu diria que é enganoso chamar getpid()
a "chamada do sistema linux". Isso dá a impressão de que é uma chamada de sistema específica do Linux , o que não é. Na verdade, getpid()
e muitas outras chamadas do sistema são especificadas pelo POSIX, e você a encontrará implementada no Linux e no MacOS e em muitos outros sistemas, com comportamento idêntico.
A maioria das chamadas do sistema ou até mesmo as funções da biblioteca C que você usará no software típico são especificadas por padrões como POSIX e ANSI C, e você as implementará com o mesmo comportamento em muitos sistemas operacionais diferentes. O software portátil é um software que mantém esse conjunto de chamadas e funções comuns do sistema amplamente disponíveis.
O Linux também possui chamadas de sistema específicas do Linux. O MacOS também possui chamadas de sistema específicas do MacOS. Nenhum desses funcionará no sistema operacional oposto, obviamente. Os manpages para tais chamadas de sistema geralmente chamam a atenção para o fato de que eles não são portáteis. Além disso, eles existem com frequência como detalhes de implementação de baixo nível e a maioria dos softwares não precisa usá-los, o que torna mais fácil manter a maioria dos softwares portáteis.