홈으로 돌아가기

Linux에서 i486 제거: Molnar의 패치

Ingo Molnar가 Linux 커널에서 i486 프로세서 지원을 제거하는 패치를 공개했습니다. 이는 CX8와 TSC 에뮬레이터를 제외하여 코드 1만 4천 줄을 줄입니다. Linus Torvalds가 이니셔티브를 지지하며 이러한 CPU의 무관함을 지적했습니다. 임베디드 시스템과의 호환성은 유지됩니다.

Molnar의 Linux 커널에서 i486 제거 패치
Advertisement 728x90

리눅스 커널에서 i486 지원 제거: Molnar의 패치와 역사적 배경

리눅스 커널의 x86 아키텍처 유지보수자인 Ingo Molnar가 CONFIG_M486, CONFIG_M486SX, CONFIG_MELAN 옵션을 완전히 제거하는 패치를 준비했습니다. 이로 인해 현대적인 커널 빌드에서 486DX, 486SX, AMD ELAN 프로세서 지원이 제외됩니다.

지원 제거의 기술적 영향

i486 지원은 주요 명령어 에뮬레이션을 요구합니다: CX8 (64비트 원자 연산을 위한 cmpxchg8b)와 TSC (태스크 스케줄러를 위한 Time Stamp Counter). 이 코드는 커널 복잡성을 높이고, 디버깅을 어렵게 하며, 주기적으로 버그를 발생시킵니다.

이 레이어를 제거하면 코드베이스가 14,104줄 줄어듭니다. 특히:

Google AdInline article slot
  • CX8와 TSC 에뮬레이터가 사라집니다.
  • 486SX의 FPU를 위한 math-emu 라이브러리가 없어집니다.

이로 인해 스케줄러와 락킹 서브시스템이 최적화되어 개발자들의 부담이 줄어듭니다.

Note: 주요 배포판은 최근 커널에서 M486=y를 활성화한 것을 배포하지 않습니다. 32비트 i486 하드웨어에서의 현재 리눅스 브랜치는 거의 사용되지 않습니다.

Linus Torvalds의 입장

Linus Torvalds는 이 문제를 여러 차례 제기했습니다. 2022년에 그는 i486에서 cmpxchg8b를 에뮬레이션하는 것은 무의미하다고 지적했습니다: 이 명령어는 Pentium와 모든 x86-64 CPU에 존재하기 때문입니다. Torvalds는 레거시 시스템을 위해 LTS 브랜치를 사용하라고 제안했습니다.

Google AdInline article slot

이전인 2012년에는 i386 지원이 중단되었습니다. 13년 전, Torvalds는 math-emu 제거를 제안했으나, 486SX 클론이 여전히 생산 중이라는 이유로 커뮤니티가 보류했습니다. 그 이후 합의가 바뀌었습니다.

임베디드 시스템과의 호환성

Intel Quark (i486 기반) 같은 특수 칩은 CX8와 TSC를 네이티브로 지원하므로 패치의 영향을 받지 않습니다. 원래 i486은 구 배포판과 오래된 커널에서 동작합니다.

현대 32비트 배포판은 CX8를 요구하는 X86_PAE를 사용합니다. 순수 32비트 x86 지원은 최소화되었습니다.

Google AdInline article slot
  • 제거의 이점:

1. 14k줄 이상의 코드 감소.

2. 스케줄러와 락 단순화.

3. 에뮬레이션 관련 버그 감소.

4. 관련 아키텍처에 집중.

주요 포인트

  • Molnar의 패치는 CONFIG_M486*, CX8/TSC 에뮬레이터, math-emu를 제거합니다—코드 14,104줄 감소.
  • i486은 현대 커널과 함께 사용되지 않습니다; 배포판은 PAE나 64비트로 이동했습니다.
  • Torvalds 지지: cmpxchg8b 에뮬레이션은 구식—레거시용 LTS 사용.
  • 임베디드 Quark은 영향 없음—네이티브 CX8/TSC 보유.

이 변경으로 x86 작업 중인 중고급 개발자들에게 커널이 더 깔끔해질 것입니다.

— Editorial Team

Advertisement 728x90

다음 읽기