Início de curso de administração de sistemas.
authorThadeu Lima de Souza Cascardo <cascardo@minaslivre.org>
Thu, 20 Mar 2008 01:00:38 +0000 (22:00 -0300)
committerThadeu Lima de Souza Cascardo <cascardo@minaslivre.org>
Thu, 20 Mar 2008 01:00:38 +0000 (22:00 -0300)
software/bibliotecas [new file with mode: 0644]
software/introducao [new file with mode: 0644]
software/list [new file with mode: 0644]
software/pacotes [new file with mode: 0644]

diff --git a/software/bibliotecas b/software/bibliotecas
new file mode 100644 (file)
index 0000000..20008fd
--- /dev/null
@@ -0,0 +1,49 @@
+Bibliotecas
+
+Dentre as diversas boas práticas de desenvolvimento de software está o
+reuso. Trata-se do velho ditado de não "reiventar a roda". Quando um
+conjunto de rotinas/funções/métodos de software compreendem uma
+funcionalidade em particular, uní-las em uma biblioteca que possa ser
+reutilizada é uma boa prática.
+
+Por exemplo, quando um reprodutor de áudio é desenvolvido, partes do
+software são escritas para decodificar os diversos formatos em que áudio
+é codificado hoje em dia. Decodificar áudio, no entanto, é útil para
+softwares diferentes de reprodutores de áudio, como editores,
+analisadores, tratadores, conversores, etc. Portanto, escrever o
+decodificador apenas uma vez em forma de biblioteca para que possa ser
+reutilizado nesses vários softwares é mais interessante que reescrever o
+decodificador para cada software.
+
+
+Bibliotecas Compartilhadas
+
+Entre as várias maneiras de reutilizar essa biblioteca é, em tempo de
+compilação, incluir o código em seu software. No entanto, isso significa
+que cada software que utilize a biblioteca inclui uma cópia em disco e,
+no caso de sua carga, em memória do código da biblioteca.
+
+O compartilhamento dinâmico de bibliotecas permite que cada software
+compilado faça as referências necessárias ao código da biblioteca sem,
+no entanto, incluir o seu código. Dessa forma, a biblioteca é buscada e
+carregada pelo carregador de programas. Assim, espaço em disco e,
+eventualmente, em memória, pode ser compartilhado entre os vários
+programas que fazem uso da biblioteca.
+
+Outra possível vantagem do compartilhamento de bibliotecas é a
+atualização da biblioteca, independente da atualização dos softwares que
+a utilizam.
+
+
+Versões de Interfaces de Bibliotecas
+
+Um cuidado muito importante, no entanto, na atualização de bibliotecas é
+que os softwares utilizam interfaces definidas pela biblioteca, que
+chamamos de API (Application Programming Interface) e ABI (Application
+Binary Interface). Se a ABI de uma biblioteca muda, é necessário a
+recompilação do software. Se sua API muda, é necessário a atualização
+(modificação) do código do software.
+
+Portanto, veremos que a atualização de bibliotecas não pode ser feita
+sem tomarmos o devido cuidado de verificarmos a necessidade de
+recompilação ou atualização dos softwares que a utilizam.
diff --git a/software/introducao b/software/introducao
new file mode 100644 (file)
index 0000000..d2e97b8
--- /dev/null
@@ -0,0 +1,16 @@
+Gerenciamento de Software
+
+Introdução
+
+Em um sistema computacional de uso geral, ao contrário de um sistema de
+propósito específico, como um roteador ou reprodutor de áudio, o
+conjunto de softwares instalados deve possibiltar cumprir quaisquer
+funções que o hardware permita.
+
+Além de instalar e remover software, outra função importante no
+gerenciamento é a atualização, permitindo a instalação de versões mais
+novas, que incluam correções de defeitos e novas funcionalidades.
+
+Veremos algumas características de sistemas modernos que implicam em
+alguns requisitos de qualquer sistema de gerenciamento de software para
+esses sistemas.
diff --git a/software/list b/software/list
new file mode 100644 (file)
index 0000000..68bcc11
--- /dev/null
@@ -0,0 +1,3 @@
+introducao
+bibliotecas
+pacotes
diff --git a/software/pacotes b/software/pacotes
new file mode 100644 (file)
index 0000000..f346ccf
--- /dev/null
@@ -0,0 +1,24 @@
+Pacotes de Software
+
+Ao distribuir um software para instalação em um sistema, não basta
+apenas incluir os arquivos que compõem o software. Instruções de
+execução anterior e posterior à cópia desses arquivos são necessárias
+algumas vezes. Outras informações que descrevam o software, seja para
+algum ser humano ou para o software de gerenciamento de softwares,
+também são comuns.
+
+Alguns casos de execução pré e pós instalação é a criação de um usuário
+específico para o software, ou a atualização de um índice, cache ou
+registro. Entre exemplos de tais índices está o de bibliotecas
+compartilhadas, o de documentação, plugins para algum outro software,
+entre vários outros.
+
+Informações geralmente necessárias para o gerenciador de software
+incluem:
+
+* Arquitetura: plataforma pra qual o software foi compilado para
+funcionar. Exemplos: Intel x86, PowerPC, ARM, etc.
+* Dependências: outros softwares que devem estar instalados para que
+esse funcione.
+* Versão: para determinar se um pacote é mais novo ou mais velho que a
+versão instalada no sistema.