Útskýring á „Allt er skrá“ og gerðir skráa í Linux


Ef þú ert nýr í Linux, eða hefur notað það í nokkra mánuði, þá verður þú að hafa heyrt eða lesið fullyrðingar eins og Í Linux er allt skrá.

Það er í raun rétt þó að þetta sé bara alhæfingarhugtak, í Unix og afleiðum þess eins og Linux er allt talið sem skrá. Ef eitthvað er ekki skrá, þá verður það að keyra sem ferli á kerfinu.

Til að skilja þetta, taktu til dæmis hversu mikið pláss er í (/) rót skránni þinni sem alltaf er notað af mismunandi gerðum af Linux skrám. Þegar þú býrð til skrá eða flytur skrá yfir á kerfið þitt tekur hún pláss á líkamlega disknum og hún er talin vera á ákveðnu sniði (skráargerð).

Og líka Linux kerfið gerir ekki greinarmun á skrám og möppum, en möppur vinna eitt mikilvægt starf, það er að geyma aðrar skrár í hópum í stigveldi til að auðvelda staðsetningu. Allir vélbúnaðarhlutar þínir eru sýndir sem skrár og kerfið hefur samskipti við þá með því að nota þessar skrár.

Hugmyndin er mikilvæg lýsing á frábærum eiginleikum Linux, þar sem inntaks-/úttaksauðlindir eins og skjölin þín, möppur (möppur í Mac OS X og Windows), lyklaborð, skjá, harða diska, færanlegir miðlar, prentarar, mótald, sýndar útstöðvar og einnig samskipti milli vinnslu og neta eru bætistraumar sem eru skilgreindir af skráarkerfisrými.

Athyglisverður kostur við að allt sé skrá er að hægt er að nota sama sett af Linux verkfærum, tólum og API á ofangreindum inntaks-/úttaksauðlindum.

Þó allt í Linux sé skrá, þá eru ákveðnar sérstakar skrár sem eru meira en bara skrá, til dæmis innstungur og nafngreindar pípur.

Hverjar eru mismunandi gerðir af skrám í Linux?

Í Linux eru í grundvallaratriðum þrjár gerðir af skrám:

  1. Venjulegar/venjulegar skrár
  2. Sérstakar skrár
  3. Möppur

Þetta eru skráargögn sem innihalda texta, gögn eða forritaleiðbeiningar og þær eru algengustu gerðir skráa sem þú getur búist við að finna á Linux kerfi og þau innihalda:

  1. Lesanlegar skrár
  2. Tvöfaldur skrár
  3. Myndaskrár
  4. Þjappaðar skrár og svo framvegis.

Sérstakar skrár innihalda eftirfarandi:

Útiloka skrár: Þetta eru tækjaskrár sem veita biðminni aðgang að vélbúnaðarhlutum kerfisins. Þeir bjóða upp á samskiptaaðferð við tækjastjóra í gegnum skráarkerfið.

Einn mikilvægur þáttur varðandi blokkarskrár er að þær geta flutt stóran blokk af gögnum og upplýsingum á tilteknum tíma.

Að skrá innstungur fyrir blokkaskrár í möppu:

# ls -l /dev | grep "^b"
brw-rw----  1 root disk        7,   0 May 18 10:26 loop0
brw-rw----  1 root disk        7,   1 May 18 10:26 loop1
brw-rw----  1 root disk        7,   2 May 18 10:26 loop2
brw-rw----  1 root disk        7,   3 May 18 10:26 loop3
brw-rw----  1 root disk        7,   4 May 18 10:26 loop4
brw-rw----  1 root disk        7,   5 May 18 10:26 loop5
brw-rw----  1 root disk        7,   6 May 18 10:26 loop6
brw-rw----  1 root disk        7,   7 May 18 10:26 loop7
brw-rw----  1 root disk        1,   0 May 18 10:26 ram0
brw-rw----  1 root disk        1,   1 May 18 10:26 ram1
brw-rw----  1 root disk        1,  10 May 18 10:26 ram10
brw-rw----  1 root disk        1,  11 May 18 10:26 ram11
brw-rw----  1 root disk        1,  12 May 18 10:26 ram12
brw-rw----  1 root disk        1,  13 May 18 10:26 ram13
brw-rw----  1 root disk        1,  14 May 18 10:26 ram14
brw-rw----  1 root disk        1,  15 May 18 10:26 ram15
brw-rw----  1 root disk        1,   2 May 18 10:26 ram2
brw-rw----  1 root disk        1,   3 May 18 10:26 ram3
brw-rw----  1 root disk        1,   4 May 18 10:26 ram4
brw-rw----  1 root disk        1,   5 May 18 10:26 ram5
...

Stafaskrár : Þetta eru líka tækjaskrár sem veita óhamlaðan raðaðgang að vélbúnaðarhlutum kerfisins. Þeir vinna með því að bjóða upp á samskiptamáta við tæki með því að flytja gögn einn staf í einu.

Að skrá innstungur fyrir stafaskrár í möppu:

# ls -l /dev | grep "^c"
crw-------  1 root root       10, 235 May 18 15:54 autofs
crw-------  1 root root       10, 234 May 18 15:54 btrfs-control
crw-------  1 root root        5,   1 May 18 10:26 console
crw-------  1 root root       10,  60 May 18 10:26 cpu_dma_latency
crw-------  1 root root       10, 203 May 18 15:54 cuse
crw-------  1 root root       10,  61 May 18 10:26 ecryptfs
crw-rw----  1 root video      29,   0 May 18 10:26 fb0
crw-rw-rw-  1 root root        1,   7 May 18 10:26 full
crw-rw-rw-  1 root root       10, 229 May 18 10:26 fuse
crw-------  1 root root      251,   0 May 18 10:27 hidraw0
crw-------  1 root root       10, 228 May 18 10:26 hpet
crw-r--r--  1 root root        1,  11 May 18 10:26 kmsg
crw-rw----+ 1 root root       10, 232 May 18 10:26 kvm
crw-------  1 root root       10, 237 May 18 10:26 loop-control
crw-------  1 root root       10, 227 May 18 10:26 mcelog
crw-------  1 root root      249,   0 May 18 10:27 media0
crw-------  1 root root      250,   0 May 18 10:26 mei0
crw-r-----  1 root kmem        1,   1 May 18 10:26 mem
crw-------  1 root root       10,  57 May 18 10:26 memory_bandwidth
crw-------  1 root root       10,  59 May 18 10:26 network_latency
crw-------  1 root root       10,  58 May 18 10:26 network_throughput
crw-rw-rw-  1 root root        1,   3 May 18 10:26 null
crw-r-----  1 root kmem        1,   4 May 18 10:26 port
crw-------  1 root root      108,   0 May 18 10:26 ppp
crw-------  1 root root       10,   1 May 18 10:26 psaux
crw-rw-rw-  1 root tty         5,   2 May 18 17:40 ptmx
crw-rw-rw-  1 root root        1,   8 May 18 10:26 random

Táknrænar hlekkjaskrár: Táknræn hlekkur er tilvísun í aðra skrá á kerfinu. Þess vegna eru táknrænar hlekkjaskrár skrár sem vísa á aðrar skrár og þær geta annað hvort verið möppur eða venjulegar skrár.

Skráning táknrænna tengla í möppu:

# ls -l /dev/ | grep "^l"
lrwxrwxrwx  1 root root             3 May 18 10:26 cdrom -> sr0
lrwxrwxrwx  1 root root            11 May 18 15:54 core -> /proc/kcore
lrwxrwxrwx  1 root root            13 May 18 15:54 fd -> /proc/self/fd
lrwxrwxrwx  1 root root             4 May 18 10:26 rtc -> rtc0
lrwxrwxrwx  1 root root             8 May 18 10:26 shm -> /run/shm
lrwxrwxrwx  1 root root            15 May 18 15:54 stderr -> /proc/self/fd/2
lrwxrwxrwx  1 root root            15 May 18 15:54 stdin -> /proc/self/fd/0
lrwxrwxrwx  1 root root            15 May 18 15:54 stdout -> /proc/self/fd/1

Þú getur búið til táknræna tengla með því að nota ln tólið í Linux eins og í dæminu hér að neðan.

# touch file1.txt
# ln -s file1.txt /home/tecmint/file1.txt  [create symbolic link]
# ls -l /home/tecmint/ | grep "^l"         [List symbolic links]

Í dæminu hér að ofan bjó ég til skrá sem heitir file1.txt í /tmp skránni, bjó síðan til táknræna tengilinn /home/tecmint/file1.txt til að benda á /tmp/file1.txt.

Pípur eða nafngreindar pípur: Þetta eru skrár sem leyfa samskipti milli ferla með því að tengja úttak eins ferlis við inntak annars.

Nafngreind pípa er í raun skrá sem er notuð af tveimur ferli til að eiga samskipti við hvert og eitt og virkar sem Linux pípa.

Skráning á innstungum fyrir rör í möppu:

# ls -l | grep "^p"
prw-rw-r-- 1 tecmint tecmint    0 May 18 17:47 pipe1
prw-rw-r-- 1 tecmint tecmint    0 May 18 17:47 pipe2
prw-rw-r-- 1 tecmint tecmint    0 May 18 17:47 pipe3
prw-rw-r-- 1 tecmint tecmint    0 May 18 17:47 pipe4
prw-rw-r-- 1 tecmint tecmint    0 May 18 17:47 pipe5

Þú getur notað mkfifo tólið til að búa til nafngreinda pípu í Linux eins og hér segir.

# mkfifo pipe1
# echo "This is named pipe1" > pipe1

Í dæminu hér að ofan bjó ég til nafngreinda pípu sem heitir pipe1, síðan sendi ég nokkur gögn til hennar með því að nota echo skipunina, eftir það varð skelin ógagnvirk við vinnslu inntaksins.

Svo opnaði ég aðra skel og keyrði aðra skipunina til að prenta út það sem var sent í pípuna.

# while read line ;do echo "This was passed-'$line' "; done<pipe1

Socket skrár: Þetta eru skrár sem bjóða upp á samskipti milli ferla, en þær geta flutt gögn og upplýsingar á milli ferla sem keyra í mismunandi umhverfi.

Þetta þýðir að innstungur veita gagna- og upplýsingaflutning á milli ferla sem keyra á mismunandi vélum á netinu.

Dæmi til að sýna verk innstungna væri vafri sem tengir við vefþjón.

# ls -l /dev/ | grep "^s"
srw-rw-rw-  1 root root             0 May 18 10:26 log

Þetta er dæmi um fals sem er búið til í C með því að nota socket() kerfiskallið.

int socket_desc= socket(AF_INET, SOCK_STREAM, 0 );

Í ofangreindu:

  1. AF_INET er heimilisfangafjölskyldan (IPv4)
  2. SOCK_STREAM er tegundin (tengingin miðast við TCP samskiptareglur)
  3. 0 er samskiptareglan (IP Protocol)

Til að vísa í socket skrána, notaðu socket_desc, sem er það sama og skráarlýsingin, og notaðu read() og write() kerfiskall til að lesa og skrifa úr innstungunni í sömu röð.

Þetta eru sérstakar skrár sem geyma bæði venjulegar og aðrar sérstakar skrár og þær eru skipulagðar á Linux skráarkerfinu í stigveldi sem byrjar í rót (/) möppunni.

Skráning innstunga í möppu:

# ls -l / | grep "^d" 
drwxr-xr-x   2 root root  4096 May  5 15:49 bin
drwxr-xr-x   4 root root  4096 May  5 15:58 boot
drwxr-xr-x   2 root root  4096 Apr 11  2015 cdrom
drwxr-xr-x  17 root root  4400 May 18 10:27 dev
drwxr-xr-x 168 root root 12288 May 18 10:28 etc
drwxr-xr-x   3 root root  4096 Apr 11  2015 home
drwxr-xr-x  25 root root  4096 May  5 15:44 lib
drwxr-xr-x   2 root root  4096 May  5 15:44 lib64
drwx------   2 root root 16384 Apr 11  2015 lost+found
drwxr-xr-x   3 root root  4096 Apr 10  2015 media
drwxr-xr-x   3 root root  4096 Feb 23 17:54 mnt
drwxr-xr-x  16 root root  4096 Apr 30 16:01 opt
dr-xr-xr-x 223 root root     0 May 18 15:54 proc
drwx------  19 root root  4096 Apr  9 11:12 root
drwxr-xr-x  27 root root   920 May 18 10:54 run
drwxr-xr-x   2 root root 12288 May  5 15:57 sbin
drwxr-xr-x   2 root root  4096 Dec  1  2014 srv
dr-xr-xr-x  13 root root     0 May 18 15:54 sys
drwxrwxrwt  13 root root  4096 May 18 17:55 tmp
drwxr-xr-x  11 root root  4096 Mar 31 16:00 usr
drwxr-xr-x  12 root root  4096 Nov 12  2015 var

Þú getur búið til möppu með mkdir skipuninni.

# mkdir -m 1666 linux-console.net
# mkdir -m 1666 news.linux-console.net
# mkdir -m 1775 linuxsay.com

Samantekt

Þú ættir nú að hafa skýran skilning á því hvers vegna allt í Linux er skrá og mismunandi gerðir skráa sem geta farið út á Linux kerfinu þínu.

Þú getur bætt meira við þetta með því að lesa meira um einstakar skráargerðir og þær eru búnar til. Ég vona að þetta finnist þessi handbók gagnleg og fyrir allar spurningar og viðbótarupplýsingar sem þú vilt deila, vinsamlegast skildu eftir athugasemd og við munum ræða meira.