MMU-less Memory Management for Stack Protection in Thread-based Operating System

MMU가 없는 Thread기반 운영체제에서 스택 보호를 위한 메모리 관리 기법

  • Lee, Young-Rim (Dept. of Computer Science & Engineering, Korea University) ;
  • Kim, Young-Pil (Dept. of Computer Science & Engineering, Korea University) ;
  • Yoo, Chuck (Dept. of Computer Science & Engineering, Korea University)
  • Published : 2006.10.20

Abstract

현재 많은 센서 네트워크 운영체제에서는 메모리 제약 때문에 스레드 스택을 공유한다. 하지만 대부분의 대상 플랫폼에서는 MMU가 없어서 하드웨어적으로 스택 보호가 이루어지기 어렵다. 이러한 문제를 해결하기 위해 본 논문에서는 운영체제 바이너리 코드 안에 존재하는 스택 연산 명령어들을 스택 보호 기능을 가진 래퍼 함수호출로 바꾸어 주었다. 이 래퍼 함수는 스택의 오버플로우/언더플로우를 관리해 주고 오리지널 코드에 있던 명령어를 실행한 후 원래 실행 흐름으로 돌아가게 한다. 본 논문에서는 이러한 동작을 수행하는 Post-Compile Processing Tool의 구조와 세부 메커니즘을 제안한다. 이 툴은 직접 바이너리를 조작하므로 개발의 유연성을 살리고, 정적인 조작만 가하기 때문에 실행시간 오버헤드가 적다. 또한 임베디드 플랫폼 환경과 같이 하드웨어 자원의 제약이 있는 구조에 적합하다.

Keywords