Yazılım Uzmanları Donanım Ekonomisini Yoksaydı
... veya "Moore haklıydı ve ikisi de yanlıştı"
Bu tartışmada göz ardı edilen en büyük şey, Moore Yasası’nda ifade edildiği gibi transistör boyutlarının küçülmesinden kaynaklanan CPU işlem teknolojisi ve ekonomisinin etkisi oldu (CPU donanımı hakkında çok şey biliyorlarmış gibi şaşırtıcı değildi, bu adamlar çalıştı CPU üretimi veya ekonomisi). CPU'lar üzerinden itfa edilen sabit üretim maliyetleri (örneğin ISA tasarımı, CPU tasarımı ve CPU üretim tesisleri) hızla artmış, böylece ölçek ekonomilerinin değeri artırılmıştır; birim CPU başına maliyet ("paranın karşılığını bang" ve "watt için bacağını" açısından) açısından düşme olduğunda, bir CPU'nun maliyetinin, değer sağlamak için böylesine geniş bir işlev yelpazesi üzerinden itfa edilmesi gerekmez; sabit işlevli patladı; CPU transistör bütçeleri katlanarak arttı,
1. CPU Ölçeği CPU Çeşitliliğini Aşırı Kazandı
Ölçek ekonomilerinin önemi, daha büyük (bu nedenle daha geniş) bir pazar hedefleyen ISA / CPU'nun faydalarını, ISA / CPU için piyasayı daraltan tasarım seçeneklerinden ağır basmaktadır. İşletim sistemleri desteklenen ISA / CPU başına pazarın daha büyük ve daha büyük bölümlerini ele alabilir, bu nedenle bir işletim sistemi ekosisteminin gelişmesine izin vermek için taşıma alıştırmalarına çok az ihtiyaç vardır (hatta gerek yoktur). Sorun, ISA'nın ve CPU'nun hedefi, çoğunlukla üst üste gelebilecekleri kadar geniş olma eğilimindedir, bu nedenle, derleyicinin dışındaki herhangi bir yazılım için, taşıma alıştırmalarının boyutu da azalmıştır. Muhtemelen, hem Torvalds hem de TanenbaumISA ve hatta CPU'ya özgü olması gereken çekirdek tasarım ve uygulama bölümünü fazlasıyla tahmin etti. Tanenbaum'un açıkladığı gibi, modern işletim sistemi çekirdekleri, CPU ve ISA'lar arasındaki farklılıkları ortaya koyuyor. Bununla birlikte, modern işletim sistemlerinde CPU / ISA'ya özgü kod, bir mikro çekirdekten çok daha küçüktür. Kesinti işleme / zamanlama, bellek yönetimi, iletişim ve I / O'ları uygulamak yerine, bu taşınabilir olmayan bitler, bu çekirdek işletim sistemi işlevlerinin bile mimarisinin büyük çoğunluğu taşınabilir olmakla birlikte, bu hizmetlerin uygulanmasının sadece küçük bir kısmını ele almaktadır.
2. Açık Kaynak Savaşı Kazandı, Ama Savaşı Kaybetti
Paranın karşılığını daha fazla almak, ürünü değiştirme kabiliyetinin, müşteri için değer teklifinin bir parçası olmadığı, sabit fonksiyonlu ürünler tarafından daha büyük bir hesaplama payının gerçekleştirildiği anlamına gelir. Şimdi ironik olarak, bu sabit işlevli cihazlarda açık kaynak gelişti, ama çoğu zaman, bu özgürlüklerin, son kullanıcılar yerine ürünleri yapanlar tarafından daha fazla gerçekleşmesini sağladı (aslında o zamanlar bile pazar pazarında gerçekti: Microsoft açık kaynaklı yazılımların büyük bir tüketicisiydi, fakat müşterileri değildi) Benzer şekilde, açık kaynağın genel amaçlı masaüstü alanında başka yerlerden daha fazla mücadele ettiği, ancak web ve bulut bilişim büyüdükçe, masaüstü bilişimin gittikçe daha dar bir amaç için kullanıldığını (öncelikle bir tarayıcı çalıştırarak), Kalan işlevleri bulutta çalıştırarak (ironik olarak, öncelikle açık kaynak platformlarında). Kısacası: Açık kaynak gerçekten genel amaçlı bilgi işlem alanına sahip, ancak piyasa daha sofistike hale geldi; bilgisayar ürünü ambalajı daha az sıklıkla genel amaçlı işlevde durur, ancak açık kaynaklı bilgisayar kullanımının avantajının büyük kısmı ürün hedefleriyle çelişkili olduğu sabit işlevler için amaçlanan ürünle devam eder.
3. 2 n Büyüme Sabit, k Tasarrufun Önemi Yok demektir.
Transistör bütçelerinin katlanarak büyümesi, beraberinde bir CISC mimarisinin transistör bütçe maliyetinin neredeyse tamamen sabit olduğu iddiasını getirmiştir. RISC'nin stratejik avantajı, karmaşıklığı CPU'nun talimat setinden çıkarmaya ve derleyiciye kaydırmasıydı (kuşkusuz derleyici yazarların, karmaşık ISA'lardan derlemede kodlayan insan geliştiricilere göre çok daha az fayda sağladığı, ancak derleyicilerin çok daha kolay bir nedenden kaynaklanabileceğinden kuşku yok. matematiksel olarak ve bu nedenle, daha basit bir ISA'dan yararlanın); Ortaya çıkan transistör tasarrufları daha sonra CPU performansını arttırmak için uygulanabilir. Dikkat, transistör bütçesinin daha basit bir ISA'dan tasarrufunun çoğunlukla sabit olmasıydı (ve derleyici tasarımında genel gider de çoğunlukla sabit). Bu sabit etki, günümüzde bütçenin çok büyük bir kısmını oluştururken, Birinin hayal edebileceği gibi, etkinin önemsiz hale gelmesi için sadece birkaç katlanarak büyümesi gerekiyor. Bu hızlı bir şekilde azalan etki, yukarıda bahsedilen hızlı bir şekilde artan CPU monokültürünün artan önemi ile birlikte, herhangi bir yeni ISA'nın kendisini kurması için çok küçük bir fırsat penceresi anlamına geliyordu. Yeni ISA'ların başarılı olduğu yerlerde bile, modern "RISC" ISA'ları, transistor bütçelerinde sürekli büyüme ve özel olarak SIMD işlemenin daha geniş uygulanabilirliği özel işlevler için ayarlanmış yeni talimatların benimsenmesini teşvik ettiğinden, RISC stratejisi tarafından açıklanan ortogonal ISA'lar değildir. Bu hızlı bir şekilde azalan etki, yukarıda bahsedilen hızlı bir şekilde artan CPU monokültürünün artan önemi ile birlikte, herhangi bir yeni ISA'nın kendisini kurması için çok küçük bir fırsat penceresi anlamına geliyordu. Yeni ISA'ların başarılı olduğu yerlerde bile, modern "RISC" ISA'ları, transistor bütçelerinde sürekli büyüme ve özel olarak SIMD işlemenin daha geniş uygulanabilirliği özel işlevler için ayarlanmış yeni talimatların benimsenmesini teşvik ettiğinden, RISC stratejisi tarafından açıklanan ortogonal ISA'lar değildir. Bu hızlı bir şekilde azalan etki, yukarıda bahsedilen hızlı bir şekilde artan CPU monokültürünün artan önemi ile birlikte, herhangi bir yeni ISA'nın kendisini kurması için çok küçük bir fırsat penceresi anlamına geliyordu. Yeni ISA'ların başarılı olduğu yerlerde bile, modern "RISC" ISA'ları, transistor bütçelerinde sürekli büyüme ve özel olarak SIMD işlemenin daha geniş uygulanabilirliği özel işlevler için ayarlanmış yeni talimatların benimsenmesini teşvik ettiğinden, RISC stratejisi tarafından açıklanan ortogonal ISA'lar değildir.
4. Basit: Endişelerin Ayrılması. Karmaşık: Adres Alanının Ayrılması.
Modern Linux çekirdeği (çoğu çekirdeğin yanı sıra), bir mikro çekirdeğin dar tanımına değil, makro çekirdeğin oldukça gevşek tanımına uyar. Şöyle ki, sürücü mimarisi, dinamik olarak yüklenmiş modülleri ve çekirdek uzay iletişimlerini giderek daha fazla mikro çekirdeğin iletmesine benzeyen çok işlemcili optimizasyonları ile yapı, mikro çekirdeğin tasarımına (Minix'in somutlaştırdığı gibi), makro çekirdekli tasarımdan (Linux tasarımında olduğu gibi) daha yakından benziyor. tartışma sırasında). Bir mikro çekirdek tasarımı gibi, Linux çekirdeği diğer tüm işletim sistemi bileşenleri için genelleştirilmiş iletişim, zamanlama, kesilme ve bellek yönetimi sağlar; bileşenleri farklı kod ve veri yapılarına sahip olma eğilimindedir. Modüller dinamik olarak yüklenirken, Sabit arabirimler aracılığıyla iletişim kuran, gevşek bir şekilde bağlanmış taşınabilir kod parçaları, mikro çekirdeklerin kalan bir özelliğini kullanmaz: Kullanıcı alanı işlemleri değildir. Sonunda, Moore Yasası, taşınabilirlik (Tanenbaum'un endişesi) ve performans (Torvalds'ın endişesi) gibi donanım kaygılarının azaldığını, ancak yazılım geliştirme sorunlarının büyük önem kazandığını temin etti. Adres alanlarının ayrılmasının sağlayabileceği gerçeklenmemiş kalan avantajlar, tasarım kısıtlamaları ve bileşen bileşenlerinin karmaşıklığının artması nedeniyle işletim sistemi yazılımına uygulanan ilave bagajdan ağır basmaktadır. Yasası, taşınabilirlik (Tanenbaum'un endişesi) ve performans (Torvalds'ın endişesi) gibi donanım kaygılarının azalttığını, ancak yazılım geliştirme sorunlarının büyük önem kazandığını sağlamıştır. Adres alanlarının ayrılmasının sağlayabileceği gerçeklenmemiş kalan avantajlar, tasarım kısıtlamaları ve bileşen bileşenlerinin karmaşıklığının artması nedeniyle işletim sistemi yazılımına uygulanan ilave bagajdan ağır basmaktadır. Yasası, taşınabilirlik (Tanenbaum'un endişesi) ve performans (Torvalds'ın endişesi) gibi donanım kaygılarının azalttığını, ancak yazılım geliştirme sorunlarının büyük önem kazandığını sağlamıştır. Adres alanlarının ayrılmasının sağlayabileceği gerçeklenmemiş kalan avantajlar, tasarım kısıtlamaları ve bileşen bileşenlerinin karmaşıklığının artması nedeniyle işletim sistemi yazılımına uygulanan ilave bagajdan ağır basmaktadır.
İlginçtir ki, neyi gelmiştir güçlü bir eğilim olmuştur, donanım dışarı soyutlayan mikro çekirdek gibi çok hypervisor'ı, ortaya çıkmasıdır. Bazıları hipervizörlerin mikro çekirdek olduğunu iddia ediyor. Bununla birlikte, hipervizör mimarisi farklıdır, çünkü mikro çekirdeğin sahip olması gereken sorumluluklar, üstlerinde oturan "misafir" çekirdeği tarafından ele alındığında, hipervizörlerin aralarında çoğul olması ve hipervizörün soyutlanması, genel mesajlaşma ve bellek adres alanı değil, esasen gerçek donanım emülasyonudur.
Sonuç olarak: Gelecek En Az Katı Semantikayı Kabul Edenleri Tercih Ediyor
* .. veya "nitpickers geleceği tahmin etmeyi emiyor"
Uygulamada münazaradaki hak / yanlışlığın çoğu anlambilim meselesidir (ve bu Torvalds'ın tartıştığı ve IMHO Tanenbaum'un tam olarak takdir edemediği şeyin bir parçasıydı). Gelecek hakkında kesin tanımlamalar yapmak zordur, çünkü argümanın dışında oynamaya gelebilecek pek çok faktör vardır; Daha gevşek anlambilim, tahmininizin dart tahtası üzerinde diğer adamınkinden daha büyük bir hedef olduğu anlamına gelir ve size daha iyi oranlar sunar. Anlambilimi görmezden gelirseniz, hem Torvalds hem de Tanenbaum tarafından öne sürülen argümanlar bir çok konuda haklıydı ve çok az hakkında yanlış.
tl; Dr.
Çoğu ISA, RISC'nin semantik tanımına uymaz, ancak o zaman RISC CPU'ların ayırt edici olan tasarım avantajlarının çoğundan faydalanır; CPU'ya özgü işletim sistemi miktarı, Torvalds'ın bile beklemeyeceğinden, Tanenbaum'un beklediğinden daha az; açık kaynak genel amaçlı bilgisayar kullanımına hâkimdir, ancak o pazarın tüketicileri şimdi temel olarak, açık kaynak yazılımın faydalarının çoğunun gerçekleştirilmediği daha sabit işlevli ürünlere bilgisayar paketlemesi yapanlardır; işletim sistemi işlevini adres alanları arasında ayırmak faydalı olamadı, ancak işletim sistemi işlevini "sanal" donanım arasında ayırmak yararlı oldu. Tahminlerinizin doğru olduğunu kanıtlamak istemeniz durumunda, kendinizi Mr. Torvalds gibi mümkün olduğunca semantik manevra odası bırakın.
PS Son bir ironik gözlem: Linus Torvalds, kullanıcı alanında ve Linux çekirdeğinin dışında olabildiğince fazla yeni işlevsellik sağlamanın en güçlü destekçilerinden biridir.