
MIPSel Architecture
MIPSel은 MIPS(Microprocessor without Interlocked Pipeline Stages) 아키텍처의 리틀 엔디안(Little-Endian) 버전을 의미합니다. MIPS는 RISC(Reduced Instruction Set Computing) 기반의 CPU 아키텍처로, 임베디드 시스템, 네트워크 장비, IoT 기기 등에서 널리 사용됩니다.
특징
리틀 엔디안(Little-Endian)
- 데이터를 저장할 때 **낮은 바이트(LSB, Least Significant Byte)**부터 메모리에 저장합니다.
- 예: 0x12345678은 메모리에 78 56 34 12로 저장됩니다.
- 이는 빅 엔디안(Big-Endian)과 반대 방식입니다.
RISC 아키텍처
- 단순하고 고정된 길이의 명령어 세트를 사용합니다.
- 파이프라이닝(Pipelining)을 효율적으로 활용해 높은 성능을 제공합니다.
Musl Library
Musl은 표준 C 라이브러리(Standard C Library)의 한 종류로, 가볍고 빠르며 표준 준수에 중점을 둔 라이브러리입니다. 주로 임베디드 시스템, 리눅스 배포판, 컨테이너 환경에서 사용됩니다.
특징
경량성
- 기존 GNU C 라이브러리(glibc)에 비해 훨씬 작은 크기와 메모리 사용량을 자랑합니다.
- 임베디드 시스템과 같이 자원이 제한된 환경에 적합합니다.
표준 준수
- POSIX 표준을 엄격히 준수하며, 호환성이 뛰어납니다.
- C11 표준을 완벽히 지원합니다.
성능
- 간결한 설계로 인해 빠른 실행 속도를 제공합니다.
- 특히 작은 프로그램에서 두드러지는 성능 향상을 보입니다.
MIPSel + Musl
MIPSel 아키텍처 + Musl 라이브러리는 임베디드 시스템에서 매우 효율적인 조합입니다. MIPSel의 경량 RISC 아키텍처와 Musl의 가벼운 라이브러리가 결합되어, 제한된 자원 환경에서도 높은 성능을 발휘합니다.
Debugging with MIPSel + Musl Env
git clone https://github.com/richfelker/musl-cross-make
cd musl-cross-make
# 설정 파일 생성
cat > config.mak <<EOF
TARGET = mipsel-linux-musl
OUTPUT = /opt/musl-cross
EOF
# 빌드 및 설치
make -j$(nproc)
sudo make install
export PATH="/opt/musl-cross/bin:$PATH"
MIPSel, Musl 기반 파일 시스템이 존재한다는 환경이 아닌 경우, 위 명령어를 실행하여 Root FS를 /opt/musl-cross 경로에 만들어 주어야 합니다.
sudo apt update
sudo apt-get install qemu-user-static gdb-multiarch
패키지 설치
qemu-mipsel -g 1234 -L [Root FS 경로] [디버깅하고자 하는 파일]
qemu 에뮬레이팅 환경에서 파일 실행
gdb-multiarch [디버깅하고자 하는 파일]
(gdb) set sysroot [Root FS 경로]
(gdb) target remote localhost:1234
qemu 환경에 접속하여 디버깅 수행


링커의 수행 문제로 $PC가 이상한 곳을 가리킬 수 있음. 이러한 경우 vmmap, 디스어셈블러 등을 활용해 PC를 원래 위치로 돌려주어야 합니다.
'석정원' 카테고리의 다른 글
| 공유기 파괴일지 (0) | 2025.01.29 |
|---|---|
| squashFS 구조 (0) | 2024.12.09 |
| 펌웨어 취약점 분석 with EMBA (0) | 2024.11.11 |

stellarflare 님의 블로그 입니다.
포스팅이 좋았다면 "좋아요❤️" 또는 "구독👍🏻" 해주세요!