x86 ud2 명령은 왜 '2'인가: 0F FF가 ud0, 0F B9가 ud1로 소급 명명된 사연

x86 ud2 명령은 왜 '2'인가: 0F FF가 ud0, 0F B9가 ud1로 소급 명명된 사연

  • ud2는 x86에서 아키텍처적으로 정의되지 않은 명령이며 실행하면 반드시 invalid opcode 예외가 발생함. 컴파일러는 도달 불가능한 코드 표시용으로 이를 넣는데, 예컨대 [[noreturn]] 함수가 반환하면 호출 뒤에 ud2를 배치해 다음 함수로 흘러가는 대신 크래시시킴
  • 원래 x86에는 공식 undefined 명령이 없어서 사람들이 직접 바이트열을 찾아 썼고, 0F FF를 쓰는 쪽과 0F B9를 쓰는 쪽 두 파벌이 생김. 두 시퀀스 모두 invalid opcode 예외를 올렸음
  • 인텔이 다음 프로세서에서 0F FF의 동작을 바꾸자 이를 의존하던 프로그램이 깨졌고, 관찰 가능한 모든 동작은 누군가 의존하게 된다는 Hyrum의 법칙 사례가 됨
  • 인텔이 공식 명령을 만들면서 0F FF는 ud0, 0F B9는 ud1로 소급 명명했고 ud2가 권장 undefined opcode로 남음. ud2는 파라미터 없는 2바이트라 디코드만 되고 쓰이지 않는 소스와 데스티네이션을 다룰 필요가 없음
  • ud0와 ud1은 파라미터를 쓰지 않아도 디코드는 되므로, 명령 디코딩이 not-present 페이지를 넘어가면 invalid opcode가 아니라 access violation이 발생함. 일부 구형 프로세서는 0F FF를 디코드하자마자 예외를 올려 페이지 끝에 걸친 경우 동작이 일관되지 않았음

Hacker News 의견들

x86 잘 모르는데 다른 아키텍처처럼 소프트웨어 인터럽트로 예외 못 올리나? 그런 기능이 있었는데 용도가 부족했던 건가

x86에도 INT Ib, INT1, INT3, INTO, BOUND 같은 게 있음

그건 사실상 관례 문제임. INT6 핸들러를 부르려면 그 핸들러가 기대하는 플래그와 레지스터를 코드로 채워야 하는데, 실제로 invalid opcode 예외를 터뜨리면 그 값들이 자동으로 채워짐

지금은 UD0 UD1 UD2가 SDM과 APM에 공식으로 들어 있음. 64비트 모드용 1바이트짜리 UDB(D6)도 x86-64에 오면서 생겼고, 예전부터 있던 UDW(FF FF)는 group #5에 modrm이 mod=11b r/m=111b /7 reg=111b인 형태라 메모리가 전부 1로 세팅되거나 버스가 1로 종단된 경우에 중요함

이거 그냥 추측 아님? 근거 있는 거야?

명령 동작 자체는 문서화돼 있고, 과거에 다른 invalid 명령을 같은 목적으로 쓴 역사도 잘 알려져 있음. 짧게 검색해선 인텔 공식 문서가 안 나오지만 이 사람이 그동안 써온 걸 보면 순수한 추측은 아닐 듯. 어차피 이 사람 추측이 다른 사람 확실한 사실보다 믿을 만함

첫 하드디스크 드라이브 문자가 C인 이유랑 같은 맥락임. A는 3.5인치, B는 5.25인치, C가 하드디스크

0F FF가 #1, 0F B9가 #2가 될 줄 알았는데 인텔이 0부터 세는 바람에 ud가 세 개가 된 게 읽으면서 좀 놀라웠음

기사는 읽고 댓글 단 거 맞음?

결국 0F FF 신도들이 UD0라는 영광을 받아서 진짜 원조 invalid opcode가 됐고, 0F B9 쪽은 UD1이라는 굴욕을 안게 된 셈

해커뉴스
PyO3로 파이썬 안에서 Rust 돌리기: 경계를 넘는 비용은 파싱보다 크다StarTalk 특별편에 Jaron Lanier 출연: AI는 독립된 존재가 아니라 사람이라는 주장, 해커뉴스는 AI 탓이 책임 회피라는 논쟁숀 캐럴 '우주의 가장 큰 아이디어' 풀 인터뷰, 빅씽크가 1시간 26분 영상으로 공개브라이언 캔트릴, "10년 내 AI가 인류 멸종시킬 확률 10% 이상" 주장에 두려움의 전염성이라 반박Julia 1.13 공개: 패키지 사전컴파일 30% 단축, 시작 속도 20% 개선케임브리지 애널리티카 소송 문서 공개: 2017년 주커버그가 내부에 "그들이 실제로 뭘 했는지 설명해 달라"고 물었다FTC, GM에 5년간 고객 데이터 판매 금지 … 급가속·야간운전 기록이 보험료로 돌아온 구조클로드 Fable 5.1, 370년 미해결 Urquhart 암호 Cyphral Distich를 44분에 해독Tesla의 pool-ntp.tesla.com CNAME 때문에 NTP Pool 자원봉사자 서버가 Assetnote 익스플로잇 스캔 8,000건을 맞음구글 자체 Gemini는 '부적합' 판정한 가짜 iOS 경고 광고, 구글 심사는 두 번 승인사라진 PC 키보드 기호들: ⇧ ↵ ⇥ 화살표 넷만 살아남고 Print Screen·Insert·key beep 아이콘은 사라짐Rust와 Tokio로 다시 구현한 사용자 공간 AppleTalk 스택 TailTalk, 커널 지원 제거에 대응폴 그레이엄, 새 에세이에서 창업자에게 "이 회사를 더 강하게 만들려면?"을 묻으라고 조언데이비드 색스, OpenAI·Anthropic에 "규제 승인 없이 알아서 프론티어 속도 늦춰라"CUDA 앱을 AMD GPU에서 돌리는 Windows 저장소 공개, ZLUDA와 ROCm/HIP 조합으로 RX 9060 XT에서 검증태양 내부 '지문'으로 초기 태양이 초지구를 삼켰는지 확인 가능성 제기x86 ud2 명령은 왜 '2'인가: 0F FF가 ud0, 0F B9가 ud1로 소급 명명된 사연YC 개리 탄 "미국 오픈웨이트 랩도 프런티어 모델 증류해야 한다", 해커뉴스서 합법성·경제성 논쟁Egret GT 전동킥보드 리버싱: USB-C 핀에 숨은 CAN 버스와 Rust 펌웨어 재작성체스 평가에서 상대 엔진 소켓 악용... GPT-6-Astra는 10회 전부 치팅, Fable 5.1은 3회Homebrew 7.0.0 공개, 설치·업그레이드 속도 개선과 함께 macOS 10.15 지원 종료, 인텔 맥은 Tier 3로 전환홈랩에서 리제강 링 재현 시도, 발암성 시약 앞에서 좌초AI 정렬은 누구에게 맞추는가, 허용 가능한 지름길은 사람마다 다르다Claude Code·Codex·Cursor를 한 워크스페이스에, 에이전트 AI 연구용 IDE 'AgentsDock' 베타 공개WiFi 없는 Mitsubishi 에어컨을 ESPHome으로 Home Assistant에 붙인 삽질기OpenAI의 Navier-Stokes 해법에 수학자들 반박, 형식 증명이 이해는 아니다Armin Ronacher, Dario Amodei의 'Pacing the Frontier'에 반박: 오픈 웨이트가 곧 자동 페이싱시애틀 '임시 컴퓨터 박물관(ICM), 폴 앨런 컬렉션의 뒤를 잇다JetKVM Mini, $39 이더넷·$42 무선 모델 공개. ESP32-P4X 하나로 1080p 원격 KVM 구현벤지오, AI 에이전트가 거짓말하고 협력하는 이유를 훈련 구조에서 분석LuaLaTeX와 MetaPost로 20종의 고전 과학 논문 지면을 재현한 예제 모음Signal 자동 키 검증, Trail of Bits가 세 감사자 중 하나로 Merkle 트리 일관성 검증카맥, AI 시대 손코딩을 무술의 '-도'에 비유하며 '낡은 쿵푸 고수' 경계7G는 번호 경쟁이 아니라 6G로 풀 수 없는 문제에서만 정당화돼야 한다는 논문Bun의 24분 Zig 빌드와 5분 Rust 빌드 차이를 추적하려 만든 buildprofApple M3 Neural Engine, 1MiB 배수 가중치 전송에서 17-19GB/s로 급락2005년 애플 iPod 각인 미리보기, JPEG와 ImageMagick으로 실시간 구현비공개 기업 코드로 평가한 Real-SWE, Fable 5.1 해결률 38.8%LG, 스마트 TV ACR 데이터 수집 보도에 반박했다는 Gamers Nexus 영상고양이 귀와 은행 잔고를 내세워 'AI 개발 속도 조절' 요구를 풍자한 글Anthropic, 작은 트랜스포머의 인컨텍스트 학습을 설명하는 '인덕션 헤드' 제시8087 FSCALE는 140개 넘는 마이크로명령과 3단계 서브루틴 호출로 예외를 처리함Linux Zoom 7.1.5, X11 CLIPBOARD 변경 때마다 즉시 붙여넣기 요청2024 to 2026 WebAssembly 런타임 벤치마크, Wasmer 선두와 wide_arithmetic의 암호 연산 효과존 디어, 센서 케이블 연결로 자가 수리 서비스 시연했지만 농민은 구독·DRM에 반발Rust, 2년 넘게 미뤄진 never 타입 ! 안정화와 2024 에디션 추론 변경실제 Claude Code 추적 재현에서 agentic KV 캐시 정책 3종이 radix-leaf LRU에 모두 패배Android 16 NAT-T 유지 패킷이 Always-on VPN 잠금 밖으로 UDP/4500 전송JOSM 플러그인으로 OSM 첫 편집에서 상점 공식 웹사이트 태그 추가하기LG, 2억1600만 대 TV 감청 주장 부인하며 ACR은 오디오 지문 처리라고 설명엔비디아, 고객 칩 구매에 최대 $5000억 보증하며 AI 산업의 자금줄로 부상폴더블 웹 레이아웃용 CSS 뷰포트 세그먼트, Edge만 안정 지원iLands AI 에이전트가 프리랜서 기자에게 3일간 연구 대행 영업 메일을 12통 이상 발송발가락 목표점에서 시작하는 다리 IK와 런타임 발 고정 구현법1981년부터 현재까지 유즈넷 글을 검색하는 Usenet-Rewind, 구글 그룹스 대안으로 등장다리오 아모데이, AI 능력 향상 속도 늦추고 외부 검증 시간 확보하자 제안M1 애플 뉴럴 엔진, CNN용 데이터 흐름이 트랜스포머에 맞지 않았던 이유생성형 AI 없이도 C++ 게임 엔진을 만드는 이유: 재미와 학습을 위해 계속 만든다IKEA, 스카이림 무료 모드 'KALLAX STORAGEBORN' 공개안드로이드, VPN 차단을 켜도 권한 없는 앱이 UDP 4500 패킷으로 실제 IP 노출 가능오대호 철갑상어, 44년 포획 자료 분석에서 최대 400년 수명 가능성 제기Google DeepMind, 가능한 DNA 변이 90억 개를 매핑했다고 발표CCC의 Project Blinkenlights, 건물 외벽을 96×32픽셀 인터랙티브 화면으로 만든 기록Litelm, LiteLLM 기능을 덜어낸 경량 LLM 호출 호환층 공개Snap!, Scratch 확장에서 출발한 블록 언어로 일급 프로시저·연속성까지 지원CMI 나비에-스토크스 공지 페이지, 제공 본문에는 발표문 없이 2026년 뉴스 목록만 표시차빈 데 우안타르 뼈관 21점에서 담배와 빌카 환각성분 흔적 확인구글, 핀란드 AI 데이터센터에 130억 유로 투자하고 로비사 원전 전력 절반 22년 계약구글 검색, 결과 링크를 해독 불가한 google.com/goto 리디렉션으로 전환Rune, Go로 만든 네이티브 IDE를 GPLv3로 공개하고 기여자 수익 배분 제도 예고Brown 연구진, async/await 런타임 7종의 관찰 가능한 의미론을 9개 설계 축으로 분류141가지 신체 현상을 부위·유형별로 정리한 Show HN, 제작자는 AI 사용과 위키백과 출처 공개Tinybird 공동창업자, ClickHouse 18.4부터 6년간 페타바이트 클러스터 운영 경험 정리GrapheneOS, Jetpack Compose·Material 3로 다시 만든 Messages 13 공개MIT Logo 소개: 거북이 그래픽으로 배우는 Lisp 계열 언어의 대화형·확장형 설계구글 앱 광고 $220 집행 뒤, 청구 설치 56건 중 33건에서 봇팜 의심 패턴 발견EPA, 데이터센터 등 산업시설 대기오염 허가의 주민 통지·의견수렴 의무 폐지 추진조사팀, OpenAI 에이전트가 RubyGems에 2,480개 패키지를 올려 API 키 탈취를 시도했다고 주장필즈상 수상자 25명, AI의 수학 문제 풀이 경쟁이 인간의 이해와 전승을 해친다고 경고RTK, Terminal-Bench에서 DeepSeek 비용 평균 17% 증가Magit의 Git 워크트리 단축키와 AI 에이전트 병렬 작업 흐름 정리성과 없이 경쟁만 격화되는 상태를 뜻하는 중국어 '네이쥐안'IAEA가 설명한 체렌코프 복사, 물속 빛보다 빠른 하전 입자가 만드는 청색광웨이모식 편의가 연구 협업자를 LLM으로 대체한다는 주장HN 이용자들, AI 글 쏠림과 비AI 기술 글 노출 감소를 두고 필터·편집 필요성 논쟁Anthropic, Claude를 18세 이상 전용으로 전환하고 Yoti 연령 인증 도입같은 오픈 모델도 OpenRouter 공급자에 따라 도구 호출 점수가 20점 넘게 갈렸다ERSC, Git 프로토콜은 유지하고 자체 스토리지 엔진으로 차세대 VCS를 만들겠다고 주장구글, Alt+Space로 호출하는 Windows용 Gemini 데스크톱 앱 출시로컬 Qwen 27B에서 코딩 하네스 9종 비교, OpenCode 첫 응답 226초·Chad 26초90분 중강도 사이클링과 6회 30초 전력질주, 일부 심대사 바이오마커 변화가 비슷YuE2, 기호 악보를 먼저 만들고 보컬·반주로 렌더링하는 음악 생성 모델 공개System76, GPU 메모리 최대 192GB의 Thelio Mira AI 리눅스 워크스테이션 공개NTSB, 마이애미 767 활주로 이탈 사고서 158노트 접지 뒤 4초 만의 복행 중단 기록 공개라즈베리 파이 카메라가 pHash 서명을 이미지 워터마크에 숨겨 압축 뒤에도 촬영 증명을 남기는 오픈소스 프로젝트멕시코 16세 학생, 30Hz 음파로 촛불을 5-8초 만에 끈다는 소화기 제작Astra에 40억 토큰과 35시간을 맡긴 개발자, "가치 있는 결과물은 없었다"WebGPU 무한 셰이더가 macOS WindowServer를 멈춰 강제 재시작 유발Anthropic, 8개월간 Claude 악용 7개 분야 차단 사례 공개OpenAI, Codex 하네스를 세션·오케스트레이션·샌드박스까지 관리하는 Agents API로 공개
알림 5개
새 알림

내 알림

로그인하고 알림을 만들어 보시기 바랍니다.

전체 알림

AI video model releasesUser 6432 님Dune제욱 님AI제욱 님App Store 5.2.3주현 님해커뉴스성현 님