ሰላም ሁላችሁም! ለወደዳችኋቸው ኮርሶች አዳዲስ ዥረቶችን መክፈታችንን እንቀጥላለን እና አሁን አዲስ የኮርሶች ስብስብ እንደጀመርን ለማሳወቅ እንቸኩላለን።
ምናባዊ የፋይል ስርዓቶች የሊኑክስ ፍልስፍና "ሁሉም ነገር ፋይል ነው" እንዲል የሚያስችለው እንደ ምትሃታዊ ማጠቃለያ አይነት ሆኖ ያገለግላል።
የፋይል ስርዓት ምንድን ነው? ከመጀመሪያዎቹ የሊኑክስ አበርካቾች እና ደራሲዎች በአንዱ ቃል ላይ በመመስረት
የፋይል ስርዓት መሰረታዊ ነገሮች
የሊኑክስ ከርነል እንደ የፋይል ስርዓት ሊቆጠር ለሚችል አካል የተወሰኑ መስፈርቶች አሉት። ዘዴዎችን ተግባራዊ ማድረግ አለበት open()
, read()
и write()
ስሞች ላሏቸው ቋሚ እቃዎች. ከዕቃ-ተኮር እይታ
ለአንድ አካል መክፈት፣ ማንበብ እና መጻፍ ከቻልን ከላይ ባለው ኮንሶል ላይ ካለው ምሳሌ እንደምንረዳው ያ አካል እንደ ፋይል ይቆጠራል።
የቪኤፍኤስ ክስተት "ሁሉም ነገር ፋይል ነው" የሚለውን የዩኒክስ አይነት ምልከታ ብቻ አጽንዖት ይሰጣል። ከላይ ያቺ ትንሽ /dev/ኮንሶል ምሳሌ ኮንሶሉ እንዴት እንደሚሰራ የሚያሳይ ምን ያህል እንግዳ እንደሆነ አስብ። ምስሉ በይነተገናኝ የ Bash ክፍለ ጊዜ ያሳያል። አንድ ሕብረቁምፊ ወደ ኮንሶል (ምናባዊ ኮንሶል መሣሪያ) መላክ በምናባዊ ስክሪን ላይ ያሳያል። ቪኤፍኤስ ሌላ፣ ሌላው ቀርቶ እንግዳ የሆኑ ንብረቶች አሉት። ለምሳሌ, በ ለመፈለግ ይፈቅድልዎታል
እንደ ext4፣ NFS እና/proc ያሉ የሚታወቁ ስርዓቶች በሚባለው የC ውሂብ መዋቅር ውስጥ ሶስት ጠቃሚ ተግባራት አሏቸው read()
አንድ የፋይል ስርዓት እና ከዚያ ዘዴውን ይጠቀሙ write ()
ለውሂብ ውፅዓት ሌላ የፋይል ስርዓት።
የመሠረታዊ የቪኤፍኤስ ዓይነቶች የሆኑት የተግባር መግለጫዎች በፋይሎች ውስጥ ናቸው። fs/
የተወሰኑ የፋይል ስርዓቶችን ይይዛል. አንኳር ደግሞ እንደ ያሉ አካላት ይዟል cgroups
, /dev
и tmpfs
, በሚነሳበት ጊዜ የሚፈለጉት እና ስለዚህ በከርነል ንዑስ ማውጫ ውስጥ ተገልጸዋል init/
. መሆኑን አስተውል cgroups
, /dev
и tmpfs
"ትልቅ ሶስት" ተግባራትን አትጥራ file_operations
, ግን በቀጥታ አንብብ እና ወደ ማህደረ ትውስታ ጻፍ.
ከታች ያለው ሥዕላዊ መግለጫ የተጠቃሚ ቦታ በሊኑክስ ሲስተሞች ላይ በተለምዶ የሚጫኑትን የተለያዩ የፋይል ሲስተሞች እንዴት እንደሚደርስ ያሳያል። አወቃቀሮች አይታዩም። pipes
, dmesg
и POSIX clocks
, እሱም አወቃቀሩን ተግባራዊ ያደርጋል file_operations
, በ VFS ንብርብር በኩል ይደርሳል.
ቪኤፍኤስ በስርዓት ጥሪዎች እና በተወሰኑ ትግበራዎች መካከል "የጥቅል ንብርብር" ነው። file_operations
, እንደ ext4
и procfs
. ተግባራት file_operations
ከመሳሪያ ነጂዎች ወይም የማስታወሻ መጠቀሚያ መሳሪያዎች ጋር መስተጋብር መፍጠር ይችላል። tmpfs
, devtmpfs
и cgroups
አትጠቀም file_operations
፣ ግን በቀጥታ ማህደረ ትውስታውን ይድረሱ።
ከፋይል ስርዓቶች ጋር የተያያዙት መሰረታዊ ዘዴዎች በእያንዳንዱ የፋይል ስርዓት አይነት እንደገና መተግበር ስለሌለ የቪኤፍኤስ መኖር ኮድን እንደገና ለመጠቀም እድል ይሰጣል. ኮድን እንደገና መጠቀም በሶፍትዌር መሐንዲሶች ዘንድ የተለመደ ተግባር ነው! ነገር ግን፣ እንደገና ጥቅም ላይ ሊውል የሚችል ኮድ ከያዘ
/tmp: ቀላል ፍንጭ
VFS በሲስተም ላይ መኖሩን ለማወቅ ቀላሉ መንገድ መተየብ ነው። mount | grep -v sd | grep -v :/
ሁሉንም የተጫኑትን ያሳያል (mounted
) ዲስክ-ነዋሪ ያልሆኑ እና ኤንኤፍኤስ ያልሆኑ የፋይል ስርዓቶች፣ ይህም በአብዛኛዎቹ ኮምፒውተሮች ላይ እውነት ነው። ከተዘረዘሩት ጋራዎች አንዱ (mounts
) ቪኤፍኤስ ምንም ጥርጥር የለውም /tmp
, ቀኝ?
ያንን ማከማቻ ሁሉም ሰው ያውቃል / tmp
በአካላዊ መካከለኛ - እብደት!
ለምን ማከማቸት የማይፈለግ ነው /tmp
በአካላዊ ሚዲያ ላይ? ምክንያቱም ፋይሎቹ በ /tmp
ጊዜያዊ ናቸው እና የማጠራቀሚያ መሳሪያዎች tmpfs ከተፈጠሩበት ማህደረ ትውስታ ቀርፋፋ ናቸው። ከዚህም በላይ አካላዊ ሚዲያ ከማስታወስ ይልቅ በሚጻፍበት ጊዜ ለመልበስ በጣም የተጋለጠ ነው። በመጨረሻም፣ በ/tmp ውስጥ ያሉ ፋይሎች ስሱ መረጃዎችን ሊይዙ ይችላሉ፣ ስለዚህ በእያንዳንዱ ዳግም ማስነሳት ላይ እንዲጠፉ ማድረግ አስፈላጊ ባህሪ ነው።
እንደ አለመታደል ሆኖ አንዳንድ የሊኑክስ ማከፋፈያ መጫኛ ስክሪፕቶች በማከማቻ መሳሪያው ላይ በነባሪነት/tmp ይፈጥራሉ። ይህ በእርስዎ ስርዓት ላይም ከተከሰተ ተስፋ አይቁረጡ። ጥቂት ቀላል መመሪያዎችን ይከተሉ tmpfs
ለሌሎች ዓላማዎች የማይገኝ ይሆናል። በሌላ አነጋገር ግዙፍ tmpfs እና በላዩ ላይ ትላልቅ ፋይሎች ያሉት ስርዓት ማህደረ ትውስታ ሊያልቅ እና ሊበላሽ ይችላል. ሌላ ፍንጭ፡ ፋይልን በሚያርትዑበት ጊዜ /etc/fstab
, ያስታውሱ በአዲሱ መስመር ማለቅ አለበት, አለበለዚያ የእርስዎ ስርዓት አይነሳም.
/proc እና /sys
ሌላ /tmp
, VFS (ምናባዊ የፋይል ስርዓቶች) ለሊኑክስ ተጠቃሚዎች በጣም የተለመዱ ናቸው /proc
и /sys
. (/dev
በጋራ ማህደረ ትውስታ ውስጥ ይኖራል እና የለውም file_operations
). ለምን እነዚህ ሁለት አካላት? ይህንን ጉዳይ እንመልከተው።
procfs
የከርነል እና የሚከታተልባቸውን ሂደቶች ቅጽበታዊ እይታ ይፈጥራል userspace
. በ /proc
ከርነል ስላለው እንደ መቆራረጥ፣ ምናባዊ ማህደረ ትውስታ እና መርሐግብር አውጪ ያሉ መረጃዎችን ያትማል። ከዚህም በተጨማሪ እ.ኤ.አ. /proc/sys
መለኪያዎች ከትእዛዙ ጋር የተዋቀሩበት ቦታ ነው sysctl
, ይገኛል ለ userspace
. የግለሰብ ሂደቶች ሁኔታ እና ስታቲስቲክስ በማውጫዎች ውስጥ ይታያሉ /proc/
.
ይህ ነው /proc/meminfo
ጠቃሚ መረጃ የያዘ ባዶ ፋይል ነው።
ባህሪ /proc
ፋይሎች የቪኤፍኤስ ዲስክ ፋይል ስርዓቶች ምን ያህል የተለያዩ ሊሆኑ እንደሚችሉ ያሳያሉ። በአንድ በኩል፣ /proc/meminfo
በትእዛዙ ሊታይ የሚችል መረጃ ይዟል free
. በሌላ በኩል ባዶ ነው! እንዴት ነው የሚሰራው? ሁኔታው በሚል ርዕስ ታዋቂውን መጣጥፍ ያስታውሳል /proc
እና በእውነቱ በፋይሎች ውስጥ /proc
ማንም በማይመለከትበት ጊዜ ምንም ነገር የለም. እንደተናገረው
ባዶነት ይመስላል procfs
እዚያ ያለው መረጃ ተለዋዋጭ ስለሆነ ትርጉም ይሰጣል. ጋር ትንሽ የተለየ ሁኔታ sysfs
. ቢያንስ አንድ ባይት መጠን ያላቸው ስንት ፋይሎች እንዳሉ እናወዳድር /proc
እና ውስጥ /sys
.
Procfs
አንድ ፋይል አለው፣ ማለትም ወደ ውጭ የተላከው የከርነል ውቅረት፣ ይህም ለየት ያለ ነው ምክንያቱም በአንድ ቡት አንድ ጊዜ ብቻ መፈጠር አለበት። በሌላ በኩል በ /sys
ብዙ ትላልቅ ፋይሎች አሉ ፣ ብዙዎቹም ሙሉውን የማህደረ ትውስታ ገጽ ይይዛሉ። አብዛኛውን ጊዜ ፋይሎች sysfs
እንደ ፋይሎችን በማንበብ ከተገኙት የመረጃ ሰንጠረዦች በተለየ በትክክል አንድ ቁጥር ወይም መስመር ይይዛል /proc/meminfo
.
ግብ sysfs
- ከርነል የሚጠራውን የማንበብ/የመፃፍ ባህሪያትን ያቅርቡ «kobjects»
በተጠቃሚ ቦታ. ብቸኛው ግብ kobjects
አገናኝ ቆጠራ ነው፡ ወደ ኮብጀክት የመጨረሻው አገናኝ ሲወገድ ስርዓቱ ከእሱ ጋር የተያያዙትን ሀብቶች ወደነበረበት ይመልሳል። ቢሆንም፣ /sys
አብዛኞቹን ታዋቂዎችን ይይዛል
የከርነሉ የተረጋጋ ABI ምን ሊታዩ እንደሚችሉ ይገድባል /sys
በእውነቱ በዚያ ቅጽበት ያለው ሳይሆን። በ sysfs ውስጥ የፋይል ፈቃዶችን መዘርዘር እንዴት ለመሣሪያዎች ፣ ሞጁሎች ፣ የፋይል ስርዓቶች ፣ ወዘተ ሊዋቀሩ እንደሚችሉ ማስተዋልን ይሰጣል። ሊዋቀር ወይም ሊነበብ ይችላል. አመክንዮአዊ መደምደሚያው ፕሮcfs የከርነል የተረጋጋ ABI አካል ነው፣ ምንም እንኳን ይህ በግልፅ ባይገለጽም
ውስጥ ፋይሎች sysfs
ለእያንዳንዱ አካል አንድ የተወሰነ ንብረት ይግለጹ እና ሊነበብ የሚችል፣ ሊጻፍ የሚችል ወይም ሁለቱንም ሊሆን ይችላል። በፋይሉ ውስጥ "0" ማለት SSD ሊወገድ አይችልም ማለት ነው.
የኢቢፒኤፍ እና የቢሲሲ መሳሪያዎችን በመጠቀም ቪኤፍኤስን እንዴት መከታተል እንዳለብን የትርጉም ሁለተኛውን ክፍል እንጀምር እና አሁን አስተያየቶችዎን እየጠበቅን ነው እና በተለምዶ እንዲያደርጉት እንጋብዝዎታለን።
ምንጭ: hab.com