Mengapa kata "shell" digunakan untuk mendeskripsikan antarmuka baris perintah?

28

Saya ingin tahu tentang istilah "shell." Saya rasa saya tahu apa itu (meskipun perbedaan antara "shell" dan "terminal" masih kabur) tetapi mengapa kata "shell" dipilih untuk menggambarkan jenis program ini?

Ini mungkin tampak tidak penting, tetapi biasanya ketika pilihan kata membingungkan saya, itu menunjuk pada kesenjangan dalam pemahaman saya.

Eric Wilson
sumber
Terminal adalah perangkat atau pipa I / O. Shell adalah program yang dapat dieksekusi yang secara interaktif secara real-time menerima input pengguna dari terminal dan kemudian melakukan hal-hal berdasarkan itu. "Kerang" tanpa ketentuan untuk penggunaan interaktif langsung adalah sejenis penerjemah skrip teknis.
LawrenceC
5
Lihat juga Apa perbedaan persis antara 'terminal', 'shell', 'tty' dan 'konsol'?
Gilles 'SO- berhenti menjadi jahat'

Jawaban:

8

The Multics glossary dapat memberikan petunjuk. Shell didefinisikan sebagai berikut:

Prosesor perintah Multics dulu disebut shell. Program ini melewati baris perintah untuk dieksekusi oleh pendengar; itu mem-parsing baris menjadi nama perintah dan argumen, menempatkan perintah dan memulainya, dan memanggil program perintah dengan argumen yang string karakter PL / I. Sangat mudah untuk mengganti shell yang disediakan sistem default dengan program yang disediakan pengguna, dengan memanggil cu_ $ set_cp (lihat singkatan). Shell Unix mencakup konsep shell dan listener dalam arti Multics.

Hubungan antara shell dan pendengar masuk akal baik secara etimologis dan metaforis [1].

[1] "Karena cangkang adalah simbol otoritas, ucapan, dan pendengaran, artinya simbol ramalan ..."

jasonwryan
sumber
19

Analogi dengan kacang : di luar adalah shell, di dalamnya adalah kernel.

donasi berhasil
sumber
10

Dari http://en.wikipedia.org/wiki/Thompson_shell#History

"Nama" shell "untuk penerjemah baris perintah dan konsep membuat shell program pengguna di luar kernel sistem operasi diperkenalkan di Multics prekursor Unix."

Lebih jauh ke bawah lubang kelinci wikipedia menemukan ini: "Louis Pouzin, memperkenalkan istilah shell untuk bahasa perintah yang digunakan dalam Multics"

Saya belum membacanya secara lengkap, tetapi tulisannya di sini dapat memberi Anda jawabannya: http://www.multicians.org/shell.html

EDIT: memang tidak dijelaskan. Dia hanya "menciptakan" istilah itu. Bukan cerita lucu yang Anda harapkan, bukan?

draeath
sumber
3
Tidak memuaskan, tapi terkadang memang begitu.
Eric Wilson
10

Mungkin karena itu permukaan, melindungi kernel bagian dalam dari pengguna? Jadi kernel akan menjadi mutiara di dalam shell.

Pengguna tidak diketahui
sumber
Saya selalu mendengar bahwa shell adalah lapisan pelindung yang melindungi pengguna dari kernel.
Glorytoad
1

Sepertinya jawabannya ada di sini:

Catatan sejarah: Rupanya, shell Multics asli (indera 1) dinamakan demikian karena itu shell (indera 3); itu menjalankan program pengguna bukan dengan memulai proses terpisah, tetapi dengan secara dinamis menghubungkan program ke dalam kode sendiri, memanggil mereka sebagai subrutin, dan kemudian secara dinamis men-link mereka kembali. Penerjemah perintah VMS masih melakukan sesuatu yang sangat seperti ini.

- Wikipedia

Yaitu, "shell" adalah analogi dunia nyata yang baik untuk bagaimana Multics, pendahulu Unix, menjalankan program.

Alex W
sumber
Wikipedia bukan sumbernya. Menggunakannya sebagai satu, mengarah ke sumber melingkar, di mana Wikipedia menggunakan situs sebagai sumbernya, yang itu sendiri menggunakan Wikipedia sebagai sumber. Seperti berdiri, ini adalah spekulasi murni.
Evi1M4chine
0

Seperti yang saya pahami, "shell" adalah istilah lama untuk apa yang sekarang kita sebut "Antarmuka Pengguna Utama". Istilah analog modern adalah "Lingkungan Desktop", karena secara virtual semua sistem modern menggunakan metafora desktop.

Teddy
sumber
1
Ada banyak tumpang tindih, tetapi itu tidak sepenuhnya benar. Setiap shell adalah antarmuka pengguna. Tetapi tidak semua antarmuka pengguna adalah shell. Shell adalah antarmuka pengguna utama, di sekitar segalanya dan dari mana semuanya dimulai. Ini adalah antarmuka pengguna utama sistem operasi.
Evi1M4chine
-2

Kernel adalah inti dari sistem, sementara shell mengelilinginya dan merupakan antarmuka antara kernel dan pengguna.

Dalam sistem UNIX apa pun, dan bahkan dengan sistem Linux, shell adalah tempat administrator sistem bekerja untuk mengonfigurasi dan mengelola sistem.

Terminologi modern sering menggunakan istilah CLI atau antarmuka baris perintah untuk menggambarkan shell prompt. Ini mengacu pada GUI atau antarmuka pengguna grafis. Namun Sysadmin yang sebenarnya tahu bahwa Anda tidak boleh menggunakan alat GUI untuk mengkonfigurasi UNIX / Linux dan hanya bekerja secara langsung pada prompt perintah shell.

Ini bahkan lebih relevan saat ini ketika kita mendengar beberapa penggemar Linux junior mengatakan hal-hal seperti "Saya menggunakan linux, tetapi saya belum benar-benar mempelajari CLI".

Seperti pepatah lama berbunyi "Jika Anda tidak dapat melakukannya di prompt shell, Anda tidak bisa melakukannya."

Colinux
sumber
Saya mendapat suara untuk mengatakan yang sebenarnya. ah well ...
Colinux