데몬(컴퓨팅)

Daemon (computing)
데몬인 일부 Linux 데스크톱 환경의 구성 요소에는 D-Bus, NetworkManager(여기서는 unetwork), PulseAudio(usound) 및 Avahi가 있습니다.

멀티태스킹 컴퓨터 운영체제에서 데몬(/didimmnn/ 또는 /dedeɪmnn/)[1]은 대화식 사용자의 직접 제어가 아닌 백그라운드 프로세스로 실행되는 컴퓨터 프로그램입니다.전통적으로 데몬의 프로세스명은 문자 d로 끝나는데, 이는 프로세스가 실제로 데몬임을 명확히 하고 데몬과 일반 컴퓨터 프로그램을 구별하기 위한 것이다.예를들면,syslogd는 시스템 로깅 기능을 구현하는 데몬이며 sshd는 수신 SSH 연결을 처리하는 데몬입니다.

UNIX 환경에서 데몬의 부모 프로세스는 대부분의 경우 init 프로세스이지만 항상 그렇지는 않습니다.일반적으로 데몬은 자 프로세스를 포킹한 후 즉시 종료하는 프로세스에 의해 생성되며, 이로 인해 init은 자 프로세스를 채택하거나 init 프로세스에 의해 데몬을 직접 기동합니다.또한 포킹 및 종료에 의해 기동되는 데몬은 일반적으로 제어단말기(ttty)에서 프로세스를 분리하는 등의 다른 작업을 수행해야 합니다.이러한 절차는 Unix의 daemon(3)같은 다양한 편의 루틴에서 구현되는 경우가 많습니다.

시스템은 부팅 데몬을 시작하여 네트워크 요청, 하드웨어 작업 또는 일부 작업을 수행하여 다른 프로그램에 응답합니다.cron과 같은 데몬은 정의된 작업을 예약된 시간에 수행할 수도 있습니다.

용어.

이 용어는 MIT Project MAC의 프로그래머에 의해 만들어졌습니다.1963년 프로젝트 MAC에서 일한 페르난도 J. 코르바토에 따르면, 그의 팀은 맥스웰의 악령에서 영감을 얻어 데몬이라는 용어를 처음 사용했다고 한다. 맥스웰은 분자를 분류하는 데 도움을 주는 상상의 에이전트로서 다음과 같이 말했다. "우리는 데몬이라는 단어를 지치지 않고 시스템을 수행하는 데 사용되는 백그라운드 프로세스를 설명하기 위해 훌륭하게 사용하기 시작했다.가사일"[2]UNIX 시스템은 이 용어를 상속받았습니다.맥스웰의 악마는 그리스 신화가 데몬을 배경에서 일하는 초자연적인 존재로 해석하는 것과 일치한다.

일반적으로 데몬은 그리스어 ααμμα에서 유래한 "데몬"의 오래된 형태이다.Unix System Administration Handbook ev 、 Evi Nemeth in 、 데몬에 [3]대해 다음과 같이 기술되어 있습니다.

많은 사람들이 "데몬"이라는 단어를 "데몬"이라는 단어와 동일시하며 UNIX와 지하세계 간의 일종의 악마적 연관성을 암시합니다.이건 말도 안 되는 오해다.'데몬'은 사실 훨씬 더 오래된 형태의 '데몬'으로, 데몬은 선악에 대한 특별한 편견이 없고, 오히려 한 사람의 성격이나 성격을 정의하는 데 도움을 준다.고대 그리스인들의 "개인 데몬"의 개념은 "수호천사"의 현대 개념과 유사했다. - 에우다모니아는 친절한 영혼에 의해 도움을 받거나 보호받는 상태를 말한다.일반적으로 UNIX 시스템은 데몬과 악마가 모두 득실거리는 것 같습니다.

신화적 상징성의 또 다른 특징은 데몬은 아직 보이지 않는 무엇이고 항상 존재하며 그 의지를 발휘한다는 것이다.플라톤의 작품Theages에서 소크라테스는 자신의 개인적인 데몬을 도덕적 양심의 현대 개념과 같은 것으로 묘사했다: "신들의 은총은 나에게 놀라운 선물을 주었고, 그것은 나의 어린 시절 이후 한 번도 나를 떠난 적이 없다.그 목소리가 들리면 내가 하려는 일을 방해하고 재촉하지 않는 목소리입니다."[citation needed]

현재의 사용법에서는 daemon이라는 단어는 /'di'm'n/DE-m'n으로 발음됩니다.컴퓨터 소프트웨어에서는 일부 [1]스피커의 경우 /diːmnn/의 원래 발음이 /deɪmnn/DAY-mnn으로 바뀌었습니다.

데몬의 대체 용어로는 서비스(Windows, Windows NT 이후 사용), 시작 태스크(IBM z/OS),[4] 고스트 작업(XDS UTS) 등이 있습니다.

이 용어는 컴퓨터용으로 채택된 후 디스크 앤 이그제큐션 모니터의 [5]백로니어로 합리화되었습니다.

컴퓨터 네트워크에 연결하는 데몬은 네트워크 서비스의 입니다.

실장

Unix 계열 시스템

엄밀히 말하면 Unix와 같은 시스템프로세스는 부모프로세스가 종료되고 데몬에 부모프로세스로서 init프로세스(프로세스 번호 1)가 할당되어 제어단말기가 없는 데몬입니다.단, 일반적으로 데몬은 init 프로세스의 자녀에 관계없이 백그라운드프로세스일 수 있습니다.

Unix와 같은 시스템에서 프로세스가 명령줄 또는 init 스크립트나 SystemStarter 스크립트 등의 스타트업 스크립트에서 시작될 때 프로세스가 데몬이 되는 일반적인 방법은 다음과 같습니다.

  • 필요에 따라 환경에서 불필요한 변수 제거.
  • 포킹종료(포크의 부모 "반쪽"에서)를 통해 백그라운드 태스크로 실행.이렇게 하면 데몬의 부모(쉘 또는 시작 프로세스)가 종료 알림을 받고 정상 실행을 계속할 수 있습니다.
  • 호출 세션에서 분리(보통 단일 조작으로 완료)setsid():
    • 제어 TTY에서 분리됩니다.
    • 새 세션을 만들고 해당 세션의 세션 리더가 됩니다.
    • 프로세스 그룹의 리더가 되는 것.
  • 데몬이 실수로 새로운 제어 tty를 취득하지 않도록 하는 경우(제어 tty가 없는 세션리더가 프리 tty를 오픈했을 때 발생하는 경우), 데몬은 다시 포크를 하고 나갈 수 있습니다.즉, 새로운 세션의 세션리더가 아니므로 제어 tty를 취득할 수 없습니다.
  • 루트 디렉토리(/)를 현재 작업 디렉토리로 설정하여 마운트된 파일시스템에서 사용 중인 디렉토리를 프로세스에서 유지하지 않도록 합니다(마운트 해제 가능).
  • umask를 0으로 변경하여open(),creat()발신자의 umask에 의존하지 않고 독자적인 권한 마스크를 제공하기 위한 기타 운영체제시스템 콜
  • 표준 스트림(stdin, stdoutstderr)의 파일 기술자 0, 1 및 2를 /dev/null 또는 로그 파일로 리디렉션하고 상위 프로세스에서 상속된 다른 파일 기술자를 모두 닫습니다.

프로세스가 inetd, launchd 또는 systemd와 같은 슈퍼 서버 데몬에 의해 시작된 경우 슈퍼 서버 데몬은 프로세스에 [6][7][8]대해 이러한 기능을 수행합니다. 단, systemd에서 실행되도록 변환되지 않고 inetd에서 [6]Type=forking[8] 및 "멀티 슬롯" 데이터그램 서버로 지정됩니다.

MS-DOS

Microsoft DOS 환경에서는 데몬과 같은 프로그램이 TSR(Terminate and Stay Resident) 소프트웨어로 구현되었습니다.

윈도 NT

Microsoft Windows NT 시스템에서는 Windows 서비스라고 불리는 프로그램이 데몬의 기능을 수행합니다.프로세스로서 동작하며, 통상은 모니터, 키보드, 마우스와 상호 작용하지 않고, 기동시에 operating system에 의해서 기동되는 경우가 있습니다.Windows 2000 이후 버전에서는 Windows 서비스는 제어판, 전용 제어/구성 프로그램, Service Control Manager의 서비스 컨트롤러 컴포넌트(sc 명령), net start 명령 및 net stop 명령 또는 PowerShell 스크립트 시스템을 사용하여 수동으로 시작 및 중지됩니다.

단, Windows 응용 프로그램은 서비스뿐만 아니라 데몬 역할을 수행할 수 있으며 일부 Windows 데몬은 일반 프로세스로 실행할 수 있는 옵션이 있습니다.

Classic Mac OS 및 Mac OS

기존의 Mac OS에서는, 기동시에 로드된 파일에 의해서, 옵션의 기능과 서비스가 제공되어 operating system에 패치를 적용했습니다.이것들을 시스템 확장자제어판이라고 부릅니다.최신 버전의 클래식 Mac OS는 완전히 새로운 얼굴 없는 백그라운드 애플리케이션(백그라운드에서 실행되는 일반 애플리케이션)으로 이러한 기능을 강화했습니다.사용자에게는 이러한 기능은 여전히 일반 시스템 확장으로 설명되었습니다.

Unix 시스템macOS는 데몬을 사용합니다.macOS는 Windows와 같이 데몬에 대해 "서비스"라는 용어를 사용하는 것이 아니라 "서비스"라는 용어를 사용하여 서비스 메뉴에서 선택한 기능을 수행하는 소프트웨어를 지정합니다.

「 」를 참조해 주세요.

레퍼런스

  1. ^ a b Eric S. Raymond. "daemon". The Jargon File. Retrieved 2008-10-22.
  2. ^ "The Origin of the word Daemon".
  3. ^ "The BSD Daemon". Freebsd.org. Retrieved 2008-11-15.
  4. ^ "IBM Knowledge Center - Glossary of z/OS terms and abbreviations". IBM.
  5. ^ "Daemon Definition". www.linfo.org.
  6. ^ a b inetd(8)FreeBSD 시스템 매니저 매뉴얼
  7. ^ launchd.plist(5)DarwinmacOS 파일 형식 설명서
  8. ^ a b "systemd.service". freedesktop.org. Retrieved August 25, 2012.

외부 링크