3. Requisitos de hardware: A configuração mínima de hardware necessária para suportar o Linux Slackware é um 386 com 2Mb de RAM e 10 MB de espaço livre em disco. A configuração recomendável para aplicações mais robustas como um provedor Internet é um Pentium 8Mb de RAM (para rodar o XP-Windows e alguns outros utilitários) com 400 Mb a 600 Mb de espaço no disco rígido.
4. Trabalha em ambas as formas mono e multi tarefas Inicialização e interrupção do sistema "No boot do Linux, após o Kernel ser carregado, é usado o init, além de uma estrutura de diretórios de script associados parecida para iniciar a execução do sistema e os processos de carregamento. Vale lembrar que apesar desse método estar se tornando padrão no mundo Linux - por ser fácil, poderoso e flexível - algumas distribuições, principalmente distribuições antigas, ainda usam esquema de inicialização diferentes. Apesar de diferentes muitas vezes eles mantém uma semelhança, como é o caso do OpenLinux, que usa um sistema de inicialização onde a diferença está apenas nos nomes dos scripts. "
5. Dispositivos de entrada e saida O acesso aos dispositivos de E/S como terminais discos, impressoras e a própria rede, é feito através de arquivos especiais, Cada dispositivo está associado a um ou mais arquivos especiais, localizados no diretório/dev. Por exemplo, uma impressora pode ser o arquivo /dev/1p, um terminal /dev/tty1 e uma interface de rede, /dev/net. Os device drivers podem ser divididos em dois tipos. Orientados e bloco e orientados a caractere. Os device dirvers orientados a bloco estão ligados a dispositivos como discos e CD-ROMs, que permitem a transferência de blocos de informações do mesmo tamanho. Os drivers orientados a caractere são voltados para atender dispositivos como terminais e impressoras que transferem informação de tamanho variável, geralmente caractere a caractere ou uma seqüência de caracteres. No caso das operações orientadas a bloco, deve existir a preocupação em minimizar o numero de transferência entre o dispositivo e a memória utilizando o buffer cachê .O buffer cachê é uma área na memória principal onde ficam armazenados temporariamente os blocos recentemente referenciados. Por exemplo, quando uma operação de leitura a disco é realizada o subsistema de E/S verifica se o bloco esta no buffer cache se o bloco se encontra no cachê é possível passá-lo diretamente par ao sistema de arquivos sem acesso ao disco. Melhorando assim o desempenho do sistema.
6. BUFFERING A técnica de buffering consiste na utilização de uma área na memória principal, denominada buffer, para a transferência de dados entre os dispositivos de EIS e a memória. Esta técnica permite que em uma operação de leitura o dado seja transferido primeiramente para o buffer, liberando imediatamente o dispositivo de entrada para realizar uma nova leitura. Neste caso, enquanto o processador manipula o dado localizado no buffer, o dispositivo realiza outra operação de leitura no mesmo instante.
7. SPOOLING A técnica de spooling (simultaneous peripheral operation on-line) foi introduzida no final dos anos 1950 para aumentar o grau de concorrência e a eficiência dos sistemas operacionais. Naquela época, os programas dos usuários eram submetidos um a um para processamento pelo operador. Como a velocidade de operação dos dispositivos de EIS é muito menor que a do processador, era comum que a UCP permanecesse ociosa à espera de programas e dados de entrada ou pelo término de uma impressão. O uso do spooling permite desvincular o programa do dispositivo de impressão, impedindo que um programa reserve a impressora para uso exclusivo. O sistema operacional é o responsável por gerenciar a seqüência de impressões solicitadas pelos programas, seguindo critérios que garantam a segurança e o uso eficiente das impressoras.
8. Estrutura As distribuições Linux são um bom exemplo de ação da lei de seleção natural. Novas distribuições surgem praticamente a cada dia, mas poucas continuam ativas por mais do que alguns meses. O motivo é bastante simples: qualquer um com conhecimentos técnicos suficientes pode criar uma nova distribuição, tomando como base alguma distribuição já existente. Entretanto, apenas as que conseguem reunir um grupo suficientemente grande de usuários e desenvolvedores conseguem sobreviver a longo prazo.Ao contrário do que se costuma ouvir, a instalação do Slackware pode ser tão simples quanto a do que a do Mandriva ou Fedora, o problema é justamente o que fazer depois da instalação. Quase nada é automático: som, impressora, montagem das partições, tudo precisa ser configurado manualmente depois. O “Slack” no nome significa “preguiçoso” no sentido de que o software não fará muita coisa por você. A proposta da distribuição é justamente lhe proporcionar problemas, para que você possa aprender pesquisando soluções para eles. Esta acaba sendo a principal limitação, mas ao mesmo tempo o diferencial que mantém a distribuição relevante.
9. Arquitetura Programas podem ser instalados a partir de pacotes binários pré-compilados para sua distribuição/versão (oficiais ou de terceiros), compilação a partir do código-fonte, a partir de um SlackBuild ou ainda sim de um instalador binário (este quase sempre pertencendo a programas proprietários). Conceitos: Um pacote binário pré-compilado é um programa pronto para ser usado pelo sistema, bastando instalar. Um código-fonte permite que você altere (se lhe interessar) compile e instale o programa. Um instalador binário é um programa que fará a instalação quando executado. Instalação a partir de pacote binário pré-compilado da sua distribuição/versão Os pacotes pré-compilados são programas prontos para serem usados compactados, bastando instalá-los.
10. S incronização e comunicação de processos Por meio de semaforo: Ele controla os acessos e monitora a execução de instruções que podem causar algum dano. Semáforos são usados para evitar as chamadas "race conditions", ou "condições de disputa", onde dois ou mais processos requisitam um mesmo recurso. Um semáforo serve para impedir que os mais de um processo acesse um recurso compartilhado ao mesmo tempo.
11. O Kernel O kernel faz o controle dos periféricos do sistema e para isto ele deve ter o seu suporte incluído. Para fazer uma placa de som Sound Blaster funcionar, por exemplo, é necessário que o kernel ofereça suporte a este placa e você deve configurar seus parâmetros (como interrupção, I/O e DMA) com comandos específicos para ativar a placa e faze-la funcionar corretamente. Existe um documento que contém quais são os periféricos suportados/ não suportados pelo GNU/Linux, ele se chama Hardware-HOWTO. Suas versões são identificadas por números como 2.0.36, 2.0.38, 2.1.10, 2.2.12, as versões que contém um número par entre o primeiro e segundo ponto são versões estáveis e que contém números ímpares neste mesmo local são versões instáveis (em desenvolvimento). Aplicando Patches no kernel Patches são modificações geradas pelo programa diff em que servem para atualizar um programa ou texto. Este recurso é muito útil para os desenvolvedores, pois podem gerar um arquivo contendo as diferenças entre um programa antigo e um novo (usando o comando diff) e enviar o arquivo contendo as diferenças para outras pessoas. As pessoas interessadas em atualizar o programa antigo, podem simplesmente pegar o arquivo contendo as diferenças e atualizar o programa usando o patch. Isto é muito usado no desenvolvimento do kernel do GNU/Linux em que novas versões são lançadas freqüentemente e o tamanho kernel completo compactado ocupa cerca de 18MB.
12. Gerenciamento Entrada e saida: A gerência de entrada e saída no Linux é implementada através de device drivers, um device para cada dispositivo. Os device drivers são acoplados ao sistema operacional quando o kernel é gerado. Sempre que um novo dispositivo é acrescentado ao sistema, o driver correspondente deve ser acoplado ao núcleo. O acesso a dispositivos é na forma de arquivos especiais.
13. Gerênciamento de processos O modelo de gerenciamento de processos do Linux teve uma evolução notável. Desde o seu início, auxiliado pelo modelo Bazaar1 de desenvolvimento, esses algoritmos foram enumeras vezes criticados e melhorados por eruditos ao redor do mundo, isso faz com que o Linux tenha hoje um dos melhores conjuntos de algoritmos para gerenciamento de processos já visto. Um processo pode ser descrito como parte de um programa que está aparentemente rodando. Este aparente existe somente pelo fato de que determinado processo pode entrar e sair diversas vezes do processador em um único segundo, e em um determinado momento ele pode não estar no processador e mesmo assim aparentemente estar rodando.
14. Memória No Linux a memória funciona da seguinte maneira, processos que estão em execução têm prioridade na memória, quando termina um processo e se tiver espaço na memória, ficam resíduos desse processo na memória para uma futura volta desse processo ser mais rápida. Caso essa memória RAM esteja lotada com processos que estão em execução, aí começa a utilização da memória SWAP (troca). (LIMA, 2007) Cada processo do Linux, em uma máquina de 32 bits, dispõe de 3GB de espaço de endereçamento virtual para si próprio, com 1GB restante reservado para suas tabelas de páginas e outros dados do núcleo. O 1GB do núcleo não é visível quando o processo executa no modo usuário, mas torna-se acessível quando o processo faz uma chamada ao núcleo. O espaço de endereçamento é gerado quando o processo é criado e sobrescrito em uma chamada ao sistema exec. O espaço de endereçamento virtual é dividido em áreas ou regiões organizadas em páginas. Contíguas e homogêneas. Isso quer dizer que cada área consiste de uma série de páginas consecutivas com proteção e propriedades de paginação idênticas. O segmento de código e os arquivos mapeados são exemplos de áreas. Pode haver vazios no espaço de endereçamento virtual entre essas áreas. Qualquer referência à memória para um vazio resulta em uma falta de página fatal.
15. Multiprocessadores O sistema oferece aos usuários um Linux repleto de recursos. Ele traz servidores de web, ftp, e e-mail, diversos ambientes gráficos, uma vasta gama de ferramentas de desenvolvimento, editores e bibliotecas para desenvolver e compilar novas aplicações. Sobre esta versão: Esta versão contém muitas melhorias que agradarão usuários novos, assim como usuários mais experientes do Slackware. Contendo excelentes gerenciadores de janelas, o leve e rápido Xfce 4.4.1 e o KDE 3.5.7 que possui uma interface mais elaborada e fácil de usar. Foi adicionado ao Slackware o suporte para o HAL, que permite a administradores conceder permissão aos usuários para uso de dispositivos de armazenamento USB apenas plugando e usando. O uso do Kernel 2.6.21-SMP que garante uso mais eficiente da máquina por suportar multi-core, HyperThreading e multiplos processadores. Também traz a esta versão melhor suporte a sistemas de arquivos jornaling, SCSI, ATA, SATA e LVM. Além de suporte a X DRI que acelera a renderização de gráficos 3D.