안녕하세요?

 

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 6475
977 세미나 비용 관련 내용입니다. [23] 백창우 2008.04.07 5725
976 Tmax라는 회사에서 OS를 만들었다네요. [2] 백창우 2008.03.25 5721
975 세미나 공지 [28] 백창우 2007.04.04 5678
974 처음가입했습니다. ㅋㅋㅋ [2] 최정호 2010.11.16 5581
973 SVN 서버가 이상합니다. [3] 김기태 2008.01.13 5557
972 제가 드디어 결혼합니다~ ^^ 많이많이 오세요 [3] file 지현구 2008.04.18 5491
971 [스터디제안:Business Model Development] (평일) [13] Jason 2012.03.08 5489
970 GCC 세미나 관련해서 [3] 송형주 2009.04.01 5482
969 창우씨가 아프시데요~~ [8] 김기오 2008.02.24 5451
968 멤버조사 [4] 백창우 2008.07.23 5451
967 linux <x86> 스터디..내일 참석 못할것같습니다.. June 2012.04.06 5447
966 주변에 웹 디자인 & 프로그램 할수 있는 사람 있다면 추천 부탁드립니다. [1] 백창우 2008.05.30 5426
965 IT 전문가를 위한 클라우드 컴퓨팅! 9월 29일, TechNet 세미나에서 확인하십시오! 이주혁 2010.09.14 5388
964 [질문] 블록디바이스를 open하고 write할때의 버퍼링 여부 [2] 김강년 2007.03.29 5366
963 가입인사입니다. OFF모임에 질문도 있구요. [3] 피승현 2010.09.14 5358
962 요즘 고민이 많습니다. 조언 부탁드려도 될까요? [10] 김기오 2008.04.22 5346
961 [구인] 한국과학기술연구원에서 SW 연구개발 인재를 모집합니다. 김수현2 2012.04.08 5331
960 svn 서버에 접속이 되지 않습니다 [1] 지현구 2007.07.21 5323
959 리눅스 커널의 메모리 관리 부분 문서입니다. [2] 김기오 2007.03.02 5318
958 다음과 같은 주제에 대해서 각자 얼마만큼 이해하고 있는지 궁금합니다. [18] 백창우 2008.02.28 5316
XE Login