▶ 커널메모리는 커널만 접근이 가능 ▶ 사용자 프로세스가 커널 프로세스를 요청해서 커널프로세스 사용 ▶ 4GB중 2GB는 프로세스, 2GB는 시스템에서 사용 ▶ User memory 커널에 있는 변수는 내부에서 버퍼이동을 해야하지만 사용자 프로세스는 커널메모리에 있는 것을 접근할 수 없음. ▶ 커널 프로세스는 커널 메모리에 접근이 가능하므로 커널메모리에 있는 것을 유저메모리 영역에 저장 ▶ 위 동작은 운영체제가 관여해서 실행 ▶ 프로세스영역 Fopen을 Fn_open()의 커널프로세스가 읽고 커널메모리가 유저메모리에 저장해서 프로세스 사용 ▶ 영역 확인방법 + 커널 영역 = 주소 값이 높음 + 프로세스 영역 = 주소 값이 낮음 + 정보는 Debugging 시 확인 가능 + 그러나 커널 영역 주소도 가상주소이고 실제주소는 아님
▶ 우측그림 2개의 메모리는 실제로 좌측 2번째 그림과 같이 유저메모리는 공유하지 않지만 커널 메모리는 공유 ▶ 유저가 커널메모리에 접근할 수 없는 이유? + 다른사용자 영역의 메모리를 침범할 수 있음
▶ 16bit와 32bit 메모리 구조차이 + 16bit는 메모리 주소가 같으면 같은 곳을 가리킴 + 32bit는 메모리 주소가 같아도 가상의 주소로 판단 하여 OS를 거치면 실제 메모리의 다른 곳을 가리킴
4) Page Table과 가상주소
▶ Virtual Memory의 일부 = Page table 전체 ▶ Page table의 일부 = Page table entry[4byte] = 실제 물리적 주소가 저장되어 있는 곳 ▶ ex) VAS(4GB, 2^32)의 0번 페이지의 실제 주소는 + 0x0001100
2. 해시알고리즘 ▶ md5 = 128bit ▶ sha1 = 160bit
3. MAC Time 변화 1) 파일복사, 파일압축해제 ▶ 만든날짜, 접근날짜 = 복사한 시점으로 변경 ▶ 수정한 날짜가 변경 안됨 - 시간의 역전현상
4. USB 레지스트리에서 얻을 수 있는 정보 ▶ USB 제조사, 제품명, 버전 ▶ 저장장치 사용 볼륨 ▶ 마지막 부팅 후 최초 USB 연결 시간
댓글