개념 증명과 편리한 편집 도구로 IRC 채널에 연결하는 OpenBSD LKM을 작성하고 연결 된 syscall이 실행될 때보고합니다.네트워크 기능을 호출하는 OpenBSD 커널 모듈
이것은 오프 사이트이지만 인터넷 액세스가있을 때 파일 시스템 변경, 사용자 로그온 등의 '라이브'업데이트를 기본적으로 가질 수 있습니다.
소켓을 연결하는 데까지 닿았으나, getaddrinfo
또는 심지어 inet_addr
하드 코딩 된 주소로 전화를 수행하려고 시도했습니다.
이들은 사용자 지정 기능이므로 사용하려고 시도하면 정의되지 않은 참조가됩니다. 문제는, 인터넷 검색 및 grep'ing 오픈 BSD 소스의 잠시 후, 나는 이것을 할 수있는 동등한 커널 기능을 찾을 수 없습니다; 가장 좋은 권장 사항은 모듈에서 다시 구현하는 것입니다.
이것은 또한 islower
, isxdigit
및 isspace
과 같은 항목을 구현해야한다는 것을 의미합니다. 누구나 이것에 대한 대안이나 대안을 알고 있습니까? 아니면 인터넷 파일에서 c + p 코드를 붙잡습니까?
커널 모듈이 서버와 직접 통신하는 대신 로컬 통신 채널 (예 : 파이프 또는 로컬 소켓)을 열어서 사용자 영역 응용 프로그램에서 실제 서버 통신을하도록하십시오. –
왜 커널이 DNS 검색을 수행해야합니까? 그리고 왜 당신은 실행중인 syscalls에 관심이있을 정도로 편집증 적이겠습니까? 그렇지만 DNS 시스템이 스푸핑되지 않을 정도로 충분히 신뢰하고 있습니까? – tbert
필자는 모듈이 가지고있는 종속성의 양을 최소화하고 싶었습니다. (독립형의 관점까지) - 검증 후에도 커널에서 사용자 영역의 데이터를 사용하는 것에 대한 불신이 있습니다. 그러나 사용자 영역 통신이이 작업을 수행하기 위해 선호되고 권장되는 방법이라는 점에서 당신은 옳습니다. – septical