ทำไมเราต้องติดตั้งบน Linux


67

ฉันเข้าใจสิ่งที่ติดตั้งอยู่ใน Linux และฉันเข้าใจไฟล์อุปกรณ์ อย่างไรก็ตามฉันไม่เข้าใจว่าทำไมเราต้องติดตั้ง

ตัวอย่างเช่นตามที่อธิบายไว้ในคำตอบที่ยอมรับของคำถามนี้โดยใช้คำสั่งนี้:

mount /dev/cdrom /media/cdrom

เรากำลังติดตั้งอุปกรณ์ CDROM /media/cdromและในที่สุดก็สามารถเข้าถึงไฟล์ของ CDROM ด้วยคำสั่งต่อไปนี้

ls /media/cdrom

ซึ่งจะแสดงรายการเนื้อหาของ CDROM

ทำไมไม่ข้ามการติดตั้งพร้อมกันและทำสิ่งต่อไปนี้

ls /dev/cdrom

และมีเนื้อหาของ CDROM จดทะเบียน ฉันคาดหวังคำตอบอย่างใดอย่างหนึ่งว่า: " นี่คือวิธีที่ Linux ออกแบบ " แต่ถ้าเป็นเช่นนั้นแล้วทำไมมันถึงถูกออกแบบมาอย่างนั้น? ทำไมไม่เข้าถึง/dev/cdromไดเรกทอรีโดยตรง วัตถุประสงค์ที่แท้จริงของการติดตั้งคืออะไร?



23
โปรดสังเกตว่าระบบปฏิบัติการทุกตัว "เชื่อมต่อ" มันเป็นเพียงความโปร่งใสในกรณีส่วนใหญ่ เมื่อคุณเลือก "ลบอย่างปลอดภัย" ใน Windows สำหรับเพนไดรฟ์คุณกำลังดำเนินการติดตั้งจริงหลังจากที่ระบบทำการติดตั้งโดยอัตโนมัติ Linux ไม่เพียง แต่แยกผู้ใช้ออกจากกระบวนการดังนั้นคุณจึงสามารถ 'ปรับแต่ง' ได้มากขึ้น - พูดว่า umsdos partition ไม่แตกต่างจาก vfat แต่ถ้าคุณใช้mount -t umsdosmount มัน คุณมีสิทธิ์ลินุกซ์ทั้งหมด, เจ้าของ, ไฟล์พิเศษ, fifos เป็นต้นหากคุณmount -t vfatทำตัวเหมือนพาร์ติชัน Windows ธรรมดา
เอสเอฟ


7
"ฉันเข้าใจสิ่งที่ติดตั้งอยู่ใน linux และฉันเข้าใจไฟล์อุปกรณ์" เห็นได้ชัดว่าไม่ใช่;)
การแข่งขัน Lightness ใน Orbit

5
Why not access the /dev/cdrom directory directly?เพราะมันไม่ใช่ไดเรกทอรี
แบรนดอน

คำตอบ:


67

เหตุผลหนึ่งคือการเข้าถึงระดับบล็อกนั้นอยู่ในระดับที่ต่ำกว่าเล็กน้อยที่lsจะสามารถใช้งานได้ /dev/cdromหรือdev/sda1อาจจะเป็นไดรฟ์ซีดีรอมของคุณและพาร์ทิชัน 1 ของฮาร์ดไดรฟ์ของคุณตามลำดับ แต่พวกเขาจะไม่ดำเนินการตามมาตรฐาน ISO 9660 / ext4 - พวกเขากำลังชี้เพียง RAW ถึงอุปกรณ์เหล่านั้นรู้จักกันเป็นแฟ้มอุปกรณ์

หนึ่งในสิ่งที่เมานต์กำหนดคือวิธีการใช้การเข้าถึงแบบดิบ - ตรรกะระบบไฟล์ / ไดรเวอร์ / เคอร์เนลโมดูลใดที่จะจัดการอ่าน / เขียนหรือแปลls /mnt/cdromเป็นบล็อกที่ต้องอ่านและวิธีตีความเนื้อหาของสิ่งเหล่านั้น file.txtบล็อกลงไปในสิ่งที่ต้องการ

ในบางครั้งการเข้าถึงระดับต่ำนี้อาจดีพอ ฉันเพิ่งอ่านและเขียนไปยังพอร์ตอนุกรมอุปกรณ์ usb เทอร์มินัล tty และอุปกรณ์อื่น ๆ ที่ค่อนข้างง่าย ฉันจะไม่พยายามอ่าน / เขียนจาก / dev / sda1 ถึงด้วยตนเองเพื่อพูดแก้ไขไฟล์ข้อความเพราะโดยทั่วไปฉันต้องปรับใช้ ext4 logic ซึ่งอาจรวมถึงสิ่งอื่น ๆ : ค้นหาไฟล์ inodes ค้นหา บล็อกหน่วยเก็บข้อมูลอ่านบล็อกเต็มทำการเปลี่ยนแปลงของฉันเขียนบล็อกเต็มจากนั้นอัปเดตไอโหนด (อาจ) หรือแทนที่จะเขียนสิ่งนี้ลงในวารสาร - ยากเกินไป

วิธีหนึ่งในการเห็นสิ่งนี้สำหรับตัวคุณเองคือลองทำดู:

[root@ArchHP dev]# cd /dev/sda1
bash: cd: /dev/sda1: Not a directory

/devเป็นไดเรกทอรีและคุณสามารถcdและlsสิ่งที่คุณชอบ /dev/sda1ไม่ใช่ไดเรกทอรี เป็นไฟล์ชนิดพิเศษที่เคอร์เนลมอบให้เป็น 'จับ' กับอุปกรณ์นั้น

ดูรายการ wikipedia บน Device Filesสำหรับการรักษาเชิงลึกเพิ่มเติม


4
ฉันคัดสรรรายละเอียดบางอย่างเพราะฉันคิดว่าสิ่งเลวร้ายจะเกิดขึ้นหากคุณเพิ่งเริ่มเขียนข้อมูลใด ๆ ที่เก็บอยู่ใน / dev / sda1 และฉันคิดว่ามีมาตรการป้องกันหรืออาจเป็นนามธรรมที่จะหยุดคุณไม่ให้เขียนทับสิ่งต่าง ๆ /dev/sda1แต่การที่จะสรุปได้ถ้าคุณรู้ว่าวิธีการที่จะเขียนไปยังดิสก์ที่คุณสามารถทำมันได้ด้วยตนเองผ่าน หมายเหตุเครื่องมือบางอย่างไม่ติดต่อโดยตรงกับดิสก์ดิบเช่นและswapon/swapoff dd
Ehryk

4
เพียงแค่เพิ่มอีกเล็กน้อยการติดตั้งจะเริ่มต้นระบบไฟล์และยังเปิดใช้งานการจัดการอินพุต / เอาต์พุตโดยอัตโนมัติทั้งชั้นของการดำเนินการที่โปร่งใสสำหรับผู้ใช้ (เช่นไฟล์แคชใน RAM จัดคิวการดำเนินงาน และอื่น ๆ ) นี่คือเหตุผลที่คุณต้องยกเลิกการต่อเชื่อมระบบไฟล์อย่างถูกต้องเพื่อหลีกเลี่ยงความเสียหาย (หรือซิงค์อย่างน้อย) การติดตั้งมีอยู่บนแพลตฟอร์มที่ใช้กันทั่วไปทั้งหมดไม่ใช่แค่ลินุกซ์ หากการติดตั้งได้รับการจัดการโดยอัตโนมัติโดยสภาพแวดล้อมเดสก์ท็อป (KDE หรือคำพังเพย) มันจะถูกซ่อนไว้เหมือนกับใน MS windows
orion

6
@Ehryk (3 ความคิดเห็นขึ้นไป) มาตรการป้องกันเพียงอย่างเดียวในระบบ Linux ทั่วไปคือสิทธิ์ระบบไฟล์ - กล่าวอีกนัยหนึ่งคุณต้องใช้บัญชีรูทเพื่อเขียนไปยังไฟล์อุปกรณ์ หากคุณทำเช่นนั้นคุณสามารถcat >/dev/sda1ทำตามเนื้อหาในใจของคุณและ Linux จะไม่หยุดคุณ (ไม่จำเป็นต้องพูดการทำเช่นนั้นจะทำให้ระบบไฟล์เสียหายอย่างสมบูรณ์)
David Z

5
@psusi คุณไม่สามารถทำได้บน Windows 95 จริง แต่มันก็มีอยู่ (และถูกซ่อนไว้อย่างดี) ใน MS DOS และ Windows NT Windows ที่ใช้ NT ที่ทันสมัยของคุณช่วยให้คุณสามารถเมานต์และเลิกเมานท์พาร์ติชั่นได้อย่างแน่นอน (แม้จะอยู่ในโฟลเดอร์ในพาร์ติชั่นอื่น ๆ และแม้แต่ในหลาย ๆ โฟลเดอร์ในเวลาเดียวกัน) - โดยปกติแล้ว นอกจากนี้คุณยังสามารถเข้าถึงอุปกรณ์ได้โดยไม่ต้องติดตั้งอุปกรณ์โดยใช้เส้นทางแบบเต็ม (คล้ายกับระบบปฏิบัติการยูนิกซ์) แต่ถ้าไม่ได้ล็อค - ซึ่งแน่นอนว่าถ้าติดตั้งอยู่ในปัจจุบัน
Luaan

3
@Luaan & psusi Psusi มีสิทธิ์ของมัน แต่สำหรับเกือบทุกจุดประสงค์และวัตถุประสงค์ผลกระทบสำหรับผู้เรียกใช้ Win32 API นั้นเหมือนกันโดยทั่วไป (สำหรับการปฏิบัติตาม Posix แม้จะมีการจำลองความหมายของภูเขา) Win9x จริง ๆ แล้วมีแนวคิดของการเมานท์เพราะมันยังคงทำงานอยู่ด้านบนของ DOS การสนับสนุน FAT นั้นสร้างขึ้นใน DOS เนื่องจากตัวจัดการดั้งเดิมค่อนข้างคล้ายกับวิธีที่เคอร์เนล NT จัดการ แต่ต้องติดตั้งระบบไฟล์ CDROM และเครือข่าย (โปรดจำไว้ว่า MSCDEX สำหรับ CD ซึ่งเป็นตัวจัดการระบบไฟล์ ISO / RockRidge และติดตั้งบนอักษรชื่อไดรฟ์)
Tonny

20

โดยพื้นฐานและเพื่อให้ง่ายระบบปฏิบัติการจำเป็นต้องรู้วิธีเข้าถึงไฟล์บนอุปกรณ์นั้น

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

/dev/cdromเป็นอุปกรณ์ระดับต่ำฟังก์ชั่นระบบปฏิบัติการจะไม่รู้วิธีการเข้าถึง ... ลองจินตนาการว่าคุณใส่ซีดีรอมที่จัดรูปแบบแปลก ๆ ไว้ในนั้น (แม้แต่ออดิโอซีดี) จะlsบอกได้อย่างไรว่ามีไฟล์ใดบ้าง (ถ้ามี) cd-rom โดยไม่ต้อง "ติดตั้ง" ก่อนไหม?

โปรดทราบว่าสิ่งนี้เกิดขึ้นโดยอัตโนมัติในหลาย ๆ ระบบปฏิบัติการ (แม้กระทั่ง Linux ในบางดิสทริบิวชันและอินเทอร์เฟซกราฟิก) แต่นั่นไม่ได้หมายความว่า OS อื่น ๆ จะไม่ "ติดตั้ง" ไดรฟ์


8

เพื่อความมั่นคง

ลองนึกภาพคุณมีพาร์ติชั่นบางตัวในฮาร์ดไดรฟ์ตัวแรกในระบบของคุณ ตัวอย่างเช่น/dev/sda2. คุณตัดสินใจในภายหลังว่าไดรฟ์มีขนาดไม่ใหญ่พอคุณจึงซื้อไดรฟที่สองและเพิ่มเข้าไปในระบบ ทั้งหมดในทันทีที่จะกลายเป็นไดรฟ์ในปัจจุบันของคุณจะกลายเป็น/dev/sda พาร์ทิชันของคุณอยู่ในขณะนี้/dev/sdb/dev/sdb2

เมื่อใช้ระบบที่เสนอคุณจะต้องเปลี่ยนสคริปต์แอปพลิเคชันการตั้งค่าและอื่น ๆ ทั้งหมดที่เข้าถึงข้อมูลในพาร์ติชันเก่าของคุณเพื่อให้สะท้อนถึงการเปลี่ยนแปลงในชื่อ

อย่างไรก็ตามการติดตั้งช่วยให้คุณยังคงใช้จุดเชื่อมต่อเดียวกันสำหรับไดรฟ์ที่เปลี่ยนชื่อนี้ คุณต้องแก้ไข/etc/fstabเพื่อแจ้งให้ระบบของคุณทราบว่า (ตัวอย่าง) /media/backupตอนนี้/dev/sdb2แทน แต่เป็นการแก้ไขเพียงครั้งเดียว

โปรดทราบว่าระบบวันที่ทันสมัยง่ายยิ่งขึ้น แทนที่จะอ้างถึงอุปกรณ์เป็น/dev/sda2หรือ/dev/sdb2พวกเขามีUUIDSซึ่งมีลักษณะคล้ายกับc5845b43-fe98-499a-bf31-4eccae14261bหรือสามารถได้รับฉลากที่เป็นมิตรเช่นbackupที่สามารถใช้ในการอ้างอิงอุปกรณ์เมื่อติดตั้ง ด้วยวิธีนี้ชื่ออุปกรณ์จะไม่เปลี่ยนแปลงเมื่อเพิ่มอุปกรณ์ใหม่ซึ่งทำให้การจัดการง่ายขึ้น:

# mount LABEL="backup" /media/backup

เพื่อความปลอดภัย

ผู้ดูแลระบบสามารถควบคุมการเข้าถึงอุปกรณ์ได้ สามารถถอดอุปกรณ์ออกได้เมื่อไม่ได้ต่อเชื่อม แต่ไม่สามารถใช้งานได้ (เว้นแต่ว่าคุณต้องการได้รับข้อมูลสูญหาย) หากคุณเป็นผู้ใช้ Windows โปรดจำไอคอนสีเขียวเล็ก ๆ ในพื้นที่แจ้งเตือนที่บอกว่าปลอดภัยที่จะลบแท่ง USB? นั่นคือการติดตั้ง Windows และถอนการติดสำหรับคุณ ดังนั้นหลักการไม่ใช่แค่ Unix / Linux


รหัสสากลคือ UUID จริงไม่ใช่ GUID ของ Microsoft
Ruslan

@ Ruslan - ดังนั้นพวกเขาเป็น! ตอนนั้นฉันเป็นหัวหน้า MS ขอบคุณมาก - ฉันเปลี่ยนมัน
garethTheRed

6

ฉันเรียกมันว่าเหตุผลทางประวัติศาสตร์ ไม่ใช่ว่าคำตอบอื่น ๆ นั้นผิด แต่มีเรื่องราวอีกเล็กน้อย

เปรียบเทียบ Windows: Windows เริ่มต้นด้วยระบบปฏิบัติการคอมพิวเตอร์เครื่องเดียวผู้ใช้คนเดียว คอมพิวเตอร์เครื่องนั้นอาจมีฟลอปปี้ไดรฟ์หนึ่งตัวและฮาร์ดไดรฟ์หนึ่งตัวไม่มีการเชื่อมต่อเครือข่ายไม่มี USB ไม่มีอะไรเลย (Windows 3.11 มีความสามารถด้านเครือข่ายดั้งเดิม แต่Windows 3.1 ไม่มี )

ชนิดของการตั้งค่า Windows ที่เกิดขึ้นนั้นเรียบง่ายจนไม่จำเป็นต้องแฟนซี: เพียงติดตั้งทุกอย่าง (อุปกรณ์ทั้งสอง) โดยอัตโนมัติทุกครั้งที่มี (ไม่) สิ่งต่าง ๆ ที่ผิดพลาด

ในทางตรงกันข้าม Unix ถูกสร้างให้ทำงานบนเครือข่ายเซิร์ฟเวอร์ที่มีผู้ใช้หลายคนตั้งแต่เริ่มต้น

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

พวกเขาสรุประบบไฟล์โลจิคัลพา ธ ไปยังไฟล์จากอุปกรณ์ฟิสิคัลที่เก็บไฟล์เหล่านั้น สมมติว่าเซิร์ฟเวอร์ A เป็นโฮสติ้ง / โฮม แต่เซิร์ฟเวอร์ A ต้องการการบำรุงรักษา: เพียงยกเลิกการเมานท์เซิร์ฟเวอร์ A และเมานต์เซิร์ฟเวอร์สำรอง B ใน / home แทนและไม่มีผู้ใดนอกเหนือจากผู้ดูแลระบบจะสังเกตเห็น
(ต่างจากระเบียบ Windows ที่ให้ชื่อต่าง ๆ กับอุปกรณ์ทางกายภาพที่แตกต่างกันเช่น C :, D: และอื่น ๆ ซึ่งทำงานได้กับความโปร่งใสที่ Unix พยายามอย่างหนัก)

ในการตั้งค่าแบบนั้นคุณไม่สามารถเมานต์ทุกสิ่งทุกอย่างในสายตาที่จำเจได้

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

ด้วยเหตุนี้จากมุมมองทางประวัติศาสตร์: Windows และ Unix มาจากภูมิหลังที่แตกต่างกัน คุณสามารถเรียกมันว่าความแตกต่างทางวัฒนธรรมหากคุณต้องการ:

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

เมื่อเร็ว ๆ นี้ระบบปฏิบัติการได้ขยับเข้าใกล้กันมากขึ้น:

  • ลินุกซ์ได้เพิ่มคอมพิวเตอร์เครื่องเดียวผู้ใช้คนเดียวมากขึ้น (เช่นการนับอัตโนมัติ); มันกลายเป็นที่ใช้บ่อยในการตั้งค่าคอมพิวเตอร์เครื่องเดียว
  • Windows ได้เพิ่มความปลอดภัยเครือข่ายการสนับสนุนผู้ใช้หลายคนและอื่น ๆ ; เมื่อระบบเครือข่ายแพร่หลายมากขึ้นและ Microsoft ก็เริ่มสร้างระบบปฏิบัติการสำหรับเซิร์ฟเวอร์ด้วยเช่นกัน

แต่ก็ยังง่ายที่จะบอกว่าทั้งสองเป็นผลมาจากประเพณีที่แตกต่างกัน


1
มันไม่ใช่แค่นั้น อุปกรณ์เป็น abstractions ระดับต่ำสำหรับไดรเวอร์ระบบไฟล์ (และซอฟต์แวร์ระบบอื่น ๆ ) ที่จะใช้ Unix ถูกออกแบบมาให้เป็นระบบปฏิบัติการสำหรับโปรแกรมเมอร์ระบบปฏิบัติการ ตัวอย่างเช่นโปรแกรมเมอร์ของไดรเวอร์ระบบไฟล์เหล่านั้น นั่นคือเหตุผลที่ abstractions ระดับต่ำเหล่านี้ถูกเปิดเผยต่อผู้ใช้
reinierpost

5

การจัดเรียงปัจจุบันมีข้อดีหลายประการ พวกเขาสามารถจัดกลุ่มเป็นข้อดีของการบล็อกไฟล์พิเศษและข้อดีของการเมานต์

ไฟล์พิเศษคือไฟล์ที่แสดงอุปกรณ์ หนึ่งในแนวคิดที่ unix สร้างขึ้นคือทุกอย่างเป็นไฟล์ สิ่งนี้ทำให้ง่ายหลายอย่างตัวอย่างเช่นการโต้ตอบกับผู้ใช้เป็นเพียงการอ่านและเขียนไฟล์บนอุปกรณ์ tty ซึ่งเป็นไฟล์พิเศษของตัวละคร การตรวจสอบบล็อกที่ไม่ดีการแบ่งพาร์ติชันหรือการจัดรูปแบบดิสก์เช่นเดียวกันคือการตรวจสอบไฟล์ มันไม่ได้เป็นดิสก์ถ้าดิสก์เป็น mfm, ide, scsi, fiberchanel หรืออย่างอื่นเป็นเพียงไฟล์

แต่ในทางกลับกันคุณอาจไม่ต้องการจัดการกับดิสก์หรือพาร์ติชั่นทั้งหมดเพียงแค่ไฟล์และในหลาย ๆ กรณีไฟล์มากกว่าจะพอดีกับดิสก์ ดังนั้นเราจึงมีจุดเมานท์ จุดเมานต์ช่วยให้คุณวางทั้งดิสก์ (หรือพาร์ติชัน) ไว้ในไดเรกทอรี ย้อนกลับไปในวัน Slackware ของฉันเมื่อมีฮาร์ดดิสก์ขนาดใหญ่สองสามร้อย MB เป็นเรื่องปกติที่จะใช้ซีดีเป็น / usr และฮาร์ดดิสก์สำหรับ /, / usr / local และ swap หรือคุณสามารถวาง / บนไดรฟ์หนึ่งและ / บ้านอีก

ตอนนี้ฉันสังเกตเห็นว่าคุณพูดถึงการติดตั้งซีดีของคุณบน / media / cdrom ซึ่งเหมาะสำหรับคอมพิวเตอร์ที่มีไดรฟ์ cdrom เพียงตัวเดียว แต่ถ้าคุณมีมากกว่าหนึ่ง คุณควรเมาท์ครั้งที่สองที่ไหน หรือที่สาม หรือที่สิบห้า? คุณสามารถใช้ / media / cdrom2 เป็นต้นหรือคุณสามารถติดตั้งบน / src / samba / resources / windows-install หรือ / var / www หรือที่ใดก็ตามที่เหมาะสม


ฉันคิดว่า OP หมายความว่าทำไมไม่ข้ามไปmountทั้งหมดและเพียงแค่โต้ตอบ/dev/cd0, /dev/cd2, /dev/sda1, /dev/sda2โดยตรง - แต่ละรายการมี 'ไดเรกทอรี' ที่กำหนดไว้แล้ว
Ehryk

1
คุณถูกต้อง แต่คุณจะพบ / dev / sdb9 / share / doc / package / README เป็นเส้นทางที่ดีหรือไม่ แม้ d: / share / doc / package / README นั้นดีกว่า แต่ / usr / share / doc / package / README มีความหมาย! นั่นคือมูลค่าของจุดเมานท์
hildred

3
ฉันสงสัยว่าการใช้ความหมายมาในภายหลังว่าเป็นผลพลอยได้ที่มีประโยชน์ของความจำเป็นที่สุดของ 'puttng โค้ดบางส่วนระหว่างระบบไดเรกทอรีและตัวชี้ไฟล์ดิบไปยังอุปกรณ์' เนื่องจากการใช้ cd / ls / nano / ทุกอย่างอื่นนั้นง่ายกว่า raw wrote:, dd if=/file of=/dev/sda2 bs=4096 skip=382765832 count=84756นับประสาการเชื่อมโยง inode / FAT / journal ที่เกี่ยวข้อง
Ehryk

(บางคน masochists ลินุกซ์อาจจะรัก / dev / sdb9 ไดเรกทอรีทำงานผมว่า)
Ehryk

2
คอมพิวเตอร์เครื่องแรกของฉันรัน cp / m บน 2 8 "floppies มันไม่รองรับ sub-directory เลยหนึ่งไดเรกทอรีต่อดิสก์เส้นทางดูเหมือน b: name.ext แนวคิดของการตั้งชื่อ semantic ได้ถูกสร้างขึ้นแล้วแม้แต่ระบบเทป ชื่อไฟล์ที่ใช้ UNIX ได้ปฏิเสธแนวคิดของตัวอักษรไดรฟ์สำหรับจุดเมานท์แล้ว @Ehryk คุณรู้หรือไม่ว่าคุณสามารถติดตั้งไดรฟ์ในไดเรกทอรีไม่เพียง แต่ใน Windows แต่ใน DOS ฉันทำใน MS-DOS 5 . นอกจากนี้เมื่อฉันกำลังมองหาหน้าคนฉันไม่ต้องการที่จะจำคอมพิวเตอร์เครื่องไหนมันน้อยกว่าไดรฟ์มาก
4323 hildred

5

ชื่อคำถามถามว่า: เหตุใดเราต้องเชื่อมต่อกับ Linux

วิธีหนึ่งในการตีความคำถามนี้: ทำไมเราต้องออกmountคำสั่งอย่างชัดเจนเพื่อให้ระบบไฟล์พร้อมใช้งานบน Linux

คำตอบ: เราทำไม่ได้

คุณไม่จำเป็นต้องเมานต์ระบบไฟล์อย่างชัดเจนคุณสามารถจัดการให้เสร็จโดยอัตโนมัติและลีนุกซ์ลีนุกซ์ทำสิ่งนี้ได้แล้วสำหรับอุปกรณ์ส่วนใหญ่เช่นเดียวกับ Windows และ Mac

ดังนั้นอาจไม่ใช่สิ่งที่คุณต้องการถาม

การตีความครั้งที่สอง: เหตุใดบางครั้งเราจำเป็นต้องออกmountคำสั่งอย่างชัดเจนเพื่อให้ระบบไฟล์พร้อมใช้งานบน Linux ทำไมไม่ทำให้ระบบปฏิบัติการมักจะทำเพื่อเราและซ่อนมันไว้จากผู้ใช้หรือไม่

นี่คือคำถามที่ฉันอ่านในข้อความคำถามเมื่อคุณถาม:

ทำไมไม่ข้ามการติดตั้งพร้อมกันและทำสิ่งต่อไปนี้

ls /dev/cdrom

และมีเนื้อหาของซีดีรอมอยู่ในรายการหรือไม่

สันนิษฐานว่าคุณหมายถึง: ทำไมไม่เพียงแค่สั่งให้ทำสิ่งนั้น

ls /media/cdrom

ตอนนี้

ในกรณีนี้/dev/cdromจะเป็นแผนผังไดเรกทอรีไม่ใช่ไฟล์อุปกรณ์ ดังนั้นคำถามที่แท้จริงของคุณน่าจะเป็น: ทำไมมีไฟล์อุปกรณ์ในตอนแรก?

ฉันต้องการเพิ่มคำตอบให้กับคำตอบที่ได้รับไปแล้ว

ทำไมผู้ใช้ถึงได้เห็นไฟล์อุปกรณ์?

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

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

ดังนั้นไดรเวอร์ระบบไฟล์จึงจำเป็นต้องใช้ไฟล์อุปกรณ์

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

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

ไฟล์อุปกรณ์ทำให้ง่ายขึ้น


1
อธิบายได้ดีมาก
Shailendra

4

เอ็นจินฐานข้อมูลจำนวนมากสามารถทำงานโดยตรงกับดิสก์ดิบหรือพาร์ติชัน ตัวอย่างเช่น MySQL:

http://dev.mysql.com/doc/refman/5.7/en/innodb-raw-devices.html

สิ่งนี้จะช่วยหลีกเลี่ยงค่าใช้จ่ายในการเข้าถึงไดรเวอร์ระบบไฟล์เมื่อเอ็นจิ้น DB ทั้งหมดต้องการจริงๆคือไฟล์ขนาดใหญ่หนึ่งไฟล์ที่เติมดิสก์


3

เพราะ/dev/cdromเป็นอุปกรณ์ในขณะที่/media/cdromเป็นระบบแฟ้ม คุณจำเป็นต้องเมานต์ตัวหลังเพื่อเข้าถึงไฟล์ในซีดีรอม

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

ระบบปฏิบัติการทั้งหมดทำเช่นนี้ - อย่างไรก็ตามบางส่วน (เช่น Windows เมื่อติดตั้งซีดีรอมเพื่อD:) จะทำอย่างโปร่งใส Linux ปล่อยให้คุณเพื่อให้คุณสามารถควบคุมกระบวนการได้ดียิ่งขึ้น


2
ฉันต้องไม่เห็นด้วยกับถ้อยคำของคุณ /dev/cdromเป็นไฟล์อุปกรณ์ (ที่มีความสามารถพิเศษช่วยให้เราสามารถสื่อสารได้อย่างง่ายดายจาก / ไปยังอุปกรณ์ที่เกี่ยวข้อง) /media/cdromเป็นไดเรกทอรี แต่ที่สำคัญคือไฟล์อื่น (จำไว้ว่าทุกอย่างเป็นไฟล์ใน Linux รวมถึงไดเรกทอรี) ตอนนี้เมื่อเราmountสิ้นสุดความสามารถพิเศษในการดูเนื้อหาของไฟล์อุปกรณ์เป็นระบบไฟล์ การแยกประโยคสุดท้ายของฉันออกจากการอ่านคำตอบด้านบน
Greeso

@Greeso: ฉันยืนตามคำตอบของฉัน
การแข่งขัน Lightness ใน Orbit

0

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

ดังนั้นโดยพื้นฐานแล้ว UI สำหรับสื่อต้องปฏิบัติต่อเหตุการณ์ที่อาจเกิดขึ้นทั้งสองประเภทในลักษณะเดียวกันและไม่มีวิธีที่ดีสำหรับคอมพิวเตอร์ที่จะจัดการกับการติดตั้งเครือข่ายในลักษณะที่ใช้งานง่ายเท่าที่จะทำได้สำหรับการติดตั้งเครือข่ายกับ UIs อื่น ๆ เช่นสมาร์ทโฟนแท็บเล็ตและคอมพิวเตอร์ที่สวมใส่ได้ซึ่งขาดความเป็นไปได้ในการแทรกสื่อทางกายภาพในอุปกรณ์ (โปรดสังเกตว่าอินเตอร์เฟซ iPhone นั้นน่ากลัวเพียงใดสำหรับการเปลี่ยนซิมการ์ดซึ่งเป็นอุปกรณ์ทางกายภาพชนิดหนึ่งที่ iOS ได้ใส่ไว้

โปรดทราบว่าวิธียอดนิยมอื่น ๆ สำหรับ UIs สำหรับกล่องฟิสิคัลประเภทนี้ (ตัวอย่างเช่น Windows 98, Windows 8, Mac OS X v10.2 (Jaguar) และ Mac OS X v10.9 (Mavericks) ทำงานเป็นประเด็นเดียวกัน และใช้กล่องโต้ตอบ GUI เพิ่มเติมเพื่อแยกแยะความสับสนที่อาจเกิดขึ้น (ตัวอย่างเช่น Windows 8 จะได้รับการกำหนดค่าให้พร้อมท์สำหรับแต่ละแผ่นซีดีใหม่ที่ใส่ไว้ไม่ว่าจะติดตั้งเป็นระบบแฟ้มสื่อเพลงหรือชุดวิดีโอ MP4 ) ไม่มีเหตุผลใดที่กล่องโต้ตอบผู้ใช้เหล่านี้ไม่สามารถใช้กับ Linux หรือ UNIX อื่น ๆ ได้

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