Notas de estudo de programação de aplicativos Linux C - (1) conceitos de programação de aplicativos

"[Pontuality Atom] I.MX6U Embedded Linux C Application Programming Guide" notas de estudo

chamada do sistema

O conjunto composto por todas as chamadas de sistema fornecidas pela implementação do sistema operacional é uma interface de programa ou uma interface de programação de aplicativos (API). É a interface entre o aplicativo e o sistema.

--Enciclopédia Baidu

Por meio de chamadas de sistema, um aplicativo Linux pode solicitar ao kernel que faça algo em seu próprio nome, como manipular um arquivo de disco (abrir, ler ou gravar).

O relacionamento entre aplicativos, chamadas de sistema e o kernel pode ser representado pelo diagrama a seguir.

Fonte da imagem: "[Punctuality Atom] I.MX6U Embedded Linux C Application Programming Guide"

insira a descrição da imagem aqui

Na programação de aplicativos Linux (programação do sistema), as APIs do sistema (como abrir, escrever, ler, fechar, etc.) são chamadas no aplicativo para completar as funções e a lógica do aplicativo.

O sistema operacional Linux possui dois estados: estado do kernel e estado do usuário. O aplicativo é executado no estado do usuário, mas o aplicativo pode usar a API do sistema para concluir algumas tarefas executadas no estado do kernel.

Funções da biblioteca

Além de usar chamadas de sistema para interagir com o kernel, os aplicativos também podem usar funções de biblioteca.

A função de biblioteca aqui se refere à função de biblioteca da linguagem C. Quando entramos em contato com a linguagem C, começamos a lidar com as funções da biblioteca, como , printf()e assim por diante. Em sistemas Linux, as funções de biblioteca geralmente são armazenadas no diretório /lib na forma de arquivos de biblioteca dinâmicos (.so). As funções de biblioteca C são construídas em chamadas de sistema, ou seja, as funções de biblioteca contêm chamadas de sistema, mas nem todas as funções de biblioteca usam chamadas de sistema (como algumas funções de processamento de string , etc.), e muitas funções de biblioteca são chamadas de sistema Encapsulation, por exemplo, a camada inferior da função é concluir a operação de gravação do arquivo por meio de chamadas do sistema.scanf()strlen()strlen()memset()fwrite()write()

A diferença entre funções de biblioteca e chamadas de sistema:
as funções de biblioteca pertencem à camada de aplicação, enquanto as chamadas de sistema são a interface de programação fornecida pelo kernel à camada de aplicação e fazem parte do kernel do sistema;
⚫ As funções de biblioteca são executadas no espaço do usuário e as chamadas são chamadas pelo espaço do usuário (modo usuário) no espaço do kernel (modo kernel);
⚫ As funções da biblioteca geralmente são armazenadas em cache, enquanto as chamadas do sistema não são armazenadas em cache, portanto, em termos de desempenho e eficiência, as funções da biblioteca geralmente são melhores que as chamadas do sistema;
⚫ Portabilidade: Em comparação com as chamadas de sistema, as funções de biblioteca têm melhor portabilidade. Normalmente, para diferentes sistemas operacionais, as chamadas de sistema fornecidas pelo kernel para a camada de aplicação costumam ser diferentes, como definições de chamadas de sistema, funções, listas de parâmetros, valores de retorno, são frequentemente diferentes; e para as funções da biblioteca da linguagem C, uma vez que muitos sistemas operacionais implementaram a biblioteca da linguagem C, a definição da interface da biblioteca da linguagem C é quase a mesma entre os diferentes sistemas operacionais, então as funções da biblioteca são diferentes em diferentes Sistemas operacionais Melhor portabilidade entre sistemas operacionais do que chamadas de sistema.

——"[Punctual Atom] I.MX6U Embedded Linux C Application Programming Guide"

A programação de aplicativos é simplesmente: desenvolver aplicativos Linux, chamando as chamadas de sistema fornecidas pelo kernel ou usando funções da biblioteca C para desenvolver aplicativos com funções correspondentes.

Biblioteca de linguagem C padrão

No sistema Linux, a biblioteca de linguagem C usada é a biblioteca de funções da linguagem C GNU (também chamada glibc, cujo site é http://www.gnu.org/software/libc/ ), como a biblioteca de funções da linguagem C padrão no Linux .

A seguir estão as informações das funções da biblioteca de linguagem GNU C do Ubuntu 16.04 no meu computador, que existe no sistema como uma biblioteca dinâmica.

insira a descrição da imagem aqui

Acho que você gosta

Origin blog.csdn.net/weixin_43772810/article/details/125570991
Recomendado
Clasificación