1 / 21

ULKML – 1 Study 환경 구축 및 개발 툴 사용법 정리

ULKML – 1 Study 환경 구축 및 개발 툴 사용법 정리. 2011-09-30. 목 차. Study 환경 구축 사용할 Kernel 소 스 분석 툴. Study 환경 구축. ubuntu-11.04 server 설치 접속 방식 SSH, 220.67.126.xxx 최신 Linux Kernel Source 얻기 $> git clone git ://github.com/sfrothwell/linux-next.git linux /i386 3.1.0-rc7. Kernel 소스 분석 툴.

Download Presentation

ULKML – 1 Study 환경 구축 및 개발 툴 사용법 정리

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. ULKML – 1Study 환경 구축 및 개발 툴 사용법 정리 2011-09-30

  2. 목 차 • Study 환경 구축 • 사용할 Kernel 소스 분석 툴

  3. Study 환경 구축 • ubuntu-11.04 server 설치 • 접속 방식 SSH, 220.67.126.xxx • 최신 Linux Kernel Source 얻기 • $> git clone git://github.com/sfrothwell/linux-next.git • linux/i386 3.1.0-rc7

  4. Kernel 소스 분석 툴 • VIM • ctags • cscope • vim

  5. VIM • charityware : 무료로 사용할 수 있게 하는 대신 자선 단체 기부를 부탁 하는 소프트웨어 • 기회가 된다면 우간다의 가난한 아이를 위해 기부하자

  6. VIM • 키보드 만으로 모든 코딩 활동을 할 수 있기 때문에 집중도가 높아 진다.

  7. VIM • 이동 • (표준) hjkl : 방향키 • (표준) w : 다음 단어의 첫 글자 b : 이전 단어의 첫 글자 • (표준) ^ : 행의 끝으로 이동 $ : 행의 처음으로 이동 • (표준) H, M, L : 커서를 화면의 맨 위, 중앙, 맨 아래로 이동 • (표준) z(enter), z., z- : 현재 행을 화면의 맨 위, 중앙, 맨 아래로 이동 • (표준) ctrl + u, b : 반 화면 위로 스크롤, 아래로 스크롤 • (표준) ctrl + b, f : 한 화면 위로 스크롤, 아래로 스크롤 • (표준) gg, 1G : 문서의 맨 첫 행으로 이동 • (표준) G : 문서의 맨 아래로 이동 • (표준) [n]G : n번째 행으로 이동 • (명령라인모드) :[n] : n번째 행으로 이동

  8. VIM - 편집 • 삭제, 복사 • (표준) x : 현재 커서 위치의 한 글자 삭제 • (표준) dw : 커서 위치의 한 단어 삭제 • (표준) dd : 한 행을 삭제 • (표준) D, d$ : 커서 위치부터 행의 끝까지 삭제 • (표준) yw : 현재 커서 위치의 한 단어 복사 • (표준) yy : 커서 위치의 한 행을 복사 앞에 숫자를 넣으면 그 명령 앞의 숫자 만큼 반복하는 규칙이 있다.

  9. VIM - 편집 • VI의 레지스터 • “ “ 레지스터 : 바로 이전에 지워진 내용 • “0 ~ “9 레지스터 : 지워진내용이 큐 형식으로 들어감. • “. 레지스터 : 최근까지 타이핑한 내용 • “: 레지스터 : 최근에 명령라인에 입력한 내용 • “% 레지스터 : 현재 편집하는 파일 명 • “/ 레지스터 : 가장 최근에 검색한 문자열 • a~z까지 사용자가 지정할 수 있는 레지스터

  10. VIM - 편집 • 잘라내기와 붙여 넣기 • (표준) “[n]p : n에 해당하는 레지스터에 있는 내용 붙여 넣기 • 블록 지정 • (표준) v : 블록 지정 • (표준) d, y :복사, 잘라내기 • (표준) U, u : 대문자, 소문자로 만듬

  11. VIM - 편집 • 되돌리기와 되살리기 • (표준) u : 되돌리기 • (표준) ctrl + r : 되살리기 • 문자열 탐색 • (표준) / [문자열]: 문자열을 정방향 탐색한다. • (표준) ? [문자열] :문자열을 역방향 탐색 한다. • 위 상황에서 n, N : 다음 문자열, 이전 문자열 탐색

  12. VIM - 편집 • 문자열 치환 • (명령라인) %s/old/new/g : 문서에 있는 모든 old 문자열을 new문자열로 바꾼다. • [범위]/[매칭 문자열]/치환 문자열]/[행 범위] • [범위] • %s : 문서 전체 범위 • 2, 4s : 2행 ~ 4행사이의 범위 • -1, +3s : 현재 커서부터 위로 1행아래로 3행의 범위 • [행 범위] • g : 전체 행에 걸쳐 치환 • 없을 경우 : 한 행에 여러 개의 매칭 문자열이 있더라도 한번만 치환 • gc : 매칭되는 문자열에 대해 치환 할 것인지 사용자에게 물어봄

  13. VIM – 여러 파일 편집 • 여러 파일 열기 • vim file1.c file2.c file3.c 혹은 • vim *.c • 각각의 열린 파일은 VIM의 파일 버퍼로 이동. • (명령라인) ls : 현재 열려있는 파일 확인 • (명령라인) b[버퍼 번호] : 버퍼간 화면 전환 • (명령라인) sb[버퍼 번호] : 창을 수평 분할해서 버퍼 열기

  14. VIM – 여러 파일 편집 • 다중 창 사용하기 • (표준) ctrl + w (ctrl 떼고)n : 새로운 창이 가로로 분할 된다. • (표준) ctrl + wv: 현재 편집중인 창이 수직 분할 된다. • (표준) ctrl+ww : 커서간 창 이동 • (표준) ctrl+w_ : 현재 작업 중인 수평 창을 최대로 • (표준) ctrl+w| : 현재 작업 중인 수직 창을 최대로 • (표준) ctrl+w= : 균등 분할된 상태로 맞춤

  15. VIM – 유용한 기능 • 마킹으로 이동 • 커서의 특정 위치를 임의의 문자로 마킹해 나중에 표시한 위치로 한번에 돌아가기. • (표준) m[임의의 알파벳] : 마킹할때 • (표준) ‘[임의의 알파벳] : 마킹된 위치로 이동 • 전역 마킹( A – Z ) : 현재 파일+ 다른 파일간의 마킹이 가능 • 지역 마킹( a – z ) : 현재 파일 내에서만 마킹이 가능 • (명령라인) marks : 마킹 정보확인

  16. VIM – 유용한 기능 • 파일 탐색 기능 • (명령라인) 20vs ./ : 디렉토리 명으로 파일을 열게 되면 해당 디렉토리에 있는 파일들이 브라우징 됨. 커서를 움직여서 선택하면 해당 파일이 열린다. • 빠른 괄호 이동 및 빠른 탐색 • 복잡한 if 나 while문이 중첩 되어 있을 경우 {}의 범위를 알아보기 쉽지 않다. 이때 • {,} 기호 에서 (표준) % : 쌍을 이루는 {,} 로 커서가 이동 된다. • 찾으려는 문자열에서 (표준) *, # : 빠른 문자열 검색 기능

  17. VIM – 유용한 기능 • 폴딩 기능 • 함수가 많은 경우 함수를 접어 보기 편하게 해주는 기능 • 함수 시작 부분에 있는 { 위에 커서를 두고 • (표준) v]}zf : 함수를 접는다. • 혹은, 함수를 블록으로 잡고 (표준) zf • 키가 복잡 하므로, vimrc파일에 다음과 같은 내용을 추가해 단축 키를 지정 한다. • map <F1> v]}zf • (표준) zo : 커서 위치의 접힌 부분을 편다. • map <F2> zo

  18. VIM에서 바로 man page 활용 • 현재 커서에 있는 함수의 man page를 보고 싶을 경우 ,ma를 누르면 man page를 나타 내도록 설정. • vimrc파일에 추가. func! Man() let sm = expand("<cword>") exe "!man -S 2:3:4:5:6:7:8:9:tcl:n:1:p:o ".sm endfunc nmap ,ma :call Man()<cr><cr>

  19. ctags • 프로그래밍소스 코드에서 태그(전역변수,함수 정의, 매크로 선언)들의 데이터 베이스파일(tags 파일)을 생성하는 유닉스 명령. • 특정 심볼을 찾고자 할 때 이용 • Assembler, ASP, Awk, C, C++, BETA, Cobol, Eiffel, Fortran, Java, Lisp, Lua, Make, Pascal, Perl, PHP, PL/SQL, Python, REXX, Ruby, Scheme, Shell scripts, S-Lang, Tcl, Vera, Verilog, Vim, YACC/Bison 등을 지원

  20. ctags - 사용법 • 분석할 소스의 가장 최 상위 디렉토리에서$ ctags –R • vim 에서 tags 파일 설정 • (명령라인) set tags=./tags • (명령라인) set tags=./tags, /usr/include/tags • vimrc파일에 설정해도 무관.

  21. ctags - 사용법 • ctags명령어 요약 • :ta [태그] or ctrl + ] : [tag]가 정의된 위치를 나열하고 선택한 위치로 점프. 현재 위치는 스택에push • po orctrl + t : 스택top에 저장된 위치로pop하고 그 위치로 점프 • sts[태그] or stj [태그] : tag가 정의된 위치를 나열하고 선택한 위치로 수평분할 창에 표시.

More Related