커널, 드라이버 7

디바이스 드라이버에서 3가지 버퍼 전달 방식

출처) http://blog.naver.com/khealin/61938919 아래는 그림 파일이 깨지므로 위의 첨부된 파일을 열면 된다. 이번 포스트에서는 애플리케이션과 드라이버 간의 데이터 전송 방법을 알아보도록 한다. 다음의 코드는 COM 포트로 데이터를 내보는 애플리케이션 함수의 일부분이다. 여기서 chBuffer는 애플리케이션 프로세스 내의 가상주소 공간에 존재한다. 이 쓰기 요청을 드라이버가 처리하기 위해서는 chBuffer에 접근할 수 있는 방법이 있어야 한다. 접근이야 아무때라도 가능하겠지만 그 유효성을 보장받을 수 없을 수도 있다. 드라이버는 대부분의 I/O 요청을 비동기적으로 처리하므로 쓰기 요청을 수행한 스레드의 컨텍스트에서 이 쓰기 요청을 수행할 수 없을 수도 있다. 그렇다면 드라이버..

운영체제의 메모리 관리

3장. 메모리 관리 (Memory Management) 메모리 관리 서브시스템은 운영체제에서 가장 중요한 부분 중 하나이다. 초창기의 컴퓨터에 서부터, 시스템에 물리적으로 존재하는 것보다 더 많은 양의 메모리를 필요해왔다. 물리적 인 메모리의 한계를 극복하기 위한 여러 기법들이 개발되었는데, 가상 메모리 기법이 가장 성공적이다. 가상 메모리(virtual memory)는 메모리를 필요로 하는 서로 경쟁하는 프로세스 사이에 메모리를 공유하도록 하여, 시스템이 실제 가진 것보다 더 많은 메모리를 가진 것처 럼 보이도록 한다. 가상 메모리는 컴퓨터의 메모리를 늘리는 일만 하는 것은 아니다. 메모리 관리 서브시스템 은 다음과 같은 것을 제공한다. 넓은 주소공간 운영체제는 시스템이 실제 가진 것보다 훨씬 많은 양..

프로그래밍단에서 커널단 접근 및 프로세스 숨김

http://cafe.naver.com/develx/26 위 주소에서 얻어옴... /////////////////////////////////// 어플리케이션 level에서 자신의 커널 level의 정보를 수정, 프로세서 고리를 끊는 방법으로 자기자신을 숨긴다. 별도의 디바이스드라이버를 작성하거나 등록 할 필요가 없어서 기존 프로그램에 손 쉽게 붙일 수 있다. 단지, 이 프로그램.... VISTA에서 안 돌아간다는거... 코드를 좀 수정하면 비스타에서도 가능 할 듯.. (프로세서 구조체의 번지만 다시 찾는다면은...) // homin.cpp : Defines the entry point for the application. // #include "stdafx.h" #include #include //NT..

장치 드라이버 기초와 프로그래밍 Study

장치 드라이버 기초와 프로그래밍 Study 2004/12/13 12:00 http://blog.naver.com/truemonpark/40008750207 이 포스트를 보낸곳 () 컴퓨터를 사서 처음 하는 것은 운영체제와 장치 드라이버 설치일 것이다. 드라이버를 제대로 설치하지 않으면 장치들은 제대로 작동하지 않고 컴퓨터도 오작동하게 된다. 그래서 드라이버는 잘 만들어야 하는 프로그램이다. 하지만 이 분야를 처음 공부하려는 사람들은 아마도 어렵게 느껴질 것이다. 충분한 자료가 부족하고 단기간에 배울 수 없는 분야이기 때문이다. 이번 연재를 통해 장치 드라이버를 공부하려는 독자들에게 조금이나마 도움이 되고자 한다. 이상섭·곽태진 (devguru, 마이크로소프트웨어) 2002/09/27 이달부터 3회에 걸쳐..

SCM(services.exe)

SCM(services.exe) 는 Windows2000 에서 시스템 서비스를 생성하거나 수정할 수 있도록 제공해주는 관리 도구이다. SCM 은 시스템 부팅시에 시작되며, remote procedure call(RPC) 서버이다. 그래서 service configuration 과 service control program 이 remote machine 에서 서비스를 조작할 수 있는 것이다. SCM 은 시작될 때 각 서비스에 named pipe 를 생성한다. * named pipes : local 혹은 remote 프로세스 간의 통신을 위한 방법. pipe 는 두개 혹은 그 이상의 프로세스들이 공유하는 메모리 영역이다. SCM 이 하는 일 -. 설치된 서비스에 대한 database 를 유지한다. datab..

Windows Kernel(윈도우즈 커널)

Windows Kernel(윈도우즈 커널) 조회(61) C/C++, MFC | 2008/05/04 (일) 11:13 추천하기(0) | 스크랩하기(0) 커널 오브젝트(Kernel Objects) 커널 오브젝트는 시스템의 가장 핵심적인 기능인 프로세스, 스레드, 동기화 객체, 디스크 드라이버 사용, 메모리 관리 등의 기능을 제공한다. 오브젝트 명 내용 Access token 보안관련 오브젝트이다. Change notification 파일 입출력 관련 오브젝트이다. Communications device 데이터 흐름을 관리하는 오브젝트로서 직/병렬 포트, 팩스, 모뎀을 통한 데이터의 흐름을 맡는다. Console input 텍스트 기반 콘솔 모드 입출력 관리 오브젝트이다. Console screen buffe..