set_fs()와 get_fs()에 대해 설명 좀..
글쓴이: sadrove / 작성시간: 수, 2004/06/02 - 3:10오전
set_fs()와 get_fs()에 대해서 알고 싶습니다..
여기저기 검색하다가 아래와 같은 내용을 찾았는데요..
주석을 봐도 무슨 말인지..
사용자 모드의 DS를 얻는다는 말이 무슨 말인지. KERNEL_DS란 무엇인지..
저걸 왜 하는건지.... 좀 알려주실 수 있을까요...
커널...이거 디게 어렵네요...ㅠ.ㅠ..
Quote:
/* 사용자 모드에서의 DS를 얻은 후, FS 셀렉터에 저장한다. */
oldfs = get_fs();
/* 사용자 모드의 DS를 KERNEL_DS로 교체한다. */
set_fs(KERNEL_DS);------------중략---------------
/* 사용자 모드의 DS를 아까 저장해둔 FS 셀렉터로 되돌린다. */
set_fs(oldfs);
Forums:
DS(데이타 세그먼트) 레지스터입니다. 사용자모드에서 얻어서 커널모드로
DS(데이타 세그먼트) 레지스터입니다. 사용자모드에서 얻어서 커널모드로 저장하거나. 사용자모드에서 FS를 얻는 함수인거 같군요.
힘내세요.
음, 정확한 답변은 아니지만, 실제로 i386 같은 경우 segm
음, 정확한 답변은 아니지만,
실제로 i386 같은 경우 segment:offset 구조로 메모리를 인식합니다.
즉, 우리가 바로 0x30 번지의 메모리를 쓰겠다면, 앞에 붙어 있는 세그먼트로
인해서, 커널영역과 사용자 영역의 메모리 위치가 틀려지겠죠.
커널 세그먼트:0x30 과
유저 세그먼트:0x30 은 주소값이 틀리니깐요.
그럼 고운 하루되시길..
=========================
CharSyam ^^ --- 고운 하루
=========================
얼마전에 후배가 알려줘서 본 기사안에 관련 내용이 있더군요.아래 링크
얼마전에 후배가 알려줘서 본 기사안에 관련 내용이 있더군요.
아래 링크 기사중 마지막 페이지 박스안에 설명이 있습니다.
http://www.linux-mag.com/2000-11/gear_01.html
댓글 달기