ฉันพยายามเรียนรู้มาตรฐาน POSIX เมื่อใช้ระบบปฏิบัติการยูนิกซ์ฉันได้/bin
, /etc
, /dev
, /media
และมักจะ/opt
แต่ที่ได้มาตรฐานหรือถึงการดำเนินการข้อมูลจำเพาะของคุณหรือไม่ อาจมีไดเรกทอรีจำนวนมากในรูทหรือถูก จำกัด โดยมาตรฐานหรือไม่
ฉันพยายามเรียนรู้มาตรฐาน POSIX เมื่อใช้ระบบปฏิบัติการยูนิกซ์ฉันได้/bin
, /etc
, /dev
, /media
และมักจะ/opt
แต่ที่ได้มาตรฐานหรือถึงการดำเนินการข้อมูลจำเพาะของคุณหรือไม่ อาจมีไดเรกทอรีจำนวนมากในรูทหรือถูก จำกัด โดยมาตรฐานหรือไม่
คำตอบ:
ตามมาตรฐานที่เผยแพร่ของ Open Group ไดเรกทอรีที่จำเป็นเท่านั้นคือ:
/
/dev
ซึ่งมีconsole
, null
และtty
/tmp
รับประกันเขียนได้ แต่ไม่จำเป็นต้องเก็บรักษาไว้Linux Foundation จะดูแลรักษาลำดับขั้นของระบบแฟ้ม (FHS) ซึ่งจะขยายสิ่งนี้เพื่อรวมไดเรกทอรีที่คุณมักจะเห็นในระบบ Linux:
/bin
: ไบนารีคำสั่งผู้ใช้สำคัญ/boot
: ไฟล์คงที่ของ bootloader/dev
: ไฟล์อุปกรณ์/etc
: การกำหนดค่าระบบเฉพาะโฮสต์/home
: โฮมไดเรกทอรีผู้ใช้ (ไม่จำเป็น)/lib
: ไลบรารีที่ใช้ร่วมกันที่จำเป็นและโมดูลเคอร์เนล/lib<qual>
: ไลบรารีที่สำคัญที่ใช้ร่วมกันรูปแบบสำรอง (ไม่บังคับ)/media
: จุดเมานท์สำหรับสื่อที่ถอดได้/mnt
: จุดเมานท์สำหรับระบบไฟล์ที่เมาท์ชั่วคราว/opt
: แพ็กเกจซอฟต์แวร์แอปพลิเคชันเสริม/root
: โฮมไดเร็กทอรีสำหรับผู้ใช้รูท (ทางเลือก)/run
: ข้อมูลตัวแปรรันไทม์/sbin
: ระบบไบนารี/srv
: ข้อมูลสำหรับการให้บริการโดยระบบนี้/tmp
: ไฟล์ชั่วคราว- เช่นเดียวกับ
/usr
ลำดับชั้นและ/var
ลำดับชั้น
FHS ได้รับการออกแบบให้เป็นแบบทั่วไปมากที่สุดเพื่อให้สามารถรวมตัวกันในระบบ UNIX ใด ๆ ไดเรกทอรีเพิ่มเติมมีแนวโน้มที่จะมีอยู่ในระบบที่เหมาะสม แต่ไม่ได้รับคำสั่งจาก POSIX
อย่างไรก็ตามโปรดทราบว่า The Open Group ยังระบุด้วยว่า
แอปพลิเคชันที่สอดคล้องอย่างเคร่งครัดจะไม่ถือว่าความสามารถในการสร้างไฟล์ในไดเรกทอรีใด ๆ เหล่านี้เว้นแต่จะระบุไว้ด้านล่าง
เนื่องจากไดเรกทอรีเป็นเพียงไฟล์จริงๆนี่ก็หมายความว่าแอปพลิเคชันที่สอดคล้องอย่างเคร่งครัดจะไม่สร้างไฟล์หรือไดเรกทอรีใด ๆ ในระดับราก ดังนั้น POSIX ไม่จำเป็นต้อง จำกัด สิ่งที่การกระจายอาจวางไว้ที่ระดับรูท แต่ดูเหมือนจะระบุว่าแอปพลิเคชันที่สอดคล้องกับข้อกำหนดของมันไม่สามารถสันนิษฐานได้ว่ามันจะสามารถทำได้
ใน10.1 โครงสร้างไดเรกทอรีและไฟล์ POSIX แสดงรายการไดเรกทอรีที่ต้องมีอยู่ แต่จะไม่ จำกัด จำนวนไดเรกทอรีอื่น ๆ ที่สามารถมีอยู่ในระดับรากของระบบไฟล์
สำหรับเรื่องนั้นไม่ปรากฏว่ามีการ จำกัด ขนาดของไดเรกทอรีอื่น
ความสนใจของ POSIX ในพื้นที่นี้มุ่งเน้นไปที่คนธรรมดามากกว่าความแตกต่าง
/
) สามารถเป็นรูทไดเร็กทอรีได้มันจะค่อนข้างไร้สาระที่จะกำหนดขีด จำกัด สูงสุดของจำนวนรายการในรูทไดเร็กทอรี /
ไม่ได้พิเศษโดยเฉพาะในเรื่องนี้ดังนั้นจึงเป็นไปตามที่มันจะค่อนข้างโง่พอสมควรที่จะกำหนดขีด จำกัด บนจำนวนรายการ/
โดยเฉพาะ
ไม่มีข้อ จำกัด เกี่ยวกับจำนวนของรายการในไดเรกทอรีทั้งใน POSIX หรือในการใช้งาน Unix ทั่วไป อาจมีข้อ จำกัด ทางอ้อมสำหรับจำนวนของไดเรกทอรีย่อยซึ่งเป็นจำนวนสูงสุดของการเชื่อมโยงฮาร์ด ( ..
รายการของแต่ละไดเรกทอรีย่อยคือการเชื่อมโยงอย่างหนักไปยังไดเรกทอรี); นั่นคือ 2 16สำหรับระบบไฟล์ทั่วไปจำนวนมากซึ่ง จำกัด ไดเรกทอรีไว้ที่ไดเรกทอรีย่อย 65533 (อย่างน้อยสำหรับระบบไฟล์เหล่านั้นที่เก็บ..
รายการไว้อย่างชัดเจน) คุณจะเริ่มแสดงประสิทธิภาพที่แย่ก่อนหน้านั้น ตาม POSIX การใช้งานได้รับอนุญาตให้สนับสนุนเพียง 8 ฮาร์ดลิงก์ในไฟล์ ( _POSIX_LINK_MAX
) แต่ไม่มีการใช้งานจริงถูก จำกัด ไว้ที่ 6 ไดเรกทอรีย่อย และต่อไปในระบบไฟล์จำนวนมากรวมถึง ext4 จำนวนฮาร์ดลิงก์จะไม่ได้รับการดูแล..
รายการดังนั้นข้อ จำกัด เพียงอย่างเดียวคือจำนวนพื้นที่หรือจำนวน inodes ที่มีอยู่ในระบบไฟล์
POSIX ไม่ได้พูดอะไรมากเกี่ยวกับการจัดระเบียบไฟล์ในระบบ เพียงเอกสารการดำรงอยู่ของไม่กี่ไฟล์ รายการเดียวที่บังคับใช้ในไดเรกทอรีรากมีและ/dev
/tmp
นิสัย Unix อื่น ๆ รายการเช่น/usr
, /var
, /bin
, /etc
, /lib
, /home
ฯลฯ จะUnixการประชุมที่ไม่ได้รับการประมวลผลโดย POSIX
บน Linux FHSประมวลผลคลาสสิกและอีกสองสามอย่าง ลีนุกซ์ส่วนใหญ่จะติดกับรายการ FHS โดยทั่วไประบบ Unix อื่น ๆ มักมีรายการเดียวกันส่วนใหญ่อาจมีความแตกต่างเล็กน้อย แต่มีจำนวนใกล้เคียงกัน
ผู้ดูแลระบบอาจสร้างมากขึ้นถึงแม้นี่จะเป็นกำลังใจ: มีสถานที่ที่ดีที่กำหนดสำหรับสิ่งที่มากที่สุด (ซอฟต์แวร์ไปตาม/usr
หรือ/opt
ข้อมูลระบบไปตาม/var
ข้อมูลผู้ใช้ไปตาม/net
ติดไปอยู่ภายใต้จุด/media
หรือ/mnt
อื่น ๆ ) จึงมีไม่ค่อย เหตุผลที่ดีในการสร้างไดเรกทอรีใหม่ที่ระดับบนสุด
ซึ่งแตกต่างจาก FAT ระบบไฟล์ที่ใช้โดย UNIX ไม่มีขนาด จำกัด พิเศษในไดเรกทอรีราก แต่เมื่อพาร์ทิชันเต็มคุณจะไม่สามารถเพิ่มได้อีก