2014년 5월 10일 토요일

[Linux Kernel] 53주차(2014.05.10) 후기

일시 : 2014.05.10 (53주차)

모임명 : NAVER개발자커뮤니티지원_IAMROOT.ORG_10차ARM-C

장소 : 토즈 타워점

장소지원 : NAVER 개발자 커뮤니티 지원 프로그램

참여인원 : 4명

스터디 진도 :

  • 지난 스터디에 이어서 mem_init()을 계속 분석합니다.
  • start_kernel()-> mm_init()->kmem_cache_init()->create_boot_cache() 분석중
  • kmem_cache_init()이 분석 중이어서 이번 후기는 내용이 짧습니다.
    • 내용이 복잡해서 slub()이 끝나는 시점에서 내용 정리를 함께 다시 하기로 했습니다.
    • 자세한 후기도 그때 다시 정리하려고 합니다.

스터디 주요 내용

  • buddy할당자에 이어서 kmem 할당자 (Slub)을 분석중입니다.
  • mem_init()->kmem_cache_init()->create_boot_cache()->kmem_cache_create()
    ->kmem_cache_open()->init_kmem_cache_nodes->early_kmem_cache_node_alloc()
    ->new_slab()->allocate_slab()->alloc_slab_page()->alloc_pages_exact_node()
    ->
    alloc_pages()->__alloc_pages_nodemask();
  • 커널 버전을 3.13.11로 바꿨습니다. 괴도키드님께서 머지를 해주셨습니다.

linux_stable 사용

  • git 저장소에서 연휴전에 이야기 되었던 소스를 ubuntu 14.04 LTS에서 사용 하는 3.13.x로 바꿨습니다. ubuntu 14.04 LTS는 2019년까지 지원합니다. 따라서 스터디가 끝나도 오랜 동안 사용할 수 있다는 점을 함께 고려했습니다.
  • 괴도 키드님이 연휴 기간 중에 머지 작업을 진행해서 새로운 저장소에 올려 놓았습니다.
  • 기존 : ver. 3.11. 1 , 저장소 arm10c/linux
  • 수정 : ver. 3.13.11 , 저장소 arm10c/linux_stable
    • checkout을 사용해서 master 를 사용하면 3.13.11이 됩니다.
    • checkout으로 study-3.11.1 을 사용하면 기존 스더디 내용이 것이 된다.
    • 즉 우리는 이제부터 저장소로 arm10c/linux_stable 을 사용합니다.
  • tags와 branch의 차이점
    • tags 는 리눅스 버전이 올라갈 때마다 태그가 추가된다. 쉽게 이야기 하면 어느 시점에서 릴리즈 한 것이라고 보면 됩니다.
    • branch 는 계속 바뀔 수 있는 것입니다. 자신의 로컬에서 브랜치를 만들어 작업하고 이것을 반영하려면 머지 명령으로 병합합니다.

merge 방법

  1. 우선 기존에 모든 branch를 가져오자.
    git fetch -u origin +refs/heads/:refs/heads/
  2. 우리가 스터디 한 것으로 checkout해서 이동하자.
    git checkout study-3.11.1
  3. 우리가 스터디 한 3.11.1이 맞게 되어있는지 확인해 보자
    git log
  4. git checkout master
  • 3.13.11 로 스터디를 계속 해 보자.

branch를 만들어 보자.

  • 3.13.y 로 체크아웃하자.
    git checkout linux-3.13.y
  • merge_test라는 이름으로 브랜치를 만든자.
    git branch merge_test
  • 브랜치가 생겼는지 확인
    git branch -v
  • merge_test로 이동.
    git checkout merge_test
  • 자동 머지가 되는 것이 있고, 충돌난 부분이 있다.
    git merge study-3.11.1
  • 충돌난 부분(빨간색으로 된 부분)이 나타난다.
    git status
  • 충돌난 파일들을 열어서 수정한다.
    vim Makefile
    emacs Makefile
  • 수정한 충돌난 부분을 새로 브렌치에 넣어 준다.
    git add Makefile

자기 repo것을 수정해보자.

  • 원격지 repo를 확인해 본다.
    git remote -v
  • 원격지 repo에 my_repo의 repo주소를 추가한다.
    git remote add my_repo 리포주소
  • 원격지 repo가 맞게 되었는지 확인해 본다.
    git remote -v
  • 메인으로 이동하고,
    git checkout master
  • 주석을 확인
    git log
  • review 브랜치를 새로 만든다.
    git branch review
  • review 브렌치로 이동한다.
    git checkout review
  • 주석을 확인
    git log
  • my_reporo/review 브랜치를 가져온다.
    git pull my_repo review
  • 맞게 되었는지 주석을 확인
    git log

vm_stat[?]

  • vm_stat[0] : number of free pags 수
  • vm_stat1 : batch, chunk size for buddy add/remove

댓글 없음:

댓글 쓰기