คำถามติดแท็ก devices

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

5
Linux แยกความแตกต่างระหว่างไฟล์จริงและไม่อยู่ (เช่น: อุปกรณ์) อย่างไร
นี่เป็นคำถามระดับต่ำและฉันเข้าใจว่าอาจไม่ใช่สถานที่ที่ดีที่สุดสำหรับการถาม แต่ดูเหมือนจะเหมาะสมกว่าเว็บไซต์ SE อื่น ๆ ดังนั้นที่นี่จะไป ฉันรู้ว่าบนระบบไฟล์ Linux บางไฟล์มีอยู่จริงตัวอย่างเช่น: /usr/bin/bashเป็นไฟล์ที่มีอยู่จริง อย่างไรก็ตาม (เท่าที่ผมเข้าใจมัน) บางคนก็ไม่ได้มีอยู่จริงเช่นนี้และมีมากขึ้นเสมือนไฟล์เช่น: /dev/sda, /proc/cpuinfoฯลฯ คำถามของฉัน (พวกเขาเป็นสอง แต่เกี่ยวข้องอย่างใกล้ชิดเกินไปที่จะเป็นคำถามที่แยกต่างหาก): เคอร์เนลของ Linux ทำงานอย่างไรว่าไฟล์เหล่านี้เป็นของจริง (และอ่านจากดิสก์) หรือไม่เมื่อมีการใช้คำสั่ง read (หรือเช่นนั้น)? หากไฟล์ไม่จริง: เป็นตัวอย่างที่อ่านจาก/dev/randomจะกลับข้อมูลแบบสุ่มและอ่านจากจะกลับมา/dev/null EOFมันทำงานอย่างไรข้อมูลที่จะอ่านจากไฟล์เสมือนนี้ (และดังนั้นสิ่งที่จะทำเมื่อ / ถ้าข้อมูลที่เขียนไปยังไฟล์เสมือนด้วย) - มีแผนที่บางชนิดที่มีพอยน์เตอร์เพื่อแยกคำสั่งอ่าน / เขียนที่เหมาะสมสำหรับแต่ละไฟล์ หรือแม้แต่สำหรับไดเรกทอรีเสมือนเอง ดังนั้นรายการสำหรับก็สามารถกลับ/dev/nullEOF


1
ความแตกต่างระหว่าง / dev / null และ / dev / ศูนย์
เมื่อพยายามเปลี่ยนเส้นทางไปที่/dev/nullและ/dev/zeroผลลัพธ์จะถูกยกเลิก ดูเหมือนว่าทั้งสอง/dev/nullและ/dev/zeroยอมรับและทิ้งอินพุตทั้งหมด ดังนั้นอะไรคือความแตกต่างระหว่าง/dev/nullและ/dev/zero?
27 devices 

1
ทำไมไม่อ่านจาก / dev / ศูนย์นับเป็น IO_RBYTES
ฉันกำลังล้างฮาร์ดไดรฟ์ในระบบปฏิบัติการ Linux 4.x บางตัวโดยใช้คำสั่งนี้: sudo sh -c 'pv -pterb /dev/zero > /dev/sda' และฉันเปิดอีก tty และเริ่มsudo htopและสังเกตเห็นสิ่งนี้: PID USER PRI NI CPU% RES SHR IO_RBYTES IO_WBYTES S TIME+ Command 4598 root 20 0 15.5 1820 1596 4096 17223823 D 1:14.11 pv -pterb /dev/zero ค่าสำหรับIO_WBYTESดูเหมือนค่อนข้างปกติ แต่IO_RBYTESยังคงอยู่ที่ 4 KiB และไม่เคยเปลี่ยนแปลง ฉันรันโปรแกรมอื่นสองสามตัวอย่างเช่น dd if=/dev/zero …
25 linux  devices  io  null 

3
mv ไฟล์ไปยัง / dev / null แบ่ง dev / null
ถ้าฉันทำ: touch file; mv file /dev/nullเป็นราก/dev/nullหายไป ls -lad /dev/nullส่งผลให้ไม่มีไฟล์หรือไดเรกทอรีดังกล่าว แบ่งการใช้งานนี้ซึ่งขึ้นอยู่กับ/dev/nullเช่น SSH mknod /dev/null c 1 3; chmod 666 /dev/nullและสามารถแก้ไขได้โดยการทำ ทำไมการย้ายไฟล์ปกติไปยังไฟล์พิเศษนี้ส่งผลให้หายไป/dev/null? เพื่อชี้แจงนี่คือเพื่อวัตถุประสงค์ในการทดสอบและฉันเข้าใจว่าmvคำสั่งทำงานอย่างไร สิ่งที่ฉันอยากรู้คือทำไมls -la /dev/nullก่อนที่จะแทนที่ด้วยไฟล์ปกติจะแสดงผลลัพธ์ที่คาดหวัง แต่หลังจากนั้นมันก็แสดงว่า/dev/nullไม่มีอยู่แม้ว่าไฟล์นั้นจะถูกสร้างขึ้นผ่านmvคำสั่งดั้งเดิมและคำสั่ง file แสดงข้อความ ASCII ฉันคิดว่านี่ต้องเป็นการรวมกันของlsพฤติกรรมคำสั่งร่วมกับdevfsเมื่อไฟล์ที่ไม่ใช่พิเศษมาแทนที่อักขระ / ไฟล์พิเศษ นี่คือบน Mac OS X พฤติกรรมอาจแตกต่างกันไปตามระบบปฏิบัติการอื่น
25 osx  devices  null 

2
เหตุการณ์เมาส์ทำงานใน linux อย่างไร
นี่เป็นเรื่องที่แปลกประหลาดส่วนใหญ่ฉันพยายามเข้าใจว่าการจัดการเหตุการณ์ทำงานในระดับต่ำดังนั้นโปรดอย่าอ้างอิงฉันกับซอฟต์แวร์ที่จะทำเพื่อฉัน ถ้าเช่นฉันต้องการเขียนโปรแกรมใน C / C ++ ที่ตอบสนองต่อการคลิกเมาส์ฉันคิดว่าฉันต้องใช้การเรียกของระบบเพื่อขอฟังก์ชั่นบางอย่างกับเคอร์เนลหรือบางทีคุณอาจต้องตรวจสอบสถานะของเมาส์อย่างต่อเนื่อง ฉันไม่รู้ ฉันคิดว่าเป็นไปได้เนื่องจากทุกอย่างเป็นไปได้ใน C / C ++ อยู่ในระดับต่ำมากฉันส่วนใหญ่สนใจในการทำงานแม้ว่าฉันอาจจะไม่ต้องใช้ตัวเอง คำถามคือมันทำงานอย่างไรใน linux, มีการเรียกระบบ, ไลบรารี c, หรือไม่?
25 linux  devices  input 

1
ใช้ devtmpfs สำหรับ / dev
ฉันสังเกตเห็นตัวเลือกต่อไปนี้ในเคอร์เนล: CONFIG_DEVTMPFS Device Drivers -> Generic Driver Options -> Maintain devtmpfs to mount at /dev และฉันเห็นว่ามันเปิดใช้งานโดยค่าเริ่มต้นในเคอร์เนลการกระจาย Debian 3.2.0-4-amd64 ฉันพยายามที่จะเข้าใจความแตกต่างของตัวเลือกนี้ โดยตัวเลือกนี้/devจะติดตั้งอยู่ในฐานะที่มีตัวเลือกนี้จะติดตั้งเป็นtmpfs devtmpfsนอกจากนั้นฉันไม่เห็นความแตกต่าง helpไม่ได้ชี้แจงให้กับฉันอย่างใดอย่างหนึ่ง สิ่งนี้จะสร้างอินสแตนซ์ของระบบไฟล์ tmpfs / ramfs ก่อนเวลาบูตเครื่อง ในระบบไฟล์นี้เคอร์เนลไดรเวอร์หลักเก็บรักษาโหนดอุปกรณ์ด้วยชื่อและการอนุญาตเริ่มต้นสำหรับอุปกรณ์ที่ลงทะเบียนทั้งหมดด้วยหมายเลขหลัก / รองที่ได้รับมอบหมาย มันมีไดเรกทอรีทำงานได้อย่างสมบูรณ์ / dev ซึ่งโดยปกติ udev จะทำงานอยู่ด้านบนจัดการสิทธิ์และเพิ่ม symlink ที่มีความหมาย ในสภาพแวดล้อมที่ จำกัด อย่างมากมันอาจให้ฟังก์ชั่น / dev ที่เพียงพอโดยไม่มีความช่วยเหลือเพิ่มเติม นอกจากนี้ยังช่วยให้ระบบกู้ภัยง่ายและจัดการหมายเลขหลัก / รองแบบไดนามิกได้อย่างน่าเชื่อถือ ใครช่วยอธิบายความแตกต่างระหว่างการใช้CONFIG_DEVTMPFSvs มาตรฐาน/dev?

2
cat รู้อัตรา baud ของพอร์ตอนุกรมได้อย่างไร?
ฉันใช้เป็นประจำcatเพื่อดูข้อมูลการแก้ไขข้อบกพร่องในคอนโซลจากบอร์ดพัฒนา FPGA ของฉันผ่านการเชื่อมต่อแบบอนุกรม แต่ฉันไม่เคยบอก linux ว่าอัตรารับส่งข้อมูลเป็นเท่าไหร่ แมวรู้ได้อย่างไรว่าอัตราการรับส่งข้อมูลของการเชื่อมต่อแบบอนุกรมคืออะไร?

2
ตั้งค่าความเร็ว baud สำหรับ tty
ฉันจะตั้งค่าความเร็ว baud สำหรับ tty ที่เฉพาะเจาะจงได้อย่างไร (ในกรณีนี้คือพอร์ตอนุกรม) ฉันพยายามใช้ stty -F /dev/tty.iap ispeed 19200 แต่รับข้อผิดพลาดInvalid argumentทุกครั้งที่ฉันลอง (2400, 4800 ฯลฯ ) ยกเว้น 9600 (ค่าเริ่มต้น) ผมประสบความสำเร็จสามารถเปลี่ยนความเร็วในโปรแกรม C cfsetspeedใช้ ฉันจำเป็นต้องทำการเปลี่ยนแปลงที่อื่นเช่นttysไฟล์หรือไม่

3
จะเกิดอะไรขึ้นถ้าคุณลบไฟล์อุปกรณ์
ฉันรู้เกี่ยวกับไฟล์ที่อยู่ใต้ / dev คร่าวๆ ฉันรู้ว่ามีสองประเภท (ตัวอักษร / บล็อก) การเข้าถึงไฟล์เหล่านี้สื่อสารกับไดรเวอร์ในเคอร์เนล ฉันต้องการทราบว่าจะเกิดอะไรขึ้นหากฉันลบไฟล์หนึ่ง - โดยเฉพาะสำหรับไฟล์ทั้งสองประเภท ถ้าฉันลบไฟล์อุปกรณ์บล็อกให้พูดว่า/dev/sdaมันจะมีผลกระทบอะไร - ถ้ามี - มีอะไรบ้าง ฉันเพิ่ง unmount ดิสก์หรือไม่ ในทำนองเดียวกัน/dev/mouse/mouse0จะเกิดอะไรขึ้นถ้าฉันลบ- จะเกิดอะไรขึ้น เมาส์หยุดทำงานหรือไม่ มันจะแทนที่ตัวเองโดยอัตโนมัติหรือไม่ ฉันสามารถลบไฟล์เหล่านี้ได้หรือไม่? ถ้าฉันตั้งค่า VM ฉันจะลอง

2
การจัดการ / dev / วิดีโอ
ฉันต้องการที่จะใช้สตรีมวิดีโอจากใช้ผลบางส่วนหรือการเปลี่ยนแปลงและให้ผลที่มีอยู่บน/dev/video0/dev/video1 /dev/video0 ---> ใช้เอฟเฟ็กต์ ---> /dev/video1 ตัวอย่างเช่นmplayer tv:// -vo cacaจะแสดงผลลัพธ์ของ/dev/videoin ascii art ฉันต้องการเปิดใช้งาน/dev/video1เพื่อให้สามารถส่งผ่าน skype แทนค่าเริ่มต้นเว็บแคมของฉัน .... ข้อเสนอแนะใด ๆ
21 video  devices 

8
ฉันจะใส่ bit mask อย่างไรใน / dev / zero เพื่อที่ฉันจะได้รับ bytes นอกเหนือจากศูนย์?
ฉันจะใส่บิตมาสก์ได้อย่างไร/dev/zeroเพื่อให้สามารถมีแหล่งที่มาไม่เพียง แต่สำหรับ 0x00 แต่ยังสำหรับไบต์ระหว่าง 0x01 ถึง 0xFF ด้วย?
20 devices 

3
วิธีการรีเซ็ต / หมุนเวียนกำลังไปยังอุปกรณ์ PCIe
ฉันมีอุปกรณ์ PCIe ที่ทำงานได้อย่างถูกต้องเฉพาะเมื่อปิดและเปิดเครื่องอีกครั้ง การออกคำสั่งอย่างง่ายrebootหรือreboot -pคำสั่งไม่ปรากฏขึ้นเพื่อหมุนเวียนพลังงานไปยังการ์ด PCIe ซึ่งทำให้ไม่สามารถทำงานได้หลังจากรีบูต มีวิธีใดบ้างที่จะหมุนเวียนพลังงานไปยังอุปกรณ์ในสล็อต PCIe ได้หรือไม่? ฉันสามารถค้นหาได้/sys/bus/pci/devices/0000*/แต่ฉันไม่สามารถหาวิธีรีเซ็ตบอร์ดได้อย่างถูกต้อง พลังที่สลับกันน่าจะเป็นหนทางเดียวเท่านั้น นอกจากนี้ฉันสามารถเปลี่ยนการตั้งค่าที่จะทำให้เกิดรอบการใช้พลังงานเต็มในrebootคำสั่งได้หรือไม่? ฉันใช้ Ubuntu 12.10 อยู่ดี

3
/ dev / nvram อันตรายที่จะเขียนถึง?
ฉันพบข้อมูลที่ nvram ใช้สำหรับ BIOS กระพริบ / สำรองข้อมูลและมีข้อมูลที่เกี่ยวข้องกับไบออสบางส่วน จะcat /dev/random > /dev/nvramก่ออิฐคอมพิวเตอร์ถาวรหรือไม่ ฉันค่อนข้างอยากพิมพ์คำสั่งนี้ แต่อย่างใดฉันก็รู้สึกว่ามันจะไม่จบลงที่ดีสำหรับเครื่องของฉันดังนั้นฉันคิดว่าฉันอยากจะรู้ว่าอันตรายกำลังเล่นกับอุปกรณ์นี้

1
ทำไม“ nodev” ใน / etc / fstab สำคัญมาก? อุปกรณ์อักขระสามารถใช้สำหรับการแฮ็กได้อย่างไร
ฉันกำลังเรียนรู้เกี่ยวกับความปลอดภัยของ linux และพยายามเข้าใจว่าเหตุใดอุปกรณ์ USB ที่ติดกับอุปกรณ์อักขระจึงอาจเป็นอันตรายได้ หากฉันมีอุปกรณ์ USB ที่มีการปฏิบัติการทุบตีที่มีราก setuid สิ่งที่เป็นอันตรายก็ชัดเจน: ใครก็ตามที่มีอุปกรณ์ USB นั้นสามารถได้รับสิทธิ์รูทในคอมพิวเตอร์ของฉันหากฉันมีรายการเช่น /dev/sdb1 /media/usbstick auto defaults 0 0 ในของฉัน/etc/fstabเพราะมีdefaultssuid แต่สิ่งที่เกี่ยวกับอุปกรณ์ตัวละคร? ฉันจะใช้อุปกรณ์ตัวละครเพื่อรับสิทธิพิเศษรูทหรือทำลายไฟล์ได้อย่างไรหาก USB stick ที่มีอุปกรณ์ตัวละครอยู่นั้นถูกเมาท์ด้วยdevหรือdefaults?

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.