سلام و ټولو ته! موږ د هغه کورسونو لپاره نوي جریانونو ته دوام ورکوو چې تاسو دمخه ورسره مینه لرئ او اوس موږ په بیړه کې یو چې اعلان وکړو چې موږ د کورسونو نوې سیټ پیل کوو.
د مجازی فایل سیسټمونه د یو ډول جادویی خلاصون په توګه کار کوي چې د لینکس فلسفې ته اجازه ورکوي چې ووایی چې "هرڅه یو فایل دی."
د فایل سیسټم څه شی دی؟ د لینکس د لومړي مرسته کونکو او لیکوالانو د کلمو پراساس
د فایل سیسټم اساسات
د لینکس کرنل د یوې ادارې لپاره ځینې اړتیاوې لري چې د فایل سیسټم په توګه ګڼل کیدی شي. دا باید میتودونه پلي کړي open()
, read()
и write()
د دوامداره شیانو لپاره چې نومونه لري. د اعتراض پر بنسټ له نظره
که موږ یو وجود ته خلاص، لوستل او لیکلی شو، نو دا اداره د فایل په توګه ګڼل کیږي، لکه څنګه چې موږ په پورته کنسول کې د مثال څخه لیدلی شو.
د VFS پدیده یوازې د یونیکس په څیر مشاهده په ګوته کوي چې "هرڅه یو فایل دی". فکر وکړئ څومره عجیب دی چې هغه کوچنی /dev/console پورته مثال ښیې چې کنسول واقعیا څنګه کار کوي. انځور یو متقابل باش سیشن ښیې. کنسول ته د تار لیږل (مجازی کنسول وسیله) دا په مجازی سکرین کې ښیې. VFS نور، حتی اجنبی ملکیتونه لري. د مثال په توګه، دا تاسو ته اجازه درکوي چې لټون وکړئ
پیژندل شوي سیسټمونه لکه ext4، NFS، او /proc د C ډیټا جوړښت کې درې مهمې دندې لري read()
یو فایل سیسټم او بیا میتود وکاروئ write ()
د ډیټا تولید لپاره بل فایل سیسټم.
د فعالیت تعریفونه چې د بیس VFS ډولونو پورې اړه لري په فایلونو کې دي fs/
ځینې فایل سیسټمونه لري. په کور کې هم ادارې شاملې دي لکه cgroups
, /dev
и tmpfs
، کوم چې د بوټ پروسې په جریان کې اړین دي او له همدې امله د کرنل فرعي لارښود کې تعریف شوي init/
. دې ته پام وکړئ cgroups
, /dev
и tmpfs
"لوی درې" افعال مه وایئ file_operations
، مګر مستقیم لوستل او حافظې ته لیکل.
لاندې ډیاګرام ښیې چې څنګه د کارونکي ځای مختلف ډوله فایل سیسټمونو ته لاسرسی لري چې معمولا په لینکس سیسټمونو کې نصب شوي. جوړښتونه ندي ښودل شوي pipes
, dmesg
и POSIX clocks
، کوم چې جوړښت هم پلي کوي file_operations
، د VFS پرت له لارې لاسرسی.
VFS د سیسټم زنګونو او د ځانګړو پلي کولو تر مینځ یو "ریپر پرت" دی file_operations
، لکه ext4
и procfs
. افعال file_operations
کولی شي د وسیلې چلوونکو یا حافظې لاسرسي وسیلو سره اړیکه ونیسي. tmpfs
, devtmpfs
и cgroups
مه کاروئ file_operations
، مګر مستقیم حافظې ته لاسرسی.
د VFS شتون د کوډ د بیا کارولو فرصت برابروي، ځکه چې د فایل سیسټمونو سره تړلي بنسټیز میتودونه د هر ډول فایل سیسټم لخوا بیا پلي کولو ته اړتیا نلري. د کوډ بیا کارول د سافټویر انجینرانو ترمنځ یو عام عمل دی! که څه هم، که د بیا کارونې وړ کوډ ولري
/tmp: ساده اشاره
د معلومولو لپاره یوه اسانه لار چې VFS په سیسټم کې شتون لري ټایپ کول دي mount | grep -v sd | grep -v :/
، کوم چې به ټول نصب شوي وښیې (mounted
) فایل سیسټمونه چې د ډیسک استوګن او غیر NFS ندي، کوم چې په ډیری کمپیوټرونو کې ریښتیا دي. یو له لیست شوي ماونټونو څخه (mounts
) VFS به بې له شکه /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
فایلونه ښیې چې د VFS ډیسک فایل سیسټمونه څومره مختلف کیدی شي. له یوې خوا، /proc/meminfo
معلومات لري چې د کمانډ سره لیدل کیدی شي free
. له بلې خوا، دا خالي دی! دا څنګه کار کوی؟ وضعیت د مشهور مقالې عنوان دی /proc
، او په حقیقت کې په فایلونو کې /proc
هیڅ شی شتون نلري کله چې هیڅوک نه ګوري. لکه څنګه چې وویل شول
تشه ښکاري procfs
معنی لري ځکه چې هلته معلومات متحرک دي. یو څه توپیر سره وضعیت sysfs
. راځئ پرتله کړو چې څومره فایلونه چې لږترلږه یو بایټ په اندازه کې دي /proc
او په /sys
.
Procfs
یو فایل لري، د بیلګې په توګه صادر شوي کرنل ترتیب، کوم چې یو استثنا دی ځکه چې دا یوازې په هر بوټ کې یو ځل تولید ته اړتیا لري. له بلې خوا، په /sys
ډیری لوی فایلونه شتون لري، چې ډیری یې د حافظې ټوله پاڼه اخلي. معمولا فایلونه sysfs
دقیقا یو شمیر یا کرښه لري، د معلوماتو جدولونو برعکس چې د فایلونو لوستلو څخه ترلاسه شوي لکه /proc/meminfo
.
هدف sysfs
- د هغه څه د لوستلو / لیکلو ملکیتونه چمتو کړئ چې کرنل ورته ویل کیږي «kobjects»
په کارن ځای کې. یوازینی هدف kobjects
د لینک شمیرنه ده: کله چې د کوبجکټ وروستۍ لینک لیرې شي، سیسټم به د هغې سره تړلې سرچینې بیرته راولي. په هرصورت، /sys
ډیری مشهور جوړوي
د کرنل مستحکم ABI هغه څه محدودوي چې په کې څرګند کیدی شي /sys
، نه هغه څه چې واقعیا په دې ځانګړي شیبه کې شتون لري. په sysfs کې د فایل اجازې لیست کول د وسیلو، ماډلونو، فایل سیسټمونو، او نورو لپاره د ترتیب وړ ترتیباتو څرنګوالي په اړه بصیرت وړاندې کوي. ترتیب یا لوستل کیدی شي. منطقي پایله دا ده چې procfs د کرنل مستحکم ABI برخه هم ده، که څه هم دا په واضح ډول نه ویل شوي
فایلونه په کې sysfs
د هرې ادارې لپاره یو ځانګړی ملکیت تشریح کړئ او د لوستلو وړ، د لیکلو وړ یا دواړه کیدی شي. په فایل کې "0" پدې معنی ده چې SSD نشي ایستل کیدی.
راځئ چې د ژباړې دویمه برخه د eBPF او bcc وسیلو په کارولو سره د VFS څارلو څرنګوالي سره پیل کړو ، او اوس موږ ستاسو نظرونو ته په تمه یو او په دودیز ډول تاسو ته بلنه درکوو.
سرچینه: www.habr.com