이 ν¬μŠ€νŒ…μ€ 쿠팑 νŒŒνŠΈλ„ˆμŠ€ ν™œλ™μ˜ μΌν™˜μœΌλ‘œ, 이에 λ”°λ₯Έ μΌμ •μ•‘μ˜ 수수료λ₯Ό μ œκ³΅λ°›μ„ 수 μžˆμŠ΅λ‹ˆλ‹€.

λ°˜μ‘ν˜•

μž„λ² λ””λ“œ μ‹œμŠ€ν…œ μ—”μ§€λ‹ˆμ–΄λ₯Ό μœ„ν•œ λ¦¬λˆ…μŠ€ 컀널 뢄석

λ‚¨μƒκ·œ

http://ruby.medison.co.kr/~halite
μ„ μž„ 연ꡬ원
(μ£Ό)λ©”λ””μŠ¨
초음파 μ—°κ΅¬μ†Œ

halite (at) medison.com

$Date: 2002/05/21 01:10:08 $

 

이 λ¬Έμ„œλŠ” λ¦¬λˆ…μŠ€ 컀널을 μž„λ² λ””λ“œ μ‹œμŠ€ν…œμ— ν¬νŒ…ν•˜λ €λŠ” μ—”μ§€λ‹ˆμ–΄λ“€μ„ μœ„ν•œ κΈ°λ³Έ 지식 μŠ΅λ“μ„ μœ„ν•΄ λ§Œλ“€μ–΄μ‘Œλ‹€. λ¦¬λˆ…μŠ€ 컀널 자체의 원둠적인 것 λ³΄λ‹€λŠ” μž„λ² λ””λ“œ μ‹œμŠ€ν…œμ— λ¦¬λˆ…μŠ€ 컀널을 ν¬νŒ…ν•  λ•Œ μ—”μ§€λ‹ˆμ–΄κ°€ λ¦¬λˆ…μŠ€ 컀널에 μ‰½κ²Œ μ ‘κ·Όν•˜κΈ° μœ„ν•œ μ •λ³΄λ‚˜ ν˜Ήμ€ 방법을 μ œκ³΅ν•˜λŠ” 것이 λͺ©μ μ΄λ‹€. κ·ΈλŸ¬λ―€λ‘œ OS에 λŒ€ν•œ 이둠 λ³΄λ‹€λŠ” OSκ°€ λ§Œλ“€μ–΄μ§€λŠ” λ°©λ²•μ΄λ‚˜ λΆ€νŒ…λ˜λŠ” μˆœμ„œ λ©”λͺ¨λ¦¬μ— 적재되고 μ‹€ν–‰λ˜λŠ” μˆœμ„œ 등에 λŒ€ν•΄ κΈ°μˆ ν•˜κ³  λ”λΆˆμ–΄ 컀널을 λ§Œλ“€κΈ° μœ„ν•΄ ν•„μš”ν•œ λ„κ΅¬λ“€μ˜ μ‚¬μš©λ²•μ— λŒ€ν•΄ μ•Œμ•„λ³Έλ‹€.

원문은 http://ruby.medison.co.kr/~halite μ—μžˆκ³  κ°€μž₯ λ¨Όμ € μ—…λ°μ΄νŠΈλ  것이닀.

ν‹€λ¦° λ‚΄μš©μ΄ μžˆμ„ μˆ˜λ„ μžˆλ‹€. 이런 것에 λŒ€ν•΄μ„   μœΌλ‘œ 연락 λ°”λž€λ‹€.

 

$Revision: 1.13 $

μ°¨λ‘€
1. λ¦¬λˆ…μŠ€ 컀널 μ»΄νŒŒμΌν•˜κΈ°
1.1. λ¦¬λˆ…μŠ€ 일반
1.1.1. μ™œ λ¦¬λˆ…μŠ€μΈκ°€?
1.1.2. λ¦¬λˆ…μŠ€ μ†ŒμŠ€ 디렉토리 ꡬ쑰
1.2. LXR
1.3. μ†ŒμŠ€ μ½”λ“œ μ–»κΈ°
1.4. μ†ŒμŠ€ μ½”λ“œ ν’€κΈ°
1.5. μ»΄νŒŒμΌ μ€€λΉ„
1.6. μ»€λ„ μ„€μ •
1.7. μ»€λ„ 컴파일
1.8. μ»€λ„ ν…ŒμŠ€νŠΈ 및 μ„€μΉ˜
2. Makefile 뢄석
2.1. λΆ€νŒ… κ³Όμ •μ˜ 이해[1]
2.2. μ»€λ„ 이미지 파일의 ꡬ쑰
2.2.1. μ»€λ„μ˜ λΆ€νŒ…
2.2.2. zimage와 bzImage의 차이
2.3. bzimageκ°€ λ§Œλ“€μ–΄μ§€λŠ” κ³Όμ • 좔적-Makefile 뢄석
2.3.1. $(topDIR)/Makefile
2.3.2. $(topDIR)/arch/i386/Makefile
2.3.3. $(topDIR)/arch/i386/boot/Makefile
2.3.4. $(topDIR)/arch/i386/boot/compressed/Makefile
2.3.5. $(topDIR)/arch/i386/boot/tools/build.c
2.4. bzImageκ°€ λ§Œλ“€μ–΄μ§€λŠ” κ³Όμ • 좔적-Log 뢄석
2.4.1. make bzImage μˆœμ„œ 정리
2.4.2. Log
2.5. λ‹¨κ³„별 μžμ„Έν•œ 뢄석
2.5.1. -Ttext 0x0의 의미
2.5.2. λΆ„석
3. ν¬λ‘œμŠ€ 컴파일러 λ§Œλ“€κΈ°
3.1. ν¬λ‘œμŠ€?
3.2. νˆ΄μ²΄μΈ
3.2.1. λ°°κ²½
3.2.2. λ―Έλ¦¬ λ§Œλ“€μ–΄μ§„ 툴체인
3.2.3. νˆ΄μ²΄μΈ λ§Œλ“€κΈ°
4. ARM λ¦¬λˆ…μŠ€
4.1. ARM ν”„λ‘œμ„Έμ„œ MMU(Memory Management Unit)
4.1.1. κ°œμš”
4.1.1.1. TLB
4.1.1.2. λ©”λͺ¨λ¦¬ μ ‘κ·Ό
4.1.1.3. λ³€ν™˜ ν…Œμ΄λΈ”
4.1.1.4. λ„메인
4.1.2. λ³€ν™˜ 절차
4.1.3. λ³€ν™˜ ν…Œμ΄λΈ” 베이슀
4.1.4. 1레벨 읽기
4.1.5. 1레벨 λ””μŠ€ν¬λ¦½ν„°
4.1.6. μ„Ήμ…˜ λ””μŠ€ν¬λ¦½ν„°μ™€ μ„Ήμ…˜ λ³€ν™˜
4.1.7. νŽ˜μ΄μ§€ ν…Œμ΄λΈ” λ””μŠ€ν¬λ¦½ν„°
4.1.8. 2레벨 λ””μŠ€ν¬λ¦½ν„°
4.1.9. ν° νŽ˜μ΄μ§€ λ³€ν™˜
4.1.10. μž‘은 νŽ˜μ΄μ§€ λ³€ν™˜
4.1.11. μΊμ‹œμ™€ μ“°κΈ° 버퍼 μ œμ–΄
4.1.12. μ ‘κ·Ό κΆŒν•œ
4.2. Assabet λ³΄λ“œμš© 컀널 컴파일
4.3. ARM λ¦¬λˆ…μŠ€ Makefile 뢄석
4.3.1. $(TOPDIR)/arch/arm/Makefile
4.3.2. $(TOPDIR)/arch/arm/vmlinux.lds
4.3.3. $(TOPDIR)/arch/arm/boot/compressed/vmlinux.lds
4.3.4. Log 뢄석
4.4. μ†ŒμŠ€ 뢄석
4.4.1. arch/arm/boot/compressed/head.S
4.4.2. arch/arm/kernel/head-armv.S
5. λ¦¬λˆ…μŠ€ 컀널 λΆ€νŒ…
5.1. μ»€λ„ μ‹œμž‘
5.2. lock_kernel()
5.2.1. Lock이 μ™œ ν•„μš”ν•˜μ§€?
5.2.2. Lock - 기초적 μ„€λͺ…
5.2.3. i386, ARM의 μŠ€ν•€λ½
5.3. setup_arch()
5.4. trap_init()
5.5. init_IRQ()
5.6. sched_init()
5.7. init()
5.8. dmesg 정리
6. λ””λ°”μ΄μŠ€ λ“œλΌμ΄λ²„
6.1. λ””λ°”μ΄μŠ€ 번호
6.2. μƒ˜ν”Œ λ””λ°”μ΄μŠ€ λ“œλΌμ΄λ²„
6.3. λͺ¨λ“ˆ λ™μž‘μ˜ 이해
6.4. μ•Œμ•„μ•Όν•  것 λ“€
A. SEGA DreamCast Linux
A.1. LinuxSH
A.2. λ“œλ¦ΌμΊμŠ€νŠΈμ—μ„œ λ¦¬λˆ…μŠ€ μ‹€ν–‰ν•΄ 보기
B. λ¦¬λˆ…μŠ€μ— μ‹œμŠ€ν…œ 콜 λ§Œλ“€μ–΄ λ„£κΈ°
B.1. μ‹œμŠ€ν…œ 콜의 흐름
B.2. IDT(Interrupt Descriptor Table)
B.3. μ‹œμŠ€ν…œ 콜 ν…Œμ΄λΈ”
B.4. μ‹œμŠ€ν…œ 콜 μΆ”κ°€
C. Inline Assembly
C.1. μΈλΌμΈ μ–΄μ…ˆλΈ”λ¦¬ 기초
C.1.1. μ•Œμ•„μ•Όν•  것 λ“€
C.1.2. μ–΄μ…ˆλΈ”리
C.1.3. Output/Input
C.1.3.1. Constraints
C.1.3.2. Modifier
C.1.3.3. ARM Family Constraints
C.1.3.4. i386 Family Constraints
C.2. μ‚¬λ‘€ 뢄석
C.2.1. strcpy()
C.2.2. _set_gate()
λ°˜μ‘ν˜•

+ Recent posts