Linux Kernel โ€“ 2 Kernel vendor, architecture ๐Ÿง 

2025-05-15

Linux Kernel โ€“ 2 Kernel vendor, architecture ๐Ÿง 

Linux Kernel โ€“ 2 Kernel vendor, architecture ๐Ÿง  Vendor๋ณ„ ์ปค๋„ ๊ด€์  CPU ํ•ต์‹ฌ ๊ตฌ์„ฑ ์š”์†Œ๋ณ„ ์—ญํ•  ๋ฐ์ดํ„ฐ ์ „์†ก ํ๋ฆ„ (๋น„ํŠธ ๋‹จ์œ„) ์ฃผ์š” ์•„ํ‚คํ…์ฒ˜๋ณ„ ๋น„ํŠธ ๊ตฌ์กฐ ๋น„๊ต CPU, SoC, ๋ณด๋“œ ๋ฒค๋”๋ณ„ ํ•˜๋“œ์›จ์–ด ๊ตฌ์กฐ ์ฐจ์ด๋ฅผ ์ปค๋„ ๊ด€์ ์—์„œ ์„ค๋ช… ๊ฐ ์•„ํ‚คํ…์ฒ˜์˜ ๋น„ํŠธ ๊ตฌ์กฐ์™€ ๋ฐ์ดํ„ฐ ์ฒ˜๋ฆฌ ํ๋ฆ„์„ ์ค‘์‹ฌ์œผ๋กœ ์ •๋ฆฌ Vendor๋ณ„ ์ปค๋„ ๊ด€

Linux Kernel โ€“ 2 Kernel vendor, architecture ๐Ÿง 

CPU, SoC, ๋ณด๋“œ ๋ฒค๋”๋ณ„ ํ•˜๋“œ์›จ์–ด ๊ตฌ์กฐ ์ฐจ์ด๋ฅผ ์ปค๋„ ๊ด€์ ์—์„œ ์„ค๋ช…

๊ฐ ์•„ํ‚คํ…์ฒ˜์˜ ๋น„ํŠธ ๊ตฌ์กฐ์™€ ๋ฐ์ดํ„ฐ ์ฒ˜๋ฆฌ ํ๋ฆ„์„ ์ค‘์‹ฌ์œผ๋กœ ์ •๋ฆฌ

Vendor๋ณ„ ์ปค๋„ ๊ด€์ 

CPU Vendor

์ค‘์•™์ฒ˜๋ฆฌ์žฅ์น˜(CPU)๋ฅผ ์„ค๊ณ„ ๋ฐ ์ œ์กฐํ•˜๋Š” ์—…์ฒด, ๋ช…๋ น์–ด ์ง‘ํ•ฉ(ISA), ์•„ํ‚คํ…์ฒ˜ ์„ค๊ณ„ ๋ฐ ์„ฑ๋Šฅ ์ตœ์ ํ™” ์—ญํ• 

๋Œ€ํ‘œ ๊ธฐ์—… : Intel, AMD, ARM, Apple ๊ฐ€ ์žˆ๋‹ค.

์ปค๋„์€ ํ•ด๋‹น CPU์˜ ๋ช…๋ น์–ด ์ง‘ํ•ฉ(์˜ˆ: x86, ARM64 ๋“ฑ)์— ๋งž์ถฐ ๋นŒ๋“œ

System on Chip Vendor

ํ•˜๋‚˜์˜ ์นฉ ์•ˆ์— CPU, GPU, ๋ฉ”๋ชจ๋ฆฌ ์ปจํŠธ๋กค๋Ÿฌ, I/O ๋“ฑ์„ ํ†ตํ•ฉ ์„ค๊ณ„ ๋ฐ ์ œ์กฐ ์—…์ฒด

๋ชจ๋ฐ”์ผ ๋ฐ ์ž„๋ฒ ๋””๋“œ ์žฅ์น˜์šฉ ๊ณ ์ง‘์  ํ”„๋กœ์„ธ์„œ ์ œ๊ณต

๋Œ€ํ‘œ ๊ธฐ์—… : Qualcomm, MediaTek, Samsung, Apple, NXP

SoC ๋ฒค๋”๋Š” ๊ฐ SoC์— ๋งž๋Š” ๋””๋ฐ”์ด์Šค ํŠธ๋ฆฌ(Device Tree), ๋“œ๋ผ์ด๋ฒ„๋ฅผ ์ œ๊ณตํ•จ

Board Vendor

SoC๊ฐ€ ํƒ‘์žฌ๋œ ์‹ค์ œ ํ•˜๋“œ์›จ์–ด ๋ณด๋“œ๋ฅผ ์„ค๊ณ„ ๋ฐ ์ƒ์‚ฐํ•˜๋Š” ์—…์ฒด

์ „์› ์„ค๊ณ„, ์ธํ„ฐํŽ˜์ด์Šค ํšŒ๋กœ, I/O ํฌํŠธ ๋ฐฐ์น˜ ๋“ฑ ํ•˜๋“œ์›จ์–ด ๊ตฌํ˜„

๋Œ€ํ‘œ ๊ธฐ์—… : Raspberry Pi Foundation, Hardkernel (Odroid), NVIDIA (Jetson), FriendlyARM

๋ณด๋“œ๋ณ„ ๋ถ€ํŠธ๋กœ๋” ์„ค์ •, ๋””๋ฐ”์ด์Šค ํŠธ๋ฆฌ ํŒŒ์ผ, ๋ณด๋“œ ์ดˆ๊ธฐํ™” ์ฝ”๋“œ๊ฐ€ ํฌํ•จ๋˜์–ด์•ผ ์ •์ƒ ๋ถ€ํŒ… ๊ฐ€๋Šฅ

CPU ํ•ต์‹ฌ ๊ตฌ์„ฑ ์š”์†Œ๋ณ„ ์—ญํ• 

๊ตฌ์„ฑ ์š”์†Œ์—ญํ• 
ALU (์‚ฐ์ˆ  ๋…ผ๋ฆฌ ์—ฐ์‚ฐ ์žฅ์น˜)๋ง์…ˆ, ๋บ„์…ˆ, ๋…ผ๋ฆฌ ์—ฐ์‚ฐ ๋“ฑ ์ˆ˜ํ–‰
๋ ˆ์ง€์Šคํ„ฐCPU ๋‚ด๋ถ€์˜ ๊ณ ์† ์ž„์‹œ ์ €์žฅ์†Œ
๋ฉ”๋ชจ๋ฆฌ (RAM)์‹คํ–‰ ์ค‘์ธ ํ”„๋กœ๊ทธ๋žจ ๋ฐ ๋ฐ์ดํ„ฐ ์ €์žฅ์†Œ

๋ฐ์ดํ„ฐ ์ „์†ก ํ๋ฆ„ (๋น„ํŠธ ๋‹จ์œ„)

1. ๋ฉ”๋ชจ๋ฆฌ โ†’ ๋ ˆ์ง€์Šคํ„ฐ

ํ”„๋กœ๊ทธ๋žจ ์‹คํ–‰ ์‹œ, **๋ฉ”๋ชจ๋ฆฌ(RAM)**์— ์ €์žฅ๋œ ๋ฐ์ดํ„ฐ๋ฅผ CPU๊ฐ€ ์ฝ์–ด์˜ฌ ๋•Œ,

๋ฉ”๋ชจ๋ฆฌ ๋ฒ„์Šค๋ฅผ ํ†ตํ•ด ๋ฐ์ดํ„ฐ๊ฐ€ ๋ ˆ์ง€์Šคํ„ฐ๋กœ ์ „์†ก๋จ

์˜ˆ: LOAD R1, โ†’ ์ฃผ์†Œ 0x1000์˜ ๊ฐ’์„ ๋ ˆ์ง€์Šคํ„ฐ R1์— 32๋น„ํŠธ ๋˜๋Š” 64๋น„ํŠธ ๋‹จ์œ„๋กœ ๋กœ๋“œ

2. ๋ ˆ์ง€์Šคํ„ฐ โ†” ALU

์—ฐ์‚ฐ ์ˆ˜ํ–‰ ์‹œ, ๋ ˆ์ง€์Šคํ„ฐ์— ์ €์žฅ๋œ ๊ฐ’๋“ค์ด ALU๋กœ ์ „๋‹ฌ๋˜์–ด ๊ณ„์‚ฐ๋จ

๊ณ„์‚ฐ๋œ ๊ฒฐ๊ณผ๋Š” ๋‹ค์‹œ ๋ ˆ์ง€์Šคํ„ฐ์— ์ €์žฅ

code snippet
์˜ˆ : R1 = 5 R2 = 3 ALU: R1 + R2 โ†’ R3 = 8

3. ๋ ˆ์ง€์Šคํ„ฐ โ†’ ๋ฉ”๋ชจ๋ฆฌ

๊ณ„์‚ฐ ๊ฒฐ๊ณผ๋ฅผ ๋‹ค์‹œ ๋ฉ”๋ชจ๋ฆฌ์— ์ €์žฅํ•  ๋•Œ ์‚ฌ์šฉ

์˜ˆ: STORE R3, โ†’ R3์˜ ๊ฐ’์„ ์ฃผ์†Œ 0x2000์— ์ €์žฅ

* ์ „์†ก๋˜๋Š” ๋ชจ๋“  ๋ฐ์ดํ„ฐ๋Š” CPU์˜ ๋น„ํŠธ ์ˆ˜๋งŒํผ ๋‚˜๋‰˜์–ด ์ฒ˜๋ฆฌ๋จ

* (์˜ˆ: 64๋น„ํŠธ CPU์—์„œ๋Š” ํ•œ ๋ฒˆ์— 64๋น„ํŠธ = 8๋ฐ”์ดํŠธ ์ „์†ก ๊ฐ€๋Šฅ)

CPU ๋ฒ„์Šค

๋ฒ„์Šค ์ข…๋ฅ˜์„ค๋ช…
๋ฐ์ดํ„ฐ ๋ฒ„์Šค์‹ค์ œ ๋ฐ์ดํ„ฐ ์ „๋‹ฌ (32๋น„ํŠธ ๋˜๋Š” 64๋น„ํŠธ ๋‹จ์œ„)
์ฃผ์†Œ ๋ฒ„์Šค๋ฉ”๋ชจ๋ฆฌ ์ฃผ์†Œ ์ง€์ •
์ œ์–ด ๋ฒ„์Šค์ฝ๊ธฐ/์“ฐ๊ธฐ ๋“ฑ ์ œ์–ด ์‹ ํ˜ธ ์ „๋‹ฌ

๋ฐ์ดํ„ฐ ์ „์†ก ๊ณผ์ • ์ •๋ฆฌ

code snippet
๋ฉ”๋ชจ๋ฆฌ โ†“ (LOAD) โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ–บ R1 (๋ ˆ์ง€์Šคํ„ฐ) ๋ ˆ์ง€์Šคํ„ฐ ๊ฐ„ ์—ฐ์‚ฐ R1 + R2 โ”€โ”€โ”€โ”€โ–บ ALU โ”€โ”€โ”€โ”€โ–บ R3 R3 ๊ฒฐ๊ณผ ์ €์žฅ R3 โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ–บ (๋ฉ”๋ชจ๋ฆฌ) (STORE)

์ฃผ์š” ์•„ํ‚คํ…์ฒ˜๋ณ„ ๋น„ํŠธ ๊ตฌ์กฐ ๋น„๊ต

์œ„์—์„œ ์„ค๋ช…ํ•œ ๋‚ด์šฉ์„ ๊ธฐ์ค€์œผ๋กœ ์ฃผ์š” ์•„ํ‚คํ…์ฒ˜๋ณ„ ๋น„ํŠธ ๊ตฌ์กฐ๋ฅผ ๋น„๊ตํ•˜์ž๋ฉด ์•„๋ž˜์™€ ๊ฐ™๋‹ค.

์•„ํ‚คํ…์ฒ˜๋น„ํŠธ ๊ตฌ์กฐํŠน์ง•
ARMv732๋น„ํŠธ๋ฉ”๋ชจ๋ฆฌ ์ ‘๊ทผ 4GB ์ œํ•œ, ์ €์ „๋ ฅ ์ค‘์‹ฌ
ARMv864๋น„ํŠธAArch64 ๋ชจ๋“œ์—์„œ 64๋น„ํŠธ ์—ฐ์‚ฐ ๋ฐ ์ฃผ์†Œ ์ง€์ • ๊ฐ€๋Šฅ
x8632๋น„ํŠธ์ „ํ†ต์ ์ธ PC ๊ตฌ์กฐ, ๋ฉ”๋ชจ๋ฆฌ ์ตœ๋Œ€ 4GB ์ œํ•œ
x86-64 (AMD64)64๋น„ํŠธAMD๊ฐ€ ์ œ์•ˆ, 64๋น„ํŠธ ์—ฐ์‚ฐ๊ณผ ๋Œ€์šฉ๋Ÿ‰ ๋ฉ”๋ชจ๋ฆฌ ์ง€์›
PowerPC32๋น„ํŠธ โ†’ 64๋น„ํŠธ ํ™•์žฅIBM์˜ ๊ณ ์„ฑ๋Šฅ ์„œ๋ฒ„ ๋ฐ ์ฝ˜์†”์šฉ
Athlon์ดˆ๊ธฐ 32๋น„ํŠธ โ†’ Athlon 64์—์„œ 64๋น„ํŠธx86 ํ˜ธํ™˜, AMD64 ๊ตฌ์กฐ์˜ ์‹œ์ž‘์ 

Related Posts

Linux Kernel โ€“ 4 Kernel system configuration๐Ÿง 
blog

Linux Kernel โ€“ 4 Kernel system configuration๐Ÿง 

Linux Kernel โ€“ 4 Kernel system configuration๐Ÿง  ๋ผ์ฆˆ๋ฒ ๋ฆฌํŒŒ์ด์—์„œ ์ปค๋„ ๊ฐœ๋ฐœ ๋˜๋Š” ์ปดํŒŒ์ผ์— ํ•„์š”ํ•œ ์‹œ์Šคํ…œ ์ •๋ณด๋ฅผ ํ™•์ธํ•˜๊ธฐ ์œ„ํ•œ ๋ช…๋ น์–ด ํ™•์ธ ์ปค๋„ ๋ฒ„์ „ ํ™•์ธ root@raspberrypi:/home/jinho# uname -r 6.12.25+rpt-rpi-v8 ์ „์ฒด ์ปค๋„ ์ •๋ณด (์ปดํŒŒ์ผ๋Ÿฌ ํฌํ•จ) root@raspberrypi:/
#ARMv8#DeviceTree#KernelDevelopment#system configuration
2025-05-22
Linux Kernel โ€“ 3 System Call Flows and Kernel Component Differences by Architecture๐Ÿง 
blog

Linux Kernel โ€“ 3 System Call Flows and Kernel Component Differences by Architecture๐Ÿง 

Linux Kernel โ€“ 3 System Call Flows and Kernel Component Differences by Architecture๐Ÿง  ์•„ํ‚คํ…์ฒ˜๋ณ„ ์‹œ์Šคํ…œ ์ฝœ ํ๋ฆ„๊ณผ ์ปค๋„ ๋ณ€๊ฒฝ ์ปดํฌ๋„ŒํŠธ ์•„ํ‚คํ…์ฒ˜๋ณ„ ์‹œ์Šคํ…œ ์ฝœ ํ๋ฆ„ ๋น„๊ต ์•„ํ‚คํ…์ฒ˜๊ฐ€ ๋‹ฌ๋ผ์ง€๋ฉด ์ปค๋„ ๋‚ด๋ถ€์—์„œ ์•„ํ‚คํ…์ฒ˜ ์˜์กด์„ฑ์ด ๊ฐ•ํ•œ ๋ถ€๋ถ„๋“ค์ด ์ง์ ‘์ ์œผ๋กœ ์˜ํ–ฅ์„ ๋ฐ›๋Š”๋‹ค. ํŠนํžˆ ์‹œ์Šคํ…œ ์ฝœ๊ณผ ์˜ˆ์™ธ ์ฒ˜๋ฆฌ, ์ปจ
#ArchitectureSpecificCode#ARMv8#DeviceTree#KernelDevelopment+1
2025-05-15