TrabalhosGratuitos.com - Trabalhos, Monografias, Artigos, Exames, Resumos de livros, Dissertações
Pesquisar

O SISTEMA OPERACIONAL GNU/LINUX – KERNEL LINUX

Por:   •  4/12/2017  •  Trabalho acadêmico  •  2.275 Palavras (10 Páginas)  •  316 Visualizações

Página 1 de 10

SISTEMA OPERACIONAL GNU/LINUX – KERNEL LINUX

GNU/LINUX OPERATING SYSTEM – LINUX KERNEL

Michael Shang Min Wu1 (michael.wu@fatec.sp.gov.br)

Wu Hui Yuan2 (wu.yuan@fatec.sp.gov.br)

1 Faculdade de Tecnologia de São José dos Campos – Prof. Jessen Vidal

2 Faculdade de Tecnologia de São José dos Campos – Prof. Jessen Vidal

Resumo

Este documento apresenta o sistema operacional GNU/Linux, tendo em foco o kernel Linux e objetivo em entender a arquitetura e organização do kernel do Linux. O sistema operacional GNU/Linux é uma junção do projeto GNU criado por Richard Satllman e do kernel desenvolvido por Linus Torvalds. Ambos tiveram ideia de disponibilizar códigos-fontes livres e gratuitos, apenas depois de várias pessoas usarem GNU junto com Linux que Stallman e Linus decidiram juntar e distribuir oficialmente GNU/Linux.

Kernel, elemento essencial de um sistema operacional que permite a funcionalidade dos programas e dar suporte aos periféricos. O kernel Linux pode ser dividido em sete camadas: Interface de chamada do sistema, Gerenciamento de processos, Sistema de arquivo virtual, Gerenciamento de memória, Pilha de Redes, Código dependente da arquitetura e Drivers de Dispositivo, que serão explicados neste documento.

Palavras-chave: Sistema Operacional, Kernel Linux, GNU/Linux, Arquitetura.

Abstract

This document introduce an operational system GNU/Linux, has focus in kernel Linux and object to understand an architecture and organization of the Linux’s kernel. An operational system GNU/Linux is a junction of the GNU’s project created by Richard Satllman and kernel, developed by Linus Torvalds. Either have an idea to provide free source code, only after multiple people use GNU with Linux, Stallman and Linus decided officially get GNU and Linux together.

Kernel, an essential element of operational system, allows the functionality of the programs and support devices. A Linux kernel can be divide to seven layers: System call interface, Process Management, Virtual File System, Memory Management, Network Stack, Arch and Device Drivers, they will be explained in this document.  

Keywords: Operating System, Linux kernel, GNU/Linux, Architecture.

1) INTRODUÇÃO

        O sistema operacional Linux é formado por kernel Linux e um conjunto de aplicativos do usuário (user-space). Neste documento, será dado o foco à arquitetura e organização do kernel, visando entender a estrutura interna do Linux.

2) DESENVOLVIMENTO

Antes de falar o kernel Linux em si, será feito uma breve apresentação sobre o sistema operacional GNU/Linux e kernel.

2.1) O que é GNU/Linux?

        GNU/Linux é o sistema operacional formada por união de dois elementos, o projeto GNU, que possui as ferramentas para compilar os códigos e foi criado por Richard Satllman, e o kernel Linux, desenvolvido por Linus Torvalds. Ambos queriam distribuir códigos-fontes livres e gratuitos, porém quem que teve mesmo a ideia de montar um sistema operacional gratuito foi Satllman. Inicialmente o grupo de programadores que Satllman reuniu desenvolveram o kernel Hurd baseando-se no kernel Mach, projeto livre já existente, porém quando o kernel Linux foi publicado o kernel Hurd ainda estava em desenvolvimento, além disso, Linux se adequava perfeitamente ao GNU. Depois de várias pessoas usarem o projeto GNU junto ao Linux que essa dupla ficou conhecida e finalmente publicada oficialmente no dia 5 de outubro de 1991.

        A arquitetura do GNU/Linux pode ser dividida em: espaço do usuário e espaço do kernel.

[pic 2]

M. TIM JONES, Anatomia do Kernel Linux. Disponível em: . Acesso em: 10 mai. 2016.

2.2) O que é Kernel?

        Kernel é um elemento essencial do sistema operacional, pois é responsável por prover a infraestrutura básica para que os programas funcionem e dar suporte aos periféricos, tais como som, rede e entre outros, ou seja, o kernel é um gerenciador de recursos, que possibilita os softwares a acessarem os hardwares.

2.3) O Kernel Linux

        O kernel do sistema operacional Linux é um núcleo monolítico, escrito na linguagem de programação C e várias partes escritas em Assembly, suportado por GCC (GNU Compiler Collection – compilador de linguagens de programação do projeto GNU).

O kernel Linux pode ser dividido em sete subsistemas:

  • System Call Interface (Interface de Chamada do Sistema) – SCI
  • Process Management (Gerenciamento de Processos) – PM
  • Virtual File System (Sistema de Arquivo Virtual) – VFS
  • Memory Management (Gerenciamento de Memória) – MM
  • Network Stack (Pilha de Redes)
  • Arch (Código Dependente da Arquitetura)
  • Device Drivers (Drivers de Dispositivo) – DD

2.3.1) System Call Interface (Interface de Chamada do Sistema) – SCI

Pela Interface de Chamada do Sistema o usuário faz chamada de funções, sendo seguinte um exemplo de processo de chamada:

  1. Usuário solicita chamada de uma função, que é especificada por registro eax
  2. Biblioteca C é carregada com índice de chamada
  3. Interrupção do software (sai do espaço do usuário e entra no espaço do kernel)  execução da função system_call, que controla todas as chamadas do sistema, conforme identificado por eax
  4. Após testes simples, função system_call_table é chamada  chamada real do sistema
  5. Após retorno da chamada de sistema, syscall_exit é chamada
  6. Depois é chamada resume_userspace para voltar ao espaço do usuário, com a função solicitada pelo usuário chamada.

[pic 3]

M. TIM JONES, Kernel command using Linux system calls. Disponível em: . Acesso em: 15 mai. 2016.

2.3.2) Gerenciamento de Processos – PM

O kernel Linux gerencia os processos (programas em execução), onde é executado uma tarefa por vez, porém em time shared (tempo de execução compartilhado). Todo processo é representado por uma grande estrutura chamada task_struct e possui threads (encadeamento) que são linhas de execução com códigos, sendo que cada processo possui nível de prioridade diferente. Para criar um novo processo faz-se uma chamada à função fork, para executar um programa chama a função fork seguido da função exec, para terminar um processo chama a função do_exit que limpa todas as referências do processo do sistema operacional.

...

Baixar como (para membros premium)  txt (16.6 Kb)   pdf (342.7 Kb)   docx (299.7 Kb)  
Continuar por mais 9 páginas »
Disponível apenas no TrabalhosGratuitos.com