<그림1 유저 프로그램 결과>

 

소스코드

</home/icd0422/v4.10/arch/x86/entry/syscalls/syscall_64.tbl>

 

</home/icd0422/v4.10/include/linux/syscall.h>

 

</home/icd0422/v4.10/kernel/os_kboard.c>

 

<home/icd0422/v4.10/Makefile>

 

<kboard.c>

 

<copy.c>
<paste.c>

 


문제점 및 해결방안
 
우선 첫번째로 부딪힌 난관은 구조를 파악하는 거였다. 이론적으로만 유저모드와 커널모드를 배웠지 실제적으로 커널모드에 있는 코드를 바꿔서 컴파일하고 설치하는 것은 처음이라 과제설명서에 나와 있는 코드들의 구조를 파악하면서 그것을 바꾸면서 머리속으로 이해하는 것이 힘들었다.  두번째로는 os_kboard.c를 고치고 나서 시스템을 재부팅 안해서 생기는 문제였다. 이때까지는 아무것도 모르고 계속 바꿨는데 왜 안되지 이러면서 애 먹었다 재부팅하고 나니까 적용 되니까 허무했다.  마지막으로는 ring버퍼를 큐 구조로 만들어야 된다는 것이었다. 일반 c프로그래밍이면 큐를 이용하면 되지만 커널모드에서 코드를 짤때는 큐를 이용하지 못하여 생각 끝에 그냥 앞에 있는 원소가 빠지면 그 뒤에 있는 원소를 앞으로 다 일일히 옮겨서 해결하였다. 

 

깃허브

https://github.com/icd0422/kernel-level-clipboard-service

 

icd0422/kernel-level-clipboard-service

Contribute to icd0422/kernel-level-clipboard-service development by creating an account on GitHub.

github.com

 

+ Recent posts