• Nenhum resultado encontrado

A história do htop um making of

N/A
N/A
Protected

Academic year: 2021

Share "A história do htop um making of"

Copied!
47
0
0

Texto

(1)

A história do htop

um

”making of”

Hisham Muhammad

(2)

Sobre mim

autor original do htop, um projeto iniciado em 2004

http://hisham.hm/htop/

desenvolvedor principal do LuaRocks, o gerenciador de pacotes da

linguagem Lua

http://luarocks.org/

co-fundador da distribuição GoboLinux

(3)

O que é o htop

um gerenciador de tarefas interativo

o objetivo era ser um “top melhorado”

o que eu queria dizer com isso: scrolling!

(4)
(5)
(6)

Motivações iniciais

Resolver um problema próprio

(“scratch your itch”)

(7)

“Refazer” um programa clássico

(8)
(9)

“Refazer” um programa clássico

...não é um bicho de sete cabeças

(10)

Como obter os dados dos processos?

O kernel os apresenta em /proc

Um sistema de arquivos virtual

/proc/12345/mem

/proc/12345/stat

/proc/cpuinfo

...

(11)

Como ler esses dados?

Ora, da maneira mais óbvia e simples possível

open()

read()

close()

(12)

Mas como o top faz?

(13)
(14)
(15)

Aí “só era questão de programar”

Ler os dados do /proc

“Desenhar” a interface

(16)

Um detalhe sobre a interface

A arte imita a vida

A vida imita a arte

(17)
(18)
(19)
(20)
(21)

Um programa que “deu certo”

Sempre é difícil descobrir o porquê

(22)

Ubiquidade da plataforma

o

terminal

!

talvez a única plataforma hoje tão presente

(para desenvolvedores)

(23)

A linguagem

fazer em C

(24)

Facilidade de compilar em qualquer lugar

Poucas dependências:

ncurses

cores e coordenadas no terminal

todo Linux tem (dependência do Bash)

(25)

Facilidade de compilar em qualquer lugar

Poucas dependências:

ncurses

cores e coordenadas no terminal

todo Linux tem (dependência do Bash)

(26)

Facilidade de compilar em qualquer lugar

Build com AutoTools:

./configure

make

(27)

Facilidade de empacotar

Fácil de compilar

=

(28)

E assim começou o htop

htop-0.13.tar.gz

22kB

wc -l *.c

(29)

Para comparação

htop-2.0.2.tar.gz

476kB

wc -l *.c */*.c

(30)

A grande mudança

(31)

htop off-Linux

alguns usuários já rodavam no

FreeBSD

(32)

Backstory

« A wild Mac OS X fork appears! »

um port ad-hoc do htop 0.8.2

(33)

Passa o tempo

bug reports começam a aparecer

bugs antigos resolvidos há

anos

!

(34)

Crowdfunding

Portar o htop para Mac

1/3 da meta atingida

(35)

Tornar o htop portável

Torná-lo mais fácil de ser portado

Abrir o caminho para novos ports

(36)

Como quebrar a dependência de SO da maneira fácil

tente compilar em outro SO!

montar uma VM

primeira tentativa: FreeBSD

desisti rápido

segunda tentativa:

PC-BSD

(37)

Abordagens para aplicações multi-plataforma

bases de código separadas

iOS vs. Android

um spaghetti de

#ifdefs

às vezes é o jeito

(38)

Isolar a parte Linux

linux/

(39)

Isolar a parte Linux

linux/

unsupported/

freebsd/

(40)

Uma abordagem “OO”

Process.c

Process.h

ProcessList.c

ProcessList.h

...

linux/

LinuxProcess.c

LinuxProcessList.c

...

(41)

Subi para o GitHub e...

unsupported/

linux/

(42)

Subi para o Github e...

unsupported/

linux/

(43)

Subi para o Github e...

unsupported/

linux/

freebsd/

openbsd/

(44)

Subi para o Github e...

unsupported/

linux/

freebsd/

openbsd/

darwin/

(45)

Impacto positivo

novas pessoas contribuindo

sempre algo bom!

maior diversidade de contribuições

Galera do OpenBSD e a preocupação com segurança!

alguém quer portar para o NetBSD?

(46)

Conclusões

Siga os padrões da sua comunidade

(código, empacotamento)

Portabilidade vale a pena mesmo

“Stratch your itch!”

(47)

Obrigado!

http://hisham.hm/htop

http://github.com/hishamhm/htop

@hisham_hm

Referências

Documentos relacionados

linguagem humana há, para Heidegger, um abismo e, pre- cisamente por isso, não pode ter lugar em seu pensamento uma pensamento da voz animal, pois, ao pensar o homem como Dasein

O tema proposto neste estudo “O exercício da advocacia e o crime de lavagem de dinheiro: responsabilização dos advogados pelo recebimento de honorários advocatícios maculados

Sua obra mostrou, ainda, que civilização e exploração do trabalho andam juntas e que o avanço histórico do oeste brasileiro se fez com a carne e o sangue dos

Quanto às suas desvantagens, com este modelo, não é possível o aluno rever perguntas ou imagens sendo o tempo de visualização e de resposta fixo e limitado;

Os principais objectivos definidos foram a observação e realização dos procedimentos nas diferentes vertentes de atividade do cirurgião, aplicação correta da terminologia cirúrgica,

The challenges of aging societies and the need to create strong and effective bonds of solidarity between generations lead us to develop an intergenerational

O relatório encontra-se dividido em 4 secções: a introdução, onde são explicitados os objetivos gerais; o corpo de trabalho, que consiste numa descrição sumária das

Os principais resultados obtidos pelo modelo numérico foram que a implementação da metodologia baseada no risco (Cenário C) resultou numa descida média por disjuntor, de 38% no