'2007/01'에 해당되는 글 22건

  1. 2007.01.31 용문산용문사 (2)
  2. 2007.01.29 여고시절 (4)
  3. 2007.01.29 Window Station과 Desktop 그리고 Session

용문산용문사

회사에서 간 용문산의 용문사.
1100년된 은행나무가 유명하다.
은행나무의 유명세에 비하여 절의 규모는 그다지 큰편은 아니다.

사용자 삽입 이미지사용자 삽입 이미지

사용자 삽입 이미지
서울에서 그리 멀리 떨어져 있지도 않고...
20분의 등산코스도 적당하고...
가볍게 갔다올만 하다.
아...2000원의 입장료를 받는다.

단 은행나무에 노란 단풍이 드는걸 보려면 가을이 가장 좋다는거...

그리고 내려오다...
절 입구에 있는
조용한 찻집에서...
차한잔도 괜찮을듯...

팔당대교 건너서 6번도로 타고 쭉가다가 양평지나서 용문-용문사로 가면 된다.
길치인 나도 쉽게 찾았다.
신고
Trackback 0 Comment 2

여고시절

지인의 친구들...
여고동창생이라고 셋이 모여 수다를 떤다...
여자가 셋이 모이면 접시가 깨진다고 했나...왁자지껄 고등학교 시절 그들이 저질렀던 만행(?)을 듣고 있자니...난 고등학교 시절에 뭐했나 싶다...

딱히 공부잘하는 모범생도 아니였고 그렇다고 보충수업 땡땡이치며 열심히 놀러 다니지도 않았고...늘 있는듯 없는듯 그저 조용히 지내는 56명중에 한명이었다.
그래서 그런지 기억할만한 추억도 없고...
사용자 삽입 이미지
사실 추억거리가 될만한것이 얼추 있긴했다.
그 당시 우리의 최대 관심사는 역시...여자친구...가 아니던가...

공부한다는 핑계로 독서실을 다녀도 누가 어디다니더라 하면 그 독서실로 공부 아니 그 누구를 보러 다녔고...그 누군가가 집에 가는 시간에 맞춰 일부러 나오기도 했고...
뒤를 미행하다 들켜 어줍잖은 변명을 대기도 했고...

뒤늦게 배운 롤라에 빠져서 주말마다 롤라장에 다니기도 했다.
당시 롤라장에서는 모르는 남자와 여자가 만나 손을 잡고 한바퀴 같이 돌곤했는데 어느날 이쁘 여학생이 오더니 "한바퀴 같이 도실래요?"라고 하길래 머뭇거리다 한바퀴만 돌고 말았던 기억이있다.

고등학교 시절 전산반이라는 컴퓨터 동아리에서 활동하면서...
다른 여고에 놀러 다니면서 은근슬쩍 추파(?)도 던져보고...

하/지/만/
모든게 수포로 돌아갈수 밖에 없는건...결정적 선택이 부족했던거다.
마음속으로는 간절히 바라면서도 여자친구가 있는 그들이 부러우면서도...
막상 기회가 되면 그것이 무슨 큰죄라도 되는양 나의 이성은 감성을 나무라고 있는게 아닌가.
늘 결과는 내 마음속에 있는 도덕책이 시키는 대로...

초등학교 시절 티비에서 봤던...
얄개시대의 추억...
그런 추억은 없었더라...

우연히 찾다보니...
이승현의 인생역정..
http://blog.naver.com/bangton?Redirect=Log&logNo=20027070252
이승현의 영화들...
http://blog.naver.com/h19730206?Redirect=Log&logNo=10011555011
신고
Trackback 0 Comment 4

Window Station과 Desktop 그리고 Session

예전 프린터 드라이버를 개발하는 회사에서 일할때 잉크나 토너의 사용여부등을 알려주는 프린터 모니터 프로그램에서 대화상자를 올바르게 띄우지 못하는 버그가 발생했었다.
윈도우 XP에 FastUserSwitching이란 기능이 있는데 이를 이용하여 두번째 logon 한 사용자는 프린터 모니터의 대화상자를 볼수없었다.
디버깅을 해본 결과 FastUserSwitching은 터미널 서비스 세션을 이용하여 첫번째 logon 한 사람과 두번째 logon 사람의 Session이 각각 Session0과 Session1로 다르기 때문에 두번째 logon한 사람은 프린터 모니터의 대화상자를 볼수없고 엉뚱하게 첫번째 logon사람의 화면에 대화상자가 보여졌기 때문이다.
오래되서 기억은 나지 않지만 꽤 번거로운 작업을 해서 해결했던 기억이...
프린터 드라이버에서 모니터 프로그램을 CreateProcessAsUser로 실행했던가?!

Window Station 과 Desktop

윈도우는 User Interface, GDI 그리고 커널 메인 객체를 제공한다.
커널은 안전하지만 UI, GDI는 그렇지 않기 때문에 추가적인 보안성을 제공하기 위해 윈도우는 stations와 desktops 을 사용한다.
Station은 클립보드, desktop 등을 포함하는 프로세스와 관련이 있는 보안객체 이고 Desktop은 Station내에 존재하며 논리화면, 윈도우, 메뉴, 훅과 같은 User Interface를 포함하는 보안객체이다. 로그온 화면을 관리하는 winlogon desktop, 화면보호기를 담당하는 screen saver desktop, 평상시 윈도우 화면을 보여주는 interactive desktop의 3가지로 나눠진다.

사용자가 logon을 하게 되면 WinSta0\Winlogon 에서  smss.exe(세션메니져), winlogon.exe, msgina.dll를 통해 일련의 logon 작업을 거쳐 최종적으로 Winsta0\default 라는 interacive window station을 생성한다.
그러므로 사용자는 Winsta0 의 station에서만이 UI 및 키입력을 받을수 있다. (즉 서비스의 경우는 Service-0x0-3e7$\default 로 생성된다.)
Winlogon 과 default desktop은 서로 메세지나 대화상자를 공유할수 없다. 자신의 desktop(winlogon, default)에서만 사용이 가능하다. 하지만 클립보드는 Station에서 관리되기 때문에 다른 desktop에서 사용이 가능하다.

Service의 경우 LocalSystem 계정(administrator 계정보다 상위개념)으로 실행되어 Service-0x0-3e7$\default 와 같은 station을 생성하므로 UI 및 키입력을 받을수 없다. 그래서 서비스내에서 UI를 가진 프로그램을 실행시키기 위해서는 STARTUPINFO 구조체의 si.lpDesktop = "WinSta0\\Default"; 와 같이 설정하여 실행시켜야 한다. 서비스 프로그램중에서 mtask.exe와 같은 프로그램은 WinSta0을 사용한다.
반면 서비스 프로그램을 UI 또는 키입력을 받기 위해서는 CreateService로 실행시 SERVICE_INTERACTIVE_PROCESS 옵션을 사용하거나 서비스 등록정보에서 로그온정보에 "데스크과 상호 작용" 을 설정하면 서비스도 UI 및 키입력을 받을수 있다.

여기까지가 Station과 Desktop에 관한 이야기였고 맨위에서 말한바와 같이 우리가 알고 있어야 Session이라는 개념이 하나가 더있다.
XP에서는 Session을 통해 사용자마다 다른 Session ID를 부여한다. 이러한 Session의 개념은 Teminal Service Session에서 이미 사용되어 졌다. (FastUserSwitching도 결국 Teminal Service Session을 이용한다.)
결국 Session -> WindowStation -> Desktop 와 같은 구조를 이루는데 다른 Session에서는 같은 winsta0\default 를 가졌더라도 메세지 및 UI가 공유될수 없다. 즉 Session 1 에 logon 한 사용자가 실행시킨 프로그램에서 표시된 대화상자는 Session 2로 logon 사용자의 화면에는 나타나지 않는다는 이야기다. (당연한 이야기 아닌가?)

단 XP에서는 첫번째 logon 사용자에게 Session 0 이 부여되는것(서비스도 마찬가지로 Session 0 이 주어진다.)과 달리 윈도우 Vista에서는 Session 0은 서비스에게만 주어지고 첫번째 logon 사용자는 Session 0 이외에 다른 Session ID가 부여되어진다.


신고
Trackback 0 Comment 0
prev 1 2 3 4 ··· 8 next


티스토리 툴바