Вы находитесь на странице: 1из 17

1

2 Windows
2.1 Um breve histrico

Figura 1, Bill Gates.


O Sistema Windows foi criado por William Henry Gates III mais conhecido
como Bill Gates. Em 1975, dois estudantes da Universidade de Harvard os
impressionaram com um compilador chamado Basic que fora elaborado em oito
semanas e na primeira execuo ele funcionou. Bill Gates, na poca estudante
e o programador Paul Allen, pararam tudo o que estavam fazendo e foram ver,
o resultado foi a mudana de Harvard para o mundo, fundaram a Microsoft, e
desenvolveram o sistema operacional chamado MS-DOS - inclusive em mais de
uma verso - , em 1985, a Microsoft lanou o Windows 1.0 com interface grfica
de usurio GUI, os fundamentos deste havia sido desenvolvido pela Xerox na
dcada de 70, e popularizados pelos computadores da Machintosh Apple, porem
o GUI da Microsoft era melhor e devido as suas constantes atualizaes iria se
aprimorando cada vez mais.

Com a vinda do sucesso em computadores do uso domestico no demorou muito


para ele chegarem aos computadores do mercado empresarial, isso resultou em
uma linha de sistemas operacionais corporativos. O Sistema Operacional
Windows teve vrias verses e continua tento com o passar dos anos com sua
identidade e caractersticas prprias. O sistema operacional mais popular e
utilizado do mundo, deixando seu criador um dos homens mais poderosos do
mundo e com um patrimnio de aproximadamente mais de 72 bilhes de dlares.
2.2 Gerenciamento de processos
2.2.1 Organizao de processos e threads
O Windows mantm as informaes dos processos em vrias estruturas
de dados. A principal PCB o eprocess, e nela so aninhadas vrias outras
estruturas. Uma delas o kprocess contm informaes de processos usados
pelo microkernel. Tambm so armazenadas informaes em um PEB (process
environmente block, ou bloco de ambiente de processos) onde so armazenados
os espaos de endereamento, lista de DLLs ligadas ou processo, armazena
informaes teis para os processos de usurios. O eprocess de um processos
quem aponta o seu PEB.
J para os threads as estruturas de dados quem contm suas so os
ethreads, onde so mantidas informaes como PID do processo do thread, seu
endereo de incio, etc. O ethread aponta para o eprocess do seu processo. E
tambm possui similar ao kprocess e PEB que so chamados respectivamente
de kthread e TEB (thread environmente block, ou bloco de ambiente de trehad).
Cada kthread aponta para um TEB. O TEB aponta para o PEB do processo do
thread. Os TEBs armazenam informaes como seu ID, sua pilha e sees
crticas.
2.2.2 Estados dos threads
Um thread possui oito estados: inicializado, estado que est durando sua
criao; logo aps ser iniciado ele entra no estado pronto, onde est apto para
usar a CPU; quando o algoritmo decide em qual CPU ser executado (em caso
de multiprocessadores) ele entra no estado de reserva; execuo quando o

thread est sendo executado (apenas deixa esse estado quando termina, atinge
o quantum ou sofre preempo); terminado, quando for concludo, quando
concludo no necessariamente excludo, j que isso ocorre apenas quando a
contagem de referncia do thread atinge zero; espera, quando espera por
alguma operao externa, como por exemplo a concluso de um I/O, apenas sai
quando essa operao termina ou quando outro thread com permisses
suficientes determina; transio, quando a espera termina mas necessita que
sua pilha do ncleo, foi paginada para fora da memria, volte para a memria,
ele volta para o estado pronto quando sua pilha volta para a memria; e por fim
e estado desconhecido que o SO coloca o thread quando no tem certeza do
seu estado. Na imagem a seguir (figura 2) ser mostrado um diagrama que
mostra os estados e as transies entre eles.

Figura 2, diagrama de estados e suas transies do Windows.

2.2.3 Escalonamento
O algoritmo de escalonamento, que no Windows chamado de
despachador, escalona os threads de acordo com sua prioridades, quando o
thread fica no estado pronto os depachador o coloca na fila que corresponde sua
prioridade. Existem 32 nveis de prioridade, sendo o 31 o mais alto e o 0 o mais
baixo. O thread, que for criado, entra na fila com maior e escalonado. Onde o
algoritmo executa os algoritmos da fila de maior prioridade, at que todos os
seus threads tenham sido executados, assim ele comea a executar os threads
da prxima fila mais baixa em relao a essa, caso algum thread surja numa fila
de prioridade superior, o thread em execuo sofre preempo, quando a
execuo termina o despachador volta a executar o primeiro thread da fila mais
alta que tiver threads.
Os threads so executados por no mximo um quantum. Caso haja
preempo, os threads de tempo real (de processos de tempo real, exemplo,
uma programa que deve ser atualizado ou executar uma ao a cada
determinado perodo de tempo real), o seu quantum reajustado, isso permite
que o Windows favoream esses threads, j que eles precisam altos nveis de
prioridade e resposta.
Dos 32 nveis de prioridade os threads de tempo real ocupam do 16, ao
mais alto 31. Os threads dinmico ocupam do 0 ao 15, sendo que o 0 apenas
so ocupados pelos threads 0 ou threads de pgina zero, que so responsveis
por zerar as pginas de memria livres para que fiquem prontas para serem
usada.
Na determinao da prioridade existem seis classes, as classes de
prioridade bsica, onde os threads podem ser encaixados: ocioso, abaixo do
normal, normal, acima do normal, alto, essas cinco primeira so ocupadas
apenas por threads dinmicos, e a sexta que a de tempo real que ocupada
por threads de tempo real. E dentro de cada uma dessas classes existem os
nveis de prioridade bsica, que so: ocioso, mais baixo, abaixo do normal,
normal, acima do normal, mais alto e tempo crtico. A combinao das classes
de prioridade bsica com os nveis de prioridade bsica vo definir a posio na
qual o thread se encaixar, ou seja, determina a prioridade bsica do thread. Por

exemplo, classe de tempo real com nvel de tempo crtico o thread ocupar a 31
posio, a mais alta. Classe de tempo real e nvel ocioso o thread ocupar a 16
posio. Classe normal e nvel normal, 7 posio. Sendo assim:
classe de prioridade + nvel de prioridade = prioridade bsica
A prioridade do thread aumentada quando ele sai do estado de espera.
E decrementada quando o thread em execuo atinge seu quantum. Porm, a
prioridade do thread dinmico nunca ser decrementada para um nvel menor
que seu prioridade bsica e nunca atingir a faixa de tempo real. Para impedir
que ocorra starvation o algoritmo examina a fila de prontos periodicamente o
intervalo de alguns segundos, elevando a prioridade de threads dinmicos que
no esto sendo executados a algum tempo. O que tambm evita a inverso de
prioridades onde um thread de prioridade alta impedido de ser executado por
um thread de prioridade bsica, como por exemplo, no caso de um thread de
um processo de prioridade alta depender da execuo de um thread de
prioridade baixa, que por sua vez, est sendo impedido de executar por um
thread que esta numa prioridade intermediria.
2.2.4 Escalonamento em multiprocessadores
Os processos e threads podem especificar os processadores que sero
executados por preferncia, para isso eles especificam sua mscara de
afinidade, um conjunto de processadores onde os eles tem permisso de
executar. Um thread tambm pode especificar uma mscara de afinidade dentro
da mscara que j pertence a ele. Essas mscaras so utilizadas para que
processos mais complexos no interfiram com processos mais crticos em
relao ao tempo. Alm dessas mscaras, os threads podem definir o seu
processador ideal e seu ltimo processador. O primeiro ajuda os threads a
executarem em paralelo em processadores diferentes ou no mesmo processador
para que possam compartilhar os recursos do cache. Por padro, o Windows
distribui threads do mesmo processo em processadores ideais diferentes, isso
aumenta as chances dos dados usados por um thread que j esto no cache,
permaneam e sejam usados novamente caso o thread seja executado
novamente.

Quando a CPU fica livre, o algoritmo considera a prioridade, processador


ideal, ltimo processador e o tempo de espera de cada um dos threads. Sendo
assim, mesmo o thread estando na frente da fila com mais alta prioridade, se o
processador disponvel no for o processador ideal ou seu ltimo processador,
e a no ser que esteja esperando por muito tempo, o despachador poder
escolher outro thread dessa lista de prioridade para se executado.
2.3 Gerenciamento de memria
A memria RAM indispensvel em qualquer computador, quanto mais memria
instalada na mquina, melhor ser seu desempenho. Porm no basta ter muita
RAM disponvel em seu computador. O que torna a RAM realmente til a
capacidade de uso que o Sistema Operacional faz dela. Isso significa que o
Windows deve ser capaz de prever quais dados devem ser priorizados ou
esquecidos de acordo com o contexto de uso da mquina.
2.3.1 Memria Fsica versus Memria Virtual
Resumidamente, o Windows trabalha com dois tipos de memria. O primeiro
deles a memria principal, tambm chamada de fsica. Ela a quantidade de
RAM instalada em sua mquina, os pentes de memria em si, ou seja, o
hardwares propriamente dito. J a memria conhecida como virtual uma
espcie de memria auxiliar, usada pelo computador em alguns casos especiais.
Essa memria nada mais do que um arquivo hospedado no disco rgido da
mquina, e o Windows usa esse arquivo como se ele fosse uma extenso da
memria principal.
2.3.2 O Gerenciamento de Memria
Cada vez mais, os programadores necessitam de mais memria e mais
programas rodando simultaneamente para poderem tratar cada vez mais
informaes, para atender suas necessidades. Apesar de muitas pessoas
duvidarem, o Windows bem eficiente quanto ao gerenciamento de memria.
Superficialmente, podemos dizer que ele "sabe", por exemplo, o que deve ser
enviado para a memria fsica e o que deve ser armazenado na virtual. Ao
carregar na memria todos os softwares necessrios para o bom funcionamento
do sistema, o Windows respeita algumas regras.

A memria fsica recebe aquilo que o Windows considera essencial, como o


prprio sistema operacional e as aplicaes que o usurio estiver usando no
momento. O restante, ou seja, aquilo que o Windows acredita que no ser
usado to urgentemente, fica na memria virtual. Em outras palavras, a memria
virtual um recurso essencial para o armazenamento de dados que no esto
em uso, mas que devem ser recuperados com velocidade quando necessrio.
Essa memria tambm usada pelo sistema quando se esgota, por completo, o
espao disponvel na memria fsica. Nesse caso, a memria virtual acaba sendo
uma extenso da memria principal. A memria virtual fica armazenada em um
arquivo no disco rgido da mquina, o processo de leitura e escrita de dados no
HD do computador muito mais lento do que o equivalente em memria RAM.
Basicamente, isso explica por que o desempenho do computador melhora
quando instalamos mais memria RAM. Quanto mais memria fsica disponvel,
menos provvel o uso extensivo da memria virtual.

3. Linux
3.1 Um breve histrico

Figura 3, Linus Torvalds.

O Sistema Linux foi criado por Linus Benedict Torvalds, em 1991. Ele era um
estudante com 21 anos da Universidade de Helsinki, desenvolveu o ncleo Linux
partir cdigo fonte do Minix, que foi desenvolvido pelo professor Andrew S.
Tannenbaum, este estava disponvel publicamente para que pudesse ser
demonstrado os conceitos bsicos de implementao de sistemas operacionais.
Serviu para o inicio do Linux. Ele procurou primeiramente quem j estava
familiarizado com o sistema e a partir das deficincias encontradas, ele
consegue projetar o Linux (deriva de Linus e UNIX) como um passatempo,
lanando na sua primeira verso (0.01) em setembro de 1991. Linus deixou
disponvel o cdigo fonte da sua primeira verso com isso foi criada uma
comunidade que at hoje ajuda a desenvolver e suportar o Linux, com o passar
do tempo e com as constantes modificaes em cima dos erros apresentados
pela comunidade, e aplicando o que ele julgava coerente, criando um novo
sistema operacional disponvel e gratuito porem complexo.

Linus prosseguia e desenvolveu mais verses devido novos complementos que


eram colocados com a ajuda da comunidade, o Lixus tinha 17 milhes de linhas
de cdigo fonte enquanto o Windows 95 tinha 15 milhes de linhas de cdigo
fonte, milhares de desenvolvedores contribuam para a criao e correo de
erros. O Projeto mantido por Linos e uma equipe de vinte membros do seu
circulo interno. O Linux um sistema operacional que compete com o Windons,
os hardwares que contem este sistema operacional tm diferena de preo pois
ele

gratuito.

Atualmente

ele

possui

um

patrimnio

estimado

em

aproximadamente 20 milhes de dlares.


3. 2 Gerenciamento de Processos
3.2.1 Organizao de processos e threads
No Linux, so tratados como tarefa tanto os processos quanto os threads
e so representados pela mesma estrutura. No gerenciador de processos existe
uma lista de tarefas usando duas estruturas de dados. A primeira, uma tabela
que atribui chaves de pesquisa a valores, denominada tabela hash. E a segunda,
uma lista circular, onde cada entrada possui apontadores para tarefas
posteriores e anteriores. Quando o processo criado ele recebe um PID, o PID
do processo criado ser localizado na tabela de processos, isso acontece com o
uso da tabela hash.
Os PCBs do Linux, so chamados de task_struct, onde so armazenadas
algumas variveis e estruturas aninhadas com algumas informaes que
descrevem o processo. Estruturas aninhadas nas task_struct armazenam
algumas informaes adicionais na tarefa, como por exemplo a mm_struct, que
descreve a memria alocada da tarefa e a state que mosta o estado da tarefa,
mas existem outras estruturas aninhadas que mostram as permisses de acesso
da tarefa, controladores de sinal, valor dos registradores, etc.
3.2.2 Estado dos processos
Os estados dos processos do Linux so denominados: em execuo ou
executando, quando ele esta sendo executado pela CPU; adormecido, quando
esta bloqueado; parado, quando est suspenso; zumbi, que foi terminado mas

10

no foi eliminado (no caso de um processo ser terminado, at que todos os seu
threads sejam terminados tambm ele fica no estado zumbi); morto que indica
que o processo pode ser eliminado; e dois estados de escalonamento o ativo e
expirado, eles no so armazenados na varivel state descrita acima. Na
imagem a seguir (figura 4) ser mostrado um diagrama que mostra os estados e
as transies entre eles.

Figura 4, diagrama de estados e suas transies do Linux.


3.2.3 Escalonamento
O objetivo do escalonamento no Linux equilibrar a execuo dos
processos, para que todos eles executem por um boa quantidade de tempo,
simultaneamente, mantendo o alto rendimento, respeitando prioridades dos
processos e evitar a sobrecarga dos escalonamentos. No Linux o algoritmo de
escalonamento preemptivo , cada processo executado at que atinja seu
quantum, at que bloqueie (esperando esperando um I/O, por exemplo) ou at
que um processo com prioridade maior entre na fila de prontos. O quantum
calculado de acordo com sua prioridade e medido a partir do momento que

11

assume o processador (com exceo dos processos de tempo real, que sero
explicados mais a frente). Para garantir que o quantum seja muito pequeno ou
excessivamente grande, o algoritmo garante que a faixa de tempo do quantum
seja de 10 a 200 milissegundos. Quando uma tarefa sofre preempo o seu
estado salvo em sua task_struct, se seu quantum for atingido, a prioridade do
processo recalculada e determinada seu prximo quantum e inicia o prximo
processo da fila.
Quando um processo criado ele entra na fila de execuo, junto a todos
os outros processos que esto aguardando a liberao da CPU, nas filas de
execuo sero atribudas a prioridades dos processos. O algoritmo tambm
define a poca que o perodo de tempo onde todos os processos da fila de
execuo devero ser executados ao menos uma vez. Para diferenciar os
processos ainda no executados dos outros existem dois dos estados
mencionados acima o ativo e o expirado, o algoritmo executa apenas os do
estado ativo. A durao dessas pocas definido pelo limite de inanio, um
valor estabelecido a partir de alguns testes, isso faz com que processos com alta
prioridade sejam atendidos rapidamente e ao mesmo tempo no deixa que
processos de baixa prioridades. Por padro o limite inanio de 10n segundos
(n o quantidade de processos na fila de execuo). Quando o tempo da poca
ultrapassa o tempo definido pelo limite de inanio, a CPU executa os processos
no estado ativo, assim que o quantum atingido, os coloca no estado expirado,
quando todos os processos estiverem expirados, temos o incio de uma nova
poca e todos os processos expirados tornam-se ativos novamente.
Quando um processo passa do estado ativo para o espirado, o algoritmo
mantm a prioridade dos processos, para isto existem o arranjo de prioridades,
que para os processos ativos chamado de lista ativa e para os expirados que
chamado de lista expirada.
3.2.4 Prioridade
Com algoritmo de escalonamento do Linux, a prioridade determina o
tamanho do quantum e a ordem de execuo dos processos. Quando so
criados os processos ganham uma prioridade esttica e quando o valor da
prioridade alterado tornasse prioridade efetiva. O valor da prioridade vai de -

12

20, sendo a prioridade mais alta, at 19, sendo a mais baixa. O algoritmo tem a
meta de atingir um alto nvel de interatividade, porque tarefas interativas
normalmente so bloqueadas para esperar um I/O, o algoritmo aumenta a
prioridade, j que processos desse tipo muitas vezes executam pouco tempo de
CPU, e nem chegam a atingir seu quantum j passam para o estado bloqueado.
Sendo assim os processos I/O-bound tem prioridades mais altas que os CPUbound, o que muito eficiente j que os I/O-bound ficam pouco tempo na CPU
e consequentemente ela ficara livre mais rapidamente. Porm, para garantir que
um processo seja executado na prioridade que lhe foi atribuda, ou ao menos
prximo a isso, o algoritmo no deixa que a diferena entre o nvel de prioridade
esttica e o nvel de prioridade efetiva no supere mais que 5 unidades.
3.2.5 Escalonamento em tempo real
O escalonamento em tempo real usado para escalonar processos em
tempo real, por exemplo, uma programa que deve ser atualizado ou executar
uma ao a cada 20 segundos. O algoritmo do Linux suporta esse tipo de
escalonamento. Diferente de um processo normal, o de tempo real no
transferida para a lista expirada, os processos de tempo real tem sempre
prioridades em relao aos normais, um processo de tempo real nunca retirado
da lista de ativos e nunca sofre preempo de um processo normal.
Se uma tarefa especificar escalonamento Round Robin, quando seu
quantum for atingido e recebera uma nova fatia de tempo e voltara para o final
da fila de prontos, ou seja, para o final da fila de seu arranjo de prioridades da
lista ativa. Se especificar o algoritmo FIFO, como no recebe quantum, ser
executado at ser concludo ou ser bloqueado, j que no pode sofre
preempo. Se no forem codificados corretamente, os processos de tempo
real, podero prejudicar a execuo dos outros processos. Por isso os processos
de tempo real so criados apenas pelos usurios root.
3.2.6 Escalonamento em multiprocessadores
Como o escalonador mantm as tarefas em uma fila de execuo por
processo, possivelmente uma tarefa ser sempre despachada para o
processador que tem uma alta afinidade, o que aumenta o desempenho j se as

13

instrues das tarefas estiveram no cache deste processador. Porm, isso


poder acarretar um problema onde alguns processadores, em um sistema de
multiprocessamento simtrico (processadores com memria compartilhada e
controlados pelo mesmo SO), podero ficar ociosos mesmo num perodo que
exija uma alta carga de processamento. Ento, se isso ocorrer e existir algum
processador ocioso, o Linux executa o balanceamento de carga, onde tarefas
so migradas de um processador para outro, melhorando o aproveitamento dos
recursos.
O ncleo realiza as rotinas de verificao de carga aps cada interrupo
do temporizador, se o processador que emitiu essa interrupo estiver ocioso, o
escalonador passar tarefas do processador com mais tarefas na fila de espera
parra esse processador ocioso. Porm, isso poder gerar uma sobrecarga no
balanceamento, para evitar essa sobre carga, o escalonador apenas passar
tarefas para processadores no ociosos a cada intervalo de 200 interrupes,
em vez de cada interrupo.
Para verificar a carga do balanceamento, o escalonador usa o tamanho
mdio de cada fila de execuo nas ultimas interrupes, para minimizar o efeito
de variao. Como as cargas do processador, geralmente mudam com
frequncia, a meta do escalonador apenas equilibrar a carga de cada fila de
execuo. O balanceamento de carga executado apenas se a fila de execuo
com a carga mais pesada tiver 25% mais tarefas que a fila de execuo do
processador que est fazendo o balanceamento.
O escalonado escolha as tarefas onde seu desempenho ser menos
afetado na transio de um processador para outro. Ento o escalonador escolha
as tarefas mais frias em relao ao cache (tarefas que poucos ou nenhum dados
no cache) e no as tarefas quentes em relao ao cache (com muitos ou todos
os seu dados no cache).
3.3 Gerenciamento de memria
3.3.1 A Gerenciamento de memria
O gerenciamento de memria o que torna o sistema operacional mais rpido e
funcional. Assim como o Windows, o Linux possui dois sistemas de

14

gerenciamento de memria, a memria fsica, que cuida da alocao e liberao


de blocos de memria, e a memria virtual, que tem o papel de "enganar" os
processos, informando que h memria suficiente quando no h. Esta tcnica
pode melhorar a performance do sistema operacional. O Linux um sistema
multiprocessos e multiusurios, ento devemos ter um controle rgido sobre a
memria, para que um processo no sobreponha os recursos (memria)
utilizados pelo outro.
3.3.2 As Principais Caractersticas da Memria
O gerenciamento de memria no Linux realizado com o auxlio de circuitos de
hardware presentes nos microprocessadores. Esses circuitos permitem que o
gerenciamento de memria seja mais eficiente e seguro, evitando erros
causados por software no acesso memria.
O acesso memria fsica no acontece direto do software. No software
especificamos o endereo lgico, que consiste do segmento e de um offset
representando a distncia entre o endereo que desejamos acessar e o incio do
segmento. O endereo lgico compilado por uma unidade de segmentao,
que o transforma em um endereo virtual. Este endereo virtual representado
por um inteiro de 32 bits, e portanto, pode enderear at 4GB, do endereo
0x00000000 at 0xffffffff. O endereo virtual transmitido a uma unidade de
paginao, que responsvel por associar o endereo virtual ao fsico,
representado por inteiros no negativos de 32 ou 36 bits. O endereo resultante
utilizado para acessar um dado presente na memria dos chips.
Atravs deste processo de acesso memria, podemos perceber que o Linux
utiliza um modelo de segmentao com paginao. Em sistemas com
multiprocessadores, a memria compartilhada entre todas as CPUs. Assim,
para evitar que diferentes CPUs acessem a memria o mesmo tempo, existe um
circuito de hardware utilizado para a proteo da memria, conhecido como
"Memory Arbiter", que inserido entre o barramento e todo chip de memria, e
possui a finalidade de garantir o acesso exclusivo memria nas operaes de
leitura e escrita.

15

Alm do acesso exclusivo regio de memria compartilhada, o Linux dispe de


mecanismos para prevenir a invaso de processos no espao do kernel.

4 Concluses
Em relao ao gerenciamento de processos, conclumos que apesar do
Windows e do Linux serem sistemas bem diferentes, sua gerencias de
processamento tem objetivos similares, obviamente garantir o melhor
gerenciamento de processos e aproveitamento do processador, e garantem isso

16

de certa forma de maneiras parecidas. Suas maiores diferenas esto na


estrutura dos seus PCBs, onde no Linux so tratados como task_struct e no
Windows com eprocess para processos e ethread para threads, apesar de todos
conterem seus PIDs as diferenas aparecem nas informaes de espao de
memria, na descrio de seu processos, etc.
O Windows utiliza o escalonamento por prioridade, onde seus processos
e seus threads so escalonados com um algoritmo de escalonamento, com
mltiplas filas com realimentao, onde existem 32 nveis de prioridade (0-31), o
despachador. Alm dos 3 estados bsicos dos processos pronto, executando e
bloqueado, que so representados respectivamente no Windows pelos estados
prontos, em execuo e em espera, o Windows conta com outros estados que
foram mostrados, o inicializado, de reserva, transio, desconhecido e
terminado. E tambm com suporte a multiprocessamento.
J o Linux, que como o Windows, tambm preza pelo melhor
gerenciamento dos processos e um bom aproveitamento do processador,
tambm utiliza algoritmos de escalonamento por prioridade com suporte a
mltiplas filas com realimentao, mas por sua vez com 40 nveis de prioridade
(de -20 a 19, sendo -20 a prioridade mais alta). J em relao a seus estados
dos processos e threads alm dos trs mais bsicos: pronto, executando e
bloqueados, que so representados, no Linux, respectivamente pelos estados
ativos, em execuo e adormecido, conta tambm com os estados de criao,
expirado, parado, zumbi e morto.
Sobre o gerenciamento de memria, conclumos que basicamente as
comparaes entre os sistemas operacionais Windows e Linux se comparam
apenas mudando as plataformas, um feito totalmente em cdigo aberto e
sempre pronto para novas mudanas de acordo com o gosto de cada usurio,
desde que o mesmo tenha ao menos alguns conhecimentos para tal mudana.
J o sistema operacional Windows um sistema fechado com basicamente as
mesmas funes que o sistema Linux, apenas que seu cdigo fonte fechado e
no sendo de fcil acesso para manuseios de usurios com algum
conhecimento, mesmo que pouco para alterao de quaisquer propriedades de
trabalho do SO.

17

Вам также может понравиться