2008.09.23 01:45
     

 이제까지 GUI 어플리케이션은 모두 커널레벨에서 동작하는 커널 스레드와 같은 개념이었습니다. 즉 커널 코드에 포함되어있으며, 스택만 별도로 사용하는 존재였지요. ^^;;; 그래서 "어플리케이션"이라고 확실히 부를 수 있는 유저 레벨 태스크를 이용해서 GUI 어플리케이션을 만들어봤습니다.

 위의 화면에서 좌측 상단에 보이는 User Level Application이라고 표시된 윈도우가 유저 레벨에서 동작하는 GUI 어플리케이션입니다. OS 코드가 아주 간단하지만, 현대 OS가 갖추고 있는건 쪼금 쪼금씩 구현해 놓은지라, 당연히 커널 영역에는 접근하지 못하고 시스템콜(System Call)을 통해서만 커널 함수를 쓸 수 있습니다. 다만 아직 GUI 관련 시스템콜이 그리 많지 않아서 덩그러니 윈도우 기본 화면만 표시하고 있다는... ㅠㅠ 원래는 Hello, World를 찍어야하는데 시스템 콜을 만드는게 귀찮아서 그냥 뒀습니다. ㅠㅠ 너무 늦게 퇴근해서... ㅠㅠ

 그리고 유저 레벨 프로그램은 역시 커널과 별도로 빌드해서 실행하는게 제 맛이기 때문에, 별도로 elf 파일을 생성했고 지난번에 만든 File Downloader를 통해 OS에 전송했습니다. OS에는 당연히 윈도우 버전의 File Downloader를 만들었구요. ㅎㅎ 위의 화면에서 가운데 있는 것이 윈도우 버전의 File Downloader 입니다. Memory Monitor의 그라데이션 태스크 바를 그대로 썼습니다. ㅎㅎ 그러고보니 스프링노트에 ELF 재배치에 대한 글을 적어놨었는데, 깜빡했군요. 언능 마무리해서 포스팅해야겠습니다. ㅎㅎ

 시간이 지날수록 점점 커지는 걸 보니 흐믓합니다. ^^ 이제 조금만 더하면 되겠군요. ㅎㅎ 내일은 좀 일찍오면 테트리스를 만들어 올려봐야겠습니다. 그리고 가능하면 텍스트 뷰어나 BMP 뷰어같은 것도 만들어봐야겠네요. ㅎㅎ

 어이쿠 벌써 이렇게 시간이.... 전 이만 자러가야겠습니다.
 다들 좋은 밤 되세요 ^^)/~



Mittm

Android App

Posted by kkamagui

댓글을 달아 주세요

  1. Favicon of http://sokkuma.com BlogIcon sokkuma 2008.09.23 13:00  댓글주소  수정/삭제  댓글쓰기

    새벽 1시 45분... ㄷㄷ.. 도대체 몇 시 출근이시길래? @.@;;
    암튼, 예전부터 변함없는 까마귀님의 블로깅에 감사드립니다~
    한번씩 루즈해질 때마다 여기오고 나면 웬지 힘이 난다는 ^^;;

    • Favicon of http://kkamagui.tistory.com BlogIcon kkamagu 2008.09.23 15:44  댓글주소  수정/삭제

      저희는 아침 8시 칼 출근입니다. ㅎㅎ
      6시 반에 일어난다는... ^^;;;
      요즘 계속 늦게자는군요 ㅎㅎ

      소쿠마님도 화이팅입니다. >ㅁ<)-b

  2. Favicon of https://naggingmachine.tistory.com BlogIcon naggingmachine 2008.09.23 23:07 신고  댓글주소  수정/삭제  댓글쓰기

    오.. 정말 대단하십니다. 갈수로 업그레드되네요~ 대단하셔!!

    • Favicon of http://kkamagui.tistory.com BlogIcon kkamagui 2008.09.24 00:14  댓글주소  수정/삭제

      헛... 별거 아닙니다. ㅠㅠ
      naggingmachine님이 더 대단하다는... ㅠㅠ)-b

      좋은 글 잘 보고 있습니다. ^^