Shared libraries sao bibliotecas que sao carregadas pelos programas quando eles iniciam.Precisamos entender a diferenca entre o nome da biblioteca, soname, e seu real name.Toda shared library tem um nome especial chamado de "soname". O soname tem o prefixo "lib", o nome da biblioteca, o sufixo ".so" seguido de ponto e um numero de versao que e incrementado sempre que a interface muda. Normalmenteo soname e um link simbolico para o real name da shared library.Exemplo de soname: libctest.so.1Toda a shareed libray possui um real name. Que e o nome do arquivo que contem o codigo da biblioteca. O real name adiciona ao soname um ponto, um numero, que e o minor number, outro ponto e o numero da versao.Exemplo de real name: libctest.so.1.0Alem disso, ha um nome usado pelo compilador para requisitar a library, que e simplesmente o soname sem nenhum numero de versao.Exemplo: libctest.soColocando em pratica:Primeiramente vamos ter dois arquivos que sao:operacoes.c que vai conter nosso codigo fonte operacoes.h que vai conter apenas as definicoesCodigo do arquivo operacoes.c#include "operacoes.h"int somaDeInterios (int n1, int n2){return n1 + n2;}int multInteiros (int n1, int n2){return n1 * n2;}Codigo do arquivo operacoes.h#ifndef _OPERACOES#define _OPERACOESint somaDeInterios (int n1, int n2);int multInteiros (int n1, int n2);#endifAgora vamos digitar o comandos:gcc -fPIC -c operacoes.cVeja que fio gerado o aquivo: operacoes.oAgora, vamos gerar a nossa library propriamente dita: gcc -shared -Wl,-soname,libcmatematica.so.1 -o libcmatematica.so.1.0 operacoes.oVamos copiar o arquivo gerado: libcmatematica.so.1.0 para dentro da pasta /usr/lib, talvez voce deva estar logado como root para executar esse passo: cp libcmatematica.so.1.0 /usr/libAgora vamos criar os links necessarios, talvez tenha que estar logado com root: ln -sf /usr/lib/libcmatematica.so.1.0 /usr/lib/libcmatematica.so ln -sf /usr/lib/libcmatematica.so.1.0 /usr/lib/libcmatematica.so.1Bom, agora, vamos criar um simples programa para verificar se a nossa biblioteca realmente funciona.Vamos chamar nosso arquivo de main.cCodigo do arquivo main.c#include "operacoes.h"#include <stdio.h>int main(){printf("\n\tTeste da Shared library");printf("\n\t5 + 2 = %d", somaDeInterios(5,2));printf("\n\t5 * 2 = %d", multInteiros(5,2));}Para compilar: gcc main.c -lcmatematica -o operacoesInteirasResultado:Teste da Shared library 5 + 2 = 7 5 * 2 = 10 Hoje vamos instalar a interface KDE no FreeBSD.Versao do sistema: 8.2 RELEASEPrimeiro passo -> Instalacao do X11:Rodamos o comando: pkg_add -r xorgSegundo passo -> Configuracao: Abra o arquivo /etc/rc.conf e adicione as seguintes linhas para auto detectar mouse/teclado e habilitar o KDE aos iniciarhald_enable="YES"dbus_enable="YES"local_startup="${local_startup} /usr/local/kde4/etc/rc.d"kdm4_enable="YES"Terceiro passo -> Instalacao do KDE:pkg_add -r kde4Quarto passo -> Vamos fazer o KDE startar automaticamente:echo "exec /usr/local/kde4/bin/startkde" > ~/.xinitrcResultado: Estou aparafusado por dentro por altas conivencias. O vigor cria um belo som que me ajuda pela noite.Ela diz que nao sou capaz daquilo que me acusam. Sem remorso, eu paro e digo que essa culpa e o que defendo. "O amor e paciente, e bondoso, nao e invejoso, nao e arrogante nem orgulhoso. Nao faz o que e inconveniente, nao busca o proprio interesse, nao se irrita nem se julga ofendido. Nao se alegra com a injustica, mas se alegra com a verdade. O amor tudo perdoa, tudo cre, tudo espera, tudo suporta." (1Cor 13; 4-7) Se es capaz de arriscar numa unica parada, tudo quanto ganhaste em toda a tua vida. E perder e, ao perder, sem