ทำไมเคอร์เนล Linux จึงเรียกว่า“ รูปภาพ”


62

ฉันมักจะได้ยินคนพูดถึงเคอร์เนล Linux ว่าเป็นอิมเมจเคอร์เนล Linux และฉันไม่สามารถหาคำตอบในเครื่องมือค้นหาใด ๆ ว่าทำไมถึงเรียกว่ารูปภาพ

เมื่อฉันนึกถึงภาพฉันสามารถนึกถึงสองสิ่งเท่านั้นไม่ว่าจะเป็นสำเนาของดิสก์หรือภาพถ่าย แน่นอนว่านรกไม่ใช่ภาพที่ถ่ายดังนั้นทำไมถึงเรียกว่าภาพ?


10
นอกจากนี้ยังสามารถคัดลอก RAM ภูมิภาค (ซึ่งเป็น IMHO กรณีที่มีเคอร์เนล)
Romeo Ninov

คำตอบ:


60

กระบวนการบูต Unix มี (มี) ความสามารถที่ จำกัด เฉพาะในการโหลดโปรแกรมอย่างชาญฉลาด (ย้ายที่ตั้งใหม่โหลดไลบรารี ฯลฯ ) ดังนั้นโปรแกรมเริ่มต้นจึงเป็นอิมเมจที่แน่นอนเก็บไว้ในแผ่นดิสก์ของสิ่งที่จำเป็นต้องโหลดลงในหน่วยความจำและ "เรียกว่า" เพื่อให้เคอร์เนลทำงาน

มีเพียงสิ่งต่าง ๆ เช่นการบีบอัด (de-) ที่เพิ่มเข้ามาและแม้ว่า bootloaders ที่ทรงพลังกว่าจะมาอยู่ในตำแหน่งนั้น แต่ชื่ออิมเมจนั้นติดอยู่


1
การบีบอัดและการคลายการบีบอัดไม่มีอะไรเกี่ยวข้องกับสิ่งที่เรียกว่า "รูปภาพ" มันยังคงโหลดลงในจุดเฉพาะในหน่วยความจำและเรียกโดยตรงเช่นเดียวกับวันเก่า บูตโหลดเดอร์มีอยู่เสมอเช่นกัน เคอร์เนลเองยังคงเป็นรูปภาพโหลดลงในจุดเฉพาะในหน่วยความจำและเรียกโดยตรง
phyrfox

นั่นคือเหตุผลที่ OP สับสนกัน IMO เวอร์ชันที่บีบอัดของรูปภาพของเขาจะไม่ดูเหมือนรูปภาพอีกต่อไป (หากดูที่ไม่มีการบีบอัด) และไม่ถูกเรียกว่ารูปภาพ แต่เคอร์เนลยังคงเรียกว่ารูปภาพ
Anthon

TBH ไม่แน่ใจว่าคุณถูกต้องเกี่ยวกับที่มาของมัน แต่คำอธิบายของคุณทำให้รู้สึกมากว่าฉันต้อง upvote ภาพที่บีบอัด IMHO ยังคงเป็นภาพ วิธีการดึงภาพไม่เกี่ยวข้อง มันเป็นภาพ ชัดเจนว่าสิ่งที่คุณกำลังพูดถึงและอาจเป็นสิ่งที่สำคัญที่สุด
akostadinov

น่าสนใจ ดังนั้นถ้าฉันมีไฟล์จาวาสคริปต์ที่มีข้อความของวัตถุที่มีฟังก์ชั่นคล้ายเคอร์เนลและโหลดผ่าน XMLHttpRequest และประเมินผลทางด้าน NodeJS และใช้เซิร์ฟเวอร์ NodeJS เพื่อโต้ตอบกับมันผ่านการร้องขอฉันสามารถเรียกสิ่งนี้ได้ ไฟล์ javascript ภาพเคอร์เนล: O
Dmitry

31

ภาพคำว่ามีคำจำกัดความ "ไฟล์ที่มีข้อมูลทั้งหมดที่จำเป็นในการผลิตสำเนาทำงานอยู่"


3
มันเป็นคำศัพท์ที่ชัดเจนไม่จำเป็นต้องคลำหาคำศัพท์เช่น "binary", "executable", "program", ... เพื่ออ้างถึงอิมเมจจริงบนดิสก์
โทมัส

3
รูปภาพคือภาพถ่ายของหน่วยความจำ
ikegami

2
ไม่ใช่ทั้งหมด - ฉันต้องการข้อมูลเพียงพอที่จะสร้างสถานะระบบที่สมบูรณ์ หากการถ่ายโอนข้อมูลหน่วยความจำเพียงพอสำหรับการนั้นฉันมีความรู้โดยนัย (ที่อยู่เริ่มต้นสถานะระบบเริ่มต้น); ถ้ามันไม่เพียงพอที่ผมจะได้หมายถึงการถ่ายโอนข้อมูลหน่วยความจำที่เป็นภาพ
Simon Richter

20

ไม่ได้หมายความว่า "ภาพ" เป็นเพียงสำเนา 1: 1 ของดิสก์ เช่นเดียวกับการถ่ายภาพที่แสดงถึงความเป็นจริงเหมือนกับที่เกิดขึ้นในขณะถ่ายภาพภาพของโปรแกรมปฏิบัติการ (หรือเคอร์เนล) แสดงถึงโปรแกรมในสถานะที่สามารถโหลดได้ (หรือคลายออก) ในหน่วยความจำระบบอย่างที่มันเป็น ให้การควบคุมมัน โปรแกรมนั้นสามารถเริ่มทำงานจากสถานะนั้นในลักษณะที่สอดคล้องกัน ดังนั้นลีนุกซ์เคอร์เนลอิมเมจจึงเป็นอิมเมจ (รูปภาพของสถานะ) ของลีนุกซ์เคอร์เนลที่สามารถทำงานได้ด้วยตัวเองหลังจากให้การควบคุมแก่มัน.

ทุกวันนี้ bootloader โหลดรูปภาพดังกล่าวจากระบบแฟ้มของฮาร์ดดิสก์ (จำเป็นต้องใช้ไดรเวอร์) แทนที่ตัวมันเองและให้การควบคุมกับมัน กระบวนการบูทของคอมพิวเตอร์ทำหลายครั้งจนกระทั่งระบบปฏิบัติการรันในที่สุด นี้เรียกว่าโหลดห่วงโซ่ หรือถ้าเป็นโปรแกรมที่มีขนาดเล็ก (chain-) โหลดที่ซับซ้อนมากขึ้นอย่างใดอย่างหนึ่งจะเรียกว่าความร่วมมือ

ไบออสโหลด bootloader ที่ยังเป็นภาพตัวอย่างที่เรียกว่าในกรณีของboot.img grubนั่นboot.imgไม่ใช่ไฟล์ (ถ้าติดตั้งด้วง); เป็นชื่อของส่วนที่อยู่ใน Master Boot Record (MBR) หากคุณถ่ายโอนไฟล์นั้นไปยังไฟล์รูปภาพนั้นจะเป็นรูปภาพในรูปแบบของไฟล์ที่ไม่ได้เขียนไปยังดิสก์ แต่จะเขียนในไฟล์ นี่เป็นการนำเสนอ (รูปภาพ) ของสถานะแรกสุดที่grubสามารถโหลดส่วนที่เหลือของตัวเองได้ grubจากนั้นมีกลไกของตัวเองในการโหลดตัวเองอย่างสมบูรณ์โดยการโหลดภาพอื่น ๆ นี้เป็นตัวแทนจากที่แตกต่างกันขั้นตอนgrubใน หลังจากนั้น bootloader จะโหลดเคอร์เนลอิมเมจโดยแทนที่ตัวเองด้วยเนื้อหาที่ถูกแตกของไฟล์นั้น


7

ประวัติศาสตร์สมัยโบราณ. อิมเมจนั้นมาจากคำว่า Digital Equipment Corporation เก่าสำหรับเอาท์พุทจากตัวรวบรวมคอมไพเลอร์ -> ตัวเชื่อมโยง ไฟล์เป็นรูปภาพที่สร้างขึ้นโดยการตีความรหัสและอื่น ๆ ผ่านตัวเชื่อมโยงเพื่อให้ "รูปภาพ" ที่สามารถเรียกใช้งานได้ของการออกแบบของคุณ


1
ฉันจะลงคะแนนถ้าคุณเพิ่มลิงค์อ้างอิง
RobAu

อ้างถึง "RSX-11M + คู่มืออ้างอิงระบบ" ของ Digital Equipment Corporation DEC 2524 ตั้งแต่นั้นมาก็แพร่กระจายผ่านอุตสาหกรรม
SkipBerne

5

ในทางคณิตศาสตร์เคอร์เนลเป็นภาพผกผันของเซตย่อยของภาพของแผนที่บางอันซึ่งเซตย่อยนั้นเท่ากับองค์ประกอบประจำตัวในโคโดเมน ฉันแน่ใจว่าชื่อเหล่านี้มาจากแนวคิดทางคณิตศาสตร์เนื่องจากมีความเกี่ยวข้องอย่างมากในด้านต่าง ๆ ของคณิตศาสตร์ การพิจารณา Unix นั้นมาจากสภาพแวดล้อมทางวิชาการซึ่งอาจเป็นไปได้ว่าการใช้เคอร์เนลและรูปภาพของคำเหล่านี้เหมือนกัน

หากคุณมีชุดที่แสดงถึงระดับของข้อมูลบางอย่างเกี่ยวกับระบบปฏิบัติการ "สมบูรณ์" ถ้าข้อมูลนั้นเป็นกลุ่มแล้วคุณสามารถกำหนดกลุ่มโฮโมมอร์ฟิซึมในชุดนั้นหรือโดยทั่วไปจะแมปชุดอื่นที่มีขนาดแตกต่างจากเดิม พวกเขา "เคารพ" โครงสร้างของชุดเดิมที่ทำให้มันเป็นกลุ่ม คุณสามารถเห็นได้ว่าอาจเป็นประโยชน์แก่คนในการแมปชุดกับชุดที่เล็กกว่าหรือชุดย่อยของชุดบางชุดที่ชุดย่อยมีขนาดเล็กลง

รูปภาพ - ภาพของกลุ่มโฮโมมอร์ฟิซึมและในฟังก์ชั่นทั่วไปและแผนที่เป็นเพียงเซตย่อยของเซตบางชุดซึ่งองค์ประกอบของแมปจะถูกแมปไป ฟังก์ชั่นอาจไม่ได้แมปกับทุกองค์ประกอบเดียวและองค์ประกอบเหล่านั้นจะไม่รวมอยู่ในภาพ

เคอร์เนล - พื้นฐานเพียงองค์ประกอบจากชุดเดิมที่แมปกับภาพ แต่แผนที่เฉพาะกับองค์ประกอบตัวตนในภาพ โดยทั่วไปองค์ประกอบที่แมปกับ 0 เหมือนสิ่งในภาพ

หากภาพมีขนาดเล็กลงจากนั้นชุดต้นฉบับเราจะเห็นหลายรายการต้องแมปกับองค์ประกอบเดียว ตัวอย่างเช่นอาจมีองค์ประกอบหลายอย่างจากเคอร์เนลที่จับคู่กับภาพและเรารู้อยู่แล้วว่าพวกเขาทุกคนต้องจับคู่กับ 0

เราจะเห็นว่าถ้าเราเลือกชุดดั้งเดิมเป็นลำดับ จำกัด ของไบนารีหรือ 1 และ 0 ของและโคโดเมน (ตั้งค่าแมปเป็น) เพื่อเป็นลำดับของไบนารีแล้วเราสามารถสร้างสิ่งต่าง ๆ ถ้าหากโครงสร้างกลุ่มที่เหมาะสม สามารถกำหนดได้ (ความลึกเล็กน้อยและไม่เกี่ยวข้องกับคำถามที่ถาม)

ดังนั้นเราจึงเห็นได้อย่างมั่นใจว่า "เคอร์เนล" และ "อิมเมจ" ของระบบปฏิบัติการนั้นได้รับการกำหนดอย่างสมบูรณ์และมีความหมายทางคณิตศาสตร์ เป็นอิสระจากการใช้ข้อกำหนดอื่น ๆ


โดยทั่วไปเคอร์เนลอาจเป็นเวอร์ชัน 'thinned' ของระบบปฏิบัติการหรือส่วนหนึ่งของระบบปฏิบัติการที่มีความสำคัญและสามารถเป็น 'abstracted' จากนั้นหากแผนที่มีการฉีด homorphism และเป็นที่รู้จัก ภาพทั้งหมด ดูเหมือนว่าวิธีการของข้อมูล comression เป็น "เคอร์เนล" ของคำและ "ภาพ" ต้นกำเนิดมาจาก แต่จริงๆแล้วพวกเขาเกิดจากแนวคิดทางคณิตศาสตร์ที่รู้จักกันดี
งานฝีมือจอมพล

3
สวัสดีจอมพล เป็นการดีกว่าที่จะปรับปรุงโพสต์ของคุณโดยแก้ไขแทนที่จะเพิ่มความคิดเห็น
Anthony G - ความยุติธรรมสำหรับ Monica

4
ฉันเชื่อว่าการใช้คอมพิวเตอร์ของเคอร์เนลมาจากส่วน " ส่วนกลาง (มักจะกินได้) ของอ่อนนุชโดยเฉพาะอย่างยิ่งเมื่อฮาร์ดไดรฟ์ถูกลบออก " (ดูwiktionary ) - เป็นส่วนเล็ก ๆ ของระบบปฏิบัติการ หลังจากดึง "outer layer" ทั้งหมด (GUIs, command-shells, drivers loadable) มันเป็นส่วนขั้นต่ำ (โดยประมาณ) ที่จำเป็นในการสร้าง / ให้ฮาร์ดแวร์ทำงานในรูปแบบที่มีประโยชน์
TripeHound

ว้าวเพิ่งว้าว การเก็งกำไรโดยไม่มีพื้นฐาน TripeHound ทำให้ถูกต้อง งานฝีมือจอมพลเพียงเดา
Joshua

แก้ไขของคุณ "ธรรมบางอย่าง" ไท :)
ฮอบส์
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.