안녕하세요?

 

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 881
공지 [공지] IAMROOT 18차 커널 스터디 오리엔테이션 안내 [마감] [2] 문c(문영일) 2021.05.17 1249
공지 커널 스터디를 위한 문c 가이드입니다. [10] 문c(문영일) 2021.04.27 6472
1057 IBM POWER6 서버에 리눅스 설치할 기회가 생겼네요. ㅎㅎ [1] 정필섭 2011.03.22 7187
1056 Understanding the Linux Virtual Memory Manager [1] 백창우 2008.04.07 7161
1055 정규 스터디 모집 공고를 하려고 합니다. [8] 백창우 2010.03.11 7151
1054 안녕하세요!! [9] 안종현 2011.07.04 7146
1053 GCC 2차 세미나 공지 [7] 백창우 2009.04.14 7111
1052 전쟁 날 것 같네요. [2] 맥주 2010.11.23 7056
1051 세미나비 관련 논의 [6] 백창우 2009.04.01 7056
1050 혹시 파이썬 관심있으신분~ [2] 박은병 2010.11.29 7029
1049 아나토미 저자 김태연님께 받은 편지 [4] 백창우 2012.05.01 6961
1048 북한이 12월에 경기도를 공격한다네요.. [2] 김영일 2010.12.02 6957
1047 그렇게 안드로이드는 망했습니다. [3] 정현철 2011.08.15 6922
1046 [KVM STUDY] JAVA BYTE CODE 분석 [4] 이수연 2008.05.24 6893
1045 "리눅스 커널의 이해" 정독 스터디 [3] 백창우 2008.01.09 6879
1044 이번에는 세미나 주최 안하시나요^^ ?? [3] 박은병 2010.03.23 6856
1043 다들 모기를 어떻게 대처하십니까? [9] 정현철 2011.07.09 6832
1042 게시판권한 [1] 김창록 2009.04.01 6792
1041 이거 진짜 대박인데요. [2] 백창우 2009.03.10 6785
1040 앱빠로서 가슴이 아프네요. [3] 정현철 2011.10.06 6754
1039 인터넷의 미래를 좀 엿볼수 있는거 같네요 이상철 2010.05.18 6750
1038 GCC 세미나 공지 [55] 백창우 2009.03.08 6704
XE Login