TCP/IP Offload

http://del.icio.us/ohjeongwook/TCP%2FIP%2BOffload TCP/IP Offload예전 “네트워크 개론” 수업 시간의 교수님의 말씀이 아직도 기억에 생생하다. 소프트웨어를 하는 사람들은 모든 것을 소프트웨어 영역에서 처리하려고 하고 하드웨어를 하는 사람들은 모든 것을 하드웨어 영역에서 처리하려고 하는 경향이 있다고 한다. TCP/IP 스택은 먼전 불안정한 네트워크 계층을 가정하고 있다. IP 패킷을 랜 상으로 쏘아도 그것이 소실될 확률이 0 이라고 가정하지 않는다. 따라서 모든 … Continue reading TCP/IP Offload

다이슨(James Dyson): 산업 디자이너 (Industrial Designer)

다이슨 청소기로 유명한 제임스 다이슨이라는 사람이 있다. 다이슨 청소기는 미국 청소기들의 투박한 디자인과 달리 이 유럽산 청소기는 디자인부터가 남다르다. 물론 가격이 최소 300불 이상에서 보통 400-500불에 육박하기 때문에 구매에 망설여지는 면이 많다. 하지만 일단 한번 써 보게 되면 비싼 가격을 주고라도 그 청소기를 사용하는 이유를 알게 될 것이다.영국 태생인 다이슨이라는 사람은 기존의 먼지 봉투를 사용하는 … Continue reading 다이슨(James Dyson): 산업 디자이너 (Industrial Designer)

UMDH를 이용한 메모리릭 탐지

마이크로소프트에서 많은 흥미로운 툴들이 나오는데, 그 중 하나가 메모리릭(Memory Leak)을 탐지하기 위한 UMDH라는 툴입니다. 이미 윈디버거로 대표되는 “Debugging Tools for Windows” 패키지 안에 포함되어 있습니다. 사실 예전에는 이 툴이 별로 환영을 받지 못했는데, MSVC에서 FPO를 통해서 프로그램 바이너리를 최적화 시키는 것이 디폴트여서 대부분의 프로그램들이 FPO가 내장 된 채로 배포되는 경우가 많았기 때문입니다. 심지어는 마이크로소프트의 바이너리들도 … Continue reading UMDH를 이용한 메모리릭 탐지

마이크로소프트 비스타 권한 분리 장치: Integrity Level

“Integrity Control”이라고 해서 마이크로소프트 비스타(Vista)에서는 같은 사용자의 권한으로 작동하는 프로세스들의 등급이 나뉘어지는데, 이를 “Integrity Level”이라고 한다. 다음과 같이 기본적으로 4가지 레벨이 존재한다.System/High/Medium/Low기본적으로 서비스는 모두 System 레벨이고, 기타 사용자 프로세스들은 각각 미리 정해진 등급들을 가지고 있다. 요즈음에 윈도우즈 보안의 가장 큰 위협이 되고 있는 인터넷 익스플로러는 Low등급을 가지고 있다.그런데, 특이한 것이 인터넷 익스플로러도 로칼 컴퓨터 도메인을 … Continue reading 마이크로소프트 비스타 권한 분리 장치: Integrity Level

흥미로운 애플 이야기

요즘에 난생 처음 애플 제품을 하나 둘씩 쓰게 되면서 애플과 그 창시자들에게 많은 관심을 가지고 있습니다.스티브 워즈니악과 스티브 잡스가 그들이죠. 참으로 놀라운 것은 70년대말 80년 대 초에 이미 지금의 IT기업들에서나 있을 문화가 애플에서 싹트기 시작했다는 것입니다.이 애플의 만들 사람들의 스토리에는 정말 흥미 진진한 내용들이 많습니다.처음 워즈니악과 잡스는 블루박스라는 폰 프리킹 장비를 대학교에서 파는 것으로 꽤 … Continue reading 흥미로운 애플 이야기

Volume Shadow Copy란 무엇인가

윈도우즈에서 백업 등을 실시하면 그 때 그 때의 파일 쓰기 상황에 따라 덜 쓰여진(flushing이 안된) 파일이 백업 되어 버리기도 하고, 파일이 shared 안된 상태로 열려 있어서 백업이 실패하기도 합니다. 이러한 상황을 찢어진 쓰기 동작(torn writes)이라고 MSDN은 표현하고 있습니다.이러한 경우 백업 이미지를 “chkdsk”로 복구해야 하는 상황이 발생하게 되는데, 이러한 상황을 피하기 위해서 도입 된 개념이 바로 … Continue reading Volume Shadow Copy란 무엇인가

비스타(Windows Vista)의 레지스트리 가상화

비스타에서 많은 보안성 강화가 이뤄졌습니다. 그런데 그러한 보안성 강화로 인해서 많은 어플리케이션들이 혼란을 겪게 되었습니다. 레지스트리 가상화 기술은 이러한 비스타의 강화된 보안과 기존 어플리케이션의 호환성으로 인해 도입된 기술입니다.기존의 윈도우즈 시스템에서는 어플리케이션들이 대부분 관리자 권한을 가지고 실행 되어서, 레지스트리키를 마음대로 망쳐 놓을 수 있는 문제가 존재했습니다. 수 많은 스파이웨어들의 창궐은 곧 이러한 문제와 연관이 있습니다.만약 어플리케이션이 … Continue reading 비스타(Windows Vista)의 레지스트리 가상화

Windows Vista x64 에디션의 드라이버 싸이닝 문제

Windows Vista x64 에디션에서 드라이버 개발을 하다 보면 불편한 것이 한둘이 아닙니다.그중의 하나가 바로 테스트용 드라이버를 로드하려면 반드시 드라이버 시그너쳐 확인 옵션을 부팅시에 죽여 줘야 한다는 것입니다.사실 이전 버전의 윈도우즈에서 개발된 제품들 중에서 드라이버 싸인닝 이슈로 인해서 실행 되지 않는 경우가 많습니다. Windows Vista x64 에디션에서는 드라이버를 로딩하기 위해서 디지탈 싸인이 꼭 필요합니다.한때 3rd 파티 … Continue reading Windows Vista x64 에디션의 드라이버 싸이닝 문제

IRP_MJ_CLEANUP과 IRP_MJ_CLOSE의 차이점

MSDN의 정의를 따르면 다음과 같다. IRP_MJ_CLOSE가 응용 프로그램에서 파일을 Close할 때에 발생할 것으로 착각하기 쉽게 이름이 지어져 있지만, 사실 응용 프로그램에서 파일을 모두 Close하면, IRP_MJ_CLEANUP가 보내진다. 커널 공간의 여러 컴포넌트들이 마저 모든 오프젝트 레퍼런스를 반납하면 IRP_MJ_CLOSE가 발생하는 것이다.따라서 무엇인가 파일의 내용을 추적하는 드라이버라면 IRP_MJ_CLEANUP 시점에 항상 파일의 내용을 체크하도록 해야 한다.IRP_MJ_CLOSEReceipt of the IRP_MJ_CLOSE request … Continue reading IRP_MJ_CLEANUP과 IRP_MJ_CLOSE의 차이점

Windows Vista SP1의 Object Manager Filtering으로 할 수 있는 일

윈도우즈 비스타 SP1에 새롭게 탑재될 Object Manager Filtering을 통해서 기본적으로 프로세스간의 상호 작용을 컨트롤 할 수 있다. 윈도우즈의 한 특징이 바로 한 프로세스가 다른 프로세스를 열거나(OpenProcess) 핸들을 복사해 올 수 있다는 것이다. 이러한 과정에서 비스타(Vista) 이전에는 권한만 있다면 아무러한 제약이 없었다. 하지만 비스타에 들어서는 아무리 권한이 많은 프로세스라도 다른 프로세스를 함부로 건드리지 못하도록 할 수 … Continue reading Windows Vista SP1의 Object Manager Filtering으로 할 수 있는 일