안녕하세요?

 

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 883
공지 [공지] IAMROOT 18차 커널 스터디 오리엔테이션 안내 [마감] [2] 문c(문영일) 2021.05.17 1250
공지 커널 스터디를 위한 문c 가이드입니다. [10] 문c(문영일) 2021.04.27 6479
1197 OS 만들기 스터디 그룹 책 입니다. file 이준 2012.04.08 25505
1196 오늘 가입했습니다. [2] 최성환 2012.12.31 22487
1195 [fastboot] 리눅스를 0.3초안에 부팅시키네요 헐헐 김윤기 2011.04.29 17686
1194 [Microsoft] Keynote 스피커 공개 ! Techdays Korea 2014 ! 하요미89 2014.09.11 17472
1193 FPGA 스터디 [6] 이일렬 2006.06.12 16297
1192 GCC, KERNEL, Virtualization 스터디 멤버 모집합니다.(안드로이드 커널 분석 추가) [23] 원민수 2009.04.27 15595
1191 여기는 자유로운 주제로 이야기 나누는 곳입니다. [5] 백창우 2006.06.06 15436
1190 WIKI <-> 게시판 링크 테스트입니다. 권기봉 2010.04.06 15063
1189 컴파일러 세미나와 관련하여. [10] 백창우 2006.06.28 14973
1188 드뎌 안드로이드 눈 띄웠네요...ㅡ,.ㅡ;;; [2] 김영일 2011.04.26 14469
1187 건국대 강의실 [4] 백창우 2010.04.07 14334
1186 첫 모임에 참석을 하지 못했는데요. [1] 김상우 2010.04.07 14175
1185 Quake 2 on 웹 브라우저 [8] 박은병 2010.04.13 13959
1184 [멤버 모집] Book 스터디 함께 하실분 구합니다. [21] 백창우 2010.02.28 13944
1183 라즈베리 파이 국내 판매 [7] 오시리스 2012.09.18 13916
1182 LiMo가 개발 중단? [4] 백창우 2010.04.06 13517
1181 스터디 참여 원합니다. [1] 김성중 2010.04.06 13264
1180 barrier() 넌 누구냐 ^^ 이일렬 2006.10.12 13097
1179 공부해보고 싶은 CPU네요... [2] 이일렬 2006.07.14 12911
1178 MP-SoC 첫 모임. [5] 백창우 2010.04.02 12589
XE Login