هيلو سڀ! اسان ڪورسز لاءِ نوان اسٽريم شروع ڪرڻ جاري رکون ٿا جن سان توهان اڳ ۾ ئي پيار ڪيو آهي ۽ هاڻي اسان اعلان ڪرڻ لاءِ جلدي ۾ آهيون ته اسان ڪورسز جو هڪ نئون سيٽ شروع ڪري رهيا آهيون.
ورچوئل فائل سسٽم هڪ قسم جي جادوئي تجريد جي طور تي ڪم ڪري ٿو جيڪو لينڪس جي فلسفي کي اهو چوڻ جي اجازت ڏئي ٿو ته "هر شي هڪ فائيل آهي."
هڪ فائيل سسٽم ڇا آهي؟ لينڪس جي پهرين مدد ڪندڙ ۽ ليکڪن مان هڪ جي لفظن جي بنياد تي
فائل سسٽم بنياديات
لينڪس ڪنييل کي هڪ اداري لاءِ ڪجهه گهرجون هونديون آهن جن کي فائيل سسٽم سمجهي سگهجي ٿو. اهو طريقو لاڳو ڪرڻ گهرجي open()
, read()
и write()
مستقل شين لاءِ جن جا نالا آهن. اعتراض واري نقطي نظر کان
جيڪڏهن اسان هڪ اداري کي کوليو، پڙهي ۽ لکي سگهون ٿا، ته اهو ادارو هڪ فائيل سمجهيو ويندو آهي، جيئن اسان مٿي ڏنل ڪنسول ۾ مثال مان ڏسي سگهون ٿا.
VFS رجحان صرف يونڪس جھڙي مشاهدي کي بيان ڪري ٿو ته "هر شي هڪ فائل آهي". سوچيو ته ڪيترو عجيب آهي ته اهو ننڍڙو /dev/console مٿي ڏنل مثال ڏيکاري ٿو ته ڪنسول اصل ۾ ڪيئن ڪم ڪندو آهي. تصوير هڪ انٽرويو بش سيشن ڏيکاري ٿي. ڪنسول ڏانهن اسٽرنگ موڪلڻ (ورچوئل ڪنسول ڊيوائس) ان کي ورچوئل اسڪرين تي ڏيکاري ٿو. VFS ۾ ٻيون، اڃا به اجنبي ملڪيتون آهن. مثال طور، اهو توهان کي ڳولڻ جي اجازت ڏئي ٿو
واقف سسٽم جهڙوڪ ext4، NFS، ۽ /proc سي ڊيٽا جي جوڙجڪ ۾ ٽي اهم ڪم آهن. read()
هڪ فائيل سسٽم ۽ پوء طريقو استعمال ڪريو write ()
ڊيٽا جي پيداوار لاء هڪ ٻيو فائيل سسٽم.
فنڪشن جون معنائون جيڪي بنيادي VFS قسمن سان تعلق رکن ٿيون فائلن ۾ fs/
ڪجهه فائل سسٽم تي مشتمل آهي. ڪور پڻ شامل آهن ادارا جهڙوڪ cgroups
, /dev
и tmpfs
، جيڪي بوٽ جي عمل دوران گھربل آھن ۽ تنھنڪري kernel subdirectory ۾ بيان ڪيا ويا آھن 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 جو وجود ڪوڊ کي ٻيهر استعمال ڪرڻ جو موقعو فراهم ڪري ٿو، ڇاڪاڻ ته فائل سسٽم سان لاڳاپيل بنيادي طريقا هر قسم جي فائل سسٽم طرفان ٻيهر لاڳو ٿيڻ جي ضرورت ناهي. سافٽ ويئر انجنيئرن جي وچ ۾ ڪوڊ ٻيهر استعمال هڪ عام رواج آهي! تنهن هوندي به، جيڪڏهن reusable ڪوڊ تي مشتمل آهي
/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
kernel جو هڪ سنيپ شاٽ ٺاهي ٿو ۽ پروسيس ان جي نگراني ڪري ٿو 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