Ahli Perangkat Lunak Mengabaikan Ekonomi Perangkat Keras
... atau "Moore benar dan mereka berdua salah"
Hal terbesar yang diabaikan dalam debat ini adalah dampak teknologi dan ekonomi manufaktur CPU, didorong oleh ukuran transistor yang menyusut seperti yang dinyatakan dalam Hukum Moore (tidak mengherankan seolah-olah mereka tahu banyak tentang perangkat keras CPU, orang-orang ini mempelajari dan memperdebatkan perangkat lunak, tidak Pabrikan CPU atau ekonomi). Biaya produksi tetap yang diamortisasi selama CPU (misalnya desain ISA, desain CPU dan fasilitas produksi CPU) telah berkembang pesat, sehingga meningkatkan nilai skala ekonomis; dengan biaya per unit CPU (dalam hal "bang for the buck" & "bang for the watt") anjlok, biaya CPU tidak perlu diamortisasi melalui berbagai pilihan fungsi untuk memberikan nilai, jadi komputasi dalam produk dengan fungsi tetap telah meledak; Anggaran transistor CPU telah tumbuh secara eksponensial,
1. Skala CPU Menang atas Keragaman CPU
Pentingnya skala ekonomi telah membuat manfaat dari ISA / CPU menargetkan pasar yang lebih besar (karena itu lebih luas) melebihi potensi manfaat dari pilihan desain yang mempersempit pasar untuk ISA / CPU. OS dapat mengatasi porsi pasar yang lebih besar dan lebih besar per ISA / CPU yang didukung, sehingga hanya ada sedikit kebutuhan (atau bahkan tidak perlu) untuk latihan porting agar ekosistem OS dapat berkembang. Domain masalah Target ISA & CPU cenderung begitu luas sehingga sebagian besar tumpang tindih, sehingga untuk setiap perangkat lunak di luar kompiler, ukuran latihan porting juga berkurang. Bisa dibilang, baik Torvalds & Tanenbaummelebih-lebihkan bagian dari desain dan implementasi kernel yang sekarang perlu ISA atau bahkan CPU khusus. Seperti yang dijelaskan Tanenbaum, kernel OS modern melakukan abstrak dari perbedaan antara CPU & ISA. Namun, kode khusus CPU / ISA dalam OS modern jauh lebih kecil daripada microkernel. Daripada menerapkan penanganan interupsi / penjadwalan, manajemen memori, komunikasi & I / O, bit-bit non-portabel ini hanya membahas sebagian kecil dari implementasi layanan-layanan tersebut, dengan sebagian besar arsitektur bahkan fungsi-fungsi inti OS ini menjadi portabel.
2. Open Source Memenangkan Pertempuran, Tapi Hilang Perang
Lebih banyak keuntungan berarti bahwa bagian yang lebih besar dari komputasi dilakukan oleh produk-produk fungsi tetap, di mana kemampuan untuk memodifikasi produk bukan bagian dari proposisi nilai bagi pelanggan. Sekarang ironisnya, open source telah berkembang dalam perangkat-perangkat fungsi tetap ini, tetapi lebih sering daripada tidak, manfaat dari kebebasan-kebebasan itu lebih direalisasikan oleh mereka yang membuat produk daripada pengguna akhir (yang sebenarnya benar untuk pasar perangkat lunak bahkan saat itu: Microsoft adalah konsumen besar perangkat lunak sumber terbuka, tetapi pelanggan mereka tidak). Demikian pula, orang dapat berpendapat bahwa open source telah lebih banyak berjuang di ruang desktop tujuan umum daripada di tempat lain, tetapi ketika web dan cloud computing berkembang, komputasi desktop semakin banyak digunakan untuk tujuan yang lebih sempit (terutama menjalankan browser), dengan fungsi yang tersisa berjalan di cloud (ironisnya, terutama pada platform open source). Singkatnya: open source benar-benar memiliki ruang komputasi tujuan umum, tetapi pasar telah menjadi lebih canggih; menghitung kemasan produk jarang berhenti pada fungsi tujuan umum, tetapi terus berlanjut ke produk yang ditujukan untuk fungsi tetap, di mana banyak keuntungan dari komputasi open source bertentangan dengan tujuan produk.
3. 2 n Pertumbuhan Berarti Tabungan k Fixed Apakah Tidak Penting
Pertumbuhan eksponensial dari anggaran transistor telah membawa kesadaran bahwa biaya anggaran transistor dari arsitektur CISC hampir sepenuhnya diperbaiki. Keuntungan strategis RISC adalah bahwa ia memindahkan kompleksitas dari set instruksi CPU dan masuk ke kompiler (tidak diragukan lagi sebagian dimotivasi oleh kenyataan bahwa penulis kompiler mendapat manfaat jauh lebih sedikit dari ISA kompleks daripada pengembang manusia yang mengkode dalam perakitan, tetapi kompiler dapat dengan mudah lebih beralasan secara matematis tentang, dan karenanya mengeksploitasi, ISA yang lebih sederhana); penghematan transistor yang dihasilkan kemudian dapat diterapkan untuk meningkatkan kinerja CPU. Peringatannya adalah bahwa penghematan anggaran transistor dari ISA yang lebih sederhana sebagian besar sudah diperbaiki (dan overhead dalam desain kompiler sebagian besar sudah diperbaiki juga). Sementara dampak tetap ini adalah sebagian besar dari anggaran kembali pada hari itu, seperti yang dapat dibayangkan, hanya perlu beberapa putaran pertumbuhan eksponensial agar dampaknya menjadi sepele. Dampak penurunan yang cepat ini dikombinasikan dengan pentingnya monokultur CPU yang disebutkan sebelumnya dengan cepat berarti peluang kecil bagi ISA baru untuk memantapkan dirinya. Bahkan ketika ISA baru berhasil, ISA "RISC" modern bukanlah ISA ortogonal yang dijelaskan oleh strategi RISC, karena pertumbuhan berkelanjutan dalam anggaran transistor dan penerapan yang lebih luas dari pemrosesan SIMD pada khususnya telah mendorong adopsi instruksi baru yang disesuaikan untuk fungsi tertentu. Dampak penurunan yang cepat ini dikombinasikan dengan pentingnya monokultur CPU yang disebutkan sebelumnya dengan cepat berarti peluang kecil bagi ISA baru untuk memantapkan dirinya. Bahkan ketika ISA baru berhasil, ISA "RISC" modern bukanlah ISA ortogonal yang dijelaskan oleh strategi RISC, karena pertumbuhan berkelanjutan dalam anggaran transistor dan penerapan yang lebih luas dari pemrosesan SIMD pada khususnya telah mendorong adopsi instruksi baru yang disesuaikan untuk fungsi tertentu. Dampak penurunan yang cepat ini dikombinasikan dengan pentingnya monokultur CPU yang disebutkan sebelumnya dengan cepat berarti peluang kecil bagi ISA baru untuk memantapkan dirinya. Bahkan ketika ISA baru berhasil, ISA "RISC" modern bukanlah ISA ortogonal yang dijelaskan oleh strategi RISC, karena pertumbuhan berkelanjutan dalam anggaran transistor dan penerapan yang lebih luas dari pemrosesan SIMD pada khususnya telah mendorong adopsi instruksi baru yang disesuaikan untuk fungsi tertentu.
4. Sederhana: Pemisahan Kekhawatiran. Kompleks: Pemisahan Ruang Alamat.
Kernel Linux modern (bersama dengan kebanyakan kernel lainnya) sesuai dengan definisi macrokernel yang agak longgar dan bukan definisi sempit dari mikrokernel. Yang mengatakan, dengan arsitektur driver-nya, modul-modul yang dimuat secara dinamis, dan optimisasi multiprosesing yang membuat komunikasi ruang kernel semakin menyerupai penyampaian pesan microkernel, strukturnya lebih mirip desain microkernel (sebagaimana diwujudkan oleh Minix) daripada desain macrokernel (sebagaimana diwujudkan oleh desain Linux) pada saat diskusi). Seperti desain microkernel, kernel Linux memang menyediakan komunikasi umum, penjadwalan, penanganan interupsi, dan manajemen memori untuk semua komponen OS lainnya; komponennya cenderung memiliki kode dan struktur data yang berbeda. Sementara modul dimuat secara dinamis, secara longgar digabungkan potongan kode portabel, yang berkomunikasi melalui antarmuka tetap, yang tidak menggunakan satu properti microkernels yang tersisa: mereka bukan proses ruang pengguna. Pada akhirnya, Hukum Moore memastikan bahwa masalah dimotivasi oleh masalah perangkat keras seperti portabilitas (masalah Tanenbaum) & kinerja (masalah Torvalds ') berkurang, tetapi masalah pengembangan perangkat lunak menjadi sangat penting. Keuntungan yang belum direalisasi yang tersisa yang dapat disediakan oleh pemisahan ruang alamat tidak sebanding dengan bagasi tambahan yang dikenakan pada perangkat lunak OS karena keterbatasan desain dan meningkatnya kompleksitas antarmuka komponen. Hukum memastikan bahwa masalah yang dimotivasi oleh masalah perangkat keras seperti portabilitas (masalah Tanenbaum) & kinerja (masalah Torvalds ') berkurang, tetapi masalah pengembangan perangkat lunak menjadi sangat penting. Keuntungan yang belum direalisasi yang tersisa yang dapat disediakan oleh pemisahan ruang alamat tidak sebanding dengan bagasi tambahan yang dikenakan pada perangkat lunak OS karena keterbatasan desain dan meningkatnya kompleksitas antarmuka komponen. Hukum memastikan bahwa masalah yang dimotivasi oleh masalah perangkat keras seperti portabilitas (masalah Tanenbaum) & kinerja (masalah Torvalds ') berkurang, tetapi masalah pengembangan perangkat lunak menjadi sangat penting. Keuntungan yang belum direalisasi yang tersisa yang dapat disediakan oleh pemisahan ruang alamat tidak sebanding dengan bagasi tambahan yang dikenakan pada perangkat lunak OS karena keterbatasan desain dan meningkatnya kompleksitas antarmuka komponen.
Menariknya, apa yang telah menjadi tren kuat adalah munculnya hypervisor, yang sangat mirip dengan kernel mikro, mencabut perangkat kerasnya. Beberapa mengklaim bahwa hypervisor adalah microkernels. Arsitektur Hypervisor berbeda, karena tanggung jawab yang dimaksudkan untuk dimiliki oleh microkernels ditangani oleh kernel "guest" yang duduk di atas, dengan multipleks hypervisor di antara mereka, dan abstraksi hypervisor bukanlah pesan generik dan ruang alamat memori, tetapi sebagian besar emulasi hardware aktual.
Kesimpulannya: Masa Depan Memihak Mereka yang Mengadopsi Semantik Ketat Paling Tidak
* .. atau "nitpickers payah dalam memprediksi masa depan"
Dalam prakteknya banyak kebenaran / kesalahan dalam perdebatan adalah masalah semantik (dan itu adalah bagian dari apa yang didebat Torvalds dan IMHO Tanenbaum gagal untuk sepenuhnya menghargai). Sulit untuk membuat definisi yang tepat tentang masa depan karena ada begitu banyak faktor di luar argumen yang bisa ikut bermain; semantik yang lebih longgar berarti prediksi Anda adalah target yang lebih besar di papan dart daripada orang lain, memberi Anda peluang yang jauh lebih baik. Jika Anda mengabaikan semantik, argumen yang dikemukakan oleh Torvalds dan Tanenbaum benar tentang banyak hal dan salah tentang sangat sedikit.
tl; dr
Sebagian besar ISA tidak sesuai dengan definisi semantik RISC, tetapi manfaatkan sebagian besar keunggulan desain yang berbeda dengan RISC CPU pada saat itu; jumlah OS yang spesifik untuk CPU kurang dari yang diharapkan Tanenbaum, apalagi Torvalds; open source memang mendominasi komputasi tujuan umum, tetapi konsumen pasar itu sekarang terutama mereka yang mengemas komputasi untuk produk-produk fungsi yang lebih tetap di mana banyak manfaat dari perangkat lunak open source tidak terwujud; memisahkan fungsi OS di seluruh ruang alamat tidak terbukti bermanfaat, tetapi memisahkan fungsi OS di seluruh perangkat keras "virtual" miliki. Jika Anda ingin mengklaim prediksi Anda terbukti benar, tinggalkan ruangan manuver semantik sebanyak mungkin, sama seperti Mr. Torvalds.
PS Pengamatan ironis terakhir: Linus Torvalds adalah salah satu pendukung terkuat untuk menjaga sebanyak mungkin fungsionalitas baru di ruang pengguna dan di luar kernel Linux.