MO806/MC914 Topicos em Sistemas Operacionais´ · 2019. 9. 9. · I Apresentac¸ao rel˜ ampagoˆ I...

22
MO806/MC914 opicos em Sistemas Operacionais ˆ Enfase em Software Livre Islene Calciolari Garcia Instituto de Computac ¸˜ ao - Unicamp Segundo Semestre de 2019

Transcript of MO806/MC914 Topicos em Sistemas Operacionais´ · 2019. 9. 9. · I Apresentac¸ao rel˜ ampagoˆ I...

Page 1: MO806/MC914 Topicos em Sistemas Operacionais´ · 2019. 9. 9. · I Apresentac¸ao rel˜ ampagoˆ I Parte ligada a Pesquisa (20%..60% - outubro)` I Definic¸ao da bibliografia˜

MO806/MC914Topicos em Sistemas Operacionais

Enfase em Software Livre

Islene Calciolari GarciaInstituto de Computacao - UnicampSegundo Semestre de 2019

Page 2: MO806/MC914 Topicos em Sistemas Operacionais´ · 2019. 9. 9. · I Apresentac¸ao rel˜ ampagoˆ I Parte ligada a Pesquisa (20%..60% - outubro)` I Definic¸ao da bibliografia˜

Objetivos

I Visao geral de Sistemas Operacionais ModernosI Dinamica de desenvolvimento utilizando Software LivreI Identificacao de fronteiras pesquisa/desenvolvimentoI Proposta de contribuicoes

Page 3: MO806/MC914 Topicos em Sistemas Operacionais´ · 2019. 9. 9. · I Apresentac¸ao rel˜ ampagoˆ I Parte ligada a Pesquisa (20%..60% - outubro)` I Definic¸ao da bibliografia˜

Visao geral de Sistemas Operacionais Modernos

Operating System ConceptsTenth Edition

Avi SilberschatzPeter Baer GalvinGreg Gagne

John Wiley & Sons, Inc.ISBN 978-1-118-06333-0

“Face The Real World of Operating Systems Fully Equipped”

Page 4: MO806/MC914 Topicos em Sistemas Operacionais´ · 2019. 9. 9. · I Apresentac¸ao rel˜ ampagoˆ I Parte ligada a Pesquisa (20%..60% - outubro)` I Definic¸ao da bibliografia˜

Visao Geral de Sistemas Operacionais Modernos

4 Chapter 1 Introduction

1.1 What Operating Systems Do

We begin our discussion by looking at the operating system’s role in theoverall computer system. A computer system can be divided roughly into fourcomponents: the hardware, the operating system, the application programs,and a user (Figure 1.1).

The hardware—the central processing unit (CPU), the memory, and theinput/output (I/O) devices—provides the basic computing resources for thesystem. The application programs—such as word processors, spreadsheets,compilers, and web browsers—define the ways in which these resources areused to solve users’ computing problems. The operating system controls thehardware and coordinates its use among the various application programs forthe various users.

We can also view a computer system as consisting of hardware, software,and data. The operating system provides the means for proper use of theseresources in the operation of the computer system. An operating system issimilar to a government. Like a government, it performs no useful functionby itself. It simply provides an environment within which other programs cando useful work.

To understand more fully the operating system’s role, we next exploreoperating systems from two viewpoints: that of the user and that of the system.

1.1.1 User View

The user’s view of the computer varies according to the interface being used.Many computer users sit with a laptop or in front of a PC consisting of amonitor, keyboard, and mouse. Such a system is designed for one user tomonopolize its resources. The goal is to maximize the work (or play) that theuser is performing. In this case, the operating system is designed mostly forease of use, with some attention paid to performance and security and nonepaid to resource utilization—how various hardware and software resourcesare shared.

(compilers, web browsers, development kits, etc.)

user

application programs

operating system

computer hardware(CPU, memory, I/O devices, etc.)

Figure 1.1 Abstract view of the components of a computer system.

Operating System Concepts, pagina 04

Page 5: MO806/MC914 Topicos em Sistemas Operacionais´ · 2019. 9. 9. · I Apresentac¸ao rel˜ ampagoˆ I Parte ligada a Pesquisa (20%..60% - outubro)` I Definic¸ao da bibliografia˜

Visao Geral de Sistemas Operacionais Modernos

6 Chapter 1 Introduction

exist because they offer a reasonable way to solve the problem of creatinga usable computing system. The fundamental goal of computer systems isto execute programs and to make solving user problems easier. Computerhardware is constructed toward this goal. Since bare hardware alone is notparticularly easy to use, application programs are developed. These programsrequire certain common operations, such as those controlling the I/O devices.The common functions of controlling and allocating resources are then broughttogether into one piece of software: the operating system.

In addition, we have no universally accepted definition of what is part ofthe operating system. A simple viewpoint is that it includes everything a ven-dor ships when you order “the operating system.” The features included, how-ever, vary greatly across systems. Some systems take up less than a megabyteof space and lack even a full-screen editor, whereas others require gigabytesof space and are based entirely on graphical windowing systems. Amore com-mon definition, and the one that we usually follow, is that the operating systemis the one program running at all times on the computer—usually called thekernel. Along with the kernel, there are two other types of programs: systemprograms, which are associated with the operating system but are not neces-sarily part of the kernel, and application programs, which include all programsnot associated with the operation of the system.

The matter of what constitutes an operating system became increasinglyimportant as personal computers becamemore widespread and operating sys-tems grew increasingly sophisticated. In 1998, the United States Department ofJustice filed suit against Microsoft, in essence claiming that Microsoft includedtoomuch functionality in its operating systems and thus prevented applicationvendors from competing. (For example, a web browser was an integral part ofMicrosoft’s operating systems.)As a result,Microsoftwas found guilty of usingits operating-system monopoly to limit competition.

Today, however, if we look at operating systems for mobile devices, wesee that once again the number of features constituting the operating systemis increasing. Mobile operating systems often include not only a core kernelbut also middleware—a set of software frameworks that provide additionalservices to application developers. For example, each of the two most promi-nentmobile operating systems—Apple’s iOS andGoogle’s Android—features

WHY STUDY OPERATING SYSTEMS?

Although there are many practitioners of computer science, only a small per-centage of themwill be involved in the creation or modification of an operat-ing system. Why, then, study operating systems and how they work? Simplybecause, as almost all code runs on top of an operating system, knowledgeof how operating systems work is crucial to proper, efficient, effective, andsecure programming.Understanding the fundamentals of operating systems,how they drive computer hardware, andwhat they provide to applications isnot only essential to those who program them but also highly useful to thosewho write programs on them and use them.

Operating System Concepts, pagina 06

Page 6: MO806/MC914 Topicos em Sistemas Operacionais´ · 2019. 9. 9. · I Apresentac¸ao rel˜ ampagoˆ I Parte ligada a Pesquisa (20%..60% - outubro)` I Definic¸ao da bibliografia˜

Visao Geral de Sistemas Operacionais Modernos

Topicos a serem cobertosI Gerenciamento de processosI Programacao multithreadI Gerenciamento de memoriaI Gerenciamento de arquivosI Entrada e saıdaI VirtualizacaoI ...

Page 7: MO806/MC914 Topicos em Sistemas Operacionais´ · 2019. 9. 9. · I Apresentac¸ao rel˜ ampagoˆ I Parte ligada a Pesquisa (20%..60% - outubro)` I Definic¸ao da bibliografia˜

Dinamica de desenvolvimento com Software LivreO que e Software Livre?

E um software que permite ao usuario 4 liberdades:

Liberdade 0 ExecutarLiberdade 1 Estudar e adaptarLiberdade 2 Distribuir copiasLiberdade 3 Distribuir copias modificadas

Page 8: MO806/MC914 Topicos em Sistemas Operacionais´ · 2019. 9. 9. · I Apresentac¸ao rel˜ ampagoˆ I Parte ligada a Pesquisa (20%..60% - outubro)` I Definic¸ao da bibliografia˜

Dinamica de desenvolvimento com Software LivreSoftware Livre e Gratuito?

I Pode ser, mas nao necessariamente

Free as in free speech, not as in free beer.-Richard M. Stallman

I As pessoas podem ganhar dinheiro com software livre?

“One of the questions I’ve always hated answering ishow do people make money in open source. And I thinkthat Caldera and Red Hat – and there are a number ofother Linux companies going public – basically showthat yes, you can actually make money in the open-source area.” -Linus Torvalds

Page 9: MO806/MC914 Topicos em Sistemas Operacionais´ · 2019. 9. 9. · I Apresentac¸ao rel˜ ampagoˆ I Parte ligada a Pesquisa (20%..60% - outubro)` I Definic¸ao da bibliografia˜

Dinamica de desenvolvimento com Software LivreSoftware Livre e Gratuito?

I Pode ser, mas nao necessariamente

Free as in free speech, not as in free beer.-Richard M. Stallman

I As pessoas podem ganhar dinheiro com software livre?

“One of the questions I’ve always hated answering ishow do people make money in open source. And I thinkthat Caldera and Red Hat – and there are a number ofother Linux companies going public – basically showthat yes, you can actually make money in the open-source area.” -Linus Torvalds

Page 10: MO806/MC914 Topicos em Sistemas Operacionais´ · 2019. 9. 9. · I Apresentac¸ao rel˜ ampagoˆ I Parte ligada a Pesquisa (20%..60% - outubro)` I Definic¸ao da bibliografia˜

Dinamica de desenvolvimento com Software LivreEstudantes podem ganhar dinheiro com Software Livre?

I OutreachyI GSoC

Page 11: MO806/MC914 Topicos em Sistemas Operacionais´ · 2019. 9. 9. · I Apresentac¸ao rel˜ ampagoˆ I Parte ligada a Pesquisa (20%..60% - outubro)` I Definic¸ao da bibliografia˜

Free Software == Open Source?

Quase iguais, com diferentes abordagens:

http://atomrace.com/blog/wp-content/uploads/2016/03/free-software-vs-open-source.png

Page 12: MO806/MC914 Topicos em Sistemas Operacionais´ · 2019. 9. 9. · I Apresentac¸ao rel˜ ampagoˆ I Parte ligada a Pesquisa (20%..60% - outubro)` I Definic¸ao da bibliografia˜

O Movimento Software Livre

I Richard M. StallmanI 1983I Projeto GNU (GNU’s Not Unix)I Free Software Foundation

The Free Software Foundation (FSF) is a nonprofit witha worldwide mission to promote computer user free-dom. We defend the rights of all software users.

Page 13: MO806/MC914 Topicos em Sistemas Operacionais´ · 2019. 9. 9. · I Apresentac¸ao rel˜ ampagoˆ I Parte ligada a Pesquisa (20%..60% - outubro)` I Definic¸ao da bibliografia˜

Open Source Initiative

I Bruce Perens e Eric S.Raymond.

I 1998

I The Cathedral and the BazaarI Linux e subsersivo: desenvolvimento totalmente aberto e

publicoI Lei de Linus: “Dado um numero de olhos suficiente, todos

os erros sao triviais”I Desenvolvimento de software de alta qualidade

Page 14: MO806/MC914 Topicos em Sistemas Operacionais´ · 2019. 9. 9. · I Apresentac¸ao rel˜ ampagoˆ I Parte ligada a Pesquisa (20%..60% - outubro)` I Definic¸ao da bibliografia˜

Como se desenvolve software livre?

I Deixando codigo disponıvel, sob uma boa licencaI Com uma comunidade colaborativa e muito melhor:

I Canais IRCI Listas de discussoesI WikisI EncontrosI Gerenciamento de bugs e melhoriasI Hierarquia, mantenedores, contribuidores

I Cuidado com os malas! Siga os codigos de conduta!

Page 15: MO806/MC914 Topicos em Sistemas Operacionais´ · 2019. 9. 9. · I Apresentac¸ao rel˜ ampagoˆ I Parte ligada a Pesquisa (20%..60% - outubro)` I Definic¸ao da bibliografia˜

Exemplo de projeto/comunidade: GNU

I Bem estabelecidaI Algumas mudancas sao

difıceisI Pontos de colaboracao clarosI Projetos prioritarios

Page 16: MO806/MC914 Topicos em Sistemas Operacionais´ · 2019. 9. 9. · I Apresentac¸ao rel˜ ampagoˆ I Parte ligada a Pesquisa (20%..60% - outubro)` I Definic¸ao da bibliografia˜

Exemplo de projeto/comunidade: Linux

I http://www.kernel.org/I Milhoes de linhas de codigoI Comunidade hierarquica.

Linus Torvalds (chefao),mantenedores econtribuidores.

I Nao tao livre assim... :-(I Projeto Linux-libre e

distribuicoes GNU/Linux 100%livres

Page 17: MO806/MC914 Topicos em Sistemas Operacionais´ · 2019. 9. 9. · I Apresentac¸ao rel˜ ampagoˆ I Parte ligada a Pesquisa (20%..60% - outubro)` I Definic¸ao da bibliografia˜

Exemplo de projeto/comunidade: Android

I Sistema operacional paradispositivos moveis

I Open Handset Alliance eGoogle

I Licenca ApacheI Quem tem acesso ao codigo

que roda nos celulares?I Codigo da comunidade e bem

aceito?I Colaboracao com a

comunidade Kernel Linux

Page 18: MO806/MC914 Topicos em Sistemas Operacionais´ · 2019. 9. 9. · I Apresentac¸ao rel˜ ampagoˆ I Parte ligada a Pesquisa (20%..60% - outubro)` I Definic¸ao da bibliografia˜

Identificacao fronteiras pesquisa/desenvolvimento

Pesquisa

I Busca por artigos, relatorios tecnicos, tesesI Conferencias cientıficas

Desenvolvimento

I Canais da comunidadeI Conferencias como linuxdev-br

Page 19: MO806/MC914 Topicos em Sistemas Operacionais´ · 2019. 9. 9. · I Apresentac¸ao rel˜ ampagoˆ I Parte ligada a Pesquisa (20%..60% - outubro)` I Definic¸ao da bibliografia˜

Criterio de Avaliacao

I Projeto individual ou em duplaI Topico de livre escolha na area de Sistemas OperacionaisI Contraposicao do estado da arte

I pesquisaI desenvolvimento

I Apresentacoes oraisI Escrita de resumo de um projeto de pesquisa ouI Escrita de projeto para programas de incentivo ao

Software Livre

Page 20: MO806/MC914 Topicos em Sistemas Operacionais´ · 2019. 9. 9. · I Apresentac¸ao rel˜ ampagoˆ I Parte ligada a Pesquisa (20%..60% - outubro)` I Definic¸ao da bibliografia˜

Release early, release often

I Tema (20% - setembro)I Definicao dos objetivos e escopo do projetoI Apresentacao relampago

I Parte ligada a Pesquisa (20%..60% - outubro)I Definicao da bibliografiaI Apresentacao de seminario

I Parte ligada ao Desenvolvimento (20%..60% novembro)I Descricao de um problema praticoI Implementacao opcional testes ou parte de uma solucaoI Apresentacao de seminario final

I Mostra opcional em 27/11

I Agenda a ser montada de forma colaborativa no Moodle!

Page 21: MO806/MC914 Topicos em Sistemas Operacionais´ · 2019. 9. 9. · I Apresentac¸ao rel˜ ampagoˆ I Parte ligada a Pesquisa (20%..60% - outubro)` I Definic¸ao da bibliografia˜

Como ter acesso ao codigo?

I Repositorio do Kernel Linux (github)I LKCampI E ao hardware? Caninos Loucos!

Page 22: MO806/MC914 Topicos em Sistemas Operacionais´ · 2019. 9. 9. · I Apresentac¸ao rel˜ ampagoˆ I Parte ligada a Pesquisa (20%..60% - outubro)` I Definic¸ao da bibliografia˜

Como contribuir?

I Implementacao de funcionalidadesI Correcao de bugsI DocumentacaoI Respondendo perguntas na lista...

I Para esta disciplina, nao e um item obrigatorio