МІНІСТЕРСТВО ОСВІТИ І НАУКИ УКРАЇНИ
НАЦІОНАЛЬНИЙ УНІВЕРСИТЕТ “ЛЬВІВСЬКА ПОЛІТЕХНІКА”
ЗВІТ
ДО ПРАКТИЧНОЇ РОБОТИ № 3
З КУРСУ “МЕРЕЖЕВІ ОПЕРАЦІЙНІ СИСТЕМИ”
на тему “ Файлова система proc ”
Мета роботи
Познайомитися iз файловою системою proc операцiйної системи Linux.
Познайомитися з утилiтами free, top, ps, якi базуються на файловiй системi proc.
Запустити команду free iз рiзними опцiями:
1) –b виводить об’єм памяті в байтах.
[hirurg@localhost ~]$ free -b
total used free shared buffers cached
Mem: 201469952 195047424 6422528 0 4575232 50221056
-/+ buffers/cache: 140251136 61218816
Swap: 542826496 162504704 380321792
2) -k виводить об’єм памяті в кілобайтах.
[hirurg@localhost ~]$ free -k
total used free shared buffers cached
Mem: 196748 191440 5308 0 1944 51232
-/+ buffers/cache: 138264 58484
Swap: 530104 158976 371128
3) -m виводить об’єм памяті в мегабайтах.
[hirurg@localhost ~]$ free -m
total used free shared buffers cached
Mem: 192 187 5 0 2 49
-/+ buffers/cache: 135 57
Swap: 517 155 362
3)-t виводить строку з загальною кількістю вільної і зайнятої пам’яті
[hirurg@localhost ~]$ free -t
total used free shared buffers cached
Mem: 196748 192004 4744 0 2272 51412
-/+ buffers/cache: 138320 58428
Swap: 530104 159136 370968
Total: 726852 351140 375712
4) –s n повторяє команду кожні n секунд.
[hirurg@localhost ~]$ free -s 5
total used free shared buffers cached
Mem: 196748 193084 3664 0 2308 51416
-/+ buffers/cache: 139360 57388
Swap: 530104 159008 371096
total used free shared buffers cached
Mem: 196748 190776 5972 0 2116 50016
-/+ buffers/cache: 138644 58104
Swap: 530104 159188 370916
Total-всього пам’яті
Used-використано
Free-вільно
Shared-відображено пам’яті в загальні області
Buffers-використано під буфри
Cached-використано під стрінковий кеш
Запустити команду top iз рiзними опцiями
результати роботи команди ls, застосованої до директорiї /proc та директорiї /proc/sys i вмiстиме файлiв cpuinfo, devices, filesystems, meminfo, mounts, partitions, version
[hirurg@localhost ~]$ ls /proc
1/ 2/ 2544/ 2601/ 40/ 856/ interrupts sched_debug
10/ 213/ 2545/ 2603/ 42/ 865/ iomem schedstat
11/ 217/ 2547/ 2605/ 43/ 9/ ioports scsi/
12/ 22/ 2549/ 2636/ 4898/ 919/ irq/ self@
1202/ 2276/ 2552/ 2647/ 5/ 920/ kallsyms slabinfo
1235/ 2292/ 2553/ 2650/ 55/ acpi/ kcore softirqs
1267/ 2312/ 2556/ 2654/ 575/ asound/ keys stat
13/ 2313/ 2562/ 2708/ 579/ buddyinfo key-users swaps
14/ 2314/ 2566/ 2718/ 5803/ bus/ kmsg sys/
143/ 2315/ 2568/ 2726/ 6/ cmdline kpagecount sysrq-trigger
1467/ 2316/ 2569/ 2729/ 601/ config.gz kpageflags sysvipc/
15/ 2320/ 2571/ 2734/ 618/ cpuinfo latency_stats timer_list
16/ 2364/ 2576/ 2788/ 634/ crypto loadavg timer_stats
17/ 2365/ 2577/ 2794/ 637/ devices locks tty/
1742/ 2380/ 2579/ 2795/ 7/ diskstats mdstat uptime
18/ 2391/ 2580/ 3/ 702/ dma meminfo version
1837/ 2396/ 2583/ 300/ 764/ dri/ misc vmallocinfo
1840/ 2422/ 2586/ 302/ 776/ driver/ modules vmstat
1842/ 2443/ 2590/ 338/ 780/ execdomains mounts@ zoneinfo
1847/ 2505/ 2592/ 3415/ 8/ fb mtrr
1874/ 2506/ 2595/ 3419/ 809/ filesystems net@
19/ 2508/ 2596/ 39/ 811/ fs/ pagetypeinfo
1904/ 2510/ 2598/ 4/ 812/ ide/ partitions
[hirurg@localhost ~]$ ls /proc/sys
crypto/ debug/ dev/ fs/ kernel/ net/ vm/
[hirurg@localhost proc]$ cat cpuinfo
processor : 0
vendor_id : GenuineIntel
cpu family : 15
model : 4
model name : Intel(R) Pentium(R) 4 CPU 3.00GHz
stepping : 1
cpu MHz : 3000.311
cache size : 0 KB
fdiv_bug : no
hlt_bug : no
f00f_bug : no
coma_bug : no
fpu : yes
fpu_exception : yes
cpuid level : 5
wp : yes
flags : fpu vme de pse tsc msr pae mce cx8 apic mtrr pge mca cmov pat pse36 clflush mmx fxsr sse sse2 constant_tsc up pni monitor
bogomips : 6000.62
clflush size : 64
power management:
[hirurg@localhost proc]$ cat cpuinfo
processor : 0
vendor_id : GenuineIntel
cpu family : 15
model : 4
model name : Intel(R) Pentium(R) 4 CPU 3.00GHz
stepping : 1
cpu MHz : 3000.311
cache size : 0 KB
fdiv_bug : no
hlt_bug : no
f00f_bug : no
coma_bug : no
fpu : yes
fpu_exception : yes
cpuid level : 5
wp : yes
flags : fpu vme de pse tsc msr pae mce cx8 apic mtrr pge mca cmov pat pse36 clflush mmx fxsr sse sse2 constant_tsc up pni monitor
bogomips : 6000.62
clflush size : 64
power management:
[hirurg@localhost proc]$ cat devices
Character devices:
1 mem
4 /dev/vc/0
4 tty
4 ttyS
5 /dev/tty
5 /dev/console
5 /dev/ptmx
7 vcs
10 misc
13 input
14 sound
21 sg
29 fb
99 ppdev
116 alsa
128 ptm
136 pts
180 usb
189 usb_device
226 drm
253 bsg
254 rtc
Block devices:
1 ramdisk
2 fd
259 blkext
8 sd
9 md
11 sr
65 sd
66 sd
67 sd
68 sd
69 sd
70 sd
71 sd
128 sd
129 sd
130 sd
131 sd
132 sd
133 sd
134 sd
135 sd
253 pktcdvd
254 mdp
[hirurg@localhost proc]$ cat filesystems
nodev sysfs
nodev rootfs
nodev bdev
nodev proc
nodev tmpfs
nodev devtmpfs
nodev debugfs
nodev securityfs
nodev sockfs
nodev pipefs
nodev anon_inodefs
nodev inotifyfs
nodev devpts
ext2
cramfs
nodev ramfs
nodev hugetlbfs
nodev mqueue
ext4
ext4dev
nodev usbfs
nodev vboxsf
nodev binfmt_misc
nodev fuse
fuseblk
nodev fusectl
[hirurg@localhost proc]$ cat meminfo
MemTotal: 196748 kB
MemFree: 18196 kB
Buffers: 3748 kB
Cached: 57060 kB
SwapCached: 34320 kB
Active: 71492 kB
Inactive: 84648 kB
Active(anon): 41128 kB
Inactive(anon): 54464 kB
Active(file): 30364 kB
Inactive(file): 30184 kB
Unevictable: 0 kB
Mlocked: 0 kB
HighTotal: 0 kB
HighFree: 0 kB
LowTotal: 196748 kB
LowFree: 18196 kB
SwapTotal: 530104 kB
SwapFree: 357196 kB
Dirty: 16 kB
Writeback: 0 kB
AnonPages: 74584 kB
Mapped: 28160 kB
Slab: 11108 kB
SReclaimable: 4180 kB
SUnreclaim: 6928 kB
PageTables: 3360 kB
NFS_Unstable: 0 kB
Bounce: 0 kB
WritebackTmp: 0 kB
CommitLimit: 628476 kB
Committed_AS: 728968 kB
VmallocTotal: 823352 kB
VmallocUsed: 22896 kB
VmallocChunk: 793548 kB
HugePages_Total: 0
HugePages_Free: 0
HugePages_Rsvd: 0
HugePages_Surp: 0
Hugepagesize: 4096 kB
DirectMap4k: 8128 kB
DirectMap4M: 196608 kB
[hirurg@localhost proc]$ cat mounts
rootfs / rootfs rw 0 0
/dev/root / ext4 rw,relatime,barrier=1,data=ordered 0 0
/dev /dev devtmpfs rw,relatime,size=95192k,nr_inodes=23798 0 0
/proc /proc proc rw,relatime 0 0
/sys /sys sysfs rw,relatime 0 0
none /dev/pts devpts rw,relatime,mode=620 0 0
none /dev/shm tmpfs rw,relatime 0 0
/dev/sda6 /home ext4 rw,relatime,barrier=1,data=ordered 0 0
none /proc/sys/fs/binfmt_misc binfmt_misc rw,relatime 0 0
/proc/bus/usb /proc/bus/usb usbfs rw,relatime,devgid=43,devmode=664 0 0
gvfs-fuse-daemon /home/hirurg/.gvfs fuse.gvfs-fuse-daemon rw,nosuid,nodev,relatime,user_id=10001,group_id=10001 0 0
[hirurg@localhost proc]$ cat partitions
major minor #blocks name
8 0 8388608 sda
8 1 4321453 sda1
8 2 1 sda2
8 5 530113 sda5
8 6 3534268 sda6
[hirurg@localhost proc]$ cat version
Linux version 2.6.31.5-desktop-1mnb (herton@n2.mandriva.com) (gcc version 4.4.1 (GCC) ) #1 SMP Fri Oct 23 01:46:54 EDT 2009
призначення пiддиректорiй та файлiв директорiї /proc
» /proc/apm: Містить інформацію про Advanced Power Management, якщо такий встановлений.
» /proc/acpi: Схожа директорія, що містить масу інформації по сучаснішому Advanced Configuration and Power Interface. Наприклад, щоб з'ясувати, чи підключений ваш ноутбук до розетки, можете застосувати команду: cat /proc/acpi/ac_adapter/ac/state, щоб отримати відповідь: “on line” або “off line“
» /proc/cmdline: Показує параметри, передані ядру при завантаженні.
» /proc/cpuinfo: Містить інформацію про процесор вашої машини.
» /proc/loadavg: Споріднений файл, показує середню завантаженість процесора; його інформація включає: використання CPU за останню хвилину, за останні 5 хвилин, і за останні 10 хвилин, а також число поточних зараз процесів.
» /proc/stat: Також видає статистику, але що відноситься до предищей завантаження машини.
» /proc/uptime: Коротенький файл, що містить два числа: скільки секунд машина працювала, і скільки секунд простоювала.
» /proc/devices: Показує все, на даний момент конфігуровані і завантажені, character і block пристрої. /proc/ide і /proc/scsi містять інформацію про IDE і SCSI пристроях.
» /proc/ioports: Містить інформацію про порти введення/висновку (I/o communications) використовуваних цими пристроями.
» /proc/dma: Показує використовувані Direct Memory Access канали.
» /proc/filesystems: Повідомляє, які файлові системи підтримуються вашим ядром.
» /proc/mounts: Перераховує всі крапки монтування, використовувані у вашій машині (виведення цього файлу вельми змахує на /etc/mtab). Аналогічно, /proc/partitions і /proc/swaps показують всі розділи і всі простори підкачки (swap space).
» /proc/fs: Якщо експортуєте файлові системи за допомогою NFS, то ця директорія містить, серед своїх численних субдиректорій і файлів, файл /proc/fs/nfsd/exports, який показує файлову систему відкриту для доступу, і права такого доступу.
» /proc/net: Служить для зберігання мережевої інформації. Опис всіх файлів в цій директорії займе дуже багато місце, скажемо лише, що вона містить /dev (кожен мережевий пристрій), декілька iptables (файрволов), файли, що відносяться до них, статистику мереж і сокетів, інформацію про бездротовий зв'язок і багато що інше.
» cmdline: Містить команду, що запустила процес, зі всіма своїми параметрами.
» cwd: Містить симлінк на поточну працюючу директорію (current working directory - CWD), посилання на виконуваний файл процесу, і посилання на його кореневу директорію.
» environ: Містить всі змінні середовища оточення для даного процесу.
» fd: Містить всі файлові дескриптори для даного процесу, показуючи, які файли або пристрої процес задіює.
» maps, statm, mem: Відносяться до пам'яті задіяною в процесі.
» stat, status: Містить інформацію про статус процесу.
» debug: Містить налагоджувальну інформацію. Добре для тих, хто займається розробкою ядра.
» dev: Містить параметри специфічних пристроїв у вашій системі. Для прикладу проглянете директорію /dev/cdrom.
» fs: Пропонує інформацію по всіх можливих аспектах файлової системи.
» kernel: Дозволяє безпосередньо впливати на конфігурацію і роботу ядра.
» net: Дозволяє контролювати мережеві аспекти. Будьте обережні, у разі помилки ви втратите зв'язок з мережею!
» vm: Має справу з підсистемою VM (віртуальній пам'яті).
Висновок
Наа даній лабораторній роботі я познайомився iз файловою системою proc операцiйної системи Linux, познайомився з утилiтами free, top, ps, якi базуються на файловiй системi proc.