Linux/kernel
-
[리눅스 커널] 커널 컨텍스트Linux/kernel 2023. 8. 3. 02:18
글의 참고 - https://linux-kernel-labs.github.io/refs/heads/master/lectures/interrupts.html - https://blog.naver.com/PostView.nhn?isHttpsRedirect=true&blogId=hsmnim&logNo=30085612028&viewDate=¤tPage=1&listtype=0 - http://egloos.zum.com/rousalome/v/9990872 글의 전제 - 밑줄로 작성된 글은 강조 표시를 의미한다. - 그림 출처는 항시 그림 아래에 표시했다. 글의 내용 - Interrpt Context [ 참고1 ] : x86에서 예외가 아닌 `IRQ` 발생(하드웨어 인터럽트)으로 인해 CPU의 제어 로직이 인터럽트 ..
-
[리눅스 커널] Loadable Kernel Module(LKM)Linux/kernel 2023. 8. 3. 02:18
글의 참고 - https://en.wikipedia.org/wiki/Loadable_kernel_module - https://tldp.org/HOWTO/Module-HOWTO/x73.html - https://francescoquaglia.github.io/TEACHING/AOS/AA-2020-2021/SLIDES/linux-modules.pdf - https://www.kernel.org/doc/Documentation/kbuild/modules.txt - https://cateee.net/lkddb/web-lkddb/MODULES.html 글의 전제 - 밑줄로 작성된 글은 강조 표시를 의미한다. - 그림 출처는 항시 그림 아래에 표시했다. 글의 내용 - Overview " 리눅스에서 `Loadabl..
-
[리눅스 커널] PM - Power Management InterfaceLinux/kernel 2023. 8. 3. 02:15
글의 참고 - http://www.wowotech.net/pm_subsystem/pm_interface.html - https://lwn.net/Articles/416690/ - https://elinux.org/Pm_Sub_System 글의 전제 - 내가 글을 쓰다가 궁금한 점은 파란색 볼드체로 표현했다. 나도 모르기 때문에 나중에 알아봐야 할 내용이라는 뜻이다. - 밑줄로 작성된 글은 좀 더 긴 설명이 필요해서 친 것이다. 그러므로, 밑 줄 처친 글이 이해가 안간다면 링크를 따라서 관련 내용을 공부하자. 글의 내용 - Overview : 리눅스 커널의 Power management 서브 시스템 중 상당수는 Hibernate, Suspend, Runtime PM 등의 기능을 처리하는 코드로 이루어져 있..
-
[리눅스 커널] PM - Wakeup events frameworkLinux/kernel 2023. 8. 3. 02:14
글의 참고 - http://www.wowotech.net/pm_subsystem/wakeup_events_framework.html - https://lishiwen4.github.io/linux-driver/PM-wakeup-source - http://www.uwsg.indiana.edu/hypermail/linux/kernel/1202.0/02966.html - https://lwn.net/Articles/416690/ 글의 전제 - 내가 글을 쓰다가 궁금한 점은 파란색 볼드체로 표현했다. 나도 모르기 때문에 나중에 알아봐야 할 내용이라는 뜻이다. - 밑줄로 작성된 글은 좀 더 긴 설명이 필요해서 친 것이다. 그러므로, 밑 줄 처친 글이 이해가 안간다면 링크를 따라서 관련 내용을 공부하자. 글의 내..
-
[LINUX][KERNE][ISSUE] sysfs store() 무한으로 계속 write하는 이슈Linux/kernel 2023. 8. 3. 02:14
원인 - sysfs attribute를 만들고, shell에서 특정 값을 write하는데 쉘에서 응답이 없음. dmesg를 확인해보니, write가 계속 무한 루프를 돌고 있음. 원인 파악 과정 1. 리턴값을 정수 단위에서 아래로 구분. count 값보다 큰 경우 -> 정상 동작 count 보다 엄청나게 큰 사이즈를 테스트 해보지는 않았다. buf 사이즈가 기본 PAGE_SIZE이기 때문에, count에 적당히 큰 값을 더해서 테스트했다. count 값과 같은 경우 -> 정상 동작 count 값보다 작은 경우 -> 에러 발생. 만약 count 값보다 작거나 0 이라면, 무한 루프. 만약 음수를 리턴하면, Errno로 맵핑되는 문자열이 출력된다. 즉, 무한 루프를 돌지 않고 에러 메세지를 출력하고 종료한다..
-
[리눅스 커널] PM - Linux legacy power managementLinux/kernel 2023. 3. 1. 00:40
글의 참고 - https://www.computernetworkingnotes.com/linux-tutorials/shutdown-reboot-suspend-and-hibernate-a-linux-system.html - https://www.computerhope.com/unix/uhalt.htm - http://www.wowotech.net/pm_subsystem/generic_pm_architecture.html 글의 전제 - 내가 글을 쓰다가 궁금한 점은 파란색 볼드체로 표현했다. - 밑줄로 작성된 글은 좀 더 긴 설명이 필요해서 친 것이다. 글의 내용 - Overview " 이 글에서는 PC 가 주력이던 시절에 리눅스 커널이 사용했던 `system power management` 방식에 대해 다..
-
[리눅스 커널] Interrupt - GICv2 part 1Linux/kernel 2023. 2. 24. 00:55
글의 참고 - DEN0013D_cortex_a_series_PG.pdf - (Interrupt Hanling - 12.2 The Generic Interrupt Controller p12-7) - CoreLink GIC-400 Generic Interrupt Controller Technical Reference Manual - ARM Generic Interrupt Controller Architecture Specification Version 2.0 - https://stackoverflow.com/questions/36423059/arm-specific-irq-initialization - https://zhuanlan.zhihu.com/p/586238925 - http://www.wowotech..