GNU/Linux >> Belajar Linux >  >> Linux

Mengapa sebagian besar program Linux ditulis dalam C?

Sudah banyak diskusi tentang ini. Terutama, alasannya adalah alasan filosofis. C diciptakan sebagai bahasa sederhana untuk pengembangan sistem (bukan pengembangan aplikasi). Ada banyak argumen untuk menggunakan C++, tetapi ada banyak argumen untuk tidak menggunakan C++ dan tetap menggunakan C.

Pada akhirnya, ini adalah masalah sejarah. Sebagian besar hal aplikasi ditulis dalam C, karena sebagian besar hal Kernel ditulis dalam C. Dan sejak saat itu sebagian besar hal ditulis dalam C, orang cenderung menggunakan bahasa aslinya.

Pada titik ini, seseorang mungkin bertanya "OK, jadi mengapa kernel ditulis dalam C dan tidak di-porting ke C++?" . Ini telah dibahas pada kerneltrap beberapa waktu lalu. Satu penjelasan bagus yang dapat dikutip dari utas ini adalah tanggapan dari yoshi314 (mengutip langsung):

itu karena hampir setiap aplikasi c++ membutuhkan pustaka standar c++ terpisah untuk beroperasi. jadi mereka harus memindahkannya ke kernel, dan mengharapkan biaya tambahan di mana-mana.

c ++ adalah bahasa yang lebih kompleks dan itu berarti kompiler membuat kode yang lebih kompleks darinya. karena itu, menemukan bahwa masalah berasal dari bug penyusun, daripada kesalahan kode lebih mudah di c.

juga bahasa c lebih sederhana, dan lebih mudah untuk mengikuti representasi rakitannya, yang seringkali mudah diprediksi.

c++ lebih serbaguna, tetapi c lebih cocok untuk hal-hal tingkat rendah atau tersemat.

Di sisi lain, "sebagian besar program Linux" cukup menyesatkan. Lihatlah aplikasi grafis. Python semakin berkembang terutama di lingkungan GUI di Linux. Tentang hal yang sama yang terjadi dengan Windows dan .NET.


Setelah membaca email berikut dari Linus Torvalds pencipta linux. Saya tidak dapat berpikir bahwa jawaban di atas salah. Dia tampaknya berpikir bahwa pemrogram C++ bukanlah sistem yang baik programmer. Dan bahwa fitur tambahan di C++ seringkali menyebabkan lebih banyak masalah dalam jangka panjang dibandingkan dengan keuntungan yang mereka bawa dalam jangka pendek. Meskipun orang mungkin tidak setuju dengannya, sulit untuk melebih-lebihkan pengaruhnya pada sistem operasi linux.

http://harmful.cat-v.org/software/c++/linus


Linux
  1. Mengapa Tautan Keras Ke Direktori Tidak Diizinkan Di Unix/linux?

  2. Mengapa kita membutuhkan file .so.1 di Linux?

  3. Mengapa Bash ada di mana-mana (di sebagian besar jika tidak semua distribusi Linux)?

  1. Mengapa begitu banyak /dev/tty di Linux?

  2. Mengapa pustaka bersama di Linux dapat dieksekusi?

  3. Mengapa Perl diinstal secara default dengan sebagian besar distribusi Linux?

  1. Mengapa Linux sangat penting untuk komputasi tepi

  2. Mengapa saya tetap menggunakan xterm

  3. Linux – Apakah Kernel Linux/unix yang Berbeda Dapat Dipertukarkan?