일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 |
- 프로그래머스
- 이코테
- c++
- dfs
- 앱개발
- react-native
- BOJ
- Typescript
- SQL
- 노마드코더
- 코딩테스트
- 알고리즘
- 빅데이터분석
- 타입스크립트
- 개발자북클럽
- 코테
- 다이나믹프로그래밍
- 이진탐색
- 백준
- TS
- 그리디
- bfs
- 이것이코딩테스트다
- 백준온라인저지
- 구현
- ps
- 정렬
- DP
- 최단경로
- 코딩일기
- Today
- Total
목록리눅스 커널/혼자 분석한 내용 (3)
한량처럼 살고 싶다
gpio 관련 기능 개발 하다가, 내가 만든 기능이 디바이스 드라이버인지 커널 모듈인지 헷갈려 정리한다.결론부터 말하자면 둘 다에 해당했음. 디바이스 드라이버디바이스 드라이버는 컴퓨터 프로그램이다.컴퓨터에서 device(기기)를 동작시키거나 조종하는 프로그램인 것이다. 리눅스는 디바이스 역시 파일이다.그래서 디바이스 드라이버는 파일을 컨트롤하기 위한 프로그램을 의미한다. 커널은 application 과 소통하기 위해 VFS를 거치고, 그 이후에 시스템 콜을 거친다. 따라서 디바이스 드라이버 역시 VFS의 형식에 맞게 작성되어야 한다. 디바이스 드라이버 종류1) character device driver바이트 단위로 데이터를 순차적으로 받아오기 때문에 버퍼와 캐시를 갖지 않는다.예시로는 키보드, 마우스, ..
GPIO 관련 커널 모듈 프로그래밍 / 드라이버 프로그래밍을 하며 공부한 내용을 정리하려고 한다. sysfs 요약 사용자 공간과 커널 공간 간의 인터페이스로 작동하며, 사용자가 커널 데이터에 쉽게 접근할 수 있도록 만든다. 리눅스는 모든 것이 파일 시스템이기 때문에 대부분이 cat으로 출력이 되는데, 이 점으로 인해 sysfs가 여러 개의 파일을 저장하고 있는 폴더로 인식했다. 검색해보니 sysfs는 파일을 저장하고 있는 것이 아닌, 커널이 실시간으로 (동적으로) 사용자가 정보를 요청하면 정보를 반환하는 인터페이스라고 한다. 부팅하고서도 내용이 계속 변할 수 있으며 사용자가 요청할 때마다 업데이트 된다. sysfs 주요 기능1. 커널 데이터 노출1) 커널 내부의 데이터 구조를 파일 및 디렉토리 형태로 ..
https://git.kernel.org/pub/scm/linux/kernel/git/thermal/linux.git/tree/drivers/thermal/thermal_hwmon.chttps://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/tree/drivers/thermal/qoriq_thermal.c?h=v6.12-rc7https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/tree/arch/arm64/boot/dts/freescale/s32g2.dtsi리눅스 커널의 thermal_hwmon.c 와 qoriq_thermal.c, s32g2.dtsi 를 분석한다. https://w..