เหตุผลที่ SPARC4 ของอาจารย์ช้าลงคือ xroach ที่เต็มอยู่ใต้ xterm
(infosec.exchange/@paco)- เจ้าหน้าที่ฝ่ายสนับสนุน IT ของภาควิชา CS ไปที่ห้องทำงานของอาจารย์หลังได้รับคำบ่นเรื่อง ประสิทธิภาพของ Sparc4 ลดลง และพบ xroach ที่ซ่อนอยู่หลังหน้าต่าง
- เมื่อย่อหน้าต่างหนึ่งลง พื้นที่ด้านล่างของจอก็ดูเหมือน สี่เหลี่ยมสีดำ และภายในนั้นมีแมลงสาบเคลื่อนที่อย่างช้ามาก
- การเคลื่อนไหวอยู่ที่ประมาณ 0.5 fps และมีแมลงสาบ xroach ใต้ xterm มากเกินไปจนดูเหมือนก้อนสีดำก้อนเดียว
- แก่นของปัญหาไม่ใช่ตัวฮาร์ดแวร์เอง แต่เป็นสถานะที่ xroach ยังคงแสดงผลต่อเนื่องอยู่ในจุดที่ผู้ใช้มองไม่เห็น
- ในสภาพแวดล้อมเดสก์ท็อป X11 รุ่นเก่า แม้แต่โปรแกรมแนวแกล้งเล่นก็อาจดูเหมือนปัญหาด้านประสิทธิภาพจริงได้ จึงสำคัญที่จะต้องตรวจสอบหน้าต่างที่ซ่อนอยู่และสถานะเบื้องหลัง
อาการที่ตรวจพบในห้องทำงานอาจารย์
- Paco Hope เล่าว่าเมื่อครั้งทำงานเป็นเจ้าหน้าที่ฝ่ายสนับสนุน IT ของภาควิชา CS อาจารย์ได้ร้องเรียนว่า Sparc4 ช้า จึงถูกเรียกไปที่ห้องทำงาน
- สิ่งแรกที่ทำคือย่อหน้าต่างหนึ่งลง และสิ่งที่ปรากฏด้านล่างคือ สี่เหลี่ยมสีดำ ที่ไม่คาดคิด
- ภายในพื้นที่สีดำนั้น แมลงสาบจาก xroach กำลังขยับทีละน้อย
- การเคลื่อนไหวช้ามากจนดูเหมือนอยู่ที่ราว 0.5 fps
xroach ที่แน่นอยู่ใต้ xterm
- ใต้ xterm มี xroach อยู่หนาแน่นมาก จนมองไม่เห็นเป็นแมลงสาบแต่ละตัว แต่เกือบจะดูเหมือน สี่เหลี่ยมสีดำสีเดียว
- อาจารย์ไม่เห็นสภาพด้านล่างนั้นเลยก่อนจะย่อหน้าต่างลง และคำบ่นเรื่องประสิทธิภาพที่ตกลงก็เริ่มมีเบาะแสเมื่อได้ตรวจดูสภาพหน้าจอที่ถูกซ่อนไว้
ความทรงจำสั้น ๆ และปฏิกิริยา
- เกร็ดนี้เป็นความทรงจำสั้น ๆ ที่ Paco Hope โพสต์บน Mastodon เมื่อวันที่ 25 กรกฎาคม 2023
- โพสต์ดังกล่าวแสดงตัวเลข 202 boosts และ 389 favorites สะท้อนว่าผู้ใช้ที่จดจำสภาพแวดล้อมเดสก์ท็อปยุคเก่าและโปรแกรมแนวแกล้งเล่นต่างรู้สึกร่วมได้
1 ความคิดเห็น
ความคิดเห็นบน Hacker News
ตอนทำงานซัพพอร์ตเทคนิคที่โรงพยาบาลท้องถิ่น พยาบาลโทรมาบอกว่ามี “หน้าต่างอะไรสักอย่างที่ดูเหมือน พยากรณ์อากาศ” โผล่อยู่บนหน้าจอ แล้วเมาส์เข้าไปอยู่ข้างใต้นั้น ทำให้ปิดไม่ได้
ผมเริ่มสนใจ เลยบอกว่าอย่าเพิ่งแตะคอมพิวเตอร์ แล้วใช้เวลาราว 10 นาทีไปถึง พอไปถึงเธอบอกว่า “มันปิดไปเองเมื่อ 1 นาทีก่อนค่ะ มันค้างอยู่ตั้ง 30 นาที”
ดูจากการจัดโต๊ะกับคำอธิบายหน้าต่างแล้ว ผมลองกดปุ่มบนจอภาพ ก็พบว่าเป็น เมนู OSD ของจอภาพ ที่ถูกมุมคีย์บอร์ดกดโดนโดยไม่ตั้งใจ และมันแสดงความสว่าง 100% เป็นไอคอนรูปดวงอาทิตย์ แน่นอนว่าเมาส์ก็ย่อมเข้าไปอยู่ข้างใต้นั้นได้
จากนั้นก็เดินกลับอีก 10 นาที แล้วรอสายถัดไป
พยาบาลยุ่งกับการช่วยชีวิตคนและดูแลคนที่กำลังมีวันที่เลวร้ายที่สุดอยู่แล้ว ยังต้องมารับมือกับเวิร์กสเตชันที่ทั้งการติดตั้งและการดูแลรักษาเละเทะอีก พอขอความช่วยเหลือ บางทีก็เป็นคนที่สร้างปัญหานั่นแหละที่เดินมาทำท่าดูถูก
พยาบาลไม่ได้โง่หรือขี้เกียจ แต่เป็นคนที่มีเรื่องสำคัญกว่าต้องทำ แทนที่จะเสียเวลากับปัญหา IT จุกจิก
อุปกรณ์ที่สำคัญต่อการรักษาจริง ๆ มักมีผู้เชี่ยวชาญเฉพาะทางดูแล และ คอมพิวเตอร์ของเครื่อง MRI อาจไม่ได้ผูกกับ Active Directory และอาจไม่ได้ต่อเครือข่ายด้วยซ้ำ ปัญหาจะถูกส่งต่อไปที่ GE ไม่ใช่คนซ่อมพรินเตอร์
พอไปดู ก็เห็นบูมบ็อกซ์ที่มีลำโพงใหญ่สองตัววางอยู่บน จอ CRT พอย้ายมันออก ปัญหาก็หายไปเหมือนใช้เวทมนตร์
จริง ๆ แล้วพยาบาลก็อธิบายสิ่งที่เกิดขึ้นได้ค่อนข้างแม่นทีเดียว
ในปี 1989 ผมเป็นฝ่าย IT คนเดียวในที่ทำงานแห่งหนึ่งที่อดีตนักเศรษฐศาสตร์สายวิชาการใช้ Digital VAX 11/750 ทำแบบจำลองเศรษฐมิติ
มินิคอมพิวเตอร์เครื่องนี้รัน VMS ซึ่งเป็นระบบปฏิบัติการแบบหลายผู้ใช้ และผู้ใช้ทุกคนมีสิทธิ์ผู้ดูแลระบบ แต่ละคนคิดว่าถ้าดันลำดับความสำคัญของโปรเซสตัวเองให้สูงสุด โมเดลจะรันเร็วขึ้น แต่กลับไปขัดขวางโปรเซสแบบเรียลไทม์ที่จำเป็นต่อการทำงานของคอมพิวเตอร์ ทำให้ได้ผลตรงกันข้าม
หลังจากหาสาเหตุเจอ ยึดสิทธิ์คืน แล้วรีสตาร์ตระบบ ทุกอย่างก็กลับมาปกติ และมีคนมาขอบคุณที่ช่วยทำให้ระบบเร็วขึ้น
อีกคนเขียนโปรแกรมที่ fork ตัวเอง 1000 ตัว ตั้งค่า
niceเป็น 19 แล้วsleep(0)จากนั้นก็จบการทำงาน ถ้ามันได้เวลา CPU แม้แต่นิดเดียวก็จะจบทันที แต่ตราบใดที่ emacs ยังรันอยู่ มันก็ไม่ได้โอกาสนั้น ระหว่างนั้นโหลดที่xloadแสดงกลายเป็นกล่องดำสนิทคนที่ใช้ emacs อยู่รัน
ps -ef | grep procname | xargs killด้วย root แต่การจัดการ kill ต้องใช้เวลา CPU เลยใช้เวลานานกว่าsleep(0)และแทบไม่เกิดผลการแกล้งครั้งที่สองตั้งชื่อโปรเซสว่า
emaผลคืออินสแตนซ์ emacs ทั้งหมดก็โดนฆ่าไปด้วยครั้งที่สามตั้งชื่อโปรเซสว่า
etซึ่งบังเอิญไปตรงกับ/etc/initdด้วย ทำให้เครื่องรีบูตขึ้นมาอย่างกะทันหันอินเทอร์พรีเตอร์ Scheme เริ่มต้นช้า โดยเฉพาะเมื่อมีคนล็อกอินเกิน 20 คน ผู้ช่วยสอนสอนให้กด
ctrl-zเพื่อพักอินเทอร์พรีเตอร์ไว้ แก้โค้ดด้วยviแล้วใช้fgกลับเข้าไปปัญหาคือไม่ใช่แค่ครึ่งห้อง แต่ 2/3 ของทั้งห้อง ลืม
fgแล้วหลังแก้เสร็จก็เปิดอินสแตนซ์ Scheme ใหม่ขึ้นมาอีก ผมยังจำคืนก่อนกำหนดส่งในห้องเทอร์มินัลได้ ระบบช้าจนแทบคลานหลังจากนั้นผมก็เรียนรู้วิธีตามหาเพื่อนร่วมชั้นที่รัน Scheme มากกว่าหนึ่งอินสแตนซ์แล้วเตือนให้ใช้
fgและ “คำตอบ” แบบใช้รีเคอร์ชันไม่สิ้นสุดแก้ปัญหา 8 ควีนก็ไม่ได้ช่วยเรื่องโหลดเลย บทเรียนจริง ๆ คือคืนก่อนกำหนดส่งงาน CS 401 อย่าล็อกอินเข้าไปเทอร์มินัลแบบแชร์อยู่รวมกันในห้องเดียว ผมเลยเห็นผลของสิ่งที่ตัวเองทำแบบเรียลไทม์ ซึ่งสนุกดี
ในสภาพแวดล้อมหนึ่งที่มีคนต่อคิวกันอยู่ มีคนถามว่าจะช่วยดูปัญหาของเขาก่อนคนอื่นได้ไหม กล่าวคือขอให้ส่งเขาไปหน้าสุดของคิว
เขาตอบว่า “ได้เลยครับ!” พออีกฝ่ายทำท่าประหลาดใจ เขาก็เสริมว่า “แต่คุณก็รู้นะครับว่าผมจะทำแบบเดียวกันนี้ให้คนอื่นทุกคนที่ขอแบบเดียวกันด้วย?”
สุดท้ายคนนั้นก็ตัดสินใจรอต่อที่ตำแหน่งเดิมของตัวเอง
ทำให้นึกถึงช่วงชีวิตนักศึกษายุคทองสมัยก่อน
สำหรับผมคือช่วงต้นทศวรรษ 2000 และคอมพิวเตอร์ในห้องแล็บของมหาวิทยาลัยไม่ได้แรงนัก ผู้คนจึงมักทำงานบน Linux console โดยไม่เปิด X session หนัก ๆ
ราวปี 2001 ผมอ่านหน้าแมนนวล
console_ioctl(4)แล้วพบว่ามีของให้เอาไปเล่นแกล้งคนเต็มไปหมด ผมเขียนโปรแกรมเล็ก ๆ ที่ปรับแต่งฟอนต์คอนโซลให้พลิกตัวอักษรทั้งหมดกลับหัว สลับตัวพิมพ์ใหญ่กับตัวพิมพ์เล็ก ทำให้แพตเทิร์นไฟ LED บนคีย์บอร์ดกะพริบ หรือเปลี่ยนพาเล็ตให้หน้าจอค่อย ๆ มืดเป็นสีดำแล้วกลับมาเหมือนเดิมผมเพิ่มคอมโพเนนต์ฝั่งเซิร์ฟเวอร์เข้าไป เปิดทิ้งไว้ในเทอร์มินัลที่ดูปกติ แล้วรอเหยื่อมา จากนั้นก็สั่งเปิดเอฟเฟกต์จากเครื่องอื่นในห้องเดียวกันจากระยะไกลแล้วดูปฏิกิริยา โชคดีที่ไม่นานผมก็รู้ว่าการเขียนโค้ดเองสนุกกว่าการดูคนตกใจมาก จึงเลิกอย่างหลังไป
อีกมุกหนึ่งคือการพิมพ์ข้อความเองที่พรอมป์ล็อกอินของ
gettyให้ดูเหมือนว่าล็อกอินเป็น root สำเร็จแล้ว รวมถึงmotdด้วย เลียนแบบการขึ้นบรรทัดใหม่ด้วยแท็บและช่องว่าง โดยไม่กด RET เด็ดขาด และลงท้ายด้วย[root@mailhost root]#บางคนสงสัยเลยพิมพ์
whoamiแล้วงงว่าทำไมพรอมป์รหัสผ่านถึงเด้งขึ้นมา บางคนกลัวจนไม่กล้าแตะอะไร ถอยออกไปส่งเมลหาผู้ดูแลระบบจากเทอร์มินัลเครื่องอื่นแค่ผู้ใช้ล็อกอินอยู่ ก็ใช้ Task Scheduler รันแทบจะโปรแกรมใดก็ได้ด้วยสิทธิ์ของผู้ใช้นั้น และเมื่อใช้ร่วมกับ Active Directory ก็รู้ข้อมูลผู้ใช้ได้ด้วย รู้ว่าใครอยู่ตรงไหน แล้วเปิด
iexplorerไปยังเว็บบางเว็บ หรือเปิดเอกสาร Word ที่ไม่เป็นอันตรายก็ได้ กรณีที่ร้ายที่สุดคือสคริปต์แบตช์ที่ล็อกเอาต์อัตโนมัติภายหลังผู้คนเริ่มจับทางได้และพยายามทำ remote execution ตาม แต่ดันรันด้วยสิทธิ์ของตัวเองแทนสิทธิ์ของผู้ใช้เป้าหมาย พอแอดมิน IT มา ร่องรอยว่าใครเป็นคนรันจึงชัดเจนเกินไป
ผมเลิกแกล้งคน และท้ายที่สุดก็ผ่านงาน IT มาเป็นวิศวกรซอฟต์แวร์เป็นอาชีพ บางทีก็สงสัยว่าถ้าตอนนั้นโดนลงโทษทางวินัย ชีวิตจะเป็นอย่างไร
บนเมนเฟรม IBM 370 มีโปรแกรมเมอร์มากกว่า 80 คน และ VM/370 สร้าง virtual machine ให้โปรแกรมเมอร์คนละเครื่อง ผมเป็นหนึ่งในสอง system programmer ที่มีสิทธิ์ “superuser”
ภายใน virtual machine ปกติจะรัน CMS แต่ก็รันอย่างอื่นได้ และบางเครื่องก็รัน MVS
ถ้าจะส่งคำสั่งไปยัง virtual machine เอง ต้องเติมอักขระพิเศษไว้หน้าคำสั่ง ค่าเริ่มต้นคือ
#ตัวอย่างเช่น#cp ...คือคำสั่งที่ส่งไปยัง virtual machine และอักขระนำหน้าแบบวิเศษนี้สามารถเปลี่ยนเป็นตัวไหนก็ได้ตามต้องการวันหนึ่งผมว่าง ๆ เลยสงสัยว่าจะรัน VM ซ้ำภายใน virtual machine ได้ไหม ผมบูต VM ใน “ระดับที่สอง” แล้วเปลี่ยนอักขระนำหน้าเป็น
!และภายในนั้นก็สร้าง virtual machine ใหม่ ๆ ได้จากนั้นก็บูต VM ใน virtual machine “ระดับที่สาม” อีกครั้ง แล้วเปลี่ยนอักขระนำหน้าเป็น
@สุดท้ายผมลงไปได้ถึง การซ้อนกัน 8 ชั้น และยืนยันได้ว่า VM สามารถรัน VM ที่รัน VM ต่อไปอีกได้จริงพอจะเลิกและปิดระดับที่ซ้อนกันเหล่านั้น ผมพิมพ์
#cp shutdownตามความเคยชิน ปรากฏว่า VM จริงบนเครื่องจริงถูก shutdown ไปเลย ผมตกใจรีบวิ่งไปห้องเครื่องแล้วกดปุ่ม start บนคอนโซลแน่นอนว่ามี system log เหลืออยู่ และ system programmer อีกคนก็มาที่ห้องผมแล้วบอกว่า “อย่าทำแบบนั้นอีก” เป็นช่วงเวลาที่สนุกดี
#เป็นอักขระนำหน้าของ VM ระดับ 1 ไม่ใช่ระบบปฏิบัติการระดับ 0 หรือ hostถ้าใช้
#ส่งคำสั่งไปยังระดับ 0 แล้ว อักขระนำหน้าของระดับ 1 คืออะไรล่ะkillall procnameไปตรง ๆ เครื่องตายทันทีพอผู้ดูแลระบบมา ถึงได้รู้ว่าใน Solaris คำสั่ง
killallทำอย่างอื่น และถูกบอกว่าอย่าใช้มันอีกตอนเป็นนักศึกษาในมหาวิทยาลัยช่วงยุค 80 ผมได้เข้าใช้ VAX 11/750 หรือพูดให้แม่นคือโคลน 8750 Systime เพื่อทำงานเขียนโค้ด
เทอร์มินัลสำหรับนักศึกษาอยู่ครึ่งหนึ่งของห้องใหญ่ ส่วนอีกครึ่งหนึ่งเป็นของพนักงาน IT ของมหาวิทยาลัย ถ้าฝั่งผู้ดูแล IT ไม่มีเทอร์มินัลว่าง พนักงานหนึ่งหรือสองคนก็มักจะมาใช้เทอร์มินัลของนักศึกษาที่อยู่อีกฝั่งของฉากกั้น
วันหนึ่งระหว่างรอคอมไพล์โปรเจกต์ COBOL ผมเบื่อมากจนสงสัยว่าจะดักชื่อผู้ใช้กับรหัสผ่านของผู้ดูแลระบบได้ไหม ผมเลยเขียนสคริปต์ที่เลียนแบบพรอมป์ต์ล็อกอินบน CLI ได้สมบูรณ์แบบ ทั้งเสียงบี๊บและข้อความ
สคริปต์จะล้างหน้าจอแล้วรอให้ป้อนชื่อผู้ใช้กับรหัสผ่าน พอมีการป้อนก็ส่งเมลมาหาผม แสดงข้อผิดพลาดว่าชื่อผู้ใช้/รหัสผ่านไม่ถูกต้อง จากนั้นก็ล็อกเอาต์เพื่อส่งต่อไปยังกระบวนการล็อกอินจริง
หลังจากลองกับเพื่อนร่วมชั้นที่ไม่ทันสังเกตสองสามคนและแกล้งแบบไม่ระบุตัวตนนิดหน่อย ผมก็ตัดสินใจลองกับผู้ดูแลระบบจริง ๆ ผมล็อกอินเข้าเทอร์มินัลสองเครื่องที่พนักงาน IT มักใช้ แล้วรันสคริปต์ทิ้งไว้ พอกลับมาอีกไม่กี่ชั่วโมงต่อมา ก็พบว่าได้ รหัสผ่านล็อกอิน SYSTEM มาอย่างน่าตกใจและชวนกังวลเล็กน้อย
ผมควบคุมเครื่องนั้นได้อย่างสมบูรณ์อยู่ประมาณหนึ่งเดือน และบางครั้งก็รันสคริปต์ใหม่ทุกครั้งที่รหัสผ่าน SYSTEM ถูกเปลี่ยน ผมไม่ได้บอกใคร และในวันสุดท้ายก่อนจบการศึกษา ผมล็อกอินเข้าไปลบสคริปต์เผื่อไว้ ตอนนั้นเป็นช่วงที่กฎหมายในอังกฤษเกี่ยวกับการเข้าถึงคอมพิวเตอร์โดยไม่ได้รับอนุญาตกำลังเข้มงวดขึ้น
ผมใช้เวลามากมายสำรวจและเรียนรู้ VMS พร้อมกับคู่มือมหาศาลของเครื่องนั้น แต่ไม่มีใครสังเกตเห็นเลย
Ctrl+Alt+Delก่อนเพื่อเข้าสู่บริบทความปลอดภัยhttps://en.wikipedia.org/wiki/Control-Alt-Delete
พวกเขาให้ผมได้งานแรก :-) นอกจากนี้ผมยังให้สิทธิ์ที่จำเป็นกับบัญชีที่ไม่ค่อยมีคนรู้จักหนึ่งหรือสองบัญชีไว้ล่วงหน้า เพื่อให้กู้สิทธิ์กลับมาได้แม้สิทธิ์ SYSTEM จะถูกถอดจากบัญชี “ทางการ”
เป็นช่วงเวลาที่สนุกและก็ไร้เดียงสาด้วย ผมไม่ได้ใช้สิทธิ์ไปทำให้ระบบเละเทะ
ตอนนี้ก็ไม่ค่อยน่าแปลกใจนักที่ผมหาเลี้ยงชีพด้วยการเขียนโปรแกรม
ของผมเป็น Visual Basic 5 สำหรับ Windows ของโรงเรียน น่าจะบนเครือข่าย Novell การแก้
win.iniให้มันรัน ก่อน หน้าล็อกอินจริงนั้นง่ายมากวิธีคือเก็บชื่อผู้ใช้กับรหัสผ่านลงในไดรฟ์เครือข่ายที่แชร์หรือไฟล์ในเครื่อง แสดงข้อความ “รหัสผ่านผิด” แล้วค่อยออกไปยังพรอมป์ต์ล็อกอินจริง
สุดท้ายปัญหาเกิดขึ้นเมื่อ “เพื่อน” ใช้เทคนิคเดียวกันคัดลอกไฟล์บัญชีเครือข่ายของคนอื่นไปยังบัญชีตัวเอง ผมเดาว่าระบบคงแจ้งเตือนผู้ดูแลเครือข่ายเมื่อโควตาเต็ม พอลองตรวจดูคร่าว ๆ ก็พบว่าเขาคัดลอกแม้กระทั่งไฟล์วิทยานิพนธ์ของครูไปด้วย และนั่นเป็นข้อห้ามใหญ่จริง ๆ
เหตุการณ์นี้ทำให้ท้ายที่สุดผมได้งานด้านคอมพิวเตอร์งานแรกในตำแหน่งจูเนียร์ฝ่ายสนับสนุนเทคนิค/ผู้ดูแลเครือข่าย
ปี 1988 ตอนอยู่มัธยม ผมกับเพื่อนพบช่องโหว่ใน NetWare ที่ถูกติดตั้งบน IBM PS/2 Model 30-286 จำนวน 30 เครื่องในห้องคอมพิวเตอร์ใหม่ ซึ่งทำให้สามารถแทรกโปรแกรมเข้าไปในลำดับบูตเครือข่าย
autoexecได้ก่อนหน้านั้น ผมเคยลองปรับรีจิสเตอร์ VGA ซึ่งตอนนั้นยังใหม่ และหาวิธีสลับจากโหมดข้อความ 80x25 ไปเป็นโหมดกราฟิก 320x200 256 สีได้โดยไม่มีการกะพริบหรือภาพแตก เพราะทั้งสองโหมดมีอัตรารีเฟรช 70Hz เหมือนกัน
เพื่อนผมสร้าง TSR ที่โหลดภาพดิจิทัลของหน้าตัวตลกไว้ล่วงหน้าที่
A000:0000แล้วประมาณ 4 นาทีต่อมาก็แสดงหน้าตัวตลกขึ้นมาสองสามเฟรม จากนั้นกลับไปยังหน้าจอที่ผู้ใช้กำลังทำงานอยู่ทันทีเราถูกจับได้เพราะอดหัวเราะไม่ได้เมื่อเห็นนักเรียนในมุมห้องทำหน้าสับสนและตกใจ โดยเฉพาะนักเรียนคนหนึ่งที่เรียกครูมาดูหน้าจอนานกว่า 3 นาที แล้วจังหวะที่ครูหันหลังกลับ หน้าตัวตลกก็แวบขึ้นมาพอดี เป็นจังหวะเด็ดมาก
เพื่อนคนนั้นชื่อ Brian และเป็นหนึ่งในคนที่ฉลาดที่สุดเท่าที่ผมเคยรู้จัก 10 ปีต่อมา เราสร้าง mobygames.com ขึ้นมาด้วยกัน
ความถี่ของเสียงเปลี่ยนไปเรื่อย ๆ จนไม่มีโทนคงที่เลยแม้แต่ชั่วขณะเดียว ตอนนั้นลำโพงปกติก็แค่ส่งเสียงบี๊บได้ และผมมักเปิดทิ้งไว้บนเครื่องที่ไม่ได้ใช้งาน
ช่วงต้นยุค 90 ผมเป็นนักศึกษาปริญญาตรีปีหนึ่ง สาขาวิทยาการคอมพิวเตอร์ของมหาวิทยาลัยรัฐ ห้องคอมพิวเตอร์เต็มไปด้วย Sun SPARCstation IPC ที่รัน SunOS และมีระบบอีเมลพื้นฐานที่คนในภาควิชาใช้สื่อสารกัน
คนที่เชี่ยวชาญเทคโนโลยีเริ่มสำรวจ Usenet กันแล้ว แต่สำหรับคนส่วนใหญ่ อีเมลคือทั้งหมดของโลกดิจิทัล
วันหนึ่งผมกับเพื่อน ๆ ตัดสินใจจะแกล้งเล่นกัน และได้ไอเดียจากคำสั่ง
fortuneอันโด่งดังที่สุ่มพิมพ์คติพจน์ออกมา เราทำเชลล์สคริปต์ง่าย ๆ ที่สุ่มเลือกหนึ่งบรรทัดจากไฟล์ข้อความซึ่งมีประโยคตลก ๆ ไร้สาระที่พวกเราเขียนไว้ แล้วส่งเมลไปหาผู้ใช้แบบสุ่มในภาควิชาวิทยาการคอมพิวเตอร์ จากนั้นตั้งเป็นงาน cron ให้ส่งชั่วโมงละฉบับตอนแรกมันเป็นการแกล้งที่ harmless คนชอบข้อความเหล่านั้นและมักเอาไปแชร์กันในห้องแล็บ ที่มาของข้อความกลายเป็นหัวข้อสนทนาของภาควิชา แต่ไม่มีใครรู้ว่ามาจากไหน และพวกเราก็สนุกกับการดูเพื่อนร่วมงานกับอาจารย์เดากันว่าผู้ส่งปริศนาคือใคร
แต่เรื่องบานปลายเมื่อคณบดีได้รับข้อความสุดเพี้ยนเป็นพิเศษว่า “ทำไมนักวิทยาการคอมพิวเตอร์ถึงสับสนระหว่างคริสต์มาสกับฮาโลวีน? เพราะ Oct 31 == Dec 25” เขาไม่เข้าใจมุก และคิดว่ามันเป็นข้อความลับหรือภัยคุกคามที่อาจเกิดขึ้น
ทีม IT ของมหาวิทยาลัยถูกดึงเข้ามาสืบสวน และเกิดความวุ่นวายตลอดหนึ่งสัปดาห์เพื่อพยายามตามรอยที่มาของอีเมล ผมกับเพื่อน ๆ เฝ้าดูด้วยความกังวลว่าจะถูกจับได้และโดนไล่ออกหรือเปล่า
สุดท้ายหลังจากนอนไม่หลับอยู่หลายวัน เราตัดสินใจสารภาพ ผมไปหาคณบดีและยอมรับ หลังจากเงียบไปนาน เขาก็เริ่มหัวเราะ ปรากฏว่าอาจารย์วิทยาการคอมพิวเตอร์คนหนึ่งอธิบายมุกให้เขาฟังแล้ว และเขากำลังรอดูว่าเมื่อไรพวกเราจะออกมายอมรับ
เขามองการแกล้งครั้งนี้อย่างใจกว้าง และเห็นว่าความริเริ่มของพวกเรานั้นสร้างสรรค์ แต่ก็เตือนถึงผลลัพธ์ที่ไม่ตั้งใจของการแกล้งแบบนั้น
มองย้อนกลับไป มันเป็นการแกล้งที่สนุกและน่าจดจำ และให้บทเรียนอันมีค่าเรื่อง จริยธรรมในการใช้เทคโนโลยี ทุกวันนี้ผมมักเล่าเรื่องนี้ให้นักศึกษาวิทยาการคอมพิวเตอร์ของผมฟัง เวลาสอนถึงความสำคัญของพฤติกรรมที่มีจริยธรรมในโลกดิจิทัล
เคยมีครั้งหนึ่งที่ผมต้องไปดูปัญหาให้ PC ของหัวหน้าภาควิชาคณิตศาสตร์ เพราะมันทำงานแปลก ๆ
ปรากฏว่าเขาปล่อยให้ Prime95 ใช้รอบประมวลผลที่เหลือทั้งหมดบนคอร์หนึ่งของ Core 2 Duo มานาน 10 ปี และเครื่องนั้นจะบูตได้ก็ต่อเมื่อเย็นลงจนถึงอุณหภูมิห้องเท่านั้น
เป็นการแกล้งที่เพื่อนสมัยเรียนปริญญาโทของผมทำกับเพื่อนอีกคน
ระหว่างที่เหยื่อปล่อยให้ล็อกอินค้างไว้แล้วเดินออกจากเทอร์มินัลไปชั่วครู่ คนแกล้งก็เพิ่ม
echo sleep -1 >> .loginลงในไฟล์.loginไม่กี่วันต่อมา หลังจากมีคำสั่ง
sleepต่อท้ายมากกว่า 20 บรรทัด จึงชัดเจนว่าการล็อกอินของนักศึกษาคนนั้นมีอะไรผิดปกติอย่างมาก เวลาตั้งแต่ล็อกอินครั้งแรกไปจนถึงได้เทอร์มินัลที่ใช้งานได้ค่อย ๆ ช้าลงทุกวัน ทำให้เหยื่อหงุดหงิดมากขึ้นเรื่อย ๆ และในที่สุดเมื่อทนไม่ไหว การแกล้งก็ถูกพบผ่านไปสักพัก ก็รู้สึกว่าการเพิ่มเวลา 1 วินาทีทุกครั้งที่ล็อกอินมันแนบเนียนเกินไป
echo "echo sleep 1 >> ~/.login" >> ~/.loginเรื่องเก่า ๆ จำนวนไม่น้อยสุดท้ายก็มักลงเอยว่า “ไม่ได้มีเจตนาร้าย แค่ตั้งใจให้ตลก แต่ไม่คิดว่ามันจะแพร่กระจายมากขนาดนั้นหรือใช้ทรัพยากรมากขนาดนั้น” ซึ่งก็น่าสนุกดี
Morris worm ก็คล้ายกัน แม้จะถกเถียงกันได้ แต่มองได้ว่ามันถูกออกแบบมาเป็นมัลแวร์ และอย่างน้อยเท่าที่เล่าต่อกันมา เจตนาไม่ได้ให้มันร้ายแรงถึงขนาดนั้น