Mengapa Linux berjalan dengan baik pada berbagai jenis mesin - desktop, laptop, server, perangkat tertanam, ponsel, dll? Apakah ini terutama karena sistem terbuka, sehingga ada bagian yang dapat dimodifikasi untuk bekerja di lingkungan yang berbeda? Atau adakah properti lain dari kernel dan / atau sistem Linux yang membuatnya lebih mudah untuk OS ini bekerja pada berbagai macam platform?
22
Jawaban:
Walaupun keterbukaan jelas merupakan bagian dari itu, saya pikir faktor kuncinya adalah desakan Linus Torvald yang terus-menerus bahwa semua pekerjaan, dari besar hingga kecil, memiliki tempat di kernel Linux mainline, asalkan itu dilakukan dengan baik. Jika dia memutuskan pada suatu titik untuk menarik garis dan berkata "oke, untuk perangkat keras komputer super mewah itu, kita perlu garpu", maka varian high-end dan sistem kecil yang benar-benar terpisah mungkin telah dikembangkan. Karena itu, alih-alih orang-orang telah melakukan pekerjaan lebih keras untuk membuat semuanya bermain bersama dengan relatif baik.
Dan, kludges yang memungkinkan satu sisi hal-hal yang merugikan yang lain tidak, pada umumnya, diizinkan masuk - lagi, memaksa orang untuk memecahkan masalah dengan cara yang lebih sulit tetapi lebih benar, yang ternyata biasanya lebih mudah untuk maju dari setelah apa pun yang diperlukan, lumpur menjadi catatan sejarah.
Dari wawancara beberapa tahun yang lalu :
sumber
Linux berskala ke berbagai jenis perangkat keras karena:
sumber
fork
itu mungkin, danfork
tidak dapat dilakukan secara efisien pada sistem memori non virtual. Sementara port yang ditunjukkan mungkin menggunakan bagian dari kernel Linux dan dapat menjalankan beberapa perangkat lunak Linux, sebagian besar tampaknya API yang diekspos oleh port ini berbeda dari kernel Linux biasa. (Contoh: pemetaan memori - yang jelas membutuhkan memori virtual)Kernel Linux memiliki skala yang baik karena memang seperti itu. Inti kernel relatif kecil dan melakukan apa yang perlu dilakukan. Driver perangkat bersifat opsional dan dapat diabaikan dari kernel untuk sistem yang lebih kecil. Di luar persyaratan minimum kernel, sebagian besar fungsi diimplementasikan sebagai fitur opsional.
Lihatlah file config yang diinstal di sebelah sebagian besar kernel. Ini akan mencantumkan semua fitur yang dihidupkan serta driver yang didukung.
Driver didukung tertanam di kernel atau sebagai modul yang dapat di-load. Ini memungkinkan kernel untuk dikonfigurasikan secara dinamis ke perangkat keras yang digunakan. Ini adalah pendekatan yang digunakan oleh banyak distribusi.
Selain memiliki alat kompilasi, memodifikasi kernel untuk perangkat keras baru relatif sederhana. Untuk prosesor baru, hanya kode terkait yang perlu diterapkan sebagai modifikasi fungsi yang ada. Perangkat baru hanya memerlukan driver baru dengan kait yang relevan. Sistem file baru juga merupakan modifikasi yang relatif sepele.
Basis kode telah dipelihara dengan baik untuk menjaga fleksibilitas ini tanpa forking eksternal. Kompilasi bersyarat drive kernel yang sangat fleksibel yang telah dibuat seminimal mungkin.
sumber
Saya tidak memiliki keahlian teknis yang terperinci untuk mendukung jawaban ini, tetapi pengalaman saya menunjukkan bahwa Linux memiliki skala yang baik dibandingkan dengan sistem operasi lain yang sering saya gunakan (terutama, Windows). Jadi mungkin pertanyaannya adalah mengapa Windows tidak skala sebaik Linux.
Jika menyatakan kembali pertanyaan seperti itu masih berguna bagi Anda, saya akan menyarankan bahwa kekuatan pasar memotivasi Microsoft untuk menambahkan fitur dan fungsi yang disesuaikan dengan perangkat keras terbaru dan paling berkemampuan, karena mereka menjual lebih banyak salinan sistem operasi terutama ketika pengguna akhir membeli sistem baru . Jadi, kapan saja, saya menemukan bahwa rilis terbaru Windows berkinerja buruk pada perangkat keras yang lebih lama dan kurang mampu.
Maafkan saya jika itu terlalu menyederhanakan pertanyaan Anda.
sumber