memoria que interfaces de linha de comando. Em sistemas unix-likes, existe a possibilidade de escolher o gerenciador de janelas a utilizar, aumentando em muito a liberdade de escolha do ambiente.CUI (Command-line user interface)Alem da interface grafica, existe a interface de linha de comando, que funciona basicamente com a digitacao de comandos, sendo nesse relativamente pouco interativa. Os comandos digitados sao interpretados por um interpretador de comandos, conhecidos tambem por shells, bastante comuns em sistemas unix-likes. Um exemplo de interpretador de comandos seria o Bash. Usada geralmente por usuarios avancados e em atividades especificas, como gerenciamento remoto, utiliza poucos recursos de hardware em comparacao a interface grafica. Nesse tipo de ambiente, raramente se usa o mouse, embora seja possivel atraves do uso da biblioteca ncurses no desenvolvimento dos softwares.Classificacoes Um exemplo da linha de comandoEm relacao ao seu projeto (arquitetura), segundo Tanenbaum (1999):Nucleo monolitico ou monobloco: o nucleo consiste em um unico processo executando numa memoria protegida (espaco de nucleo) executando as principais funcoes. Ex.: MAC OS X, OS/2, Windows, Linux, FreeBSD.Micronucleo ou modelo cliente-servidor: o nucleo consiste de funcoes minimas (comunicacao e gerenciamento de processos), e outras funcoes, como sistemas de arquivos e gerenciamento de memoria, sao executadas no espaco do usuario como servicos; as aplicacoes (programas) sao os clientes. Ex.: GNU Hurd, Mach.Sistema em camadas: funcoes do nucleo irao executar em camadas distintas, de acordo com seu nivel de privilegio. Ex.: Multics.Monitor de maquinas virtuais: fornece uma abstracao do hardware para varios sistemas operacionais. Ex.: VM/370, VMware, Xen.Quanto ao gerenciamento de processos, pode-se usar a seguinte classificacao:Monotarefa: pode-se executar apenas um processo de cada vez Ex.: MS-DOS.Multitarefa: alem do proprio SO, varios processos de utilizador (tarefas) estao carregados em memoria, sendo que um pode estar ocupando o processador e outros ficam enfileirados, aguardando a sua vez. O compartilhamento de tempo no processador e feito de modo que o usuario tenha a impressao que varios processos estao sendo executados simultaneamente. Cada processo recebe um tempo para ser executado. Ao final desse tempo, outro processo e executado. Essa alternancia de processos chama-se concorrencia. Ex: OS/2, Windows, Linux, FreeBSD e o Mac OS X. Cabe destacar que processos so podem estar executando simultaneamente caso o sistema seja multiprocessado, ja que, em que cada instante de tempo, apenas um processo esta em execucao em um processador ou nucleo de processamento (core).Multiprocessamento: o SO distribui as tarefas entre dois ou mais processadores. Se os processadores estivem na mesma maquina fisica, o sistema e chamado de Sistema Multiprocessado Fortemente Acoplado. Caso esteja em maquinas diferentes, trata-se de um Sistema Multiprocessado Fracamente Acoplado.Quanto a quantidade de usuarios que podem utilizar o sistema concorrentemente:Monousuario: apenas um usuario por vez (apesar de poder suportar recursos como troca de usuario). Ex.: Windows. Esse tambem pode ser acessado por terminais e conexao remota.Multiusuario: varios usuarios usam o computador ao mesmo tempo, seja por diversos terminais, seja por conexao remota como o SSH. Ex.: Linux, Unix.Exemplos de sistemas operacionais ativosLinuxMac OS XWindows XPSolarisFreeBSDHaikueComStationFreeDOSUnix System VMINIXOpenBSDNetBSDDragonflyBSDMenuetOSGoogle Chrome OSWindows 7Windows VistaUbuntuWindows XPExemplos de sistemas operacionais importantes que foram descontinuadosMS-DOSOS/2BeOSNeXTStepCP/MWindows 2000Windows 98