ทำไม 777 ถูกมอบหมายให้ chmod ให้อนุญาตทุกอย่างในไฟล์?


54

ฉันถูกถามในการสัมภาษณ์ว่าเพราะเหตุใดจึงมีการมอบหมาย 777 ให้ใช้สิทธิ์ทั้งหมดสำหรับไฟล์ ทำไมไม่ 555 เขาบอกว่ามีเหตุผลสำหรับทุกสิ่ง ดังนั้นเหตุผลสำหรับ 777 คืออะไร? ทำไมไม่ใช้หมายเลขอื่น มีความสำคัญในจำนวนนี้หรือไม่?



2
อ้างอิงความคิดเห็นลิงก์ของ @ AvinashRaj & นำไปใช้กับอินสแตนซ์ คำถาม "ทำไม" ขึ้นอยู่กับว่ามันคืออินสแตนซ์อะไรและมีจุดประสงค์อะไรในการให้บริการ ... :)
AzkerM

1
เขาถามถึงความสำคัญของหมายเลข 7 กับ 5 หรือว่าทำไมพวกเขาถึงเป็นตัวเลขแทนที่จะพูดว่าตัวอักษร?
Braiam

4
นี่เป็นคำถามสัมภาษณ์ที่ยอดเยี่ยม ฉันอาจต้องขโมยมัน
คริสดิจิตอล

5
พูดอย่างเคร่งครัดไม่ใช่ 777 แต่ 0777
Ruslan

คำตอบ:


129

ฉันจะพยายามอธิบายเหตุผลที่สำคัญว่าเพราะเหตุใดจึงเป็น 777 มากกว่า aaa หรือ 999

โปรดจำไว้ว่าการอนุญาตมีรูปแบบดังต่อไปนี้:

 u   g   o
rwx rwx rwx

โดยที่ u = user, g = group, o = other

ทีนี้ลองจินตนาการว่าคุณเป็นตัวแทนของแต่ละกลุ่มเหล่านี้เป็นเลขฐานสอง 1 เป็นจริง 0 เป็นเท็จ

หากคุณต้องการให้ทุกคนเข้าถึงได้อย่างเต็มที่คุณจะต้องกำหนดสิทธิ์ต่อไปนี้ในรูปแบบไบนารี:

 u   g   o
rwx rwx rwx
111 111 111

ตอนนี้ถ้าคุณรู้ว่าไบนารีคุณจะรู้ว่าเมื่อคุณแปลงจากไบนารีทศนิยมคุณจะได้รับ1117

777ดังนั้นคุณสามารถเป็นตัวแทนของการเข้าถึงเต็มรูปแบบเช่น

หมายเหตุ:เรากำลังแปลงจากเลขฐานสองเป็นฐานแปด ดูการแก้ไขด้านล่าง

ใช้งานได้กับโหมดการเข้าถึงอื่น ๆ ทั้งหมดเช่นกัน

ตัวอย่างเช่นเราสามารถหาค่า555เฉลี่ยโดยแปลง5เป็นไบนารี่ได้อย่างง่ายดายและเขียนมันในรูปแบบข้างต้น 5ในไบนารีคือ101ดังนั้นเราจึงมีสิทธิ์ดังต่อไปนี้:

 u   g   o
r-x r-x r-x
101 101 101
 5   5   5

ในทำนองเดียวกันถ้าเราต้องการให้สิทธิ์ทั้งหมดแก่ผู้ใช้ แต่อนุญาตให้ผู้อื่นอ่านได้เท่านั้นเราสามารถค้นหาการแทนตัวเลขได้

 u   g   o
rwx r-- r--
111 100 100
 7   4   4

ตอนนี้เรารู้ว่า111ในเลขฐานสองเป็น7ทศนิยมและ100ในเลขฐานสองเป็น4ทศนิยม 744ดังนั้นสิทธิ์ที่จะได้รับ

แก้ไข:

ในทางเทคนิคตามที่เน้นโดย @ LưuVĩnhPhúcและ @Braiam เรากำลังแปลงจากเลขฐานสองเป็นฐานแปดดังที่อธิบายไว้ด้านล่าง อย่างไรก็ตามการแทนค่าทศนิยมและฐานแปดของตัวเลข <8 เหมือนกันดังนั้นสำหรับเลขฐานสองที่มี 3 หลักหรือน้อยกว่าการแทนทั้งทศนิยมและฐานแปดจะเท่ากัน

เมื่อแสดงเป็นตัวเลขฐานแปดแทนที่จะแบ่งออกเป็นกลุ่มละสามกลุ่มและทำการแปลงแบบไบนารีเป็นทศนิยมในแต่ละกลุ่มคุณสามารถนำทั้งสามกลุ่มมารวมกันเป็นเลขฐานสองเดียวและแปลงเป็นฐานแปด

ตัวอย่างเช่นต่อไปนี้คือการแปลงไบนารีเป็นฐานแปด:

0b111111111 == 0o777
0b101101101 == 0o555
0b111100100 == 0o744

โปรดทราบว่าฉันกำลังเติม "0b" และ "0o" เพื่อแยกความแตกต่างระหว่างเลขฐานสองและตัวเลขฐานแปด

หากคุณต้องการที่จะเล่นกับสิ่งนี้ให้เปิดเทอร์มินัลpythonจากนั้นเล่นด้วยคำสั่งต่อไปนี้:

oct(0b111111111)
bin(0o555)

อย่าลืมเติม "0b" หรือ "0o" ให้กับตัวเลขเพื่อให้คอมพิวเตอร์ทราบว่าคุณสนใจฐานแบบใด (หากคุณไม่ทำจะถือว่าเป็นฐาน 10)


17
เพียงเพื่อประโยชน์ของความสมบูรณ์รูปแบบของตัวเลขที่เรียกว่า octals ซึ่งหมายถึงฐานของ 8 (ตั้งแต่พวกเขาเริ่มต้นจาก 0 คือ 7 + 1 = 8)
Braiam

3
davie: octal นั้นง่ายเพราะจริงๆแล้วมันจะจัดกลุ่มสามบิตเช่นเดียวกับกลุ่มเลขฐานสิบหกสี่ ทศนิยมไม่ใช่พลังของ 2 ดังนั้นมันจึงไม่จัดกลุ่มบิตเป็นอย่างดี
Konerak

2
คุณจะได้หมายเลขเดียวกันทั้งสองกรณี ฉันคิดว่ามีโอกาสมากที่คนจะเข้าใจการแปลงแบบไบนารีเป็นทศนิยมมากกว่าการแปลงแบบไบนารีเป็นแบบฐานแปด นอกจากนี้ฉันได้เพิ่มส่วนท้ายเพื่อชี้แจงว่าตัวเลขเป็นฐานแปดจริง ๆ ไม่ใช่ทศนิยม
daviewales

3
7เหมือนกันทั้งในทศนิยมและฐานแปด - แต่777ไม่ใช่ เมื่อคุณพูดถึงการพลิกบิตมันสร้างความแตกต่าง
Sam Dufel

2
เพื่อประโยชน์เพียงเล็กน้อย 7 ถูกอ้างถึงว่าเป็นหมายเลขของพระเจ้าและผู้ใช้รูทซึ่ง777บางครั้งการอนุญาตเริ่มต้นนั้นบางครั้งเรียกว่าพระเจ้า
eyoung100

16

อ่านสิทธิ์ในแฟ้มวิธี4เขียนสิทธิ์ในแฟ้มวิธีการและการดำเนินสิทธิ์ในแฟ้มหมายถึง21

7ดังนั้นทั้งหมดนี้เป็น

ตอนนี้อะไรคือ 777: สิ่งแรก7คือสำหรับเจ้าของไฟล์ที่หมายถึงเจ้าของไฟล์ได้อ่านถูกต้องและดำเนินการอนุญาต

อันดับที่ 2 7สำหรับกลุ่มที่เป็นไฟล์หมายถึงกลุ่มยังมีสิทธิ์ในการอ่านเขียนและเรียกใช้งานทั้งหมด

และที่สาม7คือการอนุญาตอื่น ๆ

หากคุณให้สิทธิ์ไฟล์ไฟล์555นั้นowner, group and othersจะมีเพียงสิทธิ์readและexecuteสิทธิ์not writeอนุญาตเนื่องจากสิทธิ์ในการอ่านหมายถึง 4 และดำเนินการหมายถึง 1 ดังนั้นจำนวนทั้งหมดจึงจะได้รับ5


กลุ่มคืออะไรและสิทธิ์อื่น ๆ เหล่านั้นคืออะไร ขอบคุณสำหรับการตอบสนอง
hellodear

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

7

คำไม่กี่คำตอบยอดนิยม:

แต่ละไฟล์มี 3 ตัวเลือกการอนุญาต: อ่านเขียนและดำเนินการ คุณไม่สามารถเลือกสิ่งใดสิ่งหนึ่งเหล่านี้หนึ่งในสองสิ่งเหล่านี้หรือทั้งหมดเหล่านี้:

C (3,0) + C (3,1) + C (3,2) + C (3,3) = 8

1 + 3 + 3 + 1 = 8

ดังนั้นทั้งหมดมี 8 ชุด; 8 ตัวเลือกสำหรับการอนุญาต นับจาก 0 จำนวนสุดท้ายคือ 7 (ตั้งแต่ 0 ถึง 7) ดังนั้นโดยตัวเลขนี่คือตัวเลือกทั้งหมด:

0 - nothing
1 - execute
2 - write
4 - read
3 - execute + write (1 + 2)
5 - execute + read (1 + 4)
6 - write + read (2 + 4)
7 - execute + write + read (1 + 2 + 4)

มีตัวเลขสามตัวเนื่องจากคำสั่งซื้อไปที่ [สิทธิ์ผู้ใช้] [สิทธิ์กลุ่ม] [สิทธิ์อื่น ๆ ]

ดังนั้น 777 หมายความว่าทั้งสามกลุ่มมีสิทธิ์อ่านเขียนและดำเนินการ


นอกจากนี้ (เกี่ยวข้องโดยอ้อมดังนั้นคุณไม่จำเป็นต้องอ่านส่วนนี้) เพราะฉันคิดว่าความเกี่ยวข้องมีความสำคัญ: เหตุใดจึงมีreadหมายเลข 4 แทนหมายเลข 3

0 - nothing
1 - execute
2 - write
3 - read
4 - execute + read (1 + 3)
5 - write + read (2 + 3)
6 - execute + write + read (3 + 2 + 1)
7 - ????? no way to get this with the 3 basic options (and we are missing execute + write)

วิธีเดียวที่จะได้รับชุดค่าผสมที่ไม่ซ้ำกันสำหรับความเป็นไปได้ทั้งหมดคือไปด้วยพลังของ 2 สำหรับตัวเลือกพื้นฐาน 2 0 = 1 (ดำเนินการ), 2 1 = 2 (เขียน), 2 2 = 4 (อ่าน) และถ้ามีตัวเลือกพื้นฐานที่ 4 ก็จะมีหมายเลข 2 3 = 8 โปรดทราบว่าwriteจะไม่แสดงจนกว่าจะรวมกันทั้งหมดของ ตัวเลือกก่อนหน้านี้มีอยู่ในรายการ (ซึ่งเป็นเพียงตัวเลือกเดียวเนื่องจากเป็นเพียงexecute) readจะไม่ปรากฏจนกว่าจะมีการรวมกันของตัวเลือกก่อนหน้าทั้งหมด (อีกครั้งหนึ่งเนื่องจากมีเพียงชุดค่าผสมเดียวที่มีสองตัวเลือก - execute+ write) execute+ write+readไม่แสดงจนกว่าชุดค่าผสมก่อนหน้านี้ทั้งหมดจะถูกแสดงรายการซึ่งก็คือ 3 เนื่องจากขณะนี้มีสองตัวเลือกจากสามสิทธิ์ รายการจะดำเนินต่อไปในลักษณะนี้ไม่ว่าจะมีตัวเลือกพื้นฐานจำนวนเท่าใด เพื่อประโยชน์ในการเป็นตัวอย่างมี 4 ตัวเลือกพื้นฐาน (โปรดทราบว่าเรารู้ด้วยเช่นกันว่าจะมีชุดค่าผสมทั้งหมด 16 ชุดเนื่องจากมี 4 ตัวเลือกและ 2 4 = 16):

0 - nothing
1 - execute
2 - write
4 - read
3 - execute + write (1 + 2)
5 - execute + read (1 + 4)
6 - write + read (2 + 4)
7 - execute + write + read (1 + 2 + 4)
8 - love
9 - execute + love (1 + 8)
10 - write + love (2 + 8)
11 - execute + write + love (1 + 2 + 8)
12 - read + love (4 + 8)
13 - execute + read + love (1 + 4 + 8)
14 - write + read + love (2 + 4 + 8)
15 - execute + write + read + love (1 + 2 + 4 + 8)

6
คำตอบนี้แย่มากเพราะไม่สามารถรับรู้ไบนารีและที่สำคัญกว่านั้นคือระบบเลขฐานแปดเป็นแหล่งข้อมูลสำหรับบิตสิทธิ์การใช้ไฟล์ Unix (สนุกพอพวกเขาไม่ 3 หรือ 4 ... พวกเขา 6 แม้ว่า 18 บิตเต็มรูปแบบที่ยังไม่ได้ใช้ในปัจจุบัน)
mirabilos

1
ฐานไม่สำคัญเนื่องจาก 111 คือ 7; ไม่ว่าฉันจะบอกว่าสิทธิ์เป็น 111 หรือ 7 ไม่สำคัญเพราะมันเป็นค่าเดียวกัน ฉันใช้ทศนิยมเพื่อความเรียบง่ายของตัวอย่างเพื่อแสดงคณิตศาสตร์ที่เกี่ยวข้อง ฉันสามารถใช้เลขฐานสองได้ แต่คณิตศาสตร์จะไม่ตรงไปตรงมา จะเกิดอะไรขึ้นเมื่อสามารถแปลฐานระหว่างกันได้?
Daniel Ward

4

ฉันประหลาดใจที่มีคำตอบคล้าย ๆ กันมากมายที่พลาดไม่ได้เลย

หลังจากพิจารณา 3 คลาสที่จำเป็นต้องอ่านให้เขียนและดำเนินการ พวกเขาไปกับฐานแปด (3 ชิ้น) เพื่อลดพื้นที่ที่จำเป็นสำหรับการจัดการระบบไฟล์


3

ด้วยเหตุผลบางอย่างผู้ออกแบบ UNIX ตัดสินใจใช้หมายเลข OCTALสำหรับการอนุญาตไฟล์ อย่างที่คุณทราบค่าสูงสุดสำหรับเลขฐานแปดหนึ่งหลักคือ 7 ปรากฎว่าเลขฐานแปดหนึ่งสำหรับการเข้าถึงของผู้ใช้หนึ่งสำหรับการเข้าถึงกลุ่มและหนึ่งสำหรับการเข้าถึงโลกเพียงพอสำหรับเกือบทุกอย่าง จำนวนฐานแปด 3digit สูงสุดคือ 777 และเหมาะสมที่จะแสดงว่า "การเข้าถึงทุกคน / ทุกอย่าง"


ฉันไม่คิดว่านี่เป็นคำอธิบายที่ดี ผู้ออกแบบ UNIX สามารถมีตัวเลขทศนิยมและจะยังคงสิ้นสุดลงด้วย7 denoting การเข้าถึงสูงสุดแทนที่จะเป็น9 (เป็นเลขทศนิยมสูงสุด) 7จะไม่ได้รับการแต่งตั้ง "subtractively" ขึ้นอยู่กับสิ่งที่ตัวเลขที่เป็นไปได้เริ่มต้นที่หลักเดียวเป็นไปได้สูงสุด แต่ "additively" ขึ้นอยู่กับการเข้าถึงที่ได้รับอนุญาตโดยตัวเลขไบนารีเดียวเริ่มต้นที่ศูนย์เพื่อสิทธิมนุษยชนที่ไม่ทั้งหมด
หรือผู้ทำแผนที่

สังเกตุฉันเขียนที่ขอร้อง "ด้วยเหตุผลบางอย่าง" ... - ฉันไม่ต้องการอธิบายอย่างลึกซึ้งเกี่ยวกับสาเหตุที่พวกเขาเลือกหมายเลขฐานแปดเพราะนั่นไม่ใช่คำถาม OP คำถามคือทำไม 777 ให้สิทธิ์ทั้งหมด
DejanLekic

มันไม่เกี่ยวข้องที่นี่ทำไมพวกเขาเลือกหมายเลขแปด ประเด็นของฉันคือเหตุผลที่สิทธิ์สูงสุดถูกแทนด้วยหมายเลข 7 ไม่ใช่ว่า 7 เกิดขึ้นเป็นเลขฐานแปดสูงสุด
หรือ Mapper

2

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

ในบันทึกที่เกี่ยวข้อง Base-2 (ไบนารี) ไม่ใช่เครื่องหมายที่สะดวกมากสำหรับการเขียนค่า ทุกวันนี้โปรแกรมเมอร์ส่วนใหญ่เขียนเครื่องหมายขนาดเล็กที่ใช้ Base-16 (เลขฐานสิบหก)แทน 16 มีขนาดใหญ่พอสำหรับฐานที่คุณสามารถแพ็คสี่บิตให้เป็นเลขฐานสิบหก: ตัวอย่างเช่น "0000" ในไบนารีคือ 0x0 ในเลขฐานสิบหก (นั่นคือ "0x" เป็นวิธีการทั่วไปที่จะทราบว่าคุณกำลังจะ เขียนตัวเลขฐานสิบหก) ในขณะที่ "1111" คือ 0xF (หรือ 15 เป็นทศนิยม) คุณสามารถเขียนการรวมกันที่เป็นไปได้ของสี่บิตโดยใช้เลขฐานสิบหกหลักเดียวเพียงแค่นับเป็นเลขฐานสองและเนื่องจากวิธีการคำนวณทางคณิตศาสตร์แบบตำแหน่งคุณสามารถวางซ้อนกันได้: เลขฐานสิบหกสองเลขสามารถเข้ารหัสชุดที่เป็นไปได้ใด ๆ โดยการนับและอื่น ๆ ดังนั้นคน 8 บิตจึงชอบสิ่งนี้

ผู้ใช้ 6 บิตมีวิธีการทำเช่นนี้ของตัวเอง แต่แทนที่จะใช้ Base-16 พวกเขาใช้ Base-8 (octal) มันมีข้อดีคล้ายกับเลขฐานสิบหก: คุณสามารถเก็บตำแหน่งใด ๆ ของสามบิตในฐานแปดหลักและคุณสามารถสแต็กหลักขึ้นในลักษณะที่คล้ายกัน ดังนั้นเช่นเดียวกับ 8-bit folks ที่ใช้เลขฐานสิบหกสองหลักสำหรับหนึ่งไบต์ 6-bit folks ใช้สอง octal-ดิจิตสำหรับไบต์ คุณไม่เห็นเลขฐานแปดอีกต่อไป แต่โดยทั่วไปแล้วมันจะถูกบันทึกด้วยศูนย์นำหน้าตัวอย่างเช่น "111" คือ 07 ในฐานแปด

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

ในบางจุดตามแนวคน -probably ใน camp- 6 บิตกล่าวว่า "เฮ้เราสามารถใช้ฐานแปดหลักสำหรับเรื่องนี้" และนี่กลายเป็นสัญกรณ์ที่สะดวกสบายมาก: เลขฐานแปดสามหลักก็เพียงพอที่จะเข้ารหัสได้ทุกการรวมกันของฟิลด์บิต เมื่อพวกเขาตัดสินใจที่จะทำสิ่งนี้ชะตากรรมของ 777 (และของยุค 000) ถูกผนึกเพราะตัวเลขเหล่านั้นจะเหมือนกันไม่ว่าพวกเขาจะจัดเรียงบิตอย่างไร แต่ลำดับสำคัญสำหรับตัวเลขอื่น ๆ ทั้งหมดดังนั้นพวกเขาจึงเริ่มทำเช่นนี้

พวกเขาจัดการสิทธิ์ในฟิลด์สามบิต: อ่านตอนเริ่มต้นเขียนตรงกลางและดำเนินการเมื่อสิ้นสุด จากนั้นพวกเขาจัดเรียงฟิลด์เอง: เจ้าของตอนเริ่มกลุ่มตรงกลางและคนอื่น ๆ ในตอนท้าย เมื่อพวกเขาทำสิ่งนี้พวกเขาต้องทำเพื่อกำหนดจำนวนที่เหลือให้นับ

เนื่องจากเป็นเขตข้อมูล 3 บิตคุณสามารถพูดได้ว่าแต่ละหมายเลขแปดหลักควบคุมหนึ่งในฟิลด์ : หลักแรกควบคุมสิทธิ์ของเจ้าของ, หลักที่สองควบคุมสิทธิ์ของกลุ่มและหลักที่สามควบคุมสิทธิ์อื่น ๆ ดังนั้น 777 (111 111 111) จึงเป็นสิทธิ์ทั้งหมดสำหรับทุกคนในขณะที่ 700 (111 000 000) เป็นสิทธิ์ทั้งหมดสำหรับเจ้าของเท่านั้น ชุดค่าผสมอื่น ๆ ก็มีเหมือนกัน: 666 (110 110 110) ถูกอ่าน / เขียนสำหรับทุกคน แต่ไม่ได้ดำเนินการ) ในขณะที่ 555 (101 101 101) สามารถอ่าน / ดำเนินการสำหรับทุกคน แต่ไม่ได้เขียนและ 400 (100 000 000) สำหรับเจ้าของเท่านั้นและไม่สามารถเข้าถึงได้สำหรับผู้อื่น

และนั่นคือเหตุผลที่ 777 หมายถึงการอนุญาตทั้งหมด ทุกวันนี้อาจเป็นเหตุผลที่คนส่วนใหญ่นิยมใช้ octal เลยแม้ว่า Unix และลูกหลานของมันจะยังมีร่องรอยอื่น ๆ อยู่บ้าง ตัวอย่างเช่น, odหรือ Octal Dump เป็นวิธีการรับไบนารีดัมพ์ของไฟล์ในรูปแบบฐานแปด (มันมีลูกพี่ลูกน้องฐานสิบหกที่เรียกว่าxxd, แต่นั่นก็ไม่เป็นที่รู้จักกันดี นอกจากนี้ยังเป็นสาเหตุที่คุณต้องระมัดระวังเลขศูนย์นำหน้าในภาษาการเขียนโปรแกรมบางอย่างเพราะพวกเขาอาจคิดว่าคุณตั้งใจที่จะเขียนตัวเลขเป็นเลขฐานแปดเมื่อไม่ใช่เจตนาของคุณ


ก่อนอื่นเมื่อลินุกซ์ถูกสร้างขึ้น (ประมาณปี 1992) การถกเถียงแบบ 8 บิต 6 บิตเป็นวิธีที่มากกว่า ครั้งที่สองนั่นไม่ใช่เหตุผลว่าทำไมสิ่งนี้จึงเกิดขึ้น
Ahmed Masud

1
ฉันให้สิ่ง 8-bit / 6-bit สำหรับบริบททางประวัติศาสตร์ Linux ถูกสร้างขึ้นหลังจากการอภิปรายจบลงมันเป็นเรื่องจริง แต่เนื่องจากมันได้รับแรงบันดาลใจจาก Unix มากมันจึงได้รับผลกระทบจากการอภิปรายในลักษณะเดียวกัน นี่คือเหตุผลที่ฉันคิดว่ามันจะเป็นความคิดที่ดีที่จะแนะนำบริบททางประวัติศาสตร์
The Spooniest
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.