6. Raspberry Pi

6์žฅ Raspberry Pi ๊ฐœ์š”

Raspberry Pi๋Š” Broadcom SoC ๊ธฐ๋ฐ˜์˜ ์ €๊ฐ€/์ €์ „๋ ฅ ์‹ฑ๊ธ€๋ณด๋“œ ์ปดํ“จํ„ฐ๋กœ, ์ž„๋ฒ ๋””๋“œ ์‹œ์Šคํ…œ ๊ต์œก ๋ฐ ํ”„๋กœํ† ํƒ€์ดํ•‘์— ๋„๋ฆฌ ์“ฐ์ธ๋‹ค. ARM ์•„ํ‚คํ…์ฒ˜, Linux OS, shell command, file system, process ๊ด€๋ฆฌ๊นŒ์ง€ ์‹ค์Šต ์ค‘์‹ฌ์œผ๋กœ ๋‹ค๋ฃฌ๋‹ค.

Raspberry Pi Technical Specs

  • APU: Broadcom BCM2711 ๊ธฐ๋ฐ˜ SoC
  • Cache coherency ์œ ์ง€ (controller ์‚ฌ์šฉ)
  • Multi-core (4 core) โ€” ARM Cortex-A72 ๊ณ„์—ด
  • GPU, GPIO, UART, SPI, I2C ๋“ฑ peripheral ๋‚ด์žฅ

L1 Cache

  • 2-way set-associative instruction cache (โ†’ Temporal locality?)
  • 4-way set-associative data cache (โ†’ Temporal locality?)
  • Line size ๋ณดํ†ต 64B

Per Partition Size

ARM big.LITTLE ๊ตฌ์กฐ์—์„œ๋Š” partition ๋ณ„๋กœ pipeline/cache ์„ค์ •์ด ๋‹ค๋ฆ„. ๊ฐ ์ฝ”์–ด๋Š” pipeline ๊นŠ์ด์— ๋”ฐ๋ผ ์†๋„/์ „๋ ฅ์ด ๋‹ค๋ฅด๊ฒŒ ์„ค๊ณ„.

L2 Cache

  • 512KB, 1MB, 2MB, 4MB ๊ณ„์—ด ์ค‘ ์„ ํƒ
  • N-way set-associative data & instruction cache
  • Software programmable (shared cache, replacement policy ์กฐ์ • ๊ฐ€๋Šฅ)

ARM vs x86

  • Broadcom BCM2711 SoC โ€” ARM Architecture (ARM v7/v8)
  • CISC Architecture (Complex Instruction Set Computer): high performance
  • ํ•œ instruction์— ๋งŽ์€ ์ผ์„ ์ˆ˜ํ–‰ ๊ฐ€๋Šฅ (multi-cycle)
  • Intel, AMD, x86 ๊ณ„์—ด
  • RISC Architecture (Reduced Instruction Set Computer): low power
  • ๋‹จ์ˆœํ•œ instruction, pipeline ํšจ์œจ โ†‘
  • ARM, ARM v7, ARM v8

โ†’ Raspberry Pi๋Š” ARM Cortex-A ๊ณ„์—ด โ†’ RISC ๊ธฐ๋ฐ˜.

Raspberry Pi Spec ๋ฐ ARM vs x86

Windows vs Linux

  • Windows: MS Windows, Apple macOS โ†’ closed source
  • Linux (Raspbian, etc.): ๋ฆฌ๋ˆ…์Šค ์ปค๋„ ๊ธฐ๋ฐ˜, open source
  • Rasbian, Ubuntu Mate, Arch Linux, Kali Linux ๋“ฑ ์ฃผ์š” distro

Linux Basic โ€” Shell Command

Prompt

pi@raspberry:~ $
  • pi: username
  • raspberry: hostname
  • ~: ํ˜„์žฌ ๋””๋ ‰ํ† ๋ฆฌ (home directory)
  • $: user mode (root๋Š” #)

์ฃผ์š” ๋ช…๋ น์–ด

  • pwd: (print working directory) ํ˜„์žฌ dir ํ‘œ์‹œ
  • ls: list โ€” ํ˜„์žฌ dir์˜ ํŒŒ์ผ/ํด๋” ๋ชฉ๋ก
  • cd: change directory
  • cd /etc โ€” ์ ˆ๋Œ€๊ฒฝ๋กœ
  • cd ~ โ€” home
  • cd .. โ€” parent directory
  • cd - โ€” ์ด์ „ ๋””๋ ‰ํ† ๋ฆฌ
  • mkdir: make directory โ€” ๋นˆ folder ์ƒ์„ฑ
  • rmdir: remove directory โ€” ๋นˆ folder ์‚ญ์ œ
  • rm: ํŒŒ์ผ/๋””๋ ‰ํ† ๋ฆฌ ์‚ญ์ œ
  • rm -r (recursive)
  • rm -f (force, no prompt)
  • cp: copy
  • mv: move/rename
  • clear: clear screen (Ctrl+L)

Windows/Linux ๋ฐ ๊ธฐ๋ณธ ๋ช…๋ น์–ด

Linux Basic โ€” File Commands

  • head: ํŒŒ์ผ์˜ ์ฒ˜์Œ๋ถ€ํ„ฐ 10์ค„ ํ™”๋ฉด์— ์ถœ๋ ฅ. head -5 science.txt๋Š” 5์ค„ ์ถœ๋ ฅ
  • tail: ํŒŒ์ผ์˜ ๋์—์„œ๋ถ€ํ„ฐ 10์ค„ ํ™”๋ฉด์— ์ถœ๋ ฅ
  • cat (concatenate): ํŒŒ์ผ์˜ ๋‚ด์šฉ์„ ํ™”๋ฉด์— ๋ณด์—ฌ์คŒ
  • cat name.txt / cat name1.txt name2.txt (๋‘ ํŒŒ์ผ ์—ฐ๊ฒฐ ๋ณด๊ธฐ)
  • cat name.txt name2.txt > name3.txt โ€” name3์— ์ถ”๊ฐ€ (ํŒŒ์ผ ํ•ฉ์น  ๋•Œ ์‚ฌ์šฉ)
  • less: ํŒŒ์ผ์„ ์—ฐ ๋’ค /์„ ์ด์šฉํ•ด ๋‹จ์–ด ์ฐพ์Œ โ†’ ํ•˜์ด๋ผ์ดํŠธ ์ฒ˜๋ฆฌ. n ๋‹ค์Œ์œผ๋กœ ์ด๋™
  • sort: ์•ŒํŒŒ๋ฒณ, ์ˆซ์ž ์ •๋ ฌ

Pipe

์ „ ๋ช…๋ น์˜ output์„ ๋‹ค์Œ ๋ช…๋ น์˜ input์œผ๋กœ ์“ธ ๋•Œ ์‚ฌ์šฉ (๊ฐ„๋‹จํ•˜๊ณ  ๋น ๋ฅด๊ฒŒ ์ˆ˜ํ–‰).

  • who: ๋ฆฌ๋ˆ…์Šค์— ๋กœ๊ทธ์ธํ•œ ๊ณ„์ •์ด ๋ณด์ž„
  • who > names.txt: names ํŒŒ์ผ๋กœ ๋กœ๊ทธ์ธํ•œ ๊ณ„์ •์„ ์ถœ๋ ฅ
  • sort < names.txt: names ํŒŒ์ผ์„ ์ฝ์–ด์„œ ์•ŒํŒŒ๋ฒณ์ˆœ ์ •๋ ฌ (input์„ file๋กœ ๋ฐ›๊ฒ ๋‹ค๋Š” ์˜๋ฏธ)

โ‡’ pipe๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ํ•˜๋‚˜๋กœ ์‚ฌ์šฉ ๊ฐ€๋Šฅ

  • who | sort: who์˜ stdout์„ sort๊ฐ€ ๋ฐ›์•„์„œ ๊ณ„์ •์„ ์•ŒํŒŒ๋ฒณ์ˆœ์œผ๋กœ ์ •๋ ฌ
  • who | wc -l: ๊ณ„์ •์˜ line ์ˆ˜๋ฅผ ์•Œ๋ ค์คŒ
  • ls -la | less: ๋ชจ๋“  ํŒŒ์ผ์„ less๋ฅผ ํ†ตํ•ด ๋ณผ ์ˆ˜ ์žˆ์Œ

Redirection

Linux ๋ช…๋ น์— ์˜ํ•œ ๋งŽ์€ ํ”„๋กœ์„ธ์„œ๋“ค์˜ ๊ฒฐ๊ณผ๋ฅผ:

  • Standard output์œผ๋กœ ๋‚ด๋ณด๋‚ด๋Š” ๊ฒƒ (๋Œ€๋ถ€๋ถ„์˜ system์—์„œ terminal screen์„ ์˜๋ฏธ)
  • Standard input์œผ๋กœ ๋ฐ›๋Š” ๊ฒƒ (๋Œ€๋ถ€๋ถ„ ํ‚ค๋ณด๋“œ)

โ†’ Input๊ณผ output์˜ ๋ณ„๋„์˜ ์„ค์ •์„ ํ•˜์ง€ ์•Š์œผ๋ฉด standard input/output ์‚ฌ์šฉ.

์˜ˆ: cat์— Ctrl+D๋กœ ์ข…๋ฃŒ.

ํŒŒ์ผ ๋ช…๋ น์–ด, Pipe, Redirection

Wildcard

ํŠน์ • ๋ช…๋ น์–ด์˜ ์ธ์ž๋กœ ํŒŒ์ผ ์ด๋ฆ„์„ ๋„˜๊ธธ ๋•Œ, ํŒจํ„ด ๋งค์นญ์„ ํ™œ์šฉ:

  • *: 0๊ฐœ ์ด์ƒ์˜ ๋ฌธ์ž
  • ?: ํ•œ ๊ฐœ ๋ฌธ์ž
  • [abc]: a ๋˜๋Š” b ๋˜๋Š” c
  • [!abc]: a, b, c๊ฐ€ ์•„๋‹Œ ๊ฒƒ

File System Security

chmod / ๊ถŒํ•œ

Unix์˜ ํŒŒ์ผ ๊ถŒํ•œ์€ owner, group, other์— ๋Œ€ํ•œ rwx (read, write, execute).

-rwxr-xr-- 1 pi pi 1234 ...
 โ”‚โ””โ”ฌโ”˜โ””โ”ฌโ”˜โ””โ”ฌโ”˜
 โ”‚ โ”‚  โ”‚  โ”” other์˜ ๊ถŒํ•œ (r--)
 โ”‚ โ”‚  โ””โ”€โ”€ group์˜ ๊ถŒํ•œ (r-x)
 โ”‚ โ””โ”€โ”€โ”€โ”€โ”€ owner์˜ ๊ถŒํ•œ (rwx)
 โ””โ”€ ํŒŒ์ผ type (- <mark class="highlight"><strong><u> regular file, d </u></strong></mark> directory)

chmod ์ˆซ์ž ๋ฐฉ์‹

  • 4: read (r)
  • 2: write (w)
  • 1: execute (x)
  • 7 = rwx

์˜ˆ: chmod 755 file โ†’ owner=rwx, group=rx, other=rx.

Changing a File's Mode

  • chmod (change mode)
  • chown (change owner)
  • chgrp (change group)

Wildcard ๋ฐ File System Security

Processes and Jobs

Processes

  • Foreground: ํ˜„์žฌ ์‹คํ–‰ ์ค‘์ด๋ฉฐ ์‚ฌ์šฉ์ž ์ž…๋ ฅ์„ ๋ฐ›๋Š” process (prompt๋ฅผ ์ ์œ )
  • Background: &๋กœ ์‹คํ–‰, prompt ๋ฐ˜ํ™˜ ํ›„ ๋ฐฑ๊ทธ๋ผ์šด๋“œ์—์„œ ๊ณ„์† ์‹คํ–‰
  • Suspended: ์ผ์‹œ ์ •์ง€๋จ (Ctrl+Z)

Job ๊ด€๋ จ ๋ช…๋ น

  • &: ๋ช…๋ น ๋’ค์— &๋ฅผ ๋ถ™์—ฌ backgroud๋กœ ์‹คํ–‰
  • ps: ํ˜„์žฌ ์‹คํ–‰ ์ค‘์ธ process ๋ชฉ๋ก
  • jobs: ํ˜„์žฌ background/suspended job ๋ชฉ๋ก
  • fg %n: job n๋ฒˆ์„ foreground๋กœ
  • bg %n: job n๋ฒˆ์„ background๋กœ
  • kill %n / kill PID: job/process ์ข…๋ฃŒ

Signals

  • Ctrl+C: SIGINT (interrupt) โ€” foreground process ์ข…๋ฃŒ
  • Ctrl+Z: SIGTSTP (suspend)

Killing a Process

  • kill PID: SIGTERM (์ •์ƒ ์ข…๋ฃŒ ์š”์ฒญ)
  • kill -9 PID: SIGKILL (๊ฐ•์ œ ์ข…๋ฃŒ)

Processes ๋ฐ Jobs

File System ์ข…๋ฅ˜

  • ext2: ๊ธฐ๋ณธ Linux filesystem
  • ext3/ext4: journaling ์ง€์›, ํ˜„๋Œ€ ํ‘œ์ค€
  • NTFS: Windows native
  • FAT32/exFAT: ํ˜ธํ™˜์„ฑ, USB
  • btrfs, xfs: ๊ณ ๊ธ‰ ๊ธฐ๋Šฅ

File Types

  • Regular file
  • Directory
  • Symbolic link
  • Block/character device
  • Socket / pipe

sudo ๊ถŒํ•œ

  • sudo: ์ผ์‹œ์ ์œผ๋กœ superuser ๊ถŒํ•œ ํš๋“
  • su: switch user
  • /etc/sudoers ํŒŒ์ผ๋กœ sudo ๊ถŒํ•œ ๊ด€๋ฆฌ

Account

  • /etc/passwd: ์‚ฌ์šฉ์ž ์ •๋ณด
  • /etc/shadow: ์•”ํ˜ธ hash
  • /etc/group: group ์ •๋ณด

File System ๋ฐ Account

File System Layout

Logical Layout

  • /: root
  • /home/<username>: ์‚ฌ์šฉ์ž ํ™ˆ ๋””๋ ‰ํ† ๋ฆฌ
  • /etc: ์„ค์ • ํŒŒ์ผ
  • /var: ๋กœ๊ทธ, ๊ฐ€๋ณ€ ๋ฐ์ดํ„ฐ
  • /usr: ์‘์šฉ ํ”„๋กœ๊ทธ๋žจ, ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ
  • /bin, /sbin: ํ•„์ˆ˜ ์‹คํ–‰ ํŒŒ์ผ
  • /dev: ๋””๋ฐ”์ด์Šค ํŒŒ์ผ
  • /proc, /sys: ๊ฐ€์ƒ ํŒŒ์ผ์‹œ์Šคํ…œ (์ปค๋„ ์ •๋ณด)
  • /mnt, /media: ๋งˆ์šดํŠธ ์ง€์ 

Physical Layout

  • Boot partition: FAT, kernel ์ด๋ฏธ์ง€, boot loader โ†’ Raspberry Pi์—์„œ๋Š” ํ•„์ˆ˜
  • Root partition: ext4 (๋Œ€๋ถ€๋ถ„์˜ ์‹œ์Šคํ…œ ํŒŒ์ผ)
  • Swap partition: Swap ์˜์—ญ (๋ณด์กฐ ๋ฉ”๋ชจ๋ฆฌ)

Installing/Uninstalling Software

Raspberry Pi package manager: apt (Advanced Package Tool).

  • apt-get install <package>: install
  • apt-get update: package ๋ชฉ๋ก update
  • apt-get upgrade: ์„ค์น˜๋œ package upgrade
  • apt-get remove <package>: uninstall
  • apt-get purge <package>: ์„ค์ • ํŒŒ์ผ๊นŒ์ง€ ์ œ๊ฑฐ
  • dpkg -i <file>.deb: ๋กœ์ปฌ .deb ํŒŒ์ผ ์„ค์น˜

File System Layout ๋ฐ Package ๊ด€๋ฆฌ

๋น„์Šทํ•œ ๊ธ€ ์ถ”์ฒœ

Comments (0)

No comments yet. Be the first to comment!