man (manual) levels

Sistemos administravimo komandos (dazniausiai pasiekiamos tik root)

man level Description
1 Vykdomos (eXecutable) programos ar kevalo (shell) komandos
2 Sisteminiai kreipiniai (linux branduolio teikiamos funkcijos)
3 Biblioteku kreipiniai (programu biblioteku teikiamos funkcijos)
4 Specialus failai (dazniausiai randami /dev)
5 Failu formatai ir konvencijos (susitarimai), pvz.: /etc/passwd
6 Zaidimai
7 Ivairus (iskaitant makro (macro) paketus ir konvencijos), pvz.: man(7), groff(7)
8
9 Linux branduolio rutinos [non standard]

Pora pavyzdziu naudojantis man kaomanda:


man -wa man
man -a man
man -w man
man 1 man


Tvarka, kuria ieskomi man puslapiai nustatoma globaliu kintamuoju: MANSECT. Jeigu tokio nera, ieskoma: 1:8:2:3:4:5:6:7:9:tcl:n:l:p:o.

bash trumpiniai (shortcuts, hotkeys)

Designator Description
!! Skaitoma: bang-bang, si komanda iskviecia paskutine komanda. Sauktukas daznai vadinamas bang Linux ir Unix sistemose.
!n Iskviecia n-taja komanda isistorijos. history komandos pagalba galime pamatyti siuos numerius.
!-n Kreipiames i pries n enter paspaudimu vykdyta komanda is istorijos.
!string Kvieciame paskutine komanda, kuri prasidejo string.
!?string iskvieciam paskutine komanda, kurioje buvo pamineta string.
^str1^str2 Greitas pakeitimas. Pakartojame paskutine (ar anksciausiai rasta istorijoje) komanda pakeisdami pirma str1 i str2.
C-p ir ↑ Paskutini komanda
C-n ir ↓ Sekanti komanda
C-b ir ← Atgal vienu simboliu
C-f ir → Priekin vienu simboliu
C-a ir Home I eilutes pradzia
C-e ir End I eilutes pabaiga
C-l ir clear Isvalyti ekrana
M-< I istorijos pradzia
M-> I istorijos pabaiga
C-d ir delete Istrinti (delete) simboli is desines
C-k Istrinti (delete/Kill) viska nuo kursoriaus i desine iki EOL(end Of Line – eilutes pabaigos)
C-w Istrinti (delete/kill) viska nuo kursoriaus i kaire iki eilutes pradzios
C-y Iklijuoti (paste/Yank) istrinta teksta
M-d Istrinti (delete/kill) zodi
C-rtext Atbuline text paieska
Cstext Paieska i prieki text

USB įrenginiai

Sveiki.

Mes turime kelių tipų USB įrenginius:

  • OHCI – USB 1.1 valdiklis, maksimum 12Mb/s
  • UHCI – USB 1.1 valdiklis, maksimum 12Mb/s
  • EHCI – USB 2.0 valdiklis, maksimum 480Mb/s

P.S. USB 2.0 prijungtas prie USB 1.1 veiks USB 1.1 greičiu.

Yra kelios USB įrenginių klasės:

  • HID – Human Interface Device (Pelytės, klavietūros ir kita)
  • Communications device (Modemai)
  • Mass storage device (Flash atmintinės, diskai ir kita)
  • Audio (Garso plokštės)
  • IrDA
  • Spausdintuvai
  • Bluetooth
  • WiFi/wireless

USB tapo palaikomas nuo 2.3.X development versijoje, ir vėliau pridurtas prie 2.2.X branduolio be USB mass storage įrenginių palaikymo, kurie buvo palaikomi tik nuo 2.2.18 branduolio (kernel) versijos.

Linux branduolio (kernel) USB draiverius galime skirstyti į 3 kategorijas:

  1. Host controller drivers
  2. Class drivers
  3. Other device drivers

1) USB „host“ valdiklio (controller) draiveriai: usb-ohci.o (OHCI driver), usb-uhci.o (UHCI driver), uhci.o (senas „alternatyvus“ UHCI driver) ir ehci-hcd.o (EHCI driver).
2) USB class draiveriai: hid.o, usb-storage.o (mass storage driver), acm.o (Automated Control Model [ACM] communications class driver, kuris aptarnauja modemus, kurie emuliuoja standarinę „serial“ modem AT command sąsają (interface)), printer.o ir audio.o.
3) Valdikliai (drivers), kurie nepritampa „standartinėms“ klasėms (1 ir 2). Pavyzdžiui, rio500.o (Diamond Rio 500 MP3 player’io valdikliai (drivers)) ir pwc.o (daugumos Philips webcam’ų valdikliai (drivers)).

Linux valdikliai yra sluoksniniai, moduliniai. Pagrindines už standartines (generic) funkcijas, atsako usbcore.o, o visa kita yra virš su jiems priklausančiais moduliais.

Kaip gali visa tai atrodyti mūsų sistemoje? Galime peržiūrėti keliais būdais: lsmod, arba cat /proc/modules:
lsmod
Module Size Used by
snd_seq_dummy 987 0
btrfs 366823 1
zlib_deflate 15822 1 btrfs
crc32c 2172 1
libcrc32c 762 1 btrfs
nls_utf8 908 0
nls_cp437 4489 0
vfat 6570 0
fat 34912 1 vfat
vboxnetadp 5550 0
vboxnetflt 15408 0
vboxdrv 144401 2 vboxnetadp,vboxnetflt
usb_storage 30585 0
binfmt_misc 4907 1
ppdev 4058 0
lp 5570 0
sco 5857 2
bridge 33019 0
stp 996 1 bridge
bnep 7444 2
rfcomm 25171 0
l2cap 21705 6 bnep,rfcomm
crc16 1027 1 l2cap
bluetooth 36319 6 sco,bnep,rfcomm,l2cap
rfkill 10264 3 bluetooth
cpufreq_conservative 4018 0
cpufreq_powersave 602 0
cpufreq_userspace 1480 0
cpufreq_stats 1940 0
nfsd 193919 13
exportfs 2618 1 nfsd
nfs 206998 1
lockd 49437 2 nfsd,nfs
fscache 24662 1 nfs
nfs_acl 1695 2 nfsd,nfs
auth_rpcgss 25268 2 nfsd,nfs
sunrpc 134776 15 nfsd,nfs,lockd,nfs_acl,auth_rpcgss
fuse 44033 1
loop 9765 0
cdc_ether 2633 0
usbnet 9527 1 cdc_ether
mii 2714 1 usbnet
cdc_wdm 6452 0
cdc_acm 12498 0
snd_wavefront 24702 0
snd_cs4236 21379 0
snd_wss_lib 16653 2 snd_wavefront,snd_cs4236
snd_opl3_lib 6022 2 snd_wavefront,snd_cs4236
snd_intel8x0 19595 7
snd_hwdep 4054 2 snd_wavefront,snd_opl3_lib
snd_mpu401 3604 0
snd_mpu401_uart 4067 3 snd_wavefront,snd_cs4236,snd_mpu401
snd_ac97_codec 79148 1 snd_intel8x0
snd_seq_midi 3576 0
snd_rawmidi 12513 3 snd_wavefront,snd_mpu401_uart,snd_seq_midi
ac97_bus 710 1 snd_ac97_codec
snd_seq_midi_event 3684 1 snd_seq_midi
snd_pcm_oss 28671 0
snd_mixer_oss 10461 1 snd_pcm_oss
snd_seq 35463 3 snd_seq_dummy,snd_seq_midi,snd_seq_midi_event
snd_pcm 47226 7 snd_cs4236,snd_wss_lib,snd_intel8x0,snd_ac97_codec,snd_pcm_oss
i2c_nforce2 4464 0
psmouse 44657 0
parport_pc 15799 1
i2c_core 12696 1 i2c_nforce2
snd_timer 12258 6 snd_wss_lib,snd_opl3_lib,snd_seq,snd_pcm
snd_seq_device 3673 5 snd_seq_dummy,snd_opl3_lib,snd_seq_midi,snd_rawmidi,snd_seq
snd_page_alloc 5045 3 snd_wss_lib,snd_intel8x0,snd_pcm
snd 34375 26 snd_wavefront,snd_cs4236,snd_wss_lib,snd_opl3_lib,snd_intel8x0,snd_hwdep, snd_mpu401,snd_mpu401_uart,snd_ac97_codec,snd_rawmidi,snd_pcm_oss, snd_mixer_oss,snd_seq,snd_pcm,snd_timer,snd_seq_device
evdev 5609 11
parport 22554 3 ppdev,lp,parport_pc
soundcore 3450 1 snd
asus_atk0110 6770 0
pcspkr 1207 0
serio_raw 2916 0
ns558 1599 0
gameport 6061 2 ns558
button 3598 0
processor 26327 0
ext3 94212 2
jbd 32169 1 ext3
mbcache 3762 1 ext3
raid10 16733 0
raid456 42880 0
async_raid6_recov 4130 1 raid456
async_pq 2643 2 raid456,async_raid6_recov
raid6_pq 77468 2 async_raid6_recov,async_pq
async_xor 1954 3 raid456,async_raid6_recov,async_pq
xor 12418 1 async_xor
async_memcpy 838 2 raid456,async_raid6_recov
async_tx 1326 5 raid456,async_raid6_recov,async_pq,async_xor,async_memcpy
raid1 16375 0
raid0 5601 0
multipath 4987 0
linear 3063 0
md_mod 67345 6 raid10,raid456,raid1,raid0,multipath,linear
sg 15968 0
sr_mod 10770 0
cdrom 26487 1 sr_mod
sd_mod 25977 5
crc_t10dif 1012 1 sd_mod
ata_generic 2067 0
ohci_hcd 16880 0
fan 2586 0
pata_amd 6625 0
sata_nv 15398 5
e1000 77317 0
cassini 32989 0
ehci_hcd 27851 0
libata 115753 3 ata_generic,pata_amd,sata_nv
usbcore 98453 8 usb_storage,cdc_ether,usbnet,cdc_wdm,cdc_acm,ohci_hcd,ehci_hcd
scsi_mod 101429 5 usb_storage,sg,sr_mod,sd_mod,libata
floppy 40923 0
thermal 9206 0
thermal_sys 9378 3 processor,fan,thermal
nls_base 4541 5 nls_utf8,nls_cp437,vfat,fat,usbcore

USB hotplug

Moduliniai USB valdikliai (drivers) yra užkraunami „generic“ /sbin/hotplug, šis įrankis yra įsiūtas branduolyje. Jis taip pat naudojamas kitiem „hotplug“ įrenginiams: CardBus cards, FireWire (IEEE 1394 ar i.Link).

LPI 1 reikalauja žinoti įrankius, kureis mes galime aptikti ir pamatyti kokie įrenginiai pajungti prie mūsų PC.

/proc/interrupts /proc/dma /proc/ioports /proc/pci – kas tai? Kam tai?

Sveiki.

Kas tai? Kam tai? Kiek reik žinoti norint laikyti LPIC 1?

Taigi pradėkime nuo $ cat /proc/interrupts:

            CPU0       CPU1       
   0:         47          0   IO-APIC-edge      timer
   1:     724400          0   IO-APIC-edge      i8042
   4:          7          0   IO-APIC-edge    
   6:          9          0   IO-APIC-edge      floppy
   7:          1          0   IO-APIC-edge      parport0
   8:          0          0   IO-APIC-edge      rtc0
   9:          0          0   IO-APIC-fasteoi   acpi
  10:          0          0   IO-APIC-edge      MPU401 UART
  12:   49868099          0   IO-APIC-edge      i8042
  14:          0          0   IO-APIC-edge      pata_amd
  15:   39335387          0   IO-APIC-edge      pata_amd
  19:  221426355          0   IO-APIC-fasteoi   eth0
  20:          0          0   IO-APIC-fasteoi   ohci_hcd:usb2
  21:          0          0   IO-APIC-fasteoi   sata_nv
  22:  151357004          0   IO-APIC-fasteoi   sata_nv, NVidia MCP04
  23:    1500482          0   IO-APIC-fasteoi   ehci_hcd:usb1, ohci_hcd:usb3
 NMI:          0          0   Non-maskable interrupts
 LOC: 3569957012 4016805223   Local timer interrupts
 SPU:          0          0   Spurious interrupts
 PMI:          0          0   Performance monitoring interrupts
 PND:          0          0   Performance pending work
 RES:   49038410   61701676   Rescheduling interrupts
 CAL:       8029      10129   Function call interrupts
 TLB:    6884747    7229042   TLB shootdowns
 TRM:          0          0   Thermal event interrupts
 THR:          0          0   Threshold APIC interrupts
 MCE:          0          0   Machine check exceptions
 MCP:      12424      12424   Machine check polls
 ERR:          2
 MIS:          0


Šiame pavyzdyje matome, kad pertraukimo (interrupt) 21 ir 22 yra naudojami SATA diskam… 21 yra laisvas todėl ir matome visur nuliukus… po disko 22 pertraukime, yra dalinamas ir SATA/RAID valdiklio pertraukimas… Galime per BIOS išjungti nenaudojamus įrenginius taip sutaupysime pertraukimo kanalus…
Kas dar?

Prašau pagalbos 1

Štai cat /proc/dma ir /proc/ioports iš tos pačios sistemos:
$ cat /proc/dma
2: floppy
4: cascade

$ cat /proc/ioports
0000-001f : dma1
0020-0021 : pic1
0040-0043 : timer0
0050-0053 : timer1
0060-0060 : keyboard
0064-0064 : keyboard
0070-0073 : rtc0
0080-008f : dma page reg
00a0-00a1 : pic2
00c0-00df : dma2
00f0-00ff : fpu
0170-0177 : 0000:00:0f.0
0170-0177 : pata_amd
01f0-01f7 : 0000:00:0f.0
01f0-01f7 : pata_amd
0201-0201 : ns558-pnp
0290-0297 : pnp 00:02
0330-0331 : MPU401 UART
0376-0376 : 0000:00:0f.0
0376-0376 : pata_amd
0378-037a : parport0
03c0-03df : vga+
03f2-03f2 : floppy
03f4-03f5 : floppy
03f6-03f6 : 0000:00:0f.0
03f6-03f6 : pata_amd
03f7-03f7 : floppy
03f8-03ff : serial
04d0-04d1 : pnp 00:02
0800-087f : pnp 00:02
0880-088f : pnp 00:02
0960-0967 : 0000:00:11.0
0960-0967 : sata_nv
0970-0977 : 0000:00:10.0
0970-0977 : sata_nv
09e0-09e7 : 0000:00:11.0
09e0-09e7 : sata_nv
09f0-09f7 : 0000:00:10.0
09f0-09f7 : sata_nv
0b60-0b63 : 0000:00:11.0
0b60-0b63 : sata_nv
0b70-0b73 : 0000:00:10.0
0b70-0b73 : sata_nv
0be0-0be3 : 0000:00:11.0
0be0-0be3 : sata_nv
0bf0-0bf3 : 0000:00:10.0
0bf0-0bf3 : sata_nv
0cf8-0cff : PCI conf1
4000-407f : pnp 00:01
4000-4003 : ACPI PM1a_EVT_BLK
4004-4005 : ACPI PM1a_CNT_BLK
4008-400b : ACPI PM_TMR
401c-401c : ACPI PM2_CNT_BLK
4020-4027 : ACPI GPE0_BLK
4080-40ff : pnp 00:01
4400-447f : pnp 00:01
4480-44ff : pnp 00:01
44a0-44af : ACPI GPE1_BLK
4800-487f : pnp 00:01
4880-48ff : pnp 00:01
5000-503f : 0000:00:0a.1
5000-503f : nForce2_smbus
5100-513f : 0000:00:0a.1
5100-513f : nForce2_smbus
9000-9fff : PCI Bus 0000:01
9000-90ff : 0000:01:00.0
a000-afff : PCI Bus 0000:02
a000-a03f : 0000:02:0c.0
a000-a03f : e1000
c800-c80f : 0000:00:10.0
c800-c80f : sata_nv
dc00-dc0f : 0000:00:11.0
dc00-dc0f : sata_nv
e000-e01f : 0000:00:0a.1
e400-e4ff : 0000:00:13.0
e400-e4ff : NVidia MCP04
e800-e8ff : 0000:00:13.0
e800-e8ff : NVidia MCP04
f000-f00f : 0000:00:0f.0
f000-f00f : pata_amd

Taigi, ką žinome apie DMA (Direct Memory Access)? Tik tai, kad DMA naudojamas leisti įrenginiams tiesiogiai kreiptis į atmintį aplenkiant procesorių, taip paspartinant darbą.
Kas dar?

Prašau pagalbos 2

ioports pirmas skaičius įeities (input) adresas, o paskutinis išeities (output) adresas… t.y. per kurį kreipiamasi į įrenginį (input), o išeities (output) per kurį gauna atsakymus…
Kas dar?

Prašau pagalbos 3

$ lspci
00:00.0 Host bridge: nVidia Corporation Device 0071 (rev a1)
00:00.1 RAM memory: nVidia Corporation Device 007f (rev a1)
00:00.2 RAM memory: nVidia Corporation Device 0075 (rev a1)
00:00.3 RAM memory: nVidia Corporation Device 006f (rev a1)
00:00.4 RAM memory: nVidia Corporation Device 00b4 (rev a1)
00:01.0 RAM memory: nVidia Corporation Device 0076 (rev a1)
00:01.1 RAM memory: nVidia Corporation Device 0078 (rev a1)
00:01.2 RAM memory: nVidia Corporation Device 0079 (rev a1)
00:01.3 RAM memory: nVidia Corporation Device 007a (rev a1)
00:01.4 RAM memory: nVidia Corporation Device 007b (rev a1)
00:01.5 RAM memory: nVidia Corporation Device 007c (rev a1)
00:01.6 RAM memory: nVidia Corporation Device 007d (rev a1)
00:02.0 PCI bridge: nVidia Corporation Device 007e (rev a2)
00:09.0 RAM memory: nVidia Corporation Device 003f (rev a1)
00:0a.0 ISA bridge: nVidia Corporation Device 0030 (rev a3)
00:0a.1 SMBus: nVidia Corporation MCP04 SMBus (rev a2)
00:0b.0 USB Controller: nVidia Corporation MCP04 USB Controller (rev a1)
00:0b.1 USB Controller: nVidia Corporation MCP04 USB Controller (rev a1)
00:0b.2 USB Controller: nVidia Corporation MCP04 USB Controller (rev a2)
00:0f.0 IDE interface: nVidia Corporation MCP04 IDE (rev f2)
00:10.0 IDE interface: nVidia Corporation MCP04 Serial ATA Controller (rev f2)
00:11.0 IDE interface: nVidia Corporation MCP04 Serial ATA Controller (rev f2)
00:12.0 PCI bridge: nVidia Corporation MCP04 PCI Bridge (rev a2)
00:13.0 Multimedia audio controller: nVidia Corporation MCP04 AC'97 Audio Controller (rev a1)
01:00.0 VGA compatible controller: ATI Technologies Inc RV570 [Radeon X1950 Pro]
01:00.1 Display controller: ATI Technologies Inc RV570 [Radeon X1950 Pro] (secondary)
02:06.0 Ethernet controller: National Semiconductor Corporation DP83065 [Saturn] 10/100/1000 Ethernet Controller (rev 30)
02:0c.0 Ethernet controller: Intel Corporation 82540EM Gigabit Ethernet Controller (rev 02)

Čia mes matome kokie įrenginiai pajungti prie mūsų pagrindinės plokštės (motherboard) ir per kurį lizdą…
Kas dar?

Prašau pagalbos 4