목록kernel (7)
no swim no life
call_usermodehelper 응용프로그램은 비동기적으로 수행되며, keventd의 자식프로세스로 수행하고, root 권한을 가진다 이 부분이 문제, call_usermodehelper를 사용하는 코드가 연속 사용되거나, call_usermodehelper가 수행하는 응용프로그램과 같은 파일을 억세스 하는 다른 코드가 있을 경우, 예상치 못한 결과를 반환할 수 있다.
커널모드에서의 파일삭제는 이놈으로 해결했다. call_usermodehelper Name call_usermodehelper -- start a usermode application Synopsis int call_usermodehelper (char * path, char ** argv, char ** envp, int wait); Arguments path pathname for the application argv null-terminated argument list envp null-terminated environment list wait wait for the application to finish and return status. Description Runs a user-space appl..
1. 소스 다운로드 (Fedora6) http://download.fedora.redhat.com/pub/fedora/linux/core/6/source/SRPMS/kernel-2.6.18-1.2798.fc6.src.rpm 2. RPM 설치 [fc6@localhost] # rpm -ivh kernel-2.6.18-1.2798.fc6.src.rpm 3. 커널 패키지 생성 [fc6@localhost] # rpmbuild -bp --target=$(uname -m) /usr/src/redhat/SPECS/kernel-2.6.spec --target 으로 설정된 경로에서 커널 소스를 확인할 수 있다. ps. rpmbuild가 없다면 설치해야 한다.
Memory Size ( Kb ) Page ( 4Kb ) Array (Stack) 8 Kb 2 page kmalloc (Heap) 128 Kb 32 page __get_free_page( ) 2048 Kb 512 page vmalloc unlimited unlimited 메모리 관련 설정 확인 [root@devlinux iptv] # ulimit -a core file size (blocks, -c) 0 data seg size (kbytes, -d) unlimited max nice (-e) 0 file size (blocks, -f) unlimited pending signals (-i) 8192 max locked memory (kbytes, -l) 32 max memory size (kbytes,..
Kernel 2.6 에서 Floating 연산을 포함하는 모듈을 insmod 시, 아래와 같은 undefined symbol 관련된 메시지가 출력된다. 커널 코드에선 Floating 연산을 안쓰던가.. 이놈들의 코드를 같이 빌드 하던가.. -_- *** Warning: "__moddi3" [drivers/dmc/dmc_module.ko] un defined ! *** Warning: "__adddf3" [drivers/dmc/dmc_module.ko] un defined ! *** Warning: "__divdf3" [drivers/dmc/dmc_module.ko] un defined ! *** Warning: "__muldf3" [drivers/dmc/dmc_module.ko] un defined !
kbuild system 남상규 이 문서는 리눅스 커널 2.6.x에 사용되는 kbuild System에 대해 설명 합니다. Linux Kernel소스의 Documents/kbuild/makefiles.txt 문서를 번역한 것에 지나지 않으며 번역이 매끄럽지 못하고 직역을 한 부분이 있으나 이해 바랍니다. 의역을 하려면 장황하게 설명을 하거나 해야 하는데 그런 편 보다는 차라리 원문을 읽어 보시는 것이 낫겠단 생각에서 그런 것입니다. 번역이 매끄럽지 못한 부분은 반드시 원문을 읽어 영어 단어의 뜻을 파악하시기 바랍니다. 원문 : http://wiki.kldp.org/wiki.php/DocbookSgml/KBUILD
printk( ) 로 출력하는 커널 메시지는 klogd --> syslogd를 통해 /var/log/messages에 기록되며, 사용되는 출력 레벨은 Console 출력이다. 이 메시지는 기본적으로 X-Window 같은 터미널에서 바로 확인할 수 없으므로, 아래와 같은 방법을 통해 확인해야 한다. messages 파일의 갱신을 지속적으로 확인 [-@localhost] # tail -f /var/log/messages 커널 메시지의 출력 레벨을 높이면 터미널에서도 확인 할 수 있다. linux/kernel.h #define KERN_EMERG "" /* system is unusable */ #define KERN_ALERT "" /* action must be taken immediately */ #de..