په لینوکس کې د مجازی فایل سیسټمونه: دوی ولې اړتیا لري او دوی څنګه کار کوي؟ برخه 1

سلام و ټولو ته! موږ د هغه کورسونو لپاره نوي جریانونو ته دوام ورکوو چې تاسو دمخه ورسره مینه لرئ او اوس موږ په بیړه کې یو چې اعلان وکړو چې موږ د کورسونو نوې سیټ پیل کوو. "د لینکس مدیر"کوم چې به د اپریل په پای کې پیل شي. د دې پیښې لپاره به یوه نوې خپرونه نیټه وي. د اصلي موادو سره، تاسو کولی شئ دلته ولولئ.

د مجازی فایل سیسټمونه د یو ډول جادویی خلاصون په توګه کار کوي چې د لینکس فلسفې ته اجازه ورکوي چې ووایی چې "هرڅه یو فایل دی."

په لینوکس کې د مجازی فایل سیسټمونه: دوی ولې اړتیا لري او دوی څنګه کار کوي؟ برخه 1

د فایل سیسټم څه شی دی؟ د لینکس د لومړي مرسته کونکو او لیکوالانو د کلمو پراساس رابرټا لاوا, "د فایل سیسټم د یو ځانګړي جوړښت سره سم د راټول شوي معلوماتو درجه بندي ذخیره ده." لکه څنګه چې کیدی شي، دا تعریف د VFAT (مجازی فایل تخصیص جدول)، Git او سره مساوي مناسب دی. Cassandra (NoSQL ډیټابیس). نو څه شی په حقیقت کې دا ډول شی د "فایل سیسټم" په توګه تعریفوي؟

د فایل سیسټم اساسات

د لینکس کرنل د یوې ادارې لپاره ځینې اړتیاوې لري چې د فایل سیسټم په توګه ګڼل کیدی شي. دا باید میتودونه پلي کړي open(), read() и write() د دوامداره شیانو لپاره چې نومونه لري. د اعتراض پر بنسټ له نظره برنامه کول، کرنل یو عمومي فایل سیسټم د خلاصې انٹرفیس په توګه تعریفوي، او دا درې لوی فعالیتونه "مجازی" ګڼل کیږي او هیڅ ډول تعریف نلري. په دې اساس، د ډیفالټ فایل سیسټم پلي کول د مجازی فایل سیسټم (VFS) په نوم یادیږي.

په لینوکس کې د مجازی فایل سیسټمونه: دوی ولې اړتیا لري او دوی څنګه کار کوي؟ برخه 1

که موږ یو وجود ته خلاص، لوستل او لیکلی شو، نو دا اداره د فایل په توګه ګڼل کیږي، لکه څنګه چې موږ په پورته کنسول کې د مثال څخه لیدلی شو.
د VFS پدیده یوازې د یونیکس په څیر مشاهده په ګوته کوي چې "هرڅه یو فایل دی". فکر وکړئ څومره عجیب دی چې هغه کوچنی /dev/console پورته مثال ښیې چې کنسول واقعیا څنګه کار کوي. انځور یو متقابل باش سیشن ښیې. کنسول ته د تار لیږل (مجازی کنسول وسیله) دا په مجازی سکرین کې ښیې. VFS نور، حتی اجنبی ملکیتونه لري. د مثال په توګه، دا تاسو ته اجازه درکوي چې لټون وکړئ هغه.

پیژندل شوي سیسټمونه لکه ext4، NFS، او /proc د C ډیټا جوړښت کې درې مهمې دندې لري فایل_عملیات. برسېره پردې، ځینې فایل سیسټمونه د پیژندل شوي څیز پر بنسټ د VFS فعالیت پراخوي او بیا تعریفوي. لکه څنګه چې رابرټ لیو په ګوته کوي، د VFS خلاصول د لینکس کاروونکو ته اجازه ورکوي چې په غیرقانوني ډول د دریمې ډلې عملیاتي سیسټمونو یا خلاصو ادارو لکه پایپونو ته فایلونه کاپي کړي پرته لدې چې د دوی د داخلي ډیټا فارمیټ په اړه اندیښنه ولري. د کارونکي اړخ (userspace) کې، د سیسټم کال په کارولو سره، پروسه کولی شي د میتود په کارولو سره د کرنل ډیټا جوړښتونو ته د فایل څخه کاپي کړي. read() یو فایل سیسټم او بیا میتود وکاروئ write () د ډیټا تولید لپاره بل فایل سیسټم.

د فعالیت تعریفونه چې د بیس VFS ډولونو پورې اړه لري په فایلونو کې دي fs/*.c د کرنل سرچینې کوډ، پداسې حال کې چې فرعي لارښودونه fs/ ځینې ​​فایل سیسټمونه لري. په کور کې هم ادارې شاملې دي لکه cgroups, /dev и tmpfs، کوم چې د بوټ پروسې په جریان کې اړین دي او له همدې امله د کرنل فرعي لارښود کې تعریف شوي init/. دې ته پام وکړئ cgroups, /dev и tmpfs "لوی درې" افعال مه وایئ file_operations، مګر مستقیم لوستل او حافظې ته لیکل.
لاندې ډیاګرام ښیې چې څنګه د کارونکي ځای مختلف ډوله فایل سیسټمونو ته لاسرسی لري چې معمولا په لینکس سیسټمونو کې نصب شوي. جوړښتونه ندي ښودل شوي pipes, dmesg и POSIX clocks، کوم چې جوړښت هم پلي کوي file_operations، د VFS پرت له لارې لاسرسی.

په لینوکس کې د مجازی فایل سیسټمونه: دوی ولې اړتیا لري او دوی څنګه کار کوي؟ برخه 1

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سمه ده؟

په لینوکس کې د مجازی فایل سیسټمونه: دوی ولې اړتیا لري او دوی څنګه کار کوي؟ برخه 1

هرڅوک دا ذخیره پیژني / 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/.

په لینوکس کې د مجازی فایل سیسټمونه: دوی ولې اړتیا لري او دوی څنګه کار کوي؟ برخه 1

دا /proc/meminfo یو خالي فایل دی چې بیا هم ارزښتناک معلومات لري.

چلند /proc فایلونه ښیې چې د VFS ډیسک فایل سیسټمونه څومره مختلف کیدی شي. له یوې خوا، /proc/meminfo معلومات لري چې د کمانډ سره لیدل کیدی شي free. له بلې خوا، دا خالي دی! دا څنګه کار کوی؟ وضعیت د مشهور مقالې عنوان دی ایا سپوږمۍ شتون لري کله چې هیڅوک ورته نه ګوري؟ حقیقت او کوانټم تیوري"د کارنیل پوهنتون د فزیک پروفیسور ډیویډ مرمین لخوا په 1985 کې لیکل شوی. حقیقت دا دی چې کرنل د حافظې احصایې راټولوي کله چې غوښتنه وشي /proc، او په حقیقت کې په فایلونو کې /proc هیڅ شی شتون نلري کله چې هیڅوک نه ګوري. لکه څنګه چې وویل شول مرمین, "بنسټیز کوانټم نظریه وايي چې اندازه کول عموما د اندازه کولو ملکیت دمخه موجود ارزښت نه څرګندوي." (او د سپوږمۍ په اړه پوښتنه د کور کار په توګه په پام کې ونیسئ!)
تشه ښکاري procfs معنی لري ځکه چې هلته معلومات متحرک دي. یو څه توپیر سره وضعیت sysfs. راځئ پرتله کړو چې څومره فایلونه چې لږترلږه یو بایټ په اندازه کې دي /proc او په /sys.

په لینوکس کې د مجازی فایل سیسټمونه: دوی ولې اړتیا لري او دوی څنګه کار کوي؟ برخه 1

Procfs یو فایل لري، د بیلګې په توګه صادر شوي کرنل ترتیب، کوم چې یو استثنا دی ځکه چې دا یوازې په هر بوټ کې یو ځل تولید ته اړتیا لري. له بلې خوا، په /sys ډیری لوی فایلونه شتون لري، چې ډیری یې د حافظې ټوله پاڼه اخلي. معمولا فایلونه sysfs دقیقا یو شمیر یا کرښه لري، د معلوماتو جدولونو برعکس چې د فایلونو لوستلو څخه ترلاسه شوي لکه /proc/meminfo.

هدف sysfs - د هغه څه د لوستلو / لیکلو ملکیتونه چمتو کړئ چې کرنل ورته ویل کیږي «kobjects» په کارن ځای کې. یوازینی هدف kobjects د لینک شمیرنه ده: کله چې د کوبجکټ وروستۍ لینک لیرې شي، سیسټم به د هغې سره تړلې سرچینې بیرته راولي. په هرصورت، /sys ډیری مشهور جوړوي "د کاروونکي ځای لپاره باثباته ABI" اصلي، کوم چې هیڅوک نشي کولی، په هر حالت کې "مات". دا پدې معنی ندي چې په sysfs کې فایلونه جامد دي، کوم چې د بې ثباته شیانو د حوالې شمیرنې سره متناسب وي.
د کرنل مستحکم ABI هغه څه محدودوي چې په کې څرګند کیدی شي /sys، نه هغه څه چې واقعیا په دې ځانګړي شیبه کې شتون لري. په sysfs کې د فایل اجازې لیست کول د وسیلو، ماډلونو، فایل سیسټمونو، او نورو لپاره د ترتیب وړ ترتیباتو څرنګوالي په اړه بصیرت وړاندې کوي. ترتیب یا لوستل کیدی شي. منطقي پایله دا ده چې procfs د کرنل مستحکم ABI برخه هم ده، که څه هم دا په واضح ډول نه ویل شوي اسناد.

په لینوکس کې د مجازی فایل سیسټمونه: دوی ولې اړتیا لري او دوی څنګه کار کوي؟ برخه 1

فایلونه په کې sysfs د هرې ادارې لپاره یو ځانګړی ملکیت تشریح کړئ او د لوستلو وړ، د لیکلو وړ یا دواړه کیدی شي. په فایل کې "0" پدې معنی ده چې SSD نشي ایستل کیدی.

راځئ چې د ژباړې دویمه برخه د eBPF او bcc وسیلو په کارولو سره د VFS څارلو څرنګوالي سره پیل کړو ، او اوس موږ ستاسو نظرونو ته په تمه یو او په دودیز ډول تاسو ته بلنه درکوو. خلاص ویبینار، چې زموږ د ښوونکي لخوا به د اپریل په 9 ترسره شي - ولادیمیر دروزدیتسکي.

سرچینه: www.habr.com

Add a comment