Um processo é uma instancia de uma ou mais tarefas relacionadas (threads) que estão a executar no computador. Não são necessariamente programas ou comandos pois um programa pode iniciar vários processos ao mesmo tempo. Alguns processos são independentes, outros são relacionados.
Os processo são corridos de forma isolada, ou seja, não utilizam os recursos de outros processos que estão a correr, mesmo que tenham sido chamados pela mesma conta.
Assim sendo é muito difícil ser atacado por vírus ou exploits (mas não impossível obviamente).
Outros mecanismos de segurança foram acrescentados ao longo do tempo:
- cgroups (control groups) - permitem ao administrador agrupar processos em grupos e alocar recursos finitos a esses grupos;
- (LXC) linux containers - Possibilita correr multiplos sistemas isolados Linux (containers) num unico sistema com cgroups;
- Virtualization - Hardware é emulado por forma a que não só apenas os processos são isolados, mas também todos os sistemas de forma isolada num host fisico.
Tipos de processos:
Process Type | Description | Example |
Interactive Processes | Need to be started by a user, either at a command line or through a graphical interface such as an icon or a menu selection. | bash, firefox, top |
Batch Processes | Automatic processes which are scheduled from and then disconnected from the terminal. These tasks are queued and work on a FIFO (First In, First Out) basis. | updatedb |
Daemons | Server processes that run continuously. Many are launched during system startup and then wait for a user or system request indicating that their service is required. | httpd, xinetd, sshd |
Threads | Lightweight processes. These are tasks that run under the umbrella of a main process, sharing memory and other resources, but are scheduled and run by the system on an individual basis. An individual thread can end without terminating the whole process and a process can create new threads at any time. Many non-trivial programs are multi-threaded. | gnome-terminal, firefox |
Kernel Threads | Kernel tasks that users neither start nor terminate and have little control over. These may perform actions like moving a thread from one CPU to another, or making sure input/output operations to disk are completed. | kswapd0, migration, ksoftirqd |
Sem comentários:
Enviar um comentário