ฉันได้อ่านคำพูดนี้ (ด้านล่าง) หลายครั้งล่าสุดที่นี่และฉันประหลาดใจอย่างต่อเนื่องว่าdd
จะใช้ในการแก้ไขสิ่งใดให้คอมไพเลอร์:
ระบบ Unix ที่ฉันใช้ที่โรงเรียนเมื่อ 30 ปีก่อนมีข้อ จำกัด ในเรื่อง RAM และพื้นที่ดิสก์ โดยเฉพาะอย่างยิ่ง
/usr/tmp
ระบบไฟล์มีขนาดเล็กมากซึ่งนำไปสู่ปัญหาเมื่อมีคนพยายามรวบรวมโปรแกรมขนาดใหญ่ แน่นอนว่านักเรียนไม่ควรเขียน "โปรแกรมขนาดใหญ่" อยู่ดี โปรแกรมขนาดใหญ่มักจะคัดลอกซอร์สโค้ดจาก "ที่ไหนสักแห่ง" พวกเราหลายคนคัดลอก/usr/bin/cc
ไปยัง/home/<myname>/cc
และใช้dd
เพื่อแก้ไขไบนารีเพื่อใช้/tmp
แทน/usr/tmp
ซึ่งใหญ่กว่า แน่นอนว่าสิ่งนี้ทำให้ปัญหาแย่ลง - พื้นที่ดิสก์ที่ครอบครองโดยสำเนาเหล่านี้มีความสำคัญในปัจจุบันและ/tmp
เต็มไปด้วยสิ่งนี้เป็นประจำทำให้ผู้ใช้รายอื่นไม่สามารถแก้ไขไฟล์ได้ หลังจากที่พวกเขาพบว่าเกิดอะไรขึ้นผู้ดูแลระบบก็ทำchmod go-r /bin/* /usr/bin/*
ซึ่ง "แก้ไข" ปัญหาและลบสำเนาของคอมไพเลอร์ C ทั้งหมดของเรา
(เหมืองเน้น)
dd
คนหน้าไม่พูดอะไรเกี่ยวกับปะและไม่คิดว่ามันอาจจะเป็นใหม่วัตถุประสงค์ที่จะทำต่อไปนี้
ไบนารีสามารถได้รับการแก้ไขด้วยdd
หรือไม่ มีความสำคัญทางประวัติศาสตร์ในเรื่องนี้หรือไม่?
od
ไฟล์สำหรับรหัสฐานสิบหกค้นหาสิ่งชดเชยที่คุณต้องการตัดสินใจแก้ไขและbs=$patchsize count=1 seek=$((offset/bs)) conv=notrunc
แพตช์ของคุณติดตั้งเลย