การเขียนโปรแกรม Unix หมายถึงอะไรกันแน่? [ปิด]


10

ฉันคิดว่าฉันเข้าใจความหมายของคำว่าการเขียนโปรแกรม Unixแต่ตอนนี้หลังจากอ่านเกี่ยวกับมันในบริบทการเขียนโปรแกรมเคอร์เนล / C ฉันรู้สึกว่าฉันต้องชี้แจงความหมายของคำนี้

ไม่ชัดเจนสำหรับฉันถ้ามันหมายถึง:

  1. การเขียนโปรแกรมเชลล์
  2. เครื่องมือการเขียนโปรแกรม Unix
  3. วิธี / รูปแบบเฉพาะของการเขียนโปรแกรมเครื่องมือบรรทัดคำสั่ง Unix (เช่นการเห็นด้วยกับวิธีการของ "Unix shell programming") หรือ
  4. อื่น ๆ อีก.

2
คุณจะต้องให้บริบทหน่อย คุณอ่านนิพจน์นี้ที่ไหน นอกบริบทฉันพูดได้ว่ามันหมายถึงการเขียนโปรแกรมสำหรับ Unix OS
lgeorget

6
คำถามนี้ดูเหมือนจะไม่อยู่ในหัวเพราะเป็นเรื่องเกี่ยวกับภาษาอังกฤษขั้นพื้นฐาน
Gilles 'หยุดชั่วร้าย'

1
@Gilles โอ้ดังนั้นนั่นคือตัวคั่นในขณะนี้: P
goldilocks

@Igeorget, Taoup
Pacerier

@ goldilocks ความหมาย?
Pacerier

คำตอบ:


14

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

ตัวอย่างเช่นการเขียนโปรแกรมเครือข่ายที่ไม่มีไลบรารี่ของบุคคลที่สามใน C หรือ C ++ นั้นไม่สามารถพกพาได้ ระบบเครือข่ายใน C / C ++ นั้นถูกนำไปใช้งานโดยใช้อินเตอร์เฟสที่ระบบปฏิบัติการกำหนดและในขณะที่ระบบ * nix-ish นี้เป็นระบบที่มีความเป็นสากลมากขึ้นหรือน้อยลงคุณไม่สามารถพอร์ตที่รหัสไม่เปลี่ยนแปลง (เช่น) Windows และในทางกลับกัน ดังนั้นการทำสิ่งต่าง ๆ ของเครือข่ายใน C หรือ C ++ หมายถึงการใช้ไลบรารีแบบพกพาหรือกำหนดเป้าหมายแพลตฟอร์มและ Unix เป็นหนึ่งในความเป็นไปได้ในกรณีต่อมานั่นคือ "การเขียนโปรแกรม unix" (และการโปรแกรม C หรือ C ++ และการเขียนโปรแกรมเครือข่าย) 1

อย่างไรก็ตามการเขียนโปรแกรมเครือข่ายในภาษาระดับสูงกว่ามากเช่น perl หรือ python หรือ java เป็นแบบพกพา ภาษาเหล่านี้มักใช้งานใน C แต่ในขณะที่รายละเอียดของการใช้งานแตกต่างจากแพลตฟอร์มหนึ่งไปอีกแพลตฟอร์ม ดังนั้นคุณสามารถเขียนรหัสเครือข่ายใน Perl ที่ควรทำงานบนระบบใด ๆ ที่ perl ทำงาน; บนระบบ Unix สิ่งนี้ถูกแปลโดยการใช้ล่ามในการโทรที่เหมาะสมและบนระบบ windows มันจะถูกแปลต่างกัน เนื่องจากรหัส perl ที่แท้จริงของคุณไม่เฉพาะเจาะจงกับ perl เท่านั้นไม่ใช่การเขียนโปรแกรม unix มันคือการเขียนโปรแกรมเครือข่ายและการเขียนโปรแกรม Perl แต่ไม่ใช่การเขียนโปรแกรมยูนิกซ์


1. เนื่องจากความสัมพันธ์ทางประวัติศาสตร์ที่ใกล้ชิดระหว่าง C และ Unix ความจริงที่ว่า C เป็นภาษาที่ใช้กันมากที่สุดในการเขียนระบบปฏิบัติการโดยทั่วไปและธรรมชาติของสิ่งที่ "ระบบปฏิบัติการ" คือมีหลายสิ่งในหมวดหมู่ " การเขียนโปรแกรม C เฉพาะระบบปฏิบัติการ "- อีกตัวอย่างหนึ่งในชีวิตประจำวันนอกเหนือจากเครือข่ายคือสิ่งที่มุ่งเน้นระบบไฟล์เช่นไฟล์ statting และการอ่านไดเรกทอรี ดังนั้นจึงมีหนังสือประเภท "Unix Programming ใน C" อยู่รอบ ๆ เนื่องจากการเขียนโปรแกรมพื้นฐานใน C ย่อมเกี่ยวข้องกับองค์ประกอบเฉพาะของระบบปฏิบัติการหลายอย่าง นี่ไม่ใช่กรณีที่มีภาษาแบบพกพาเช่น perl หรือ java; ในกรณีนี้หัวเรื่องของหนังสือน่าจะเป็น " การเขียนโปรแกรมระบบใน Perl" หรือมากกว่านั้นก็คือ "การเขียนโปรแกรมด้วย Perl" แบบธรรมดา


1
prof goldilocks นัดอีกครั้ง!
mikeserv

@goldilocks เนื่องจาก linux ฆ่า Unix คุณหมายความว่าแทบจะไม่มีใคร "Unix programming" ในตอนนี้?
Pacerier

1
โซลาริสและ BSD ใช้งานแบบกระจาย (แม้ว่าผู้ใช้พีซีโดยเฉลี่ยไม่รู้ว่ามันคืออะไร) และในทางเทคนิคOSX ถูกลงโทษอย่างเป็นทางการตามมาตรฐาน UNIX (ดูเหมือนชื่อเปลี่ยนกลับเป็น "macOS" ดังนั้นฉันจะต้อง ไม่เห็นด้วยกับหลักฐานของคุณ
goldilocks
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.