Kernel Linux

25 %
75 %
Information about Kernel Linux

Published on October 16, 2007

Author: liusfc

Source: slideshare.net

Kernel GNU/Linux Apresentando arquitetura e implementações internas do kernel open source Linux Líus Fontenelle Carneiro http://hypercast.info/

Apresentando arquitetura e implementações

internas do kernel open source Linux

Líus Fontenelle Carneiro

http://hypercast.info/

Agenda Localizando Um pouco de história Arquitetura Linux x Unix clássico Código Fonte Kernel-space e User-space Processos e Threads Virtual Filesystem

Localizando

Um pouco de história

Arquitetura

Linux x Unix clássico

Código Fonte

Kernel-space e User-space

Processos e Threads

Virtual Filesystem

Localizando

Um pouco de história Início em 1991, por Linus Torvalds Inspirado no Minix, e não baseado nele Implementação dos mais variados recursos, encontrados nas variantes Unix e BSD Preocupação com portabilidade e escalabilidade

Início em 1991, por Linus Torvalds

Inspirado no Minix, e não baseado nele

Implementação dos mais variados recursos, encontrados nas variantes Unix e BSD

Preocupação com portabilidade e escalabilidade

Linha de Tempo

O tamanho do Linux

Arquiteturas de Kernel

Arquitetura GNU/Linux

Kernel Subsystems

Linux x Unix clássico Carregamento dinâmico de módulos; Suporta multiprocessamento; Suporta preempção; Suporta “processos leves”; Modelo de devices sysfs.

Carregamento dinâmico de módulos;

Suporta multiprocessamento;

Suporta preempção;

Suporta “processos leves”;

Modelo de devices sysfs.

Código Fonte Obtendo: http://www.kernel.org/ Versionamento Explorando diretórios Compilação

Obtendo: http://www.kernel.org/

Versionamento

Explorando diretórios

Compilação

Código Fonte Obtendo: http://www.kernel.org/ Versionamento Explorando diretórios Compilação

Obtendo: http://www.kernel.org/

Versionamento

Explorando diretórios

Compilação

Código Fonte Obtendo: http://www.kernel.org/ Versionamento Explorando diretórios Compilação

Obtendo: http://www.kernel.org/

Versionamento

Explorando diretórios

Compilação

Código Fonte Obtendo: http://www.kernel.org/ Versionamento Explorando diretórios Compilação

Obtendo: http://www.kernel.org/

Versionamento

Explorando diretórios

Compilação

Código Fonte Obtendo: http://www.kernel.org/ Versionamento Explorando diretórios Compilação

Obtendo: http://www.kernel.org/

Versionamento

Explorando diretórios

Compilação

Kernel-space e User-space Detalhes de desenvolvimento no kernel-space: Sem acesso à biblioteca C; Codificar em C99 e GNU C, não em ANSI; Sem proteção para acesso à memória; Sem acesso a ponto flutuante; Cuidado com sincronia e concorrência; Nunca esquecer da portabilidade.

Detalhes de desenvolvimento no kernel-space:

Sem acesso à biblioteca C;

Codificar em C99 e GNU C, não em ANSI;

Sem proteção para acesso à memória;

Sem acesso a ponto flutuante;

Cuidado com sincronia e concorrência;

Nunca esquecer da portabilidade.

Processos e Threads Implementação de processos a nível de kernel; Nível básico da abstração gerenciável de programas em execução; Estrutura task_struct ; include/linux/sched.h, linha 800 Process ID máximo é um short int por default;

Implementação de processos a nível de kernel;

Nível básico da abstração gerenciável de programas em execução;

Estrutura task_struct ;

include/linux/sched.h, linha 800

Process ID máximo é um short int por default;

Estados dos processos

Criação de Processos Criação em duas etapas: fork() e exec(); Otimização de realocação de recursos; O Linux faz COW! E rápido!

Criação em duas etapas: fork() e exec();

Otimização de realocação de recursos;

O Linux faz COW! E rápido!

COW?!

COW: Copy-On-Write Aproveitamento de recursos já alocados; Não escreve dados desnecessários ou redundantes; Menor overhead em sistemas orientados a processos; Estrutura thread_info e o slab allocator; include/asm-x86_64/thread_info.h Recurso disponibilizado pelo slab allocator.

Aproveitamento de recursos já alocados;

Não escreve dados desnecessários ou redundantes;

Menor overhead em sistemas orientados a processos;

Estrutura thread_info e o slab allocator;

include/asm-x86_64/thread_info.h

Recurso disponibilizado pelo slab allocator.

Threads no Linux Não existem como na forma conceitual; O Linux implementa threads como processos comuns; LWP – Lightweight Processes; Não existem mecanismos de escalonamento especiais ou estruturas de dados específicas; Contraste com outros sistemas; KISS; Assim como um processo, é criada partindo de um fork(), que usa a função clone(): kernel/fork.c As flags da função clone() estão definidas em: include/linux/sched.h

Não existem como na forma conceitual;

O Linux implementa threads como processos comuns;

LWP – Lightweight Processes;

Não existem mecanismos de escalonamento especiais ou estruturas de dados específicas;

Contraste com outros sistemas;

KISS;

Assim como um processo, é criada partindo de um fork(), que usa a função clone():

kernel/fork.c

As flags da função clone() estão definidas em:

include/linux/sched.h

Virtual Filesystem Interface de abstração de sistemas de arquivos; Integração de mídias diferentes, com recursos diferentes, a uma forma de acesso comum; Integração com SCI; Implementação de novos sistemas de arquivos como plug-ins, através de um sistema base, o Linux/Unix Filesystem;

Interface de abstração de sistemas de arquivos;

Integração de mídias diferentes, com recursos diferentes, a uma forma de acesso comum;

Integração com SCI;

Implementação de novos sistemas de arquivos como plug-ins, através de um sistema base, o Linux/Unix Filesystem;

Virtual Filesystem

Virtual Filesystem Suporte a mais sistemas de arquivos através de implementações de caraterísticas de um sistema de arquivos genérico: “Isso é o que um diretório representa para mim”; “Assim é a forma como eu abro arquivos”. Arquitetura Orientada a Objetos, mesmo em C, permite uma solução integrada, limpa e suportável. É um dos cores subsystems mais organizados; Disponibiliza recursos gerais para todos os filesystems implementados abaixo dele, como o Buffer Cache;

Suporte a mais sistemas de arquivos através de implementações de caraterísticas de um sistema de arquivos genérico:

“Isso é o que um diretório representa para mim”;

“Assim é a forma como eu abro arquivos”.

Arquitetura Orientada a Objetos, mesmo em C, permite uma solução integrada, limpa e suportável. É um dos cores subsystems mais organizados;

Disponibiliza recursos gerais para todos os filesystems implementados abaixo dele, como o Buffer Cache;

Virtual Filesystem

Virtual Filesystem Principais objetos: superblock object; inode object; dentry object; file object. Principais operações: super_operations; inode_operations; dentry_operations; Operações em file objects com read() e write().

Principais objetos:

superblock object;

inode object;

dentry object;

file object.

Principais operações:

super_operations;

inode_operations;

dentry_operations;

Operações em file objects com read() e write().

E a Engenharia? Vantagens das ferramentas open source em geral; Conhecimento aprofundado e reaproveitável; Custo e fontes disponíveis; Liberdade para escolher; Liberdade para contribuir.

Vantagens das ferramentas open source em geral;

Conhecimento aprofundado e reaproveitável;

Custo e fontes disponíveis;

Liberdade para escolher;

Liberdade para contribuir.

Kernel GNU/Linux Fim Revisão: Lila Maria Borges Silva Contato Página pessoal: http://hypercast.info/ E-mail: [email_address]

Fim

Revisão: Lila Maria Borges Silva

Contato

Página pessoal: http://hypercast.info/

E-mail: [email_address]

Add a comment

Related presentations

Related pages

The Linux Kernel Archives

This site is operated by the Linux Kernel Organization, Inc., a 501(c)3 nonprofit corporation, with support from the following sponsors. ...
Read more

Linux (Kernel) – Wikipedia

Linux (deutsch [ˈliːnʊks]) ist ein Betriebssystem-Kernel. Er wurde im Jahr 1991 vom Finnen Linus Torvalds ursprünglich für die x86-Architektur ...
Read more

Linux Kernel - Download - CHIP

Linux Kernel 4.8.6 Englisch: Möchten Sie Ihre eigenen Linux-Distribution schaffen? Dann benötigen Sie die Basis jedes Linux-Betriebssystems: den Kernel.
Read more

Kernel › Wiki › ubuntuusers.de

Wikipedia: Linux Kernel. Der Kernel, ein Überblick in knapp 2½ min Sebastian Bator auf der Ubucon 2012 . Diese Revision wurde am 21.
Read more

Linux-Versionsnummern › Kernel › Wiki › ubuntuusers.de

Bei früheren Linux-Versionen wurde die zweite Stelle zum Unterscheiden zwischen stabilen (gerade Zahl, z.B. 2.4) und Entwicklerversionen (ungerade Zahl, z ...
Read more

Linux – Wikipedia

Linux oder GNU/Linux; Basisdaten: Entwickler: diverse: Aktuelle Version: 4.8 (2. Oktober 2016) Kernel: monolithischer Kernel: Architekturen: DEC Alpha, ARC ...
Read more

Kernel kompilieren: LINUXMAKER - Offenheit setzt sich durch

LINUX. Open Source Software. FAQ's zu Open Source; Aspire 5512 mit Debian. Linux-Installation; Kernel kompilieren. Remote Update; DNS-Server BIND9. SOA ...
Read more

Linux-Kernel - Golem.de

Linux-Kernel. Als Linux wird der frei verfügbare Linuxkernel bezeichnet. Das ist der Betriebssystemkern in allen Linuxdistributionen und für die x86, x64 ...
Read more

Linux-Kernel macht Versionssprung auf 4.0 | heise online

Die nächste, Mitte April erwartete Version des Linux-Kernels wird die Versionsnummer 4.0 tragen. Zu dessen wichtigsten Neuerungen zählt Kernel Live ...
Read more

Linux OS | SUSE

Das Linux-Betriebssystem von SUSE. SUSE Linux Enterprise ist das führende Linux-Betriebssystem für den Einsatz im Unternehmen.
Read more