1

글타래: Mac OS X: 도대체 이 프로세스들이란 무엇인가?

Mac OS X: 도대체 이 프로세스들(Processes)이란 무엇인가?
- 뒤에서 보이지 않게 실행되는 프로세스들(Processes)과 디먼들(daemons)에 관한 짧은 항목

By Gordon Davisson
Copyright (c) 2005, Westwind Computing inc.

Mac OS X는 다른 Unix OS들 처럼 항상 뒤에서 돌아가면서 여러가지 일들을 처리하고 있는 몇 가지의 작업들을 가지고 있습니다. 보통, Activity Monitor를 열어서 보거나 터미널에서 작업 목록을 살펴볼 수 있는 ps 혹은 top 명령을 실행해서 확인하지 않는 한은 눈치챌 수 없을 겁니다. 만약 이를 확인하더라도 도대체 이런 작업들이 무엇을 하고 있는지 궁금해 하실 겁니다. 여기에는 이런 궁금증을 풀어줄 수 있는 작업들의 목록입니다.

주의: 이 곳에 나열되어 있는 목록들은 완전한 것은 아닙니다. 만약 이 목록에 없는 작업들을 보시게 되더라도, 어떤 것이 잘못되었거나 해킹된 것을 뜻하지는 않습니다. 이것은 아마도 제가 작업 항목들을 갱신하면서, 미처 추가하지 못 한 것들이 있을 수도 있음을 알려드립니다.

시스템 작업들 (주로 root 권한으로 행해짐):

AppleFileServer - 개인 파일 공유 (AFP over IP) 서버. 시스템 환경 설정의 공유 항목에서 파일 공유가 켜져있을 때에만 있게 됨.
autodiskmount - 외장 디스크들이나 미디어를 화면 위에 올려놓는(mounting) 일을 함.
automount - 네트워크 (NFS와 AFP) 파일 시스템에 접속하거나 사용되지 않을 때에 자동적으로 화면 위에 올려놓거나 내림.
configd - 컴퓨터와 그 주변 환경(주로 네트워크)에 관한 유동적 설정 정보를 살피고 관리함.
CrashReporter - 프로그램 오류들에 관한 정보를 기록함. 오류들은 ~/Library/Logs에 기록되도록 설정될 수 있음.
cron - 예정되어 있는 다양한 프로그램들과 스크립트들을 실행시키며, 대부분 컴퓨터의 주기적 유지보수를 위해 실행됨. Mac OS X 10.4에 와서는, 대부분 launchd로 대치되었으나, 이전과의 호환성을 위해서 존재함.
DirectoryService - 이 작업은 "Directory" 정보를 위한 중앙 정보 교환 기관과 비슷한 역할을 한다 - 주로 사용자/단체/인증, 그리고 서비스 위치(예: 파일 서버, 프린터, 등). 이것은 다양한 플러그인들(NetInfo, LDAP, Active Directory, NIS, Bongjour/Rendesvous/, AppleTalk, SMB)로부터 정보들을 모아서, 이 정보를 필요로 하는 프로그램들에게 알려주는 역할을 한다.
DesktopDB - 현재 알려진 어플리케이션들과 그들의 문서 유형에 관한 정보들을 관리함. Finder에서 관련 문서들과 이 문서들을 처리할 수 있는 어플리케이션들을 파악할 때 사용.
distnoted - 분배된 알림 서비스들(distributed notifications services)을 제공.
dynamic_pager - 커널의 가상 메모리를 위한 스왑(swap) 파일들을 관리하는데 도움을 줌.
ftpd - 접근하는 FTP(File Transfer Protoco) 접속들을 다룸. 이 작업은 xinetd (혹은 이전 OS X 버전들에서는 inetd)에 의해 유동적으로 생성되며, 누군가가 실제로 컴퓨터에 접속을 해야만 나타난다.
httpd - 이것은 OS X에 설치되어 있는 웹 서버인 Apache이다. 시스템 환경 설정의 공유 항목에서 웹 공유가 켜져있어야만 실행된다. 이런 작업들이 하나는 root에 속해 있고, 나머지들은 www에 의해 여럿이 실행되는 것은 정상이다.
init - (10.0-10.3에만 해당) BSD/unix 관점에서 보면 이것은 컴퓨터의 핵심 관리자가 된다. 이것은 여러 백그라운드 작업들을 생성(/etc/rc* 스크립트들과 StartupItems을 사용)하고 돌보는 역할을 맡고 있다. Mac OS X 10.4에서는 launchd로 대치되었다.
inetd - (10.0-10.3에만 해당) 컴퓨터에서 제공되는 몇몇 인터넷 서비스들(주로 FTP와 telnet)을 실행하고 관리하는 역할을 함. 10.2 버전에 와서, 이 기능은 xinetd로 대체되었고 나중에 또 다시 launchd로 대체되었으나, Mac OS X 10.3까지는 호환성을 위해 존재하였다.
ipconfigd - (10.0-10.1.1에만 해당) 자동적으로 네트워크를 설정함. 지금은 configd로 병합됨. (내가 올바르게 읽은 것이라면 OS X 10.1.2에서부터)
KernelEventAgent - 파일 시스켐 상태들에 대한 경고들을 처리. (예: "지금 사용하고 있는 서버는 더 이상 접근할 수 없습니다. 계속 접속을 시도해 보시겠습니까?" 혹은 "당신의 시동 디스크는 거이 꽉 찼습니다. 파일을 지워서 시동 디스크의 사용 가능한 공간을 더 늘려주어야 합니다.")
kextd - 필요할 때마다 커널 확장자들(예: 장치 드라이버들)을 읽어드리거나 내려놓는 역할을 함.
launchd - (10.4 버전 이후) 이 작업은 initmach_init 작업을 대신하면서, 대부분의 cronxinetd의 기능들을 수행함.
mach_init - (10.0-10.3에만 해당) 마흐 커널(Mach kernel)의 bootstrap port 서버. 이것은 시동시 처음 생성되는 작업이며, BSD init 작업들 생성함. (그리고 나서는, 기타 모든 작업들을 생성하게 됨) Mac OS X 10.3에서는, 또한 StartupItems를 통해 생성되는 몇몇 디몬들(daemons)을 생성하는데도 쓰여진다. Mac OS X 1`0.4에서는 launchd로 대체됨.
mDNSResponder - 다중 방출(multicast) DSN(Bonjour/Rendezvous의 구성품) 응답기(responder): 이것은 컴퓨터가 지정한 ".local" 이름을 포함한 컴퓨터에서 제공하는 AFP 파일 공유와 같은 네트워크 서비스들을 공시하는 역할을 함. 주의: 이것은 보안상의 이유로 가상 사용자인 "nobody"에 의해 실행됨.
netinfod - NetInfo 자료의 배포 담당. 컴퓨터에서 제공하는 각 NetInfo 도메인 당 하나의 프로세스가 존재하게 됨. (보통은 로컬 도에인만을 위해 하나만 있음) ProcessViewer/Activity Monitor에서는 어떤 디몬(daemon) 작업이 어떠한 NetInfo 도메인을 위한 서비스인지 구별할 수 없으나, ps 명령을 사용하면 가능함.
nfsiod - NFS 서버로의 비동시적인 요청 서비스들을 담당. 이런 몇 가지 작업들이 동시에 수행되고 있는 것은 정상임.
nibindd - NetInfo 서버들(예: netinfod)을 검색하고, 생성하며, 파괴함. 이 작업은 표준 로컬 NetInfo 도메인 이외의 것이 생성되어 있어야만 존재함.
notifyd - 프로세스들 간의 이벤트(event) 공시들을 전달해 줌.
ntpd - Mac의 시계를 네트워크 시간 서버들과 동기시킴.
pitond - Restrospect 백업 클라이언트. (Restrospect Client를 설치했을 때만 있음)
pmTool - 이것은 실제로 사용자의 작업이지만 root의 권한으로 실행된다. Activity Monitor가 실행되고 있는 작업들의 정보를 모을 때 사용한다.
portmap - 유동적으로 RPC(네트워크의 Remote Procedure Call) 서비스들(에를 들어 NetInfo와 NFS)을 TCP/UDP 포트들에 지정함.
slpd - Service Location Protocol(SLP) 응답기; 컴퓨터에서 제공되는 네트워크 서비스들(예: AFP 파일 공유)을 공시함. SLP는 Bonjour/Rendezvous에 의해 완전하게 대체되었으나, 네트워크에 있는 다른 컴퓨터들과의 호환성을 위해 남아있음.
slpdLoad - 이 작업은 초창기 OS X 버전의 경우 ProcessViewer에서 종종 유령(Zombie)처럼 보여지는데, 걱정을 안해도 될 것은 전혀 해가 되지 않고, 단지 약간 혼란스러울 수 있을 뿐이다. (여기서 유령 작업이란, 작업을 끝마쳤으면서도 (죽었지만), 상위 프로세스에서는 종료되었다는 신호를 받지 못 한 상태를 나타낸다. 상위 프로세스가 인식할 때까지 작업의 정보를 전달해주기 위해, 작업 자체는 끝났지만 좀비의 존재는 프로세스 테이블에 계속 남게 된다. 약간 특이하게 보일 수도 있지만, 이것은 어떠한 자원도 소모하지 않기 때문에, 별로 문제가 될 것은 없다.)
sshd - secure shell 서버 -- 들어오는 SSH(암호화된 원격 로그인) 접속을 탐지하고 다루는 역할. 10.0.1 버전에서 추가되었으며 시스템 환경 설정의 공유 항목에서 "원격 로그인 허용"이 선택되었을 때에만 존재함. 주의: 10.3에 와서는, ssh 접속 상황을 탐지하기 위해 지속적으로 실행되지는 않고, 대신에 xinetd(v10.3) 혹은 launchd(v10.4)가 탐지해서 실제로 필요할 때에만 sshd를 실행시킴.
syslogd - 시스템 상태와 오류 메시지들을 기록하거나 전파함.
telnetd - 들어오는 telnet(원격 로그인) 접속들을 다룸. Mac OS X 10.0 시스템 환경 설정의 공유 항목에 있는 "원격 로그인 허용"이 선택되어 있을 경우 실행되며, 이후 버전들에서는 사용 안되고, 대신 SSH가 사용됨. (/etc/inetd.conf 파일을 수정해서 직접 다시 켜 놓을 수는 있음) 이 작업은 inetd에 의해서 유동적으로 생성되며, 실제 누군가가 컴퓨터에 telnet으로 접속했을 때에만 나타남.
update - 디스크가 항상 파일 시스템 캐쉬 파일과 동기화 될 수 있도록 관리해서, 시스템이 정지될 경우에도 자료 손실을 최소화하기 위함.
xinetd - 컴퓨터에서 제공하는 몇 가지 인터넷 서비스들(주로 ssh, FTP 그리고 telnet)을 관리하고 실행시키는 역할을 함. 이것은 요약하면 inetd가 개선된 버전이라고 할 수 있다. Mac OS X 10.4에서는 대부분 launchd으로 대치되었으나, 호환성을 위해 남겨두었다.

사용자 작업들 (보통 현 사용자에 의해 실행됨):

ATSServer - Apple Type Solution Server; 사용 가능한 글꼴들을 관리하고 이것들을 어플리케이션들이 사용할 수 있도록 함.
Dock - Dock을 표시하고 관리함.
DocklingServer - Dock에 추가되고 삭제되는 상태를 지켜보면서 가장 최신의 모습을 표시해 줌.
Finder - 말 그대로 그 Finder.
hdid - 화면 위에 올려진 디스크 이미지(.img와 .dmg) 파일들을 다룸.
LaunchCFMApp - 예전 스타일의 Macintosh 형태(Code Fragment Manager 형식인 CFM 혹은 PEF)로 된 어플리케이션들은 Process Viewer에서는 이 이름으로 보이게 됨. 실제로 LaunchCFMApp은 이런 옛 어플리케이션 형태와의 호환성을 위해 감싸주는 프로그램이다. 단지 Process Viewer가 감싸있는 것을 뚫고 안에서 실행되고 있는 실제 어플리케이션을 보지 못할 뿐이다. (주의: 예전 것(CFM)과 새 것(mach-o)의 형식 차이는 예전 것(Carbon)과 새로운(Cocoa) 어플리케이션 환경과의 차이와는 구분된다. OS X에서 사용하게 되는 대부분의 Carbon 어플리케이션들은 mach-o 형식이다.)
loginwindow - 이것은 부분적으로만 사용자 작업에 속해 있다. -- 이 작업은 누가 컴퓨터에 로그인 하기도 전에 실행되며, 로그인 화면을 표시하거나 (혹은 자동 로그인이 설정되어 있을 경우 건너뛰고), 로그인 시도를 인증하고, 로그인 시 사용자의 환경을 설정한다. (Finder, Dock, 로그인 어플리케이션 등의 실행) 이것은 또 사용자 작업들에 대한 작업 감시의 역할도 하는데, Finder나 Dock이 작동을 멈추면 재실행시키고, 어플리케이션의 강제 종료 창을 구현하게 된다. 마지막으로, 로그아웃, 재시동, 그리고 시스템 종료 과정들을 관장한다.
pbs - pasteboard 서버; Mac OS 9의 클립보드에 해당.
pmTool - Activity Monitor가 실행되고 있는 작업들에 대한 정보들을 수집하기 위해 사용하는 뒤에서 안보이게 실행되는 작업.
SystemUIServer - (OS X 10.1 이후) 메뉴 막대의 오른쪽 귀퉁이에 있는 메뉴 항목들을 관리함.
TruBlueEnvironment 혹은 (null) - OS 9 호환성을 위한 클래식(Classic) 환경. 이 하나의 작업에는 OS 9과 실행되고 있는 모든 클래식 어플리케이션들을 포함하고 있다. 붙여진 이름은 예전 클래식 환경의 코드 이름으로 쓰였던 "Blue Box"에서 따왔다. 알 수 없는 이유로, (Mac OS X v10.3 상의) Activity Monitor에서는 이 작업의 이름이 (null)로 표시되는 경향이 있다.
WindowServer (혹은 Window Manager) - 컴퓨터의 화면 표시를 담당하고 있으며 화면에 정보를 표시하고자 하는 여러 어플리케이션들과 기타 작업들 간 중재의 역할을 한다. 또한 새로운 사용자 어플리케이션들을 실행시키는 허드렛일을 맡고 있어서, 대부분의 사용자 작업들은 작업 계층의 관점에서 보면 실제로 모두 하위 작업들에 속하게 된다.

따옴 - Mac OS X: What Are All Those Processes?

+ = ²

2

댓글: Mac OS X: 도대체 이 프로세스들이란 무엇인가?

Mac Geekery - Turning Off Unneeded Services

위의 글에는 사용하지 않는 서비스들을 launchctl 명령을 사용해서 끄는 방법이 설명되어 있습니다.
하지만, CPU의 부담을 조금이라도 덜어주기 위해 사용되지 않는 서비스들을 끄는 것은 그다지 큰 효과를 볼 수 없을 뿐더러, .정말로 자신에게 불필요한 서비스인지 확신하지 않는다면 Mac OS X의 안정성을 위해 그대로 놔두는 것이 좋을 겁니다. 다만, 각 서비스들이 하는 일을 설명해 놓은 내용은 좋은 참고가 될 것 같습니다.

+ = ²

3

댓글: Mac OS X: 도대체 이 프로세스들이란 무엇인가?

Mac OS X의 processes를 일목요연하게 잘 정리해 둔 사이트가 있군요. - Description of Mac OS X processes : by triviaware

+ = ²