하드웨어의 경제성을 무시한 소프트웨어 전문가
... 또는 "무어가 옳았 고 둘 다 틀렸다"
이 토론에서 간과 한 가장 큰 것은 무어의 법칙에 표현 된 트랜지스터 크기를 줄임으로써 CPU 제조 기술과 경제의 영향이었습니다 (CPU 하드웨어에 대해 많은 것을 알고 있었음에도 불구하고 이들은 소프트웨어를 연구하고 토론하지 않았습니다. CPU 제조 또는 경제). CPU에 비해 상각되는 고정 제조 비용 (예 : ISA 디자인, CPU 디자인 및 CPU 생산 시설)이 빠르게 증가하여 규모의 경제 가치가 증가했습니다. 단위당 CPU 비용 ( "벅을위한 뱅"및 "와트를위한 뱅"의 관점에서)이 급락함에 따라, CPU의 비용은 가치를 제공하기 위해 이러한 광범위한 기능 선택에 의해 상각 될 필요가 없으므로 제품 컴퓨팅 고정 기능을 가진 폭발; CPU 트랜지스터 예산은 기하 급수적으로 증가했습니다.
1. CPU 규모가 CPU 다양성을 능가합니다
규모의 경제의 중요성으로 인해 더 큰 (따라서 더 넓은) 시장을 목표로하는 ISA / CPU의 이점은 ISA / CPU의 시장을 좁히는 디자인 선택의 잠재적 이점을 능가합니다. OS는 지원되는 ISA / CPU 당 시장의 더 큰 부분을 처리 할 수 있으므로 OS 생태계가 번창 할 수 있도록 포팅 연습이 거의 필요하지 않습니다. 문제 영역 ISA와 CPU의 목표는 너무 넓어 대부분 오버랩되는 경향이 있으므로 컴파일러 이외의 소프트웨어의 경우 포팅 연습의 크기도 줄어 들었습니다. 틀림없이, 토발즈 & 타넨 바움 모두커널 설계 및 구현에서 ISA 또는 CPU에 특정한 부분을 과대 평가했습니다. Tanenbaum이 설명했듯이 최신 OS 커널은 CPU와 ISA의 차이점을 추상화합니다. 그러나 최신 OS의 CPU / ISA 특정 코드는 마이크로 커널보다 훨씬 작습니다. 이러한 비 휴대용 비트는 인터럽트 처리 / 스케줄링, 메모리 관리, 통신 및 I / O를 구현하는 대신, 이러한 핵심 OS 기능의 아키텍처의 대다수가 이식 가능하기 때문에 서비스 구현의 일부만 처리합니다.
2. 오픈 소스는 전투에서 승리했지만 전쟁에서졌다
더 많은 비용을 지불한다는 것은 제품을 수정하는 능력이 고객을위한 가치 제안의 일부가 아닌 고정 기능 제품에 의해 더 큰 컴퓨팅 점유율이 수행됨을 의미합니다. 아이러니하게도 오픈 소스는 이러한 고정 기능 장치에서 번성했지만, 종종 최종 사용자가 아닌 제품을 만드는 사람들에 의해 자유의 혜택이 더 많이 실현되고 있습니다. 오픈 소스 소프트웨어를 많이 소비했지만 고객은 그렇지 않았습니다. 마찬가지로 오픈 소스가 다른 곳보다 범용 데스크탑 공간에서 더 많은 어려움을 겪었다 고 주장 할 수 있지만 웹 및 클라우드 컴퓨팅이 성장함에 따라 데스크탑 컴퓨팅은 더 좁은 목적으로 주로 사용되었습니다 (주로 브라우저 실행). 나머지 기능은 클라우드에서 (주로 오픈 소스 플랫폼에서) 실행됩니다. 한마디로 : 오픈 소스는 실제로 범용 컴퓨팅 공간을 소유하지만 시장은 더욱 정교 해지고 있습니다. 컴퓨팅 제품 패키징은 범용 기능에서 자주 멈추지 않지만 오픈 소스 컴퓨팅의 이점 중 많은 부분이 제품 목표와 충돌하는 고정 기능을위한 제품으로 이어집니다.
3. 2 n 성장은 고정 k 절감이 중요하지 않음을 의미
트랜지스터 예산이 기하 급수적으로 증가함에 따라 CISC 아키텍처의 트랜지스터 예산 비용이 거의 완전히 고정되어 있음을 깨달았습니다. RISC의 전략적 이점은 CPU의 명령어 세트에서 컴파일러로 복잡성을 이동 시켰다는 것입니다 (컴파일러 작성자가 어셈블리에서 코딩하는 인간 개발자보다 복잡한 ISA의 이점이 훨씬 적다는 사실에 부분적으로 동기가 부여되었지만 컴파일러는 훨씬 더 쉽게 추론 할 수있었습니다) 더 간단한 ISA에 대해 수학적으로, 따라서 이용한다); 결과적으로 트랜지스터 절감 효과는 CPU 성능 향상에 적용될 수 있습니다. 더 간단한 ISA로 인한 트랜지스터 예산 절감은 대부분 고정되어 있으며 (컴파일러 설계의 오버 헤드도 대부분 고정되어 있음)주의해야합니다. 이 고정 된 영향은 그 당시 예산의 큰 덩어리였습니다. 상상할 수 있듯이 영향이 사소 해지기 위해서는 몇 번의 지수 성장이 필요합니다. 앞서 언급 한 CPU 단일 문화의 중요성과 결합 된 이러한 급속히 감소하는 영향은 새로운 ISA가 스스로 설립 할 수있는 아주 작은 기회 창을 의미했습니다. 새로운 ISA가 성공한 경우에도 현대 "RISC"ISA는 RISC 전략에 의해 설명 된 직교 ISA가 아닙니다. 트랜지스터 예산의 지속적인 성장과 특히 SIMD 처리의 광범위한 적용 성은 특정 기능에 맞게 조정 된 새로운 명령의 채택을 장려했습니다. 앞서 언급 한 CPU 단일 문화의 중요성과 결합 된 이러한 급속히 감소하는 영향은 새로운 ISA가 스스로 설립 할 수있는 아주 작은 기회 창을 의미했습니다. 새로운 ISA가 성공한 경우에도 현대 "RISC"ISA는 RISC 전략에 의해 설명 된 직교 ISA가 아닙니다. 트랜지스터 예산의 지속적인 성장과 특히 SIMD 처리의 광범위한 적용 성은 특정 기능에 맞게 조정 된 새로운 명령의 채택을 장려했습니다. 앞서 언급 한 CPU 단일 문화의 중요성과 결합 된 이러한 급속히 감소하는 영향은 새로운 ISA가 스스로 설립 할 수있는 아주 작은 기회 창을 의미했습니다. 새로운 ISA가 성공한 경우에도 현대 "RISC"ISA는 RISC 전략에 의해 설명 된 직교 ISA가 아닙니다. 트랜지스터 예산의 지속적인 성장과 특히 SIMD 처리의 광범위한 적용 성은 특정 기능에 맞게 조정 된 새로운 명령의 채택을 장려했습니다.
4. 단순 : 우려의 분리. 복잡한 : 주소 공간 분리.
현대 리눅스 커널 (대부분의 다른 커널과 함께)은 마이크로 커널의 좁은 정의가 아니라 매크로 커널의 다소 느슨한 정의에 적합합니다. 그러나 드라이버 공간, 동적으로로드 된 모듈 및 멀티 프로세싱 최적화를 통해 커널 공간 통신이 마이크로 커널의 메시지 전달과 비슷 해짐에 따라 구조는 마이크로 커널 디자인 (Mixx로 구현 됨)보다 매크로 커널 디자인 (Linux 디자인으로 구현 됨)과 더 유사합니다. 토론 당시). 마이크로 커널 설계와 마찬가지로 Linux 커널은 다른 모든 OS 구성 요소에 대해 일반화 된 통신, 스케줄링, 인터럽트 처리 및 메모리 관리 기능을 제공합니다. 구성 요소는 고유 한 코드 및 데이터 구조를 갖는 경향이 있습니다. 모듈이 동적으로로드되는 동안 고정 인터페이스를 통해 통신하는 느슨하게 결합 된 휴대용 코드는 마이크로 커널의 하나의 남은 속성을 사용하지 않습니다. 이들은 사용자 공간 프로세스가 아닙니다. 결국 무어의 법칙은 이식성 (Tanenbaum의 관심사) 및 성능 (Torvalds의 관심사)과 같은 하드웨어 문제로 인해 야기되는 문제가 줄어드는 것을 보장했지만 소프트웨어 개발 문제는 가장 중요하게되었습니다. 주소 공간의 분리가 제공 할 수있는 나머지 실현되지 않은 이점은 설계 한계와 구성 요소 인터페이스의 복잡성 증가로 인해 OS 소프트웨어에 부과되는 추가 수하물로 인해 중요합니다. ■ 법률은 이식성 (Tenenbaum의 문제) 및 성능 (Torvalds의 문제)과 같은 하드웨어 문제로 인해 야기되는 문제가 줄어드는 것을 보장했지만 소프트웨어 개발 문제는 가장 중요하게되었습니다. 주소 공간의 분리가 제공 할 수있는 나머지 실현되지 않은 이점은 설계 한계와 구성 요소 인터페이스의 복잡성 증가로 인해 OS 소프트웨어에 부과되는 추가 수하물로 인해 중요합니다. ■ 법률은 이식성 (Tenenbaum의 문제) 및 성능 (Torvalds의 문제)과 같은 하드웨어 문제로 인해 야기되는 문제가 줄어드는 것을 보장했지만 소프트웨어 개발 문제는 가장 중요하게되었습니다. 주소 공간의 분리가 제공 할 수있는 나머지 실현되지 않은 이점은 설계 한계와 구성 요소 인터페이스의 복잡성 증가로 인해 OS 소프트웨어에 부과되는 추가 수하물로 인해 중요합니다.
흥미롭게도, 어떤 한 강한 추세 된 것은, 하드웨어를 추상화 마이크로 커널과 같은 많은 하이퍼 바이저의 출현이다. 일부는 하이퍼 바이저가 마이크로 커널이라고 주장합니다. 하이퍼 바이저 아키텍처는 서로 다릅니다. 마이크로 커널이 소유해야하는 책임은 그 위에 하이퍼 바이저가 다중화 된 "게스트"커널에 의해 처리되므로 하이퍼 바이저 추상화는 일반적인 메시징 및 메모리 주소 공간이 아니라 주로 실제 하드웨어 에뮬레이션입니다.
결론 : 미래는 가장 엄격한 의미론을 채택한 사람들에게 유리하다
* .. 또는 "니트 피커는 미래 예측에 짜증"
실제로 논쟁에서 많은 옳고 그름은 의미론의 문제이다 (그리고 그것은 토발즈가 주장하고 IMHO Tanenbaum이 완전히 이해하지 못한 것의 일부였다). 논란의 여지가 많은 요인들이 있기 때문에 미래에 대한 정확한 정의를하기는 어렵습니다. 의미가 느슨하면 예측이 다른 사람보다 다트 판에서 더 큰 목표이므로 더 나은 확률을 얻을 수 있습니다. 시맨틱을 무시하면 Torvalds와 Tanenbaum이 진행 한 주장은 많은 것에 대해 옳았으며 아주 작은 것에 대해서는 틀 렸습니다.
tl; dr
대부분의 ISA는 RISC의 의미 론적 정의에 맞지 않지만 당시 RISC CPU와 차별화 된 대부분의 설계 이점을 활용합니다. CPU에 특정한 OS의 양은 Torvalds는 물론 Tanenbaum보다 작습니다. 오픈 소스는 범용 컴퓨팅을 지배하지만, 그 시장의 소비자는 주로 오픈 소스 소프트웨어의 많은 이점이 실현되지 않는 고정 된 기능의 제품에 컴퓨팅을 패키징하는 사람들입니다. 주소 공간에서 OS 기능을 분리하는 것이 도움이되지는 않았지만 "가상"하드웨어에서 OS 기능을 분리하는 것이 좋습니다. 당신의 예측이 옳았다 고 주장하고 싶다면, 토발즈 씨처럼 가능한 한 의미론적인 조종실을 떠나십시오.
PS 마지막 아이러니 한 관찰 : Linus Torvalds는 사용자 공간과 Linux 커널에서 가능한 한 많은 새로운 기능을 유지하는 가장 강력한 제안자 중 하나입니다.