• Nenhum resultado encontrado

Hisham H. Muhammad André Detsch

N/A
N/A
Protected

Academic year: 2021

Share "Hisham H. Muhammad André Detsch"

Copied!
29
0
0

Texto

(1)

Tornando a

árvore de diretórios dinâmica

com UnionFS, FUSE e Inotify

Hisham H. Muhammad André Detsch

(2)

Resumo

O que é o GoboLinux?

Presente

– Evoluções já realizadas

– Dificuldades de flexibilização nas aplicações

Futuro

– UnionFS, FUSE e Inotify como ferramentas para

resolver os problemas de flexibilização existentes

– Alterações previstas para o GoboLinux

(3)

O que é o GoboLinux?

Distribuição realmente alternativa

Nova organização da estrutura de diretórios,

adaptada aos padrões de uso atuais

Alguns marcos

– 2002, criação

– 2003, kuro5hin, slashdot – 2004, Revista do Linux

(4)
(5)

Estrutura de diretórios

Trocar o Daemons para Tasks

(6)

Características gerais

Links de compatibilidade (/bin, /usr, /etc...),

que podem ser ocultados -> GoboHide

Pacote binário é um “tar.bz2”

Remoção é um “rm -rf”

Manutenção garantida: independência de

pacotes, ou gerenciador de pacotes

Scripts automatizam tarefas, mas são

opcionais

(7)
(8)

Principais alterações

/System/Kernel/

– Boot : questão da partição separada (/System/Boot

-> /System/Kernel/Boot)

– Modules: /System/Links/Libraries/modules

(/usr/X11R6/lib/modules do XFree86)

– Devices, .../Status, .../Objects: /dev, /proc e /sys ->

GoboHide

/System/Links/Daemons virou

/System/Links/Tasks

(9)

Arquivos não gerenciados

/System/Variable

– lock, run, log

– não se quer apagar os logs após desinstalar um

servidor web

(10)

Arquivos compartilhados

/System/Links/Shared adicionado depois...

– Esquema do link invertido – ...

(11)

Problema geral:

programas que assumem um

caminho compartilhado

(12)

Abordagens atuais

Variáveis de ambiente

– GTK_PATH e amigos

– solução proposta por algumas aplicações

● apontam para /System/Links

– nem sempre seguida – "pouco escalável"

● pode ser problemático automatizar para diferentes shells

(13)

Abordagens atuais

/usr/lib/python2.3 e amigos

– algumas aplicações "estendem" a árvore de

diretórios

– incluindo seu próprio esquema de versões

– o que é lib? é apenas para bibliotecas dinâmicas? – arquivos independentes de plataforma não

deveriam estar em share?

(14)

Por que se importar com isso?

Questão chave em um sistema modular

Pense no usuário não-root

– por isso mesmo soluções como variáveis de

ambiente (quando disponíveis) são vistas como "exceção"

(15)

Apresentando

/System/Index

(16)

/System/Index

A próxima geração da árvore GoboLinux

– manter a "separação física" dos pacotes

– princípio "the filesystem is the package manager"

Oferecer realmente uma visão unificada

(17)

Como compilar programas?

É preciso uma forma _garantida_ de compilar

programas em um diretório único e capturar

os arquivos para compartimentalizá-los em

/Programs

Historicamente, alternativas existentes eram

pouco satisfatórias:

– Trap de chamadas de sistema (checkinstall, etc):

não é 100% seguro

– make com um prefix, make install com outro: não

(18)

UnionFS

<O que é...>

Utilização na compilação

– UnionSandbox

– configure --prefix=/System/Index

– os arquivos serão "escritos" no diretório de índice,

mas serão redirecionados via UnionFS.

– mesmo escritas na árvore Unix 'legacy' serão

(19)

Usos do UnionFS

Sandbox

– Releases recentes dos Scripts Gobo já permitem

usar UnionFS como sandbox (em oposição ao usuário não-privilegiado 'fibo')

Abstrair a "localização física" dos programas

– Múltiplas partições (o texto I am not clueless já

pregava isso)

LiveCD

(20)

Índice...

Índice -> banco de dados!? WTF?

Não! É live!

– sabemos bem dos problemas de sincronia de

package managers

Listener já existe

– "technology preview" do que é possível – Monitorar /Programs utilizando Inotify

(21)
(22)

ViewFS

Sistema de arquivos montado em

/System/Index

– Implementado como um daemon em espaço de

usuário, usando FUSE

Provê visão unificada do sistema

– Substitui hierarquia /System/Links

Aparece como uma árvore de links

(23)

Por que “dinâmica”

Diferentes programas podem “enxergar”

índices diferentes

– Resolve o problema de dependências conflitantes

Exemplo: dois binários diferentes podem

acessar /usr/lib/libc.so.6 diferentes

Esse caminho passa a ser virtualizado

Baseado no esquema de dependências

– Ganhando um facelift: GTK+ [2.0, )

(24)
(25)

Comparando

/System/Links/Executables /System/Links/Libraries /System/Links/Shared /System/Index/bin /System/Index/lib /System/Index/share

(26)

Simplificação de conceitos

Atualmente Gobo precisa tratar cada

categoria de arquivos explicitamente

Não é necessário o esquema de links

(27)

Nomes mais 'feios'?

GoboLinux sempre possuiu a noção de

"sub-árvores Unix" dentro de sua estrutura de

diretórios

Visão abaixo de /System/Index/... fica

consistente com /Programs/Foo/1.0/...

(28)

Quebra de compatibilidade?

GoboLinux sempre primou pela flexibilidade

da árvore de diretórios

– Rootless GoboLinux é um exemplo:

/home/hisham/Programs...

Assim, para nós, o "custo de mudar" é menor

– Compile, nossa ferramenta de compilação, utiliza

definições de caminho de alto nível

Compatibilidade binária no mundo Linux é

constantemente quebrada de qualquer jeito

(29)

Conclusões

Traremos a paz ao mundo

You heard it first here

"Que mundo é esse onde nem mesmo diferentes versões de um programa podem coexistir"

Referências

Documentos relacionados

Foram ainda assinadas moções conjuntas no Parlamento europeu sobre assuntos muito graves, por vezes mesmo com a participação do Partido Popular Europeu e

2. O texto de Isaías não contém neste caso as repreensões feitas a Israel como a esposa desleal, a ecoarem com tanta energia nos outros textos, em particular de Oséias ou de

1- Indica com P, se a frase estiver na voz passiva e com A se estiver na ativa. Depois, passa-as para a outra forma. a) Vimos um cisne moribundo.. Assinala com um X o

1- Indica com P, se a frase estiver na voz passiva e com A se estiver na ativa. Depois, passa-as para a outra forma.. Assinala com um X o retângulo correspondente.. Derivada

Este estudo tem como objetivo propor uma sessão de treino, baseada no treinamento funcional que poderá ser utilizada na preparação física do surf, tanto para atletas quanto

(Solução saturada é aquela que apresenta massa de soluto dissolvida igual a solubilidade da substância no solvente numa determinada temperatura)?. Classificação das soluções

No contexto (...), o Conselho de Classe não conseguirá desempenhar seu papel original de mobilizar a avaliação escolar no intuito de desenvolver um maior conhecimento

A maioria apre- sentou um desempenho médio, que sugere que eles tenham as habilidades básicas à argumentação desenvolvidas apenas até os níveis 3 e 4 (habilidades de ordem