/ Dev / zero nasıl oluşturulur ve / dev / one gibi değişkenler nasıl yapabilirim?


7

mknodBir karakter cihazını yapmak için ne kullanacağınızı (söyleyebildiğim kadarıyla) olan man sayfasını okudum /dev/zero, fakat sonsuz bitlik bir sıfır akışı (veya başka bir düzen vermesi için nasıl elde edeceğinizi göremiyorum) ). Bu tür karakter cihazlarını yaratma prosedürü nedir?


Çekirdekte uygulanırlar. Bak zero_lseek, read_zero, write_zero, mmap_zeroiçinde drivers/char/mem.c.
David Schwartz

Oh… bu yüzden çekirdeği değiştirmek zorunda kalacağım?
Blacklight Shining

3
Zorunlu değil, tam olarak ne yapmak istediğinize bağlıdır. Büyük olasılıkla, en azından bir modül uygulamanız gerekir.
David Schwartz

Ne hakkında /dev/one?
Blacklight Shining

Yanıtlar:


3

Hepsi mknodbir aygıt dosyasını bir aygıt sürücüsü ile ilişkilendirmektir. Gerçek aygıtlarla etkileşimi uygulayan aygıt sürücüleri ve yalnızca okuma-yazma isteklerine yararlı yollarla yanıt veren aygıt sürücüleri var. İsterseniz oturup oturarak Star Spangeled Banner'ın sözlerini veren bir sürücü yazabilirsiniz . Fakat bu, doğru argümanları bulmak değil kodlama meselesidir mknod.


4

mknodcihaz düğümünü yaratır, ancak VFS, cihaz düğümüne erişimi tespit eder ve bunları işlemek için çekirdeğin içindeki uygun sürücüye yönlendirir. Tüm cihaz düğümleri, ' /dev/nullden' /dev/sdXye /dev/ttyXXkadar /dev/videoXolan bu şekilde ele alınır.


0

Eğer sadece /dev/zeroyeteneklerini yeniden yaratmak istiyorsan ama sıfır / boş dışında bir karakter varsa tr, sıfırın tamamını (sekizlik olarak "\ 000") başka bir şeyle değiştirmek için kullanabilirsin.

Böylece, örneğin "a" nın sonsuz bir akışını tükürmek için şunları yapabilirsiniz:

cat /dev/zero | tr "\000" "\141" | head -c 20
aaaaaaaaaaaaaaaaaaaa

Veya kediyi atlayın ve bir M değerinde (1024 * 1024) çıktı alın

head -c 1M /dev/zero |tr "\000" "\141"

"\ 141", "a" karakteridir.

ASCII - Octal kodlarının kısa bir sayfası için bu siteye bakınız http://www.asciitable.com/ . Aslında buradaki resim:
görüntü tanımını buraya girin

(Eski "çözülmüş" soruyu biliyorum, ancak farklı karakterlerin sonsuz bir akışını ararken buldum, bu yüzden "/" / dev / one veya / dev / [farklı karakter] sorununu nasıl çözüyor? "


Bilmiyorum… Bilimsel olmayan, sadece şimdi denedim ve şimdi denedim head | tr >file, değişik derecelerde ek yükü var. Sisteme bağlı olarak, bir, bir buçuk ya da sadece iki kez sürüyor head >file.
Blacklight,

Öyleyse, tr sanırım bir işgücü. Deneme head -c 3G ... > /dev/nullbir saniyenin altına girdi, ancak borunun eklenmesi tr21 saniye sürdü. Hala yaklaşık 150 MB / sn, muhtemelen çoğu sabit sürücünün dayanabileceğinden daha hızlı. Ama işe yarıyor ve yerleşik / dev / one veya / dev / a, vb.
Yok

Bu yüzden benim bir tanesine soruyorum!
Blacklight
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.