안녕하세요?

 

iamroot 커널 12차를 통해 스터디를 하였고, 스터디를 정리해 문c 블로그(jake.dothome.co.kr)에 올려놓고 있는 문영일입니다.

 

2015년 4월 25일 첫 모임을 가진 후 약 240명이 4개팀으로 분리되어 시작하였습니다. ARM 커널 4.x 코어 부분을 라인 바이 라인으로 스터디하는 것을 목표로 팀이 달려왔고, 중간에 탈퇴하는 인원들로 인해 스터디 인원을 보충하여 유지하기 위해 1년 즈음 지난 후에는 4개 팀 모두가 통합을 하였습니다. 스터디 기간은 처음 1년 6개월 ~ 2년을 목표로 계획하였었는데 깊게 공부를 하다보니 벌써 만 3년이 지났고, 마지막까지 남은 10명이 150주차(3/3)를 마지막으로 스터디를 완료하였습니다. 정말 인내가 대단하신 분들이라고 생각합니다. 사실 제 생각보다 더 많은 인원이 끈기를 가지고 살아남았습니다.

 

참고로 아래는 저희가 3년간 스터디하고 분석한 내용들의 제목입니다.

- - - - -    아    래   - - - - -

1. 메모리 관리

1) 동기화 오브젝트
   - barrier(volatile, smb, dsb, isb)
   - atomic operation (exclusive load & store)
   - spinlock
   - mutex (pi-boost)
   - seqlock
   - rcu (gp, qs, expedited, nocb, ...)

2) MMU
   - 캐시(i$, d$, tlb, vipt, pipt, bp, poc, pou, coherent)
   - 페이지 테이블(pgd, pud, pmd, pte)
   - 매핑(fixmap, kmap, vmap, vmemmap, ioremap, ...)

3) 커널 메모리 관리
   - memblock
   - page 할당자 (sparse, zone, memmap, zonelist, numa, buddy, pcp)
   - 페이지 회수 (watermark, lru, kswapd, compaction, reclaim)
   - slub, kmem-cache
   - kmalloc
   - vmalloc
   - cma
   - per-cpu

2. 태스크 스케줄 관리

1) 인터럽트
   - arm exception 벡터 & 핸들러
   - generic 인터럽트 핸들러 (vic, irq chip, irq domain)
   - ipi
   - bottom-half(softirq, workqueue)
   - mm fault 핸들러

2) 타이머 & 시간
   - timer(lowres), hrtimer
   - 클럭(ccf, clock source, clock event)
   - 스케줄 틱(sched tick, hrtick, jiffies, tick device, time-keeping, nohz)

3) 태스크 스케줄링
   - 단위(nice, priority, weight, vruntime, schedule entity, runqueue)
   - cpu-load, pelt
   - preemption
   - 그룹 스케줄링
   , 스케줄러(stop, dl, rt, cfs, idle)
   - 스케줄링 도메인
   - 로드밸런싱
   - fork & clone (pid, namespace)

3. 기타
   - control group
   - proc & sysfs 인터페이스
   - DTB
   - console & tty driver
   - 자료 구조(list, hlist, radix tree, rb tree, idr, bitmask, bitmap)    

*. 참고
   - 분석한 소스(커널 v4.0 기준) 위치: https://github.com/iamroot12a/kernel
   - 스터디 히스토리: https://github.com/iamroot12a/kernel/blob/master/README.md
 

(끝)

 

p.s: 마지막으로 이러한 스터디를 할 수 있도록 지원해준 iamroot의 백창우님과 Kosslab에 무한한 감사를 드립니다.

 

문영일 드림.

번호 제목 글쓴이 날짜 조회 수
공지 [공지] IAMROOT 19차 커널 스터디 오리엔테이션 (zoom 접속 안내) [5] 문c(문영일) 2022.05.07 882
공지 [공지] IAMROOT 18차 커널 스터디 오리엔테이션 안내 [마감] [2] 문c(문영일) 2021.05.17 1249
공지 커널 스터디를 위한 문c 가이드입니다. [10] 문c(문영일) 2021.04.27 6477
1037 새로운 서버가 설치 되었습니다. [14] 백창우 2008.01.16 6102
1036 위키 대문 페이지에서 각 기수별 페이지 임베드하도록 바꿨습니다. [2] 김기태 2008.01.20 5088
1035 서버 문제 [4] 백창우 2008.01.20 4445
1034 Intel VLIW Processor & Compiler 백창우 2008.01.20 7255
1033 패스워드 안바꾸신분. 백창우 2008.01.21 5258
1032 커널 정독 스터디.. [2] 박은병 2008.01.21 5273
1031 정독 스터디 논문 리뷰 [9] 백창우 2008.01.22 6016
1030 코딩 가이드 라인 [5] 백창우 2008.01.29 6634
1029 이번주 토요일 정독 스터디 참석 불가. [9] 백창우 2008.01.30 4441
1028 하드웨어 캐시 관련 문서 [1] 김기오 2008.01.30 5054
1027 스터디에 참여하고 싶습니다.. [3] 김현철 2008.01.31 5159
1026 xen 코드는 lxr에 못올리나요? [1] 김기오 2008.01.31 6390
1025 [공지] 이번주(2월 2일), 다음주(2월 9일) 정독 스터디 쉽니다. 백창우 2008.02.01 5147
1024 [논의사항] 1년에 1번 모집하는것이 가장 좋은 것일까요? [13] 백창우 2008.02.01 5111
1023 [논의사항2] 다음 세미나 주제 [21] 백창우 2008.02.01 5034
1022 세미나 참여 하고 싶습니다. [8] 전남재 2008.02.04 6473
1021 개인적으로 기다리던 기사가 떴네요. [1] 백창우 2008.02.05 5870
1020 IBM Cell SDK 3.0이 나왔습니다. 백창우 2008.02.14 6504
1019 [정독스터디] 내일 좀 늦을지도 모르겠습니다. 백창우 2008.02.16 5207
1018 안녕하세요. 구글 검색하다 들어오게 됐는데.. [2] 소두진 2008.02.19 5126
XE Login