From de4c7cebcbb7ee122bf91bbc17dcdfdc19f96b8e Mon Sep 17 00:00:00 2001 From: Thadeu Lima de Souza Cascardo Date: Wed, 19 Mar 2008 22:00:38 -0300 Subject: [PATCH] =?utf8?q?In=C3=ADcio=20de=20curso=20de=20administra=C3=A7?= =?utf8?q?=C3=A3o=20de=20sistemas.?= MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit --- software/bibliotecas | 49 ++++++++++++++++++++++++++++++++++++++++++++ software/introducao | 16 +++++++++++++++ software/list | 3 +++ software/pacotes | 24 ++++++++++++++++++++++ 4 files changed, 92 insertions(+) create mode 100644 software/bibliotecas create mode 100644 software/introducao create mode 100644 software/list create mode 100644 software/pacotes diff --git a/software/bibliotecas b/software/bibliotecas new file mode 100644 index 0000000..20008fd --- /dev/null +++ b/software/bibliotecas @@ -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 index 0000000..d2e97b8 --- /dev/null +++ b/software/introducao @@ -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 index 0000000..68bcc11 --- /dev/null +++ b/software/list @@ -0,0 +1,3 @@ +introducao +bibliotecas +pacotes diff --git a/software/pacotes b/software/pacotes new file mode 100644 index 0000000..f346ccf --- /dev/null +++ b/software/pacotes @@ -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. -- 2.20.1