SSH
대부분의 운영 서버는 서버실에 존재하므로, Remote Shell을 통해서 접근하게 된다. Remote Shell은 SSH 프로토콜을 사용하여 서버에 접근하는데, SSH는 Secure Shell의 약자이다. 다음과 같이 ssh 명령어를 통해 ssh 프로토콜을 통해 Remote Shell을 사용할 수 있다. `ssh student@servera`
Kernel Space와 User Space
Kernel Space란 Kernel이 실행되는 공간으로 장치 드라이버가 실행되고 모든 네트워킹이 구현되어 있는 곳이다. 반면 User Space는 주로 앱이 실행되는 메모리 영역으로, 프로세스 당 하나씩 생성된다.
Process
각 프로세스는 특정 유저나 그룹으로 실행되어 시스템 파일에 액세스 할 수 있다. 프로세스는 실행 중/실행 대기 중/리소스 대기 및 blocked 등의 상태를 가진다. 프로세스는 식별자인 PID로 식별할 수 있다. 사용자 프로세스는 쉘 프롬프트에 의해 실행되어 터미널로부터 인풋을 받고 터미널로 아웃풋을 반환한다.
Process의 종류 1 - User Process
User Process는 shell prompt를 통해 실행되므로 터미널에 연결되어 동작한다. 터미널로부터 인풋을 받는 프로세스는 full grunt process라고 한다. 프로세스가 shell prompt에 대한 권한을 가지고 있다는 의미이다. (프로그램이 수행되며 터미널 프롬프트를 통제하여, 사용자는 해당 터미널을 사용할 수 없다.) 반면 프로세스는 백그라운드에서 실행될 수도 있다. 이 경우 터미널로부터 인풋을 받지 않으나 아웃풋을 display할 수는 있다.
Process의 종류 2 - Daemon Process
Daemon 프로세스는 터미널과 연관되어 있지 않으면서 네트워크 서비스 혹은 시스템 실행에 있어서 housekeeping task를 하는 프로세스를 말한다.
Process의 종류 3 - Kernel Threads
커널 프로세스들은 커널의 일부로 일반 유저 프로세스처럼 스케줄링 되고 실행되나 터미널과 연결되지 않는다.
`ps` 커맨드
`ps -ef` 커맨드를 통해 프로세스들에 대해 확인할 수 있다. 옵션 -e는 모든 프로세스들을 다 조회해주고, -f는 디테일한 정보까지 출력해준다. 첫 번 째 줄을 보면, UID를 통해 해당 프로세스가 관리자 유저로 실행되었으며, PID는 1번이고, TTY를 보면 어떤 터미널과도 연결되어 있지 않은 daemon 프로세스라는 것을 알 수 있다. 두 번 째 줄부터는 CMD에 대괄호로 커널 스레드들이 출력되고 있다.
본 포스트 시리즈는 「 RH024 Red Hat Enterprise Linux Technical Overview 」 강좌를 요약한 내용입니다.