[시스템프로그래밍][4장모듈프로그래밍][03모듈에 대해 알아야 할 것들]
[모듈과 커널 버전] 커널의 버전 확인하는 방법 : /linux/version.h #define UTS_RELEASE "2.6.14.6"#define LINUX_VERSION_CODE 132622#define KERNEL_VERSION(a, b, c) (((a)
2012.11.23
[screen] 설정파일
1. 설정 파일 위치/etc/screenrc 2. 유용한 옵션# turn visual bell onvbell onvbell_msg " Wuff ---- Wuff!! "
2012.11.21
[시스템프로그래밍]4장. [모듈프로그래밍]Hello_Module
1. 2.6커널용 Hello_Module 작성 #include #include #include // init routine int __init init_hello(void) { printk(KERN_ALERT "[Module Message] Hello, Module.\n"); return 0; } // finish routine void __exit exit_hello(void) { printk(KERN_ALERT "[Module Message] Do you realy want to break up with me?\n"); } module_init(init_hello); module_exit(exit_hello); MODULE_LICENSE("GPL"); 2. 2.6 모듈 빌드용 Make 파일 obj-m..
2012.11.21
[시스템프로그래밍]03. [시스템콜]cpu_info
arm에서 사용하는 cpu_info 구조체는 /arch/arm/include/asm/cpu.h에 struct cpu_info_asm {...}으로 정의 되어 있다. 이 정보는 책과는 달라서 타겟의 proc/cpuinfo를 보려고 하였으나, proc파일시스템이 없는 것이다!!!!!허걱.... 그래서 FALINUX포럼에 가서 proc파일 시스템 만드는 법이 있길래 해보려고 했다..하지만, 아직 실력이 부족해서 뭔 말인지 모르겠다.ㅠㅠㅠ 나중에 실력좀 쌓이면 타겟에 간단하게나마 proc파일 시스템을 올려 보아야 겠다.
2012.11.19
no image
[리눅스커널프로그래밍]01.개발환경 세팅
개발 환경 세팅 임베디드 보드에 개발을 하기 위해서는 개발환경 세팅을 좀 해주어야 합니다.이 부분은 인터넷을 찾아보면 다양하게 나와 있어 저도 많이 참고 했습니다. 많이 이용하는 방법은.윈도우가 설치된 PC, 가상OS로 리눅스(HOST), 개발보드(TARGET)를 갖춘 상태에서,서로를 연결하기 위한 공유기(로컬네트워크를 구축해야지요..), tftp, samba, nfs 를 이용하여 개발환경우 갖추었습니다. 다만 제가 가장 OS상에서 네트워크 설정을 잘 못해서 노트북에 리눅스를 설치에 버렸습니다.(다행이 노는 노트북이 있었네요.ㅎㅎ) 자 그럼, 제가 어떻게 세팅했는지에 대한 개략도입니다..
2012.11.11
no image
[리눅스커널프로그래밍]00. 시작하기에 앞서
저는 학교에서 하드웨어에 의존적이지 않은 순수 소프트웨어 공부를 주로 해서 리눅스, 특히 하드웨어에 의존적인 부분에대해 잘 모릅니다. 회사에 들어오니 이런것들을 몰라서 힘든 부분이 있어 나름 공부를 해보고자 보드도 하나 사고, 리눅스 커널 책도 사서 공부를 하기 시작했습니다.(돈을 버니좋군요.ㅎㅎ) 제가 산 보드는 falinux에서 판매하는 G100-S5PV200입니다.(이런 숫자로된 이름 어려워요ㅠㅠ).사실 리눅스 커널 공부하는데에 꼭 보드가 필요한것 같지는 않지만, 나중에 디바이스 드라이버도 공부해보고자 샀습니다.(사실 지름신때문이랍니다.ㅋㅋ) 잘못 사서 아까운 돈 날릴까봐 가장 싼것으로 샀습니다^^ 자 그럼 오늘은 여기까지 하고 내일부터 개발환경 세팅부터 해볼까요?
2012.11.11
vim에서 diff 사용하기
커맨드창에서 두개의 파일을 비교 하는 방법은 vimdiff a.c b.c 이렇게 바로 실행 할 수도 있고, 아래와 같이 실행 할 수도 있따.(수평 분할) vim a.c :diffs b.c (:diffsplit b.c) 수직 분할하려 비교 하려면 아래와 같이 명령어를 사용하면 된다. vim a.c :vert diffs b.c (:vertical diffsplit b.c) 이미 열러 있는 두개의 파일을 비교 할때는 아래 처럼 하면 된다. vim a.c :sp b.c :diffthis 실제로 vim은 실행시 몇 가지 모드 중 하나로 동작 하는 것이다. 즉, 실행시 readonly, vi compatible, diff mode등으로 전환 된다. 이제 부터는 비교하고 있는 파일의 내용을 편집하는 것을 알아 보도..
2011.05.31
[cscope] 윈도우즈에서 cscope 설치및 사용하기(vim + cscope)
1. cscope설치 하기 여기서 scsope 실행 파일을 다운로드 받고 압축을 풀면 sort.exe cscope.exe 두개의 실행 파일이 나온다. 이 파일을 콘솔에서 실행하기 쉽게 하기 위해 환경변수에 path를 설정해 놓는다. 나의 경우에는 gvim.exe가 있는 곳에 두 파일을 옮기고 환경변수 설정을 하였다. 2. findutils 다운로드 cscope는 내부적으로 find 명령어를 이용한다. find명령어는 리눅스 명령어인데 윈도우즈에서 사용할 수 있는 프로그램이 있다. 이 findutils라는 프로그램을 다운로드 받아 설치하도록 하자. 3. scope DB정보 구축하기 cscope를 사용하기 전에 소스파일로 부터 DB정보를 구축해야 한다. 소스파일이 있는 디렉토리에서 가장 루트 디렉토리에서 아..
2011.05.17
[ctags] 우분투에서 ctag설치 및 사용
1. ctags란? ctag는 소스 파일을 태그라는 단위로 잘라서 태그정보를 토대로 소스 분석을 도와주는 유틸리티입니다. 윈도우즈 운영체제에서 많이 사용하는 IDE Tool 인 Visual studio에서는 기본적으로 제공하는 기능입니다. 리눅스 진영에서는 작은 기능을 하는 프로그램을 조합해서 쓰는 것을 좋아 하기 때문에 편집기에 ctags를 조합해서 사용합니다. 2. ctag설치 리눅스(우분투)에서 ctag를 설치 하기 위해서는 터미널에서 아래의 명령을 입력하면 됩니다. $ sudo apt-get install ctags 3. tags 파일 만들기 ctag를 사용하기 위해서는 소스를 분석하고자 파일들에 대해서 tag정보를 추출해야 합니다. 아래의 코드를 사용하여 tag정보를 추출합니다. (분석하고자 하..
2011.05.17