กลับไปหน้าบทความ

อ่าน 6 นาที

โปรซีเอฟ

ระบบ ไฟล์ proc ( procfs ) เป็นระบบไฟล์พิเศษใน ระบบปฏิบัติการ แบบ Unix ที่แสดงข้อมูลเกี่ยวกับ กระบวนการ และข้อมูลระบบอื่นๆ ในโครงสร้างแบบไฟล์ที่มีลำดับชั้น...

โปรซีเอฟ

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

ระบบปฏิบัติการที่คล้าย Unix หลายระบบรองรับระบบไฟล์ proc รวมถึงSystem V , Solaris , IRIX , Tru64 UNIX , BSD , Linux , IBM AIX , [ 1 ] QNXและPlan 9 จาก Bell Labs OpenBSD ยกเลิก การสนับสนุนในเวอร์ชัน 5.7 ซึ่งวางจำหน่ายในเดือน พฤษภาคม 2015 และไม่มีอยู่ในHP-UX [ 1 ]และmacOS [ 2 ]

เคอร์เนลของ ลินุกซ์ ขยายขอบเขตนี้ไปยังข้อมูลที่ไม่เกี่ยวข้องกับกระบวนการทำงาน

ระบบไฟล์ proc เป็นวิธีการสื่อสารระหว่างพื้นที่เคอร์เนลและพื้นที่ผู้ใช้ตัวอย่างเช่น คำสั่ง ps บนPlan 9และยูทิลิตี้รายงานกระบวนการps เวอร์ชัน GNUใช้ระบบไฟล์ proc เพื่อดึงข้อมูลโดยไม่ต้องใช้การเรียกใช้ระบบ เฉพาะใด ๆ

ประวัติศาสตร์

UNIX รุ่นที่ 8

Tom J. Killianได้นำ เวอร์ชัน /proc ของ UNIX รุ่นที่ 8 (V8) มาใช้ โดยเขาได้นำเสนอเอกสารเรื่อง"Processes as Files"ที่USENIXในเดือนมิถุนายน พ.ศ. 2527 การออกแบบ procfs มีเป้าหมายเพื่อแทนที่ การเรียกใช้ระบบ ptraceที่ใช้สำหรับการติดตามกระบวนการ สามารถดูเอกสารโดยละเอียดได้ในหน้า คู่มือ proc(4)

เอสวีอาร์3

ระบบปฏิบัติการ AT&T System V Release 3 (SVR3) รุ่นดั้งเดิม (ซึ่งมีให้ใช้งานภายใน AT&T ในปี 1986 และใช้งานทั่วไปในปี 1987) ไม่ได้มาพร้อมกับ ระบบไฟล์ /procแต่เวอร์ชันที่พัฒนาขึ้นในภายหลังได้เพิ่มระบบไฟล์นี้เข้ามา โดยมีเฉพาะไฟล์ที่แสดงถึงกระบวนการทำงานเท่านั้น ไม่ใช่ไดเร็กทอรีย่อยแบบที่พบได้ทั่วไปในปัจจุบัน

เอสวีอาร์4

Roger FaulknerและRon Gomesได้พอร์ต V8 /procไปยังSVR4และตีพิมพ์บทความชื่อ"The Process File System and Process Model in UNIX System V"ในงาน USENIX เมื่อเดือนมกราคม 1991 ระบบไฟล์ procfs ประเภทนี้รองรับการสร้างpsแต่ไฟล์สามารถเข้าถึงได้ด้วยฟังก์ชันread() , write()และioctl () เท่านั้น ระหว่างปี 1995 ถึง 1996 Roger Faulkner ได้สร้างอินเทอร์เฟซ procfs-2 สำหรับ Solaris-2.6 ซึ่งมีระบบไฟล์ /proc ที่มีโครงสร้างพร้อมไดเร็กทอรีย่อย

แผน 9

Plan 9ได้นำระบบไฟล์สำหรับกระบวนการทำงานมาใช้ แต่ก้าวไปไกลกว่า V8 ระบบไฟล์สำหรับกระบวนการทำงานของ V8 ใช้ไฟล์เดียวต่อกระบวนการทำงาน แต่ Plan 9 สร้างลำดับชั้นของไฟล์แยกต่างหากเพื่อจัดเตรียมฟังก์ชันเหล่านั้น และทำให้ /proc เป็นส่วนหนึ่งของระบบไฟล์อย่างแท้จริง นอกจากนี้ แนวทางการพกพาของ Plan 9 ยังช่วยให้ระบบที่มีสถาปัตยกรรมและลำดับไบต์ที่แตกต่างกันสามารถดีบักกระบวนการทำงานของระบบอื่นได้

4.4BSD และเวอร์ชันที่พัฒนาต่อยอดจากเวอร์ชันนี้

4.4BSDคัดลอกการใช้งาน/procมาจาก Plan 9 ณ เดือนกุมภาพันธ์ 2011 procfs กำลังค่อยๆ ถูกยกเลิกใน FreeBSD [ 3 ]และได้เปลี่ยนไปใช้ ส่วนติดต่อ sysctlแทนสำหรับข้อมูลที่เกี่ยวข้องกับกระบวนการ เพื่อให้เข้ากันได้กับไบนารีกับโปรแกรมพื้นที่ผู้ใช้ของ Linux เคอร์เนลของ FreeBSD ยังมีlinprocfsซึ่งคล้ายกับ procfs ของ Linux [ 4 ] มันถูกลบออกจากOpenBSDในเวอร์ชัน 5.7 ซึ่งวางจำหน่ายในเดือนพฤษภาคม 2015 เนื่องจาก "มักประสบปัญหา race condition และตอนนี้ไม่ได้ใช้งานแล้ว" [ 5 ] macOSไม่ได้ใช้งาน procfs และโปรแกรมพื้นที่ผู้ใช้ต้องใช้ ส่วนติดต่อ sysctlเพื่อดึงข้อมูลกระบวนการ[ 2 ]

โซลาริส

/proc ใน Solaris มีให้ใช้งานมาตั้งแต่เริ่มต้น (มิถุนายน 1992) Solaris 2.6 ในปี 1996 ได้แนะนำ procfs2 จาก Roger Faulkner

ลินุกซ์

ลินุกซ์ได้เพิ่มระบบไฟล์ /proc เป็นครั้งแรกในเวอร์ชัน 0.97.3เมื่อเดือนกันยายน ปี 1992 และเริ่มขยายการใช้งานให้ครอบคลุมข้อมูลที่ไม่เกี่ยวข้องกับกระบวนการทำงานในเวอร์ชัน 0.98.6 เมื่อเดือนธันวาคม ปี 1992

ณ ปี 2020 การใช้งาน Linux มีไดเร็กทอรีสำหรับแต่ละกระบวนการที่กำลังทำงานอยู่ รวมถึง กระบวนการ เคอร์เนลโดยอยู่ในไดเร็กทอรีชื่อ/proc/PIDซึ่งPIDคือหมายเลขกระบวนการ แต่ละไดเร็กทอรีจะมีข้อมูลเกี่ยวกับหนึ่งกระบวนการ รวมถึง:

  • /proc/PID/cmdlineคือคำสั่งที่เริ่มต้นกระบวนการในตอนแรก
  • /proc/PID/cwdคือลิงก์สัญลักษณ์ไปยังไดเร็กทอรีการทำงานปัจจุบันของกระบวนการ
  • /proc/PID/environประกอบด้วยชื่อและค่าของตัวแปรสภาพแวดล้อมที่มีผลต่อกระบวนการทำงาน
  • /proc/PID/exeคือลิงก์สัญลักษณ์ไปยัง ไฟล์ ปฏิบัติการ ต้นฉบับ หากไฟล์นั้นยังคงอยู่ (กระบวนการอาจยังคงทำงานต่อไปได้แม้ว่าไฟล์ปฏิบัติการต้นฉบับจะถูกลบหรือถูกแทนที่แล้วก็ตาม)
  • /proc/PID/fdคือไดเร็กทอรีที่มีลิงก์สัญลักษณ์สำหรับตัวระบุไฟล์ ที่เปิด อยู่ แต่ละตัว
  • /proc/PID/fdinfoคือไดเร็กทอรีที่มีรายการต่างๆ ซึ่งอธิบายตำแหน่งและแฟล็กสำหรับตัวระบุไฟล์ที่เปิดอยู่แต่ละตัว
  • /proc/PID/mapsคือไฟล์ข้อความที่มีข้อมูลเกี่ยวกับ ไฟล์และบล็อก ที่ถูกแมป (เช่น ฮีปและสแต็ก)
  • /proc/PID/mem ซึ่งเป็นอิมเมจไบนารีที่แสดงถึง หน่วยความจำเสมือนของกระบวนการสามารถเข้าถึงได้โดยกระบวนการที่ใช้คำสั่งptrace เท่านั้น
  • /proc/PID/rootคือลิงก์สัญลักษณ์ไปยังพาธรูทที่กระบวนการนั้นมองเห็น สำหรับกระบวนการส่วนใหญ่จะเป็นลิงก์ไปยัง / เว้นแต่ว่ากระบวนการนั้นกำลังทำงานอยู่ในสภาพแวดล้อมแบบchroot jail
  • /proc/PID/statusมีข้อมูลพื้นฐานเกี่ยวกับกระบวนการทำงาน รวมถึงสถานะการทำงานและการใช้หน่วยความจำ
  • /proc/PID/taskคือไดเร็กทอรีที่มีฮาร์ดลิงก์ไปยังงานใดๆ ที่เริ่มต้นโดยกระบวนการนี้ (เช่น กระบวนการหลัก)

(ผู้ใช้สามารถรับPID ได้ โดยใช้ยูทิลิตี้ เช่นpgrep , pidofหรือps :

$ ls -l /proc/ $( pgrep -n python3 ) /fd # แสดงรายการตัวระบุไฟล์ทั้งหมดของกระบวนการ `python3` ที่เริ่มต้นล่าสุดtotal 0 lrwx------ 1 baldur baldur 64 2020-03-18 12:31 0 -> /dev/pts/3 lrwx------ 1 baldur baldur 64 2020-03-18 12:31 1 -> /dev/pts/3 lrwx------ 1 baldur baldur 64 2020-03-18 12:31 2 -> /dev/pts/3 $ readlink /proc/ $( pgrep -n python3 ) /exe # แสดงรายการไฟล์ปฏิบัติการที่ใช้ในการเริ่มต้นกระบวนการ `python3` ล่าสุด /usr/bin/python3.8

)

นอกจากนี้ /procยังรวมถึงข้อมูลระบบที่ไม่เกี่ยวข้องกับกระบวนการทำงานด้วย แม้ว่าในเคอร์เนลเวอร์ชัน 2.6 ข้อมูลส่วนใหญ่จะถูกย้ายไปยังระบบไฟล์เสมือนแยกต่างหากที่เรียกว่าsysfsซึ่งติดตั้งอยู่ภายใต้/sysก็ตาม

  • ขึ้นอยู่กับโหมดการจัดการพลังงาน (ถ้ามี) อาจเป็นไดเร็กทอรี/proc/acpiหรือ/proc/apmซึ่งมีมาก่อน sysfs และมีข้อมูลต่างๆ เกี่ยวกับสถานะการจัดการพลังงาน
  • /proc/buddyinfoข้อมูลเกี่ยวกับอัลกอริธึม buddyที่จัดการการแตกกระจายของหน่วยความจำ[ 6 ]
  • /proc/busประกอบด้วยไดเร็กทอรีที่แสดงถึงบัสต่างๆ บนคอมพิวเตอร์ เช่นPCI / USB ปัจจุบัน ระบบไฟล์ sysfs ภายใต้ /sys/bus ได้เข้ามาแทนที่แล้วเนื่องจากให้ข้อมูลที่มากกว่ามาก
  • /proc/fbรายการของเฟรมบัฟเฟอร์ที่มีอยู่
  • /proc/cmdlineซึ่งระบุตัวเลือกการบูตที่ส่งไปยังเคอร์เนล
  • /proc/cpuinfoมีข้อมูลเกี่ยวกับซีพียูเช่น ผู้ผลิต (และตระกูล รุ่น และชื่อรุ่นของซีพียู ซึ่งจะช่วยให้ผู้ใช้ระบุซีพียูได้) ความเร็ว ( ความเร็วสัญญาณนาฬิกา ของซีพียู ) ขนาดแคช จำนวนซีพียูพี่น้อง คอร์ และแฟล็กของซีพียูรูปแบบและข้อมูลที่มีให้จะแตกต่างกันไปตามสถาปัตยกรรม ในบางสถาปัตยกรรม/proc/cpuinfoจะมีค่า " bogomips " ซึ่งมักเข้าใจผิดว่าเป็นตัววัดความเร็วของซีพียู เหมือนกับการทดสอบประสิทธิภาพ แต่จริงๆ แล้วมันไม่ได้วัดค่าใดๆ ที่มีความหมาย (สำหรับผู้ใช้ทั่วไป) เลย มันเกิดขึ้นเป็นผลข้างเคียงของการปรับเทียบตัวจับเวลาของเคอร์เนล และให้ค่าที่แตกต่างกันอย่างมากขึ้นอยู่กับประเภทของซีพียู แม้ว่าความเร็วสัญญาณนาฬิกาจะเท่ากันก็ตาม
$ cat /proc/cpuinfo processor : 0 vendor_id : AuthenticAMD cpu family : 16 model : 6 model name : AMD Athlon II X2 270 Processor stepping : 3 microcode : 0x10000c8 cpu MHz : 2000.000 cache size : 1024 KB ... processor : 1 vendor_id : AuthenticAMD cpu family : 16 model : 6 model name : AMD Athlon II X2 270 Processor stepping : 3 microcode : 0x10000c8 cpu MHz : 800.000 cache size : 1024 KB ...

บนซีพียูแบบมัลติคอร์ /proc/cpuinfo จะมีฟิลด์สำหรับ "siblings" และ "cpu cores" ซึ่งแสดงถึงการคำนวณต่อไปนี้ที่ใช้: [ 7 ]

"พี่น้อง" = (HT ต่อแพ็คเกจ CPU) * (จำนวนคอร์ต่อแพ็คเกจ CPU) "จำนวนคอร์ CPU" = (จำนวนคอร์ต่อแพ็คเกจ CPU)

แพ็คเกจ CPU หมายถึง CPU ทางกายภาพที่สามารถมีหลายคอร์ ( คอร์เดียวสำหรับหนึ่งคอร์, สองคอร์สำหรับสองคอร์, สี่คอร์สำหรับสี่คอร์) ซึ่งทำให้สามารถแยกความแตกต่างระหว่างไฮเปอร์เธรดดิ้งและคอร์คู่ได้ กล่าวคือ จำนวนไฮเปอร์เธรดต่อแพ็คเกจ CPU สามารถคำนวณได้จาก ค่า siblings / CPU coresหากค่าทั้งสองสำหรับแพ็คเกจ CPU เหมือนกัน แสดงว่าไม่รองรับไฮเปอร์เธรดดิ้ง[ 8 ]ตัวอย่างเช่น แพ็คเกจ CPU ที่มี siblings=2 และ "cpu cores"=2 คือ CPU แบบคอร์คู่ แต่ไม่รองรับไฮเปอร์เธรดดิ้ง

  • /proc/cryptoคือรายการโมดูลการเข้ารหัสที่มีอยู่
  • /proc/devicesคือรายการของอุปกรณ์อักขระและบล็อกที่เรียงลำดับตามรหัสอุปกรณ์ แต่จะแสดงส่วนสำคัญของ ชื่อ /devด้วย
  • คำสั่ง `/proc/diskstats`จะแสดงข้อมูลบางอย่าง (รวมถึงหมายเลขอุปกรณ์) สำหรับอุปกรณ์ดิสก์เชิงตรรกะแต่ละตัว
  • /proc/filesystemsคือรายการของระบบไฟล์ที่เคอร์เนลรองรับ ณ เวลาที่แสดงรายการนี้
  • ไดเร็กทอรี/proc/interrupts , /proc/iomem , /proc/ioports และ /proc/irqให้รายละเอียดเกี่ยวกับอุปกรณ์ (ทั้งทางกายภาพและเชิงตรรกะ) ที่ใช้ทรัพยากรระบบ ต่างๆ
  • /proc/kmsgซึ่งเก็บข้อความที่ส่งออกโดยเคอร์เนล[ 9 ]
  • /proc/loadavgซึ่งประกอบด้วยสถิติเกี่ยวกับ ค่าเฉลี่ย โหลด ปัจจุบัน ในช่วงไม่กี่นาทีที่ผ่านมา
  • /proc/meminfoซึ่งมีข้อมูลสรุปเกี่ยวกับการจัดการหน่วยความจำของเคอร์เนล
  • /proc/modulesเป็นไฟล์ที่สำคัญที่สุดไฟล์หนึ่งใน/procซึ่งประกอบด้วยรายการโมดูลเคอร์เนลที่โหลดอยู่ในปัจจุบัน ไฟล์นี้ให้ข้อมูลบางส่วน (ซึ่งไม่ถูกต้องทั้งหมดเสมอไป) เกี่ยวกับความสัมพันธ์ระหว่างโมดูลต่างๆ
  • /proc/mountsคือลิงก์สัญลักษณ์ไปยัง self/mounts ซึ่งประกอบด้วยรายการอุปกรณ์ที่เชื่อมต่ออยู่ในปัจจุบันและจุดเชื่อมต่อ (รวมถึงระบบไฟล์ที่ใช้งานอยู่และตัวเลือกการเชื่อมต่อที่ใช้)
  • /proc/net/คือไดเร็กทอรีที่มีข้อมูลที่เป็นประโยชน์เกี่ยวกับสแต็กเครือข่าย โดยเฉพาะอย่างยิ่ง/proc/net/nf_conntrackซึ่งแสดงรายการการเชื่อมต่อเครือข่ายที่มีอยู่ (มีประโยชน์อย่างยิ่งสำหรับการติดตามการกำหนดเส้นทางเมื่อใช้iptables FORWARD เพื่อเปลี่ยนเส้นทางการเชื่อมต่อเครือข่าย)
  • /proc/partitionsคือรายการหมายเลขอุปกรณ์ ขนาด และ ชื่อ /devที่เคอร์เนลระบุว่าเป็นพาร์ติชัน ที่มีอยู่
  • /proc/scsiซึ่งให้ข้อมูลเกี่ยวกับอุปกรณ์ใดๆ ที่เชื่อมต่อผ่านคอนโทรลเลอร์SCSIหรือRAID
  • ลิงก์เชิงสัญลักษณ์ไปยังกระบวนการปัจจุบัน (ที่กำลังสำรวจ) ที่/proc/self (เช่น/proc/PID/โดยที่PIDคือหมายเลขของกระบวนการปัจจุบัน)
  • /proc/slabinfoแสดงสถิติเกี่ยวกับแคชของอ็อบเจ็กต์ที่ใช้งานบ่อยในเคอร์เนล Linux
  • /proc/swapsคือรายการของพาร์ติชัน swap ที่ใช้งานอยู่ ขนาด และลำดับความสำคัญต่างๆ ของแต่ละพาร์ติชัน
  • สามารถเข้าถึงตัวเลือกเคอร์เนลที่กำหนดค่าได้แบบไดนามิกได้ที่/proc/sysภายใต้/proc/sysจะมีไดเร็กทอรีที่แสดงถึงพื้นที่ของเคอร์เนล ซึ่งประกอบด้วยไฟล์เสมือน ที่สามารถอ่านและ เขียน ได้ ตัวอย่างเช่น ไฟล์เสมือนที่อ้างอิงบ่อยคือ /proc/sys/net/ipv4/ip_forwardเนื่องจากจำเป็นสำหรับการกำหนดเส้นทางไฟร์วอลล์หรืออุโมงค์ ไฟล์นี้จะมีค่าเป็น '1' หรือ '0': ถ้าเป็น 1 สแต็ก IPv4 จะส่งต่อแพ็กเก็ตที่ไม่ได้มีไว้สำหรับโฮสต์ภายในเครื่อง ถ้าเป็น 0 จะไม่ส่งต่อ
  • /proc/sysvipcซึ่งมีข้อมูลเกี่ยวกับการแบ่งปันหน่วยความจำและการสื่อสารระหว่างกระบวนการ (IPC)
  • /proc/ttyซึ่งมีข้อมูลเกี่ยวกับเทอร์มินัล / proc/tty/driverมีรายการไดรเวอร์ TTY และการใช้งาน[ 10 ]
  • /proc/uptimeคือระยะเวลาที่เคอร์เนลทำงานนับตั้งแต่บูตเครื่อง และระยะเวลาที่อยู่ในโหมดไม่ได้ใช้งาน (ทั้งสองหน่วยเป็นวินาที)
  • /proc/versionซึ่งประกอบด้วยเวอร์ชันของเคอร์เนล Linux หมายเลขการแจกจ่าย หมายเลขเวอร์ชันของ gcc (ที่ใช้ในการสร้างเคอร์เนล) และข้อมูลสำคัญอื่นๆ ที่เกี่ยวข้องกับเวอร์ชันของเคอร์เนลที่กำลังทำงานอยู่
  • ไฟล์อื่นๆ ขึ้นอยู่กับฮาร์ดแวร์ การกำหนดค่าโมดูล และการเปลี่ยนแปลงในเคอร์เนลที่แตกต่างกันไป

ยูทิลิตี้พื้นฐานที่ใช้ /proc ภายใต้ Linux นั้นมีอยู่ในแพ็ก เกจ procps ( /proc processes) และจะทำงานได้ก็ต่อเมื่อมีการเมานต์/proc เท่านั้น

ไซกวิน

Cygwinได้นำระบบไฟล์ procfs มาใช้ ซึ่งโดยพื้นฐานแล้วเหมือนกับระบบไฟล์ procfs ของ Linux

แหล่งที่มา

  • คู่มือ Unix รุ่นที่ 8 proc(2) หน้า - คำอธิบายของ procfs ดั้งเดิม
  • หน้าคู่มือการใช้งาน ProCFS ของ Plan 9 - Plan 9 ได้ขยายแนวคิดของ ProCFS อย่างมาก โดยนำเสนออินเทอร์เฟซที่ครอบคลุมมากขึ้นสำหรับการควบคุมและจัดการกระบวนการต่างๆ
  • หน้าคู่มือ Linux Proc(5)เอกสารคู่มือ Linux สำหรับ procfs
  • Documentation/filesystems/proc.txtเอกสารประกอบเคอร์เนล Linux สำหรับ procfs
  • ประวัติโดยย่อของ /procบล็อกของ Eric Schrock
  • การเข้าถึงเคอร์เนล Linux โดยใช้ Procfsบทความจาก IBM developerWorks โดย M. Tim Jones
  • ลำดับชั้นของระบบไฟล์ Linuxโครงการเอกสารประกอบ Linux
  • ค้นพบความเป็นไปได้ของไดเร็กทอรี /procโดย เฟเดริโก เคเรกิ
ดึงข้อมูลมาจาก " https://en.wikipedia.org/w/index.php?title=Procfs&oldid=1359563394 "

สรุปเนื้อหา

ข้อมูลสำคัญจากบทความ

ข้อมูลสำคัญเกี่ยวกับ โปรซีเอฟ

ระบบ ไฟล์ proc ( procfs ) เป็นระบบไฟล์พิเศษใน ระบบปฏิบัติการ แบบ Unix ที่แสดงข้อมูลเกี่ยวกับ กระบวนการ และข้อมูลระบบอื่นๆ ในโครงสร้างแบบไฟล์ที่มีลำดับชั้น...

UNIX รุ่นที่ 8

Tom J. Killian ได้นำ เวอร์ชัน /proc ของ UNIX รุ่นที่ 8 (V8) มาใช้ โดยเขาได้นำเสนอเอกสารเรื่อง"Processes as Files"ที่ USENIX ในเดือนมิถุนายน พ.ศ.

เอสวีอาร์3

ระบบปฏิบัติการ AT&T System V Release 3 (SVR3) รุ่นดั้งเดิม (ซึ่งมีให้ใช้งานภายใน AT&T ในปี 1986 และใช้งานทั่วไปในปี 1987) ไม่ได้มาพร้อมกับ ระบบไฟล์ /proc แต่เวอร์ชันที่พัฒนาขึ้นในภายหลังได้เพิ่มระบบไฟล์นี้เข้ามา โดยมีเฉพาะไฟล์ที่แสดงถึงกระบวนการทำงานเท่านั้น...

เอสวีอาร์4

Roger Faulkner และ Ron Gomes ได้พอร์ต V8 /proc ไปยัง SVR4 และตีพิมพ์บทความชื่อ"The Process File System and Process Model in UNIX System V"ในงาน USENIX เมื่อเดือนมกราคม 1991 ระบบไฟล์ procfs ประเภทนี้รองรับการสร้าง ps แต่ไฟล์สามารถเข้าถึงได้ด้วยฟังก์ชัน read()...