printk 와 printf의 시간차 공격..
s3c2410(arm9)을 사용하여 작업을 하고 있습니다.
커널버전은 2.4.18이고요.
--
mmap을 사용하여 커널 드라이버와 애플리케이션간에 자료를 공유(mmap)하고 있습니다.
근데 공유가 제대로 되는지 알 수가 없네요.
간단하게 코딩을 적어보면
app side
func() --------
{
while(1) {
queue->tail++;
fprint(stderr, "APP %d %d\n", queue->head, queue->tail);
}
}
driver side -------
interrupt(.....)
{
queue->head++;
printk(KERN_ALERT "INT %d %d\n", queue->head, queue->tail);
}
출력문
APP 0 1
APP 0 2
APP 0 3
APP 0 4
APP 0 5
INT 30 40 <-- (1)
APP 0 6
.....
.....
APP 0 39
APP 30 40 <--- (2)
INT 31 52
로 출력이 됩니다.
(1)INT 30 40 과 (2)APP 30 40을 보면 공유가 제대로 되는거 같긴 한데 , 출력문의 순서가 이상합니다
인터럽트의 출력문이 더 빠르게 출력이 되는듯 한데요.
알수가 없네요.
공유가 잘못됬는지 , 출력이 잘못됬는지...
댓글 달기