Mengapa kernel Linux disebut "gambar"?

62

Saya sering mendengar orang menyebut kernel Linux sebagai image kernel Linux dan sepertinya saya tidak dapat menemukan jawaban di mesin pencari apa pun mengapa disebut sebagai image.

Ketika saya memikirkan sebuah gambar, saya hanya dapat memikirkan dua hal, baik berupa salinan disk maupun foto. Benar-benar bukan gambar foto jadi mengapa itu disebut sebagai gambar?

Tony
sumber
10
Ini juga bisa berupa salinan wilayah RAM (yang merupakan kasus IMHO dengan kernel)
Romeo Ninov

Jawaban:

60

Proses boot Unix hanya memiliki kemampuan terbatas memuat program secara cerdas (memindahkannya, memuat pustaka, dll.). Oleh karena itu program awal adalah gambar yang tepat, disimpan pada disk, dari apa yang perlu dimuat ke dalam memori dan "dipanggil" untuk menjalankan kernel.

Hanya beberapa hal kemudian seperti kompresi (de-) yang ditambahkan dan meskipun bootloader yang lebih kuat sekarang ada, nama gambar telah macet.

Anthon
sumber
1
Kompresi dan dekompresi tidak ada hubungannya dengan sesuatu yang disebut "gambar." Itu masih dimuat ke titik tertentu dalam memori dan dipanggil langsung, seperti dulu. Boot loader yang mengintervensi selalu ada juga. Kernel itu sendiri masih berupa gambar, dimuat ke titik tertentu dalam memori, dan dipanggil langsung.
phyrfox
Persis, itulah mengapa OP IMO bingung. Versi gambarnya yang dikompres tidak akan terlihat seperti gambar lagi (jika melihatnya tidak terkompresi) dan tidak dapat disebut gambar. Tetapi kernel masih disebut gambar.
Anthon
TBH tidak yakin Anda benar tentang asal-usulnya, tetapi penjelasan Anda sangat masuk akal sehingga saya harus memperbaikinya. Gambar IMHO terkompresi masih merupakan gambar. Cara untuk mengambil gambar tidak relevan. Itu sebuah gambar. Itu menjelaskan apa yang Anda bicarakan dan mungkin itu yang paling penting.
akostadinov
Menarik. Jadi jika saya memiliki file javascript yang berisi teks dari suatu objek yang berisi banyak fungsi seperti kernel, dan memuatnya melalui XMLHttpRequest dan eval itu, di sisi NodeJS dan menggunakan server NodeJS untuk berinteraksi dengannya melalui permintaan, saya bisa menyebutnya javascript file Kernel Image: O
Dmitry
31

Kata gambar juga memiliki definisi "Sebuah file yang berisi semua informasi yang dibutuhkan untuk menghasilkan salinan bekerja hidup."

Simon Richter
sumber
3
Ini adalah istilah yang bagus, menghindari kebutuhan untuk mencari-cari istilah seperti "binary", "executable", "program", ... untuk merujuk ke gambar aktual pada disk.
Thomas
3
Gambar adalah potret memori.
ikegami
2
Tidak sepenuhnya - Saya perlu informasi yang cukup untuk (kembali) membuat status sistem yang lengkap. Jika dump memori cukup untuk itu, maka saya memiliki pengetahuan implisit (alamat mulai, keadaan sistem awal); jika itu tidak cukup, saya tidak akan merujuk ke dump memori sebagai gambar .
Simon Richter
20

Itu tidak berarti "gambar" hanyalah salinan disk 1: 1. Sama seperti foto yang mewakili kenyataan persis seperti ketika memotret, gambar dari program yang dapat dieksekusi (atau kernel) mewakili program dalam keadaan, di mana ia dapat dimuat (atau dibongkar) dalam memori sistem persis seperti dulu dan kemudian diberikan kendali padanya. Program itu kemudian dapat mulai berjalan dari keadaan itu secara konsisten. Jadi gambar kernel Linux adalah gambar (gambar keadaan) dari kernel Linux yang mampu berjalan dengan sendirinya setelah memberikan kontrol padanya.

Saat ini, bootloader memuat gambar seperti itu dari sistem file hard disk (driver diperlukan), menggantikannya dengan itu dan memberikan kontrol untuk itu. Proses booting komputer melakukan itu beberapa kali hingga sistem operasi akhirnya berjalan. Ini disebut pemuatan rantai . Atau jika program yang lebih kecil (berantai) memuat yang lebih kompleks, itu disebut bootstrap .

BIOS memuat bootloader yang juga merupakan gambar, misalnya dipanggil boot.imgdalam kasus grub. Itu boot.imgbukan file (jika grub diinstal); itu adalah nama untuk bagian yang ada di Master Boot Record (MBR). Jika Anda membuangnya ke file, maka itu akan menjadi gambar dalam bentuk file yang tidak ditulis ke disk, tetapi ditulis dalam file. Ini juga merupakan representasi (gambar) dari keadaan paling awal di mana grubmampu memuat sisanya. grubkemudian memiliki mekanisme sendiri bagaimana memuat dirinya sendiri dengan memuat gambar lain. Ini diwakili oleh berbagai tahapan dalam grub. Setelah itu, bootloader memuat image kernel dengan mengganti sendiri dengan konten yang diekstrak dari file itu.

kekacauan
sumber
7

Sejarah kuno. istilah image berasal dari istilah Digital Equipment Corporation lama untuk output dari compiler-> linker. file adalah gambar yang dibuat dengan menafsirkan kode dan seterusnya melalui tautan untuk membuat "Gambar" yang dapat dieksekusi dari desain Anda.

SkipBerne
sumber
1
Saya akan menjawab jika Anda menambahkan tautan referensi
RobAu
lihat "RSX-11M + Sistem Referensi Manual" Digital Equipment Corporation "DEC 1981. sejak saat itu ia disebarkan melalui industri
SkipBerne
5

Dalam matematika kernel adalah gambar terbalik dari subset dari gambar beberapa peta, jika subset sama dengan elemen identitas dalam codomain. Saya yakin nama-nama ini berasal dari konsep matematika karena mereka terkait secara signifikan dalam berbagai bidang dalam matematika. Mempertimbangkan Unix diturunkan dalam lingkungan akademis dimungkinkan penggunaan kata kernel ini dan gambarnya sama.

Jika Anda memiliki satu set yang mewakili beberapa tingkat informasi tentang OS "lengkap", jika informasi itu juga membentuk sebuah grup maka Anda dapat menentukan homomorfisme grup pada set itu atau pada dasarnya memetakan ke set lain yang memiliki ukuran berbeda maka set aslinya sepanjang mereka "menghormati" struktur perangkat asli yang menjadikannya sebuah kelompok. Anda dapat melihatnya mungkin memihak seseorang untuk memetakan set ke set yang lebih kecil atau subset dari beberapa set di mana subset lebih kecil.

Image - Gambar homomorfisme grup dan pada fungsi umum dan peta, hanyalah sebagian dari sekumpulan, yang elemennya benar-benar dipetakan. Fungsi mungkin tidak memetakan ke setiap elemen tunggal dan elemen-elemen itu tidak akan dimasukkan dalam gambar.

Kernel - Pada dasarnya hanya elemen dari set asli yang memetakan ke gambar, tetapi hanya memetakan ke elemen identitas dalam gambar. Pada dasarnya elemen-elemen yang memetakan ke 0 seperti hal dalam gambar.

Jika ukuran gambar lebih kecil maka set aslinya maka kita dapat melihat beberapa item harus dipetakan ke satu elemen tunggal. Jadi misalnya mungkin ada beberapa elemen dari kernel yang memetakan ke gambar dan kita sudah tahu mereka semua harus memetakan ke 0.

Kita dapat melihat bahwa jika kita memilih set asli untuk menjadi urutan biner terbatas atau 1 dan 0 dan codomain (set dipetakan ke) menjadi juga urutan biner, maka kita dapat membangun hal-hal seperti itu jika dan hanya jika, struktur grup yang cocok dapat didefinisikan (ini sedikit mendalam dan tidak terkait dengan pertanyaan yang diajukan).

Jadi kita melihat dengan penuh kepastian bahwa "kernel" dan "image" dari OS sepenuhnya didefinisikan dan memiliki arti matematis. Bebas dari kemungkinan penggunaan istilah lainnya.

kerajinan marshal
sumber
Pada dasarnya kernel dapat berupa versi 'menipis' dari os, atau bagian dari os yang penting dan dapat 'diabstraksikan' kemudian asalkan peta itu bersifat injeksi, dan diketahui, dapat mengerjakan seluruh gambar tanpa harus membawa-bawa seluruh gambar. Sepertinya metode kompresi data adalah asal kata "kernel" dan "image". Tapi sebenarnya mereka berasal dari konsep matematika yang terkenal.
kerajinan Marshal
3
Hai Marshal. Lebih baik memperbaiki posting Anda dengan mengeditnya daripada menambahkan komentar.
Anthony G - keadilan untuk Monica
4
Saya percaya penggunaan komputasi kernel berasal dari " Bagian tengah (biasanya dapat dimakan) dari kacang, terutama setelah cangkang keras telah dihapus. " (Lihat wiktionary ) - itu adalah bagian kecil, bagian dalam sistem operasi; setelah melepas semua "lapisan luar" (GUI, command-shells, driver yang dapat dimuat) itu adalah bagian (kira-kira) minimum yang diperlukan untuk membuat / membiarkan perangkat keras beroperasi dengan cara yang bermanfaat.
TripeHound
Wow Hanya wow. Spekulasi tanpa dasar. TripeHound melakukannya dengan benar. kerajinan marshal hanya menebak.
Joshua
Tinjau "cukup yakin" Anda :)
hobbs