device 의 highrakey 를 관리하는 구조체. sysfs 노드로 표현됨. Kernel내부의 객체를 파일로 표현하므로써 User 에서 커널 내부의 대상을 파일 읽고/쓰기를 할 수 있게 만들어 줌.출처: https://www.kernel.bz/boardP
external loadable module 작성하기example_module.cMakefileobj-m := <module_name>.o The kbuild system will build <module_name>.o from <module_name
https://en.wikipedia.org/wiki/Device_fileUNIX 계열의 운영체제에서 device file은 유저 응용프로그램이 device driver 다루기 위한 인터페이스 역할을하는 특수파일이다. 디바이스 파일은 파일시스템의 /dev/ 에
Kernel 데이터를 Shell에서 확인할 수 있는 방법 -> proc file system 사용.다음과 같이 커널에서 생성한 값을 user에서 볼수 있고 저장도 가능.참고:http://pointer-overloading.blogspot.com/2013/09/
커널 링킹 타임에 발생하는 에러에러로그.init.text 섹션(\_\_init) 의 함수는 임시로 사용되고 해제 된다. 부팅시 한번 호출된다. 따라서 일반 .text 섹션의 함수가 .init 섹션의 코드나 데이터를 접근할때 링킹 에러가 발생한다. 가령 위의 예에서 c
LInux Kernel 소스 상단의 Makefile을 아래와 같이 수정하고 빌드하면 .i로 끝나는 전처리가 된 파일이 생성된다. 리눅스 커널 코드 분석할때 가장 고통스러운 부분은 끝없이 찾아서 따라가야 하는 매크로 함수및 정의들인데. 이렇게 빌드하면 전처리가 끝난 최종
Platform Bus1.1. Device 와 Driver1.2. Platform Bus는 무엇인가?? Platform bus initialize platform_device 초기화3.1. platform_device_register() 함수3.2. Device
어떤 구조체 내의 내부 포인터를 알고 있을때, 해당 구조를 포함하는 상위 구조체의 정보를 참조할때 유용한 Kernel API이다. 3개의 매개변수 ptr : 현재 알고있는 구조체내의 멤버 포인터 type : ptr을 포함하고 있는 구조체의 원형 (알고싶은 구
task A 가 이미 lock을 잡고 있는 상태에서 task B가 lock을 잡으려고 할때, 세마포어는 B를 wait queue에 넣고 sleep상태로 만듦인터럽트 컨텍스트에서는 세마포어를 사용할 수 없다. 컨택스트에서는 태스크 스케줄링이 일어나면 안되기 때문. (IS
Linux Kernel에서 동시성(Cuncurrency)문제를 해결하기 위해 많이 사용하는 Mutex와 Spinlock의 차이에 대해 알아보자.