본문 바로가기

2024/05/217

드라이버 개발 연습 #2 2024.05.21 - [개발/리눅스] - 드라이버 개발 연습 #1LoadDriver, UnLoadDriver 구현하기 선행 조사 libudevlibudev는 udev 장치 관리 시스템과 상호 작용하기 위한 라이브러리. udev는 Linux 커널의 장치 파일 시스템(devfs)와의 인터페이스를 관리하는 시스템입니다. libudev는 다음과 같은 기능을 제공합니다:장치 탐지 및 열거: 시스템에 연결된 장치들을 탐지하고 나열할 수 있습니다.장치 속성 조회: 장치의 속성(예: 장치 파일, 속성 값)을 조회할 수 있습니다.장치 이벤트 모니터링: 장치 추가, 제거 등의 이벤트를 모니터링할 수 있습니다.libudev는 주로 사용자 공간에서 하드웨어 장치를 관리하고, 장치 이벤트에 반응하는 데 사용됩니다.libkmo.. 2024. 5. 21.
드라이버 개발 연습 #1 리눅스 프로세스 감시 드라이버 만들기 도전 #11. CENTOS를 기준으로 한다.2. 프로세스 실행 종료를 감시하는 드라이버를 만든다.3. 프로세스 실행 컨트롤이 필요하다. 4. NOTIFY 계열을 사용하지 않고 디바이스 드라이버만 사용한다.5. MAKE을 이용해서 빌드한다.6. 가능하다면 C++를 사용한다. 2024. 5. 21.
Convert IPv4 To IPv6 #include #include #ifdef _WIN32 #include #include #pragma comment(lib, "Ws2_32.lib")#else #include #include #endifbool convertIPv4ToIPv6(const std::string& ipv4AddrStr, std::string& ipv6AddrStr) { struct in_addr ipv4Addr; struct in6_addr ipv6Addr; // Convert the string IPv4 address to in_addr if (inet_pton(AF_INET, ipv4AddrStr.c_str(), &ipv4Addr) != 1) { std:.. 2024. 5. 21.
NOTIFY (dnotify, inotify, fanotify)비교 dnotify, inotify, fanotify 비교리눅스 커널에서 파일 시스템 이벤트를 모니터링하는 데 사용되는 dnotify, inotify, fanotify 세 가지 메커니즘의 비교와 각 메커니즘이 지원되는 커널 버전에 대해 설명드리겠습니다.dnotify지원되는 커널 버전: 리눅스 커널 2.4에서 도입됨.특징:디렉토리 전용: 디렉토리에서 발생하는 이벤트만 모니터링할 수 있습니다.fcntl 기반: 파일 디스크립터와 fcntl 시스템 호출을 사용합니다.비효율성: 각 디렉토리에 대해 파일 디스크립터를 유지해야 하므로 많은 디렉토리를 모니터링하는 데 비효율적입니다.프로세스 전용 알림: 알림은 설정된 프로세스에만 전달됩니다.주요 이벤트:DN_ACCESS: 파일에 접근했을 때.DN_MODIFY: 파일이 수정되.. 2024. 5. 21.
반응형