출처 :  지식인 오픈백과

http://kin.naver.com/open100/detail.nhn?d1id=1&dirId=1&docId=132289&qb=RGlzayBBbmQgRXhlY3V0aW9uIE1vbml0b3I=&enc=utf8&section=kin&rank=2&search_sort=0&spq=0&pid=RU3kLF5Y7uGssZZR/LZsssssstG-028613&sid=UX3bNnJvLC4AAEEU-JQ


DaemonDisk And Execution Monitor 를 줄인 말이라고 합니다. 그렇지만, 프로그래머들이 "악마"를 컴퓨터 세상 속에 창조해 놓고, 나중에 위와 같이 점잖은 의미를 부여했다는 설이 더 설득력이 있어 보입니다.

 

데몬은 사용자가 필요할 때 불러와서 사용하는 일반 응용프로그램과는 달리, 특정한 동작을 보여주지 않은 채 잠복해 있는 프로그램을 의미합니다. 프린터 스풀러가 좋은 예가 될 수 있습니다. 프린터 스풀러는 윈도우즈가 실행되는 동안 어딘가에 잠복해 있다가, 어떤 프로그램에서 인쇄를 해야 할 일이 생기면 실행되어서 인쇄와 관련된 작업을 수행하거나 지시합니다.

웹서버, FTP서버 등 많은 종류의 서버들은 "데몬"이 대표적으로 이용되는 분야라 할 수 있습니다. PC에 웹서버 프로그램을 설치하여 구동시키면 웹서버 데몬이 실행됩니다. 그렇지만, 달라진 것은 아무것도 없습니다. 다만, 그 데몬의 역할을 엿보는 모니터링 도구 같은 것을 이용하면 웹서버 데몬이 어떤 역할을 수행하고 있다는 것을 알 수 있습니다. 그렇지만, 예를 들어 외부에서 아무도 웹 서버에 접속하지 않는 동안은 웹서버 데몬은 그저 잠복해 있을 뿐입니다.

위에서 윈도우즈의 프린터 스풀러를 예로 들었는데, 데몬의 개념이 도입된 것은 유닉스 시스템이고, 데몬을 가장 널리 활용하는 운영체제도 유닉스라 할 수 있습니다.

유닉스에서 대표적인 데몬 툴로는 웹서버, FTP 서버 이런 것들을 제외하고는 CRON 툴이 있습니다. 특정 시간에 지정한 명령을 실행시켜주는 이 툴은 데몬의 형태를 갖는 대표적인 유닉스의 기능이라 할 수 있습니다. 윈도우즈로 치자면 "예약 작업(Scheduled Task)"과 유사합니다.

다시 한번 반복하자면, 데몬은 특정한 동작을 하고 있지 않은 채, 어떤 동작에 대한 요청을 받아들이기 위해 잠복하고 있는 프로그램입니다. 이것은 위에서 예로 든 것처럼 운영체제 수준에서 제공되는 것들도 있지만, 특정 응용프로그램 내에서 사용되는 경우도 있습니다.

그 개념은 같지만, 운영체제 수준의 데몬을 Daemon, 응용프로그램 수준의 데몬을 Demon으로 구분하는 경우도 있으니, 참고하시기 바랍니다. 응용프로그램 수준의 데몬은 그 응용프로그램을 개발한 사람의 의사에 따라 Agent처럼 다른 명칭으로 불리기도 하구요.

끝으로 한 가지 사족을 달까 합니다. 최근에는 가상 CD-ROM/DVD-ROM 드라이브를 에뮬레이트하는 유틸리티들 중 하나의 이름이 "데몬툴(Daemon-Tools)"이라, 이것 때문에 입에 오르내리는 용어가 되기도 했습니다.

'Any Notion > What is that?' 카테고리의 다른 글

연산속도 단위  (0) 2014.02.11
AD-HOC network  (0) 2013.04.29
D-BUS  (0) 2013.04.29
Namespace in C++  (0) 2013.04.29
모수란?  (0) 2013.04.27

INSTANCE 란?


①일반적으로 어떤 집합에 대해서, 그 집합의 개별적인 요소. 객체 지향 프로그래밍(OOP)에서, 어떤 등급에 속하는 각 객체를 인스턴스라고 한다. 예를 들면 ‘목록(list)’이라는 등급을 정의하고 그 다음에 ‘본인 목록(my list)’이라는 객체를 생성(기억 장치 할당)하면 그 등급의 인스턴스가 생성된다. 또한 변수가 포함되어 있는 어떤 논리식의 변수에 구체적인 값을 대입하여 식을 만들면 원래 식의 인스턴스가 만들어진다. 이런 의미에서 인스턴스를 실현치라고 한다. 
프로그램 작성 언어 에이다(Ada)에서 매개 변수를 사용해서 절차를 일반적으로 정의한 범용체(generic package)에 대해, 그것으로부터 도출한 구체적인 실체.


출처 : http://kin.naver.com/qna/detail.nhn?d1id=1&dirId=1040201&docId=69718936&qb=aW5zdGFuY2U=&enc=utf8&section=kin&rank=1&search_sort=0&spq=0&pid=RU3RdU5Y7tosstowSPZsssssssC-287841&sid=UX3To3JvLCkAABa1kn8



-----------------------------------------------------------------------

instance란 자바뿐만 아니라... 객체지향형의 모든 툴에서 동일하지 않나요?
class로만 설명을 해보면...class는 단지 동작에 대한 서술만이 있을 뿐입니다. 실제 사용을 할 수가 없다는 거죠.실제 사용을 위해 인스턴스를 생성하는 겁니다.

즉, 클래스를 메모리에 로딩해서 사용가능하게 만든 상태라고 설명하면 될까요?

그러니깐... 클래스 자체는 기계의 도면일 뿐이고 이 도면을 갖고 실제 기계가 완성된 상태가 인스턴스라고 설명하면 되겠내요. ^^;

-------------------------------------------------------------------------

class는 단지 변수와(상태값) 변수(상태값)에 값을 넣기위한 동작에 대한 서술만이 있을 뿐입니다. 실제 사용을 위해 인스턴스를 생성하는 겁니다.

즉, 클래스( 기술해 놓은 구조) 를 메모리에 로딩해서 사용가능하게 만든 상태 따라서... 클래스를 사용하기 위해서는 반드시 생성하는 작업을 해야 합니다.
그리고 코드로 설명하면
Class c1 = new NewClass() ; ---> 이런코드가 있다면

c1은 instance variables 이 됩니다.
즉 인스턴스를 가리키고 있는 variable이 되는 거죠.

그리고 instance of a class 라는 거는 위에 설명되어있는 것처럼
클래스의 실체를 메모리에 생성한겁니다.

즉,

Class c1 = new NewClass() ; 
Class c2 = new NewClass() ; 
Class c3 = new NewClass() ; 
Class c4 = new NewClass() ; 
Class c5 = new NewClass() ; 

이렇게 다섯개의 instance variables 가 있다면
c1 ~ c5의 variable은 NewClass 라는 클래스의 instance가 되죠.
---> instance of a class



----------------------------------------------------------

이해하기 쉽게 예를 들어보겠습니다.

 

클래스를 붕어빵을 만드는 기계라고 생각해보세요.

인스턴스는 붕어빵 기계로 만든 "붕어빵"입니다.

 

클래스가 개념적인 형태라면 인스턴스는 실체입니다.

 

예) SampleClass sc = new SampleClass();

 

위에서 SampleClass 는 클래스이고, sc는 인스턴스이고 여기서는 new는 클래스에서

인스턴스를 만드는 생성자 함수입니다.


출처 : 

http://www.freedesktop.org/wiki/Software/dbus


먼저, freedesktop.org는 X윈도우 시스템 및 이를 기반으로 하는 데스크톱과 관련된 정보를 처리,상호운용하는 그리고 공용기술을 규격화하고 해당요소들을 사용하는 오픈소스 소프트웨어 프로젝트들을 호스팅하는 사이트이다. 


*X윈도우시스템 : GUI환경 구현을 위한 Software, Network Protocol 이다.



D-Bus is a message bus system, a simple way for applications to talk to one another. In addition to interprocess communication, D-Bus helps coordinate process lifecycle; it makes it simple and reliable to code a "single instance" application or daemon, and to launch applications and daemons on demand when their services are needed.


D-Bus란 메세지 버스시스템이다. 이는 어플리케이션끼리 대화를 하는 간단한 방법이다. 칩셋에서 내부적인 통신뿐만 아니라 D-Bus는 상호적인 Lifecycle(생활주기?)을 도와준다.또한, 간단하고 신뢰성있는 single instance단위의 어플리케이션과 데몬을 코딩할수있게 만들어주며, 관련서비스가 실행되어야 할때 데몬과 어플리케이션이 실행될수있도록 도와준다. (즉, 데몬을 실현하는 시스템으로 이해)


D-Bus supplies both a system daemon (for events such as "new hardware device added" or "printer queue changed") and a per-user-login-session daemon (for general IPC needs among user applications). Also, the message bus is built on top of a general one-to-one message passing framework, which can be used by any two apps to communicate directly (without going through the message bus daemon). Currently the communicating applications are on one computer, or through unencrypted TCP/IP suitable for use behind a firewall with shared NFS home directories. (Help wanted with better remote transports - the transport mechanism is well-abstracted and extensible.)


The D-Bus low-level API reference implementation and protocol have been heavily tested in the real world over several years, and are now "set in stone." Future changes will either be compatible or versioned appropriately.


The low-level libdbus reference implementation has no required dependencies; the bus daemon's only *required* dependency is an XML parser (expat). Higher-level bindings specific to particular frameworks (Qt, GLib, Java, C#, Python, etc.) add more dependencies, but can make more assumptions and are thus much simpler to use. The bindings evolve separately from the low-level libdbus, so some are more mature and ABI-stable than others; check the docs for the binding you plan to use.


There are also some reimplementations of the D-Bus protocol for languages such as C#, Java, and Ruby. These do not use the libdbus reference implementation.


It should be noted that the low-level implementation is not primarily designed for application authors to use. Rather, it is a basis for binding authors and a reference for reimplementations. If you are able to do so it is recommended that you use one of the higher level bindings or implementations. A list of these can be found on the bindings page.


The list of projects using D-Bus is growing and they provide a wealth of examples of using the various APIs to learn from.


D-Bus is very portable to any Linux or UNIX flavor, and a port to Windows is in progress.


If you have any trouble with D-Bus or suggestions for improvement, bug reports and comments are very welcome.


Get on D-Bus today!

'Any Notion > What is that?' 카테고리의 다른 글

연산속도 단위  (0) 2014.02.11
AD-HOC network  (0) 2013.04.29
Daemon  (0) 2013.04.29
Namespace in C++  (0) 2013.04.29
모수란?  (0) 2013.04.27

+ Recent posts