Attesor: 리눅스 VM을 위한 AI 기반 Rosetta 2 역공학

Attesor는 Apple의 Rosetta 2 바이너리 번역 시스템에 초점을 맞춘 역공학 프로젝트를 담은 GitHub 저장소입니다. 이 프로젝트는 Rosetta 2가 어떻게 x86_64 애플리케이션이 ARM64 Apple Silicon 하드웨어에서 실행되도록 하는지 이해하고 문서화하는 것을 목표로 하며, Linux 가상화에 잠재적인 영향을 미칠 수 있습니다.
프로젝트 배경
이 프로젝트는 Apple의 아키텍처 전환을 문서화합니다: 1994년 (Motorola 68000에서 PowerPC로), 2006년 (PowerPC에서 Intel x86_64로), 그리고 2020년 (Intel x86_64에서 Apple Silicon ARM64로). Rosetta 2는 Intel Mac에서 PowerPC 애플리케이션을 가능하게 했던 원본 Rosetta (2006-2011)에 이은 Apple의 3세대 바이너리 번역 솔루션입니다.
Rosetta 2 아키텍처
소스 자료에 따르면, Rosetta 2는 x86_64 사용자 애플리케이션과 ARM64 macOS 커널 사이의 번역 계층으로 작동합니다. 아키텍처는 다음을 포함합니다:
- 번역기 (AOT/JIT): 사전 번역과 즉시 번역을 모두 처리
- 런타임 라이브러리: 런타임 지원 기능 제공
- 시스템 호출 번역: x86_64 시스템 호출을 ARM64 동등한 것으로 변환
주요 기술
- 사전 번역 (AOT): 설치 시 x86_64 바이너리를 ARM64로 번역하여 번역된 코드를 캐시에 저장
- 즉시 번역 (JIT): 실행 중 요청 시 코드 블록을 번역하여 동적으로 로드된 코드 처리
- 명령어 집합 번역: x86_64를 ARM64 명령어로, SSE/AVX를 NEON 벡터 명령어로, x86_64 플래그를 ARM64 조건 코드로 매핑
- 시스템 호출 번역: 시스템 호출 경계를 넘나드는 다른 호출 규칙과 레지스터 상태 관리
구현 세부사항
Rosetta 2는 /Library/Apple/usr/libexec/oah/에 위치합니다 (여기서 "oah"는 "Old Architecture Hardware"를 의미하며), 다음을 포함합니다:
rosetta- 주요 번역기 바이너리rosettad- Rosetta 데몬librosetta.*- 런타임 라이브러리
Apple Silicon Mac에서 Rosetta 2는 기본적으로 설치되지 않습니다. 설치는 Intel 애플리케이션의 첫 실행 프롬프트 또는 명령줄에서 softwareupdate --install-rosetta를 통해 트리거됩니다.
프로젝트 구조
저장소는 다음을 포함한 여러 파일을 담고 있습니다:
ExportDecomp.java및export_decomp.py- 내보내기 및 디컴파일용rosetta_decomp.c및rosettad_decomp.c- 디컴파일된 구성 요소용rosetta_function_map.h및 다양한 리팩토링된 C 파일rosetta.TODO.md- 남은 작업 문서화
이 프로젝트는 Rosetta 2의 내부 구조를 문서화하는 지속적인 노력을 나타내며, 이는 Linux 가상화 환경을 위한 유사한 번역 계층 개발에 정보를 제공할 수 있습니다.
📖 전체 소스 읽기: HN AI Agents
👀 See Also

Windows 시스템 트레이 앱 - Claude API 실시간 사용량 모니터링
한 개발자가 Claude API 할당량 사용량을 실시간으로 표시하는 경량 Windows 트레이 애플리케이션을 만들었습니다. 이 앱은 5시간 및 7일 창, 오늘의 토큰 수, 소진 예측을 포함하며 한국어, 영어, 중국어, 일본어 UI를 지원하고 GitHub에서 오픈 소스로 제공됩니다.

ESP32 기반 모치 봇과 함께하는 3D 프린팅 클로드 마스코트
한 개발자가 클로드 코드 마스코트에서 영감을 받은 물리적 3D 클로드를 제작했으며, ESP32로 구동되는 모치 봇에 작은 디스플레이가 포함되어 있습니다. 파일과 코드는 MakerWorld와 GitHub에서 확인할 수 있습니다.

Claude Code v2.1.90은 CLAUDE_CODE_NO_FLICKER 플래그로 마우스 지원을 추가합니다.
Anthropic이 Claude Code v2.1.90을 출시하며 채팅 인터페이스에서 마우스 지원을 가능하게 하는 새로운 기능을 추가했습니다. 사용자는 claude를 실행하기 전에 CLAUDE_CODE_NO_FLICKER=1 환경 변수를 설정하여 이 기능을 활성화할 수 있습니다.

Utilyze: 실제 컴퓨터 처리량을 측정하는 오픈소스 GPU 모니터, 커널 활동만 측정하지 않음
Utilyze는 하드웨어 성능 카운터를 샘플링하여 이론적 한계 대비 연산 및 메모리 처리량을 보고하며, 100% 사용률을 보여주는 대시보드가 실제로는 1-10%의 실제 처리량만 가지고 있을 수 있음을 밝혀냅니다.