Estudo comparativo de kernels dos principais sistemas operacionais

18
Estudo comparativo de kernels dos principais sistemas operacionais

Transcript of Estudo comparativo de kernels dos principais sistemas operacionais

Page 1: Estudo comparativo de kernels dos principais sistemas operacionais

Estudo comparativo de kernels dos principais sistemas operacionais

Page 2: Estudo comparativo de kernels dos principais sistemas operacionais

Introdução• É um componente do sistema operacional, por ele ficar escondido a

maioria dos usuários domésticos sequer ouviu falar nele. Apesar de não ser notado, ele é muito essencial para o funcionamento de um computador. Ele é o grande responsável por fazer a interação entre as camadas de hardware e software, sendo assim é ele que gerencia os recursos do sistema e permite que os programas façam uso deles; ele ainda é o responsável por garantir que todos os programas terão acesso aos recursos de que necessitam (memória RAM, por exemplo) simultaneamente, fazendo com que haja um compartilhamento concorrente – mas sem oferecer riscos à integridade da máquina.

Page 3: Estudo comparativo de kernels dos principais sistemas operacionais

Funcionamento

Page 4: Estudo comparativo de kernels dos principais sistemas operacionais

Funcionamento• Ao ligar um computador, o kernel é imediatamente acionado e

começa a detectar o hardware que a máquina possui e ainda o que precisa para prosseguir em sua função. O núcleo então, após o sistema operacional ser carregado, possui função também de gerenciar outras questões, como os arquivos, memórias, entre outros, tudo isso para garantir a organização funcional do sistema. Além disso, o kernel pode decidir quais dos programas que estão sendo executados no momento que devem ser alocados para o processador, ou mesmo processadores.

Page 5: Estudo comparativo de kernels dos principais sistemas operacionais

Tipos de kernel• Monolítico: Neste caso, os controladores de dispositivos e também as extensões de núcleo são executadas no

espaço de núcleo, tendo acesso total ao hardware.

• Micronúcleo: Alguns dos processos são executados no próprio núcleo, porém, o restante pode ser executado no espaço vago. Permite alternar dinamicamente entre sistemas operativos e manter mais de um deles ativos simultaneamente.

• Híbrido: É considerado um micronúcleo e conta com um código no espaço do núcleo para que as operações executadas possam ser mais velozes.

• Nanonúcleo: Delega virtualmente todos os serviços para os drivers de dispositivo, desde os mais simples, como um temporizador. Com isso torna o requerimento de memória do núcleo ainda menor do que o dos micronúcleos.

• Exonúcleo: Este tipo de núcleo aloca recursos físicos de hardware, podendo, por exemplo, fazer que um programa sendo executado em um exonúcleo possa se ligar com uma biblioteca do sistema que também usa exonúcleo para fazer simulações do sistema.

Page 6: Estudo comparativo de kernels dos principais sistemas operacionais
Page 7: Estudo comparativo de kernels dos principais sistemas operacionais

Kernels comparados• Linux• Windows NT• Solaris• FreeBSD• Darwin (XNU)

Page 8: Estudo comparativo de kernels dos principais sistemas operacionais

Windows NT• É o sistema operacional mais utilizado em computadores pessoais no

mundo. O impacto deste sistema no mundo atual é muito grande devido ao enorme número de cópias instaladas. Conhecimentos mínimos desse sistema, do seu funcionamento, da sua história e do seu contexto são, na visão de muitos, indispensáveis, mesmo para os leigos em informática. A atual versão estável do Windows para desktops é o Windows 10, lançado em 29 de julho de 2015. Para servidores, o Windows Server 2016 é a versão mais recente e a mais estável.

Page 9: Estudo comparativo de kernels dos principais sistemas operacionais

Windows 10 “OneCore”A Microsoft vem trabalhando na unificação dos seus SOs desde o

Windows 8, quando o Windows tanto para pcs quanto para celulares passou a ser construído sobre o mesmo núcleo NT. Depois com o Windows 8.1 veio a ideia de Aplicações Universais, que facilitava a vida dos desenvolvedores, pois a versão para pc e a versão mobile compartilhavam a maioria das API’s necessárias.

O Windows 10 chegou ao mercado para concretizar a unificação de todos os sistemas da Microsoft. O novo kernel foi batizado de “OneCore”, ele inclui a ligação dinâmica das bibliotecas (DLLs), a camada de plataforma de aplicação, os desenvolvedores podem direcionar o mesmo ambiente de núcleo para os seus aplicativos, que funcionam em diversos tipos de tela e estarão em uma única loja compartilhada por todas as plataformas, entre outras mudanças.

Page 10: Estudo comparativo de kernels dos principais sistemas operacionais

One Windows

DesktopSKU

PC

2 in 1

MobileSKU

Tablet

Phablet

Phone

XboxSKU

Xbox

IoTSKU

Band

IoT headlessSKU

Raspberry Pi

Home Automation

Surface HubSKU

Surface Hub

HolographicSKU

HoloLens

Microsoft OneCore

Page 11: Estudo comparativo de kernels dos principais sistemas operacionais

Easy for users to get & stay current

Unified core and app platform

Windows Phone 7.5

Windows Phone 8Windows Phone 8.1

Windows 8

Xbox One

Windows on Devices

Windows 8.1

Windows 10

ConvergedOS kernel

Convergedapp model

Convergência entre plataformas

Page 12: Estudo comparativo de kernels dos principais sistemas operacionais

Linux• O Linux foi criado por Linus Torvalds, um estudante do Departamento

de Ciência da Computação da Universidade de Helsinki na Finlândia, no ano de 1991. O núcleo Linux foi inspirado no sistema Minix. O seu código fonte está disponível sob a licença GPL para que qualquer pessoa o possa utilizar, estudar, modificar e distribuir livremente de acordo com os termos da licença.

Page 13: Estudo comparativo de kernels dos principais sistemas operacionais

Solaris• Solaris é um núcleo UNIX desenvolvido pela antiga Sun Microsystems,

que é uma subsidiária da Oracle. As primeiras versões do Solaris (baseadas no código do BSD) foram chamadas SunOS, tendo o seu nome alterado para Solaris 2 quando passou a ser baseado no System V.

Page 14: Estudo comparativo de kernels dos principais sistemas operacionais

FreeBSD• Uma ramificação Unix muito semelhante ao Linux, que inclui muitos programas GNU

também presentes em distribuições do Linux e roda muitos dos pacotes destinados ao Linux. Porém, muitas funções do Kernel são implementadas de forma diferente. Por ser mantido por uma única organização, o FreeBSD é considerado mais estável que a maioria das distribuições do Linux, mas os dois sistemas divergem em vários pontos, entre eles a própria licença de uso. A licença GNU do Linux obriga que qualquer software desenvolvido com base em um software GNU também seja disponibilizado nos termos da licença GPL. No FreeBSD não existe esta obrigatoriedade, o desenvolvedor disponibiliza as partes do programa que achar conveniente, ou pode mesmo não disponibilizar nada. É o caso da Microsoft, que comprovadamente utilizou componentes do protocolo TCP-IP retirados do FreeBSD no Windows. Existem acusações de apropriação de outras partes do código do BSD em outros programas Microsoft mas, infelizmente, a comunidade não pode brigar na justiça pois, legalmente falando, a Microsoft não fez nada de errado.

Page 15: Estudo comparativo de kernels dos principais sistemas operacionais

Darwin (XNU)• Darwin é um sistema operacional UNIX de código aberto lançado pela

Apple em 2000. É composto por código escrito pela Apple, como também código vindo do NeXTSTEP e BSD. • Mistura entre BSD e Mach 3.0• Tanto o OS X como o iOS são baseados no Darwin.• XNU é o nome do núcleo usado no sistema operacional Darwin.

Page 16: Estudo comparativo de kernels dos principais sistemas operacionais

ComparaçãoCritérios Linux Windows NT Solaris FreeBSD Darwin (XNU)

Tipo de Kernel Monolítico * Híbrido Monolítico * Monolítico Híbrido

Criado por Linus Torvalds Microsoft Sun Projeto FreeBSD Apple Inc.

Licença GPLv2 Código fechado (MS-EULA) Várias BSD Apple Public

Source LicenseEscrito em C e Assembly C, C++ e Assembly C e C++ C C, C++ e Objective-C

Plataformassuportadas

Alpha, ARC, ARM,AVR32, Blackfin, C6x,ETRAX CRIS, FR-

V,H8/300, Hexagon,Itanium, M32R, m68k,META, Microblaze,MIPS, MN103, Nios

II,OpenRISC, PA-RISC,PowerPC, s390,S+core, SuperH,SPARC,

TILE64,Unicore32, x86,Xtensa

IA-32, x86-64, DEC Alpha,MIPS, PowerP

C, ARM, Itanium

SPARC, IA-32, x86-

64,PowerPC

IA-32, x86-64, SPARC64, IA-

64, PowerPC, ARM, MIPS

PowerPC, x86, ARM

Sistemas de arquivos suportados

ext2, ext3, ext4, FAT, ZFS e outros FAT, UDF, NTFS ext2, FAT,

UDF, UFS, ZFSext2, ext3, FAT, UDF, UFS, ZFS

FAT, HFS, HFS+, UDF, UFS, exFAT

* Apesar de monolítico é possível carregar os módulos dinamicamente

Page 17: Estudo comparativo de kernels dos principais sistemas operacionais

Outros kernels

Page 18: Estudo comparativo de kernels dos principais sistemas operacionais

Referências• O que é Kernel?

<https://www.oficinadanet.com.br/post/13858-o-que-e-kernel>• The Linux Kernel Archives

<https://www.kernel.org/>• The FreeBSD Project

<https://www.freebsd.org/>• Solaris

<http://www.oracle.com/br/products/servers-storage/solaris/>• Darwin Technologies

<http://www.opensource.apple.com/>• Comparison of operating system kernels

<https://en.wikipedia.org/wiki/Comparison_of_operating_system_kernels>

• Microsoft OneCore Windows 10<http://windowsreport.com/microsoft-onecore-windows-10/>

<http://www.pcmanias.com/microsoft-prepara-onecore-um-interface-para-todas-as-versoes-do-windows/>