എല്ലാം ഒരു ഫയലാണ് എന്നതിന്റെ വിശദീകരണവും ലിനക്സിലെ ഫയലുകളുടെ തരങ്ങളും


നിങ്ങൾ ലിനക്സിൽ പുതിയ ആളാണെങ്കിലോ ഏതാനും മാസങ്ങൾ അത് ഉപയോഗിച്ചിട്ടോ ആണെങ്കിൽ, \ലിനക്സിൽ എല്ലാം ഒരു ഫയലാണ് എന്നതുപോലുള്ള പ്രസ്താവനകൾ നിങ്ങൾ കേൾക്കുകയോ വായിക്കുകയോ ചെയ്തിരിക്കണം.

ഇത് ഒരു സാമാന്യവൽക്കരണ ആശയം മാത്രമാണെങ്കിലും, യുണിക്സിലും അതിന്റെ ലിനക്സ് പോലുള്ള ഡെറിവേറ്റീവുകളിലും എല്ലാം ഒരു ഫയലായിട്ടാണ് കണക്കാക്കുന്നത്. എന്തെങ്കിലും ഫയലല്ലെങ്കിൽ, അത് സിസ്റ്റത്തിൽ ഒരു പ്രക്രിയയായി പ്രവർത്തിക്കണം.

ഇത് മനസിലാക്കാൻ, ഉദാഹരണത്തിന് നിങ്ങളുടെ റൂട്ട് (/) ഡയറക്uടറിയിലെ സ്uപെയ്uസിന്റെ അളവ് എടുക്കുക. നിങ്ങൾ ഒരു ഫയൽ സൃഷ്uടിക്കുമ്പോഴോ നിങ്ങളുടെ സിസ്റ്റത്തിലേക്ക് ഒരു ഫയൽ കൈമാറുമ്പോഴോ, അത് ഫിസിക്കൽ ഡിസ്uകിൽ കുറച്ച് ഇടം പിടിക്കുകയും അത് ഒരു പ്രത്യേക ഫോർമാറ്റിൽ (ഫയൽ തരം) ആയി കണക്കാക്കുകയും ചെയ്യുന്നു.

കൂടാതെ, Linux സിസ്റ്റം ഫയലുകളും ഡയറക്ടറികളും തമ്മിൽ വേർതിരിക്കുന്നില്ല, പക്ഷേ ഡയറക്ടറികൾ ഒരു പ്രധാന ജോലി ചെയ്യുന്നു, അതായത് മറ്റ് ഫയലുകൾ എളുപ്പത്തിൽ ലൊക്കേഷനായി ഒരു ശ്രേണിയിൽ സംഭരിക്കുക. നിങ്ങളുടെ എല്ലാ ഹാർഡ്uവെയർ ഘടകങ്ങളും ഫയലുകളായി പ്രതിനിധീകരിക്കുന്നു, ഈ ഫയലുകൾ ഉപയോഗിച്ച് സിസ്റ്റം അവയുമായി ആശയവിനിമയം നടത്തുന്നു.

നിങ്ങളുടെ പ്രമാണങ്ങൾ, ഡയറക്uടറികൾ (Mac OS X, Windows-ലെ ഫോൾഡറുകൾ), കീബോർഡ്, മോണിറ്റർ, ഹാർഡ്-ഡ്രൈവുകൾ, നീക്കം ചെയ്യാവുന്ന മീഡിയ, പ്രിന്ററുകൾ, മോഡമുകൾ, വെർച്വൽ എന്നിങ്ങനെയുള്ള ഇൻപുട്ട്/ഔട്ട്uപുട്ട് ഉറവിടങ്ങൾ ലിനക്uസിന്റെ ഒരു മഹത്തായ പ്രോപ്പർട്ടിയുടെ ഒരു പ്രധാന വിവരണമാണ് ഈ ആശയം. ടെർമിനലുകളും ഇന്റർ-പ്രോസസ്സും നെറ്റ്uവർക്ക് കമ്മ്യൂണിക്കേഷനും ഫയൽ സിസ്റ്റം സ്പേസ് നിർവചിച്ചിരിക്കുന്ന ബൈറ്റുകളുടെ സ്ട്രീമുകളാണ്.

എല്ലാം ഒരു ഫയൽ ആകുന്നതിന്റെ ശ്രദ്ധേയമായ ഒരു ഗുണം, മുകളിലുള്ള ഇൻപുട്ട്/ഔട്ട്പുട്ട് ഉറവിടങ്ങളിൽ ഒരേ ലിനക്സ് ടൂളുകൾ, യൂട്ടിലിറ്റികൾ, എപിഐകൾ എന്നിവ ഉപയോഗിക്കാമെന്നതാണ്.

ലിനക്സിലെ എല്ലാം ഒരു ഫയലാണെങ്കിലും, സോക്കറ്റുകൾക്കും പേരിട്ട പൈപ്പുകൾക്കും ഒരു ഫയലിനേക്കാൾ കൂടുതലായ ചില പ്രത്യേക ഫയലുകൾ ഉണ്ട്.

Linux-ലെ വ്യത്യസ്ത തരം ഫയലുകൾ ഏതൊക്കെയാണ്?

ലിനക്സിൽ അടിസ്ഥാനപരമായി മൂന്ന് തരം ഫയലുകൾ ഉണ്ട്:

  1. സാധാരണ/റെഗുലർ ഫയലുകൾ
  2. പ്രത്യേക ഫയലുകൾ
  3. ഡയറക്uടറികൾ

ടെക്uസ്uറ്റ്, ഡാറ്റ അല്ലെങ്കിൽ പ്രോഗ്രാം നിർദ്ദേശങ്ങൾ അടങ്ങിയ ഫയലുകളുടെ ഡാറ്റയാണ് ഇവ, ലിനക്uസ് സിസ്റ്റത്തിൽ നിങ്ങൾ പ്രതീക്ഷിക്കുന്ന ഏറ്റവും സാധാരണമായ ഫയലുകൾ ഇവയാണ്, അവയിൽ ഇവ ഉൾപ്പെടുന്നു:

  1. വായിക്കാൻ കഴിയുന്ന ഫയലുകൾ
  2. ബൈനറി ഫയലുകൾ
  3. ചിത്ര ഫയലുകൾ
  4. കംപ്രസ് ചെയ്ത ഫയലുകളും മറ്റും.

പ്രത്യേക ഫയലുകളിൽ ഇനിപ്പറയുന്നവ ഉൾപ്പെടുന്നു:

ഫയലുകൾ തടയുക: സിസ്റ്റം ഹാർഡ്uവെയർ ഘടകങ്ങളിലേക്ക് ബഫർ ആക്uസസ് നൽകുന്ന ഉപകരണ ഫയലുകളാണ് ഇവ. ഫയൽ സിസ്റ്റത്തിലൂടെ ഡിവൈസ് ഡ്രൈവറുകളുമായി ആശയവിനിമയം നടത്തുന്നതിനുള്ള ഒരു രീതി അവർ നൽകുന്നു.

ബ്ലോക്ക് ഫയലുകളെക്കുറിച്ചുള്ള ഒരു പ്രധാന വശം, ഒരു നിശ്ചിത സമയത്ത് അവയ്ക്ക് ഒരു വലിയ ബ്ലോക്ക് ഡാറ്റയും വിവരങ്ങളും കൈമാറാൻ കഴിയും എന്നതാണ്.

ഒരു ഡയറക്ടറിയിൽ ബ്ലോക്ക് ഫയലുകളുടെ സോക്കറ്റുകൾ ലിസ്റ്റുചെയ്യുന്നു:

# 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
...

പ്രതീക ഫയലുകൾ : സിസ്റ്റം ഹാർഡ്uവെയർ ഘടകങ്ങളിലേക്ക് ബഫർ ചെയ്യാത്ത സീരിയൽ ആക്uസസ് നൽകുന്ന ഉപകരണ ഫയലുകളും ഇവയാണ്. ഒരു സമയം ഒരു പ്രതീകം ഡാറ്റ കൈമാറ്റം ചെയ്തുകൊണ്ട് ഉപകരണങ്ങളുമായി ആശയവിനിമയത്തിനുള്ള ഒരു മാർഗം നൽകിക്കൊണ്ട് അവർ പ്രവർത്തിക്കുന്നു.

ഒരു ഡയറക്ടറിയിൽ പ്രതീക ഫയലുകളുടെ സോക്കറ്റുകൾ ലിസ്റ്റുചെയ്യുന്നു:

# 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

പ്രതീകാത്മക ലിങ്ക് ഫയലുകൾ : ഒരു സിംബോളിക് ലിങ്ക് എന്നത് സിസ്റ്റത്തിലെ മറ്റൊരു ഫയലിലേക്കുള്ള റഫറൻസാണ്. അതിനാൽ, പ്രതീകാത്മക ലിങ്ക് ഫയലുകൾ മറ്റ് ഫയലുകളിലേക്ക് പോയിന്റ് ചെയ്യുന്ന ഫയലുകളാണ്, അവ ഒന്നുകിൽ ഡയറക്ടറികളോ സാധാരണ ഫയലുകളോ ആകാം.

ഒരു ഡയറക്ടറിയിൽ പ്രതീകാത്മക ലിങ്ക് സോക്കറ്റുകൾ ലിസ്റ്റുചെയ്യുന്നു:

# 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

ചുവടെയുള്ള ഉദാഹരണത്തിലെന്നപോലെ ലിനക്സിലെ ln യൂട്ടിലിറ്റി ഉപയോഗിച്ച് നിങ്ങൾക്ക് പ്രതീകാത്മക ലിങ്കുകൾ ഉണ്ടാക്കാം.

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

മുകളിലുള്ള ഉദാഹരണത്തിൽ, ഞാൻ /tmp ഡയറക്ടറിയിൽ file1.txt എന്ന പേരിൽ ഒരു ഫയൽ സൃഷ്uടിച്ചു, തുടർന്ന് /tmp/file1.txt ലേക്ക് പോയിന്റ് ചെയ്യുന്നതിന് പ്രതീകാത്മക ലിങ്ക്, /home/tecmint/file1.txt സൃഷ്ടിച്ചു.

പൈപ്പുകൾ അല്ലെങ്കിൽ പേരിട്ട പൈപ്പുകൾ : ഒരു പ്രോസസ്സിന്റെ ഔട്ട്uപുട്ടിനെ മറ്റൊന്നിന്റെ ഇൻപുട്ടുമായി ബന്ധിപ്പിച്ച് ഇന്റർ-പ്രോസസ് കമ്മ്യൂണിക്കേഷൻ അനുവദിക്കുന്ന ഫയലുകളാണിവ.

പേരുള്ള പൈപ്പ് യഥാർത്ഥത്തിൽ ഓരോന്നിനോടും ആശയവിനിമയം നടത്താൻ രണ്ട് പ്രക്രിയകൾ ഉപയോഗിക്കുന്ന ഒരു ഫയലാണ്, അത് ഒരു ലിനക്സ് പൈപ്പായി പ്രവർത്തിക്കുന്നു.

ഒരു ഡയറക്ടറിയിൽ പൈപ്പ് സോക്കറ്റുകൾ ലിസ്റ്റുചെയ്യുന്നു:

# 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

നിങ്ങൾക്ക് mkfifo യൂട്ടിലിറ്റി ഉപയോഗിച്ച് ലിനക്സിൽ ഇനിപ്പറയുന്ന രീതിയിൽ ഒരു പൈപ്പ് സൃഷ്ടിക്കാൻ കഴിയും.

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

മുകളിലുള്ള ഉദാഹരണത്തിൽ, ഞാൻ pipe1 എന്ന പേരിൽ ഒരു പൈപ്പ് സൃഷ്ടിച്ചു, തുടർന്ന് ഞാൻ echo കമാൻഡ് ഉപയോഗിച്ച് കുറച്ച് ഡാറ്റ അതിലേക്ക് കൈമാറി, അതിനുശേഷം ഇൻപുട്ട് പ്രോസസ്സ് ചെയ്യുമ്പോൾ ഷെൽ അൺ-ഇന്ററാക്ടീവ് ആയി.

പിന്നെ ഞാൻ മറ്റൊരു ഷെൽ തുറന്ന് പൈപ്പിലേക്ക് അയച്ചത് പ്രിന്റ് ചെയ്യാൻ മറ്റൊരു കമാൻഡ് പ്രവർത്തിപ്പിച്ചു.

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

സോക്കറ്റ് ഫയലുകൾ : ഇവ ഇന്റർ-പ്രോസസ് കമ്മ്യൂണിക്കേഷന് ഒരു മാർഗം നൽകുന്ന ഫയലുകളാണ്, എന്നാൽ വ്യത്യസ്ത പരിതസ്ഥിതികളിൽ പ്രവർത്തിക്കുന്ന പ്രക്രിയയ്ക്കിടയിൽ അവയ്ക്ക് ഡാറ്റയും വിവരങ്ങളും കൈമാറാൻ കഴിയും.

ഒരു നെറ്റ്uവർക്കിലെ വ്യത്യസ്ത മെഷീനുകളിൽ പ്രവർത്തിക്കുന്ന പ്രക്രിയയ്uക്കിടയിൽ സോക്കറ്റുകൾ ഡാറ്റയും വിവര കൈമാറ്റവും നൽകുന്നു എന്നാണ് ഇതിനർത്ഥം.

സോക്കറ്റുകളുടെ പ്രവർത്തനം കാണിക്കുന്നതിനുള്ള ഒരു ഉദാഹരണം ഒരു വെബ് സെർവറിലേക്ക് കണക്ഷൻ ഉണ്ടാക്കുന്ന ഒരു വെബ് ബ്രൗസറായിരിക്കും.

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

socket() സിസ്റ്റം കോൾ ഉപയോഗിച്ച് C-ൽ സോക്കറ്റ് സൃഷ്uടിക്കുന്നതിന്റെ ഒരു ഉദാഹരണമാണിത്.

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

മുകളിൽ പറഞ്ഞതിൽ:

  1. AF_INET എന്നത് വിലാസ കുടുംബമാണ്(IPv4)
  2. SOCK_STREAM ആണ് തരം (കണക്ഷൻ TCP പ്രോട്ടോക്കോൾ ഓറിയന്റഡ് ആണ്)
  3. 0 ആണ് പ്രോട്ടോക്കോൾ(IP പ്രോട്ടോക്കോൾ)

സോക്കറ്റ് ഫയൽ റഫർ ചെയ്യാൻ, ഫയൽ ഡിസ്ക്രിപ്റ്ററിന് സമാനമായ socket_desc ഉപയോഗിക്കുക, കൂടാതെ read(), write() എന്നിവ ഉപയോഗിക്കുക സോക്കറ്റിൽ നിന്ന് യഥാക്രമം വായിക്കാനും എഴുതാനും സിസ്റ്റം വിളിക്കുന്നു.

ഇവ സാധാരണ ഫയലുകളും മറ്റ് പ്രത്യേക ഫയലുകളും സംഭരിക്കുന്ന പ്രത്യേക ഫയലുകളാണ്, അവ ലിനക്സ് ഫയൽ സിസ്റ്റത്തിൽ റൂട്ട് (/) ഡയറക്uടറിയിൽ നിന്ന് ആരംഭിക്കുന്ന ഒരു ശ്രേണിയിൽ ക്രമീകരിച്ചിരിക്കുന്നു.

ഒരു ഡയറക്ടറിയിൽ സോക്കറ്റുകൾ ലിസ്റ്റുചെയ്യുന്നു:

# 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

mkdir കമാൻഡ് ഉപയോഗിച്ച് നിങ്ങൾക്ക് ഒരു ഡയറക്ടറി ഉണ്ടാക്കാം.

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

സംഗ്രഹം

Linux-ലെ എല്ലാം ഒരു ഫയലായിരിക്കുന്നത് എന്തുകൊണ്ടാണെന്നും നിങ്ങളുടെ Linux സിസ്റ്റത്തിൽ നിന്ന് പുറത്തുകടക്കാൻ കഴിയുന്ന വ്യത്യസ്ത തരം ഫയലുകളെക്കുറിച്ചും നിങ്ങൾക്ക് ഇപ്പോൾ വ്യക്തമായ ധാരണ ഉണ്ടായിരിക്കണം.

വ്യക്തിഗത ഫയൽ തരങ്ങളെക്കുറിച്ച് കൂടുതൽ വായിച്ചുകൊണ്ട് നിങ്ങൾക്ക് ഇതിലേക്ക് കൂടുതൽ ചേർക്കാൻ കഴിയും, അവ സൃഷ്ടിക്കപ്പെടുന്നു. ഇത് ഈ ഗൈഡ് സഹായകരമാണെന്ന് ഞാൻ പ്രതീക്ഷിക്കുന്നു കൂടാതെ നിങ്ങൾ പങ്കിടാൻ ആഗ്രഹിക്കുന്ന ഏതെങ്കിലും ചോദ്യങ്ങൾക്കും കൂടുതൽ വിവരങ്ങൾക്കും ദയവായി ഒരു അഭിപ്രായം ഇടുക, ഞങ്ങൾ കൂടുതൽ ചർച്ച ചെയ്യും.