ফাইলগুলিতে প্রয়োগ করার সময় স্টিকি বিটটি মূলত কী করেছিল?


65

বিভিন্ন স্থানে এক, "চটচটে বিট" আজকাল সম্পূর্ণ আসল নয় হচ্ছে অভিযুক্ত দেখতে পারেন তার কার্যকারিতা আজকাল ডিরেক্টরি এবং হিসাবে কাজ উপর লেখার অনুমতি প্রভাবিত হয় সীমাবদ্ধ মুছে ফেলার পতাকা।

একটি আস্কউবুন্টু উত্তরে উত্তরদাতা লিখেছেন যে "একটি স্টিকি বিট সাধারণত ডিরেক্টরিতে প্রযোজ্য" । আমি পর্যবেক্ষণ করেছি যে প্রকৃতপক্ষে আধুনিক সিস্টেমগুলি এগুলি ফাইলগুলিতে কখনও প্রয়োগ করে না বলে অনুশীলন করে বলে মনে হয়, তবে অনেক দিন আগে স্বাভাবিক ক্ষেত্রে এটি ডিরেক্টরিগুলির পরিবর্তে (এক্সিকিউটেবল প্রোগ্রামের চিত্র) ফাইলগুলিতে প্রয়োগ করা হত। (এটি যখন ফাইলগুলিতে আধুনিক ব্যবহারের দুর্বলতার কথা আসে তখন একটি সম্পর্কিত প্রশ্নটি কি বর্তমান ফাইল সিস্টেমে স্টিকি বিটটি ব্যবহার করা হয় না ))

এটি প্রশ্ন উত্সাহিত:

কি হয়নি একটি স্টিকি বিট একটি এক্সিকিউটেবল প্রয়োগ না? এটা কি তখনকার মতো ছিল?

অতীত কাল নোট করুন। এটি কীভাবে স্টিকি বিট কাজ করে না? এখন। এটি তখন কীভাবে কাজ করত।


3
আমি উল্লেখ করতে চাই যে "আমি পর্যবেক্ষণ করেছি যে আধুনিক সিস্টেমগুলি বাস্তবে কখনও ফাইলগুলিতে প্রয়োগ করে না বলে মনে হয়" কিছু সিস্টেমের ক্ষেত্রেই এটি সত্য। স্টিকি বিট নোটগুলিতে উইকিপিডিয়া এর পৃষ্ঠা , "বর্তমানে এই আচরণটি কেবল এইচপি-ইউএক্স এবং ইউনিক্স ওয়ারে চালিত হয়।" এটিতে একটি চার্ট রয়েছে যা বিভিন্ন বাস্তবায়ন দেখায়: সাধারণ থ্রেড অপারেটিং সিস্টেমগুলি এটিকে উপেক্ষা করে বা মেমরি / অদলবদল / ইত্যাদি কীভাবে তা সনাক্ত করার জন্য এটি চিকিত্সা করে। পরিচালনা করা উচিত। এটি কীভাবে ব্যবহৃত হয়েছিল তার বিশদ অপারেটিং সিস্টেমের মধ্যে পৃথক হতে পারে। উদাহরণস্বরূপ, কোনও লিনাক্স সিস্টেম জেডিবিপি-র উত্তরের মতো স্টিকি বিট ব্যবহার করে নি।
তোগাম

উত্তর:


91

না, স্টিকি বিটটি সেট-ইউআইডি বা সেট-জিআইডি পতাকাগুলির মতো ছিল না। এটি শংসাপত্রগুলির প্রক্রিয়াতে কোনও পরিবর্তনকে প্রভাবিত করে না।

স্টিকি বিট যা করেছে তা প্রোগ্রামের পাঠ্যটিকে "স্টিকি" বানিয়েছিল। এটি মূলত কোনও মিসনোমার ছিল না।

পটভূমি: প্রোগ্রাম চিত্র বিভাগ এবং ভাগ করা পাঠ্য

সংক্ষেপে, এক্সিকিউটেবল ফাইল ফর্ম্যাটগুলির বিশদ সম্পর্কে গভীরভাবে না ( (অ-শূন্য-ইনিশিয়েলাইজড) ভেরিয়েবলের মান এবং (এক রূপে বা অন্য কোনও ক্ষেত্রে) শূন্য-ইনিশিয়েলাইজড এবং অবিচ্ছিন্ন ভেরিয়েবলের ফাঁকা স্থান।

এগুলি "বিভাগ" হিসাবে পরিচিত সংগ্রহগুলিতে গ্রুপযুক্ত করা হয় এবং তাদের প্রচলিত নাম রয়েছে। মেশিন কোড এবং (কখনও কখনও) ধ্রুবকগুলি এমন একটি রূপ তৈরি করে যা প্রায়শই একটি প্রোগ্রামের চিত্রের "পাঠ্য" বিভাগ হিসাবে পরিচিত। অ-শূন্য-প্রারম্ভিক চলকগুলি একইভাবে, "ডেটা" বিভাগ; এবং শূন্য-ইনিশিয়েলাইজড এবং অবিচ্ছিন্ন ভেরিয়েবলগুলি হ'ল "বিএসএস" (একটি নাম যা এর পিছনে নিজেই একটি সম্পূর্ণ ফোকলোরিক ইতিহাস রয়েছে)।

যখন কোনও প্রক্রিয়াতে কোনও প্রোগ্রামের এক্সিকিউটেবল ইমেজ ফাইল এতে লোড হয়, তখন বিভিন্ন অংশ - পাঠ্য, ডেটা এবং বিএস - ইমেজ ফাইলের বিষয়বস্তু থেকে শুরু করা হয়।

"পাঠ্য" বিভাগটি সম্পর্কে বিশেষ যেটি হল মেশিন কোড (এবং ধ্রুবকগুলি) প্রায় সর্বদা লিখিত হয় না। এটি কার্যকর করতে সক্ষম সমস্ত চিত্রের ভার্চুয়াল মেমরি চিত্র জুড়ে ভাগ করে নেওয়ার সম্ভাবনা রয়েছে যা তাদের মধ্যে চালানো ইমেজ ফাইল লোড করে দেয়। প্রোগ্রামের পাঠ্যটি যে অংশে ভাগ করা যায় ঠিক সেই দৃশ্যের এই উত্তরের সুযোগ নেই এবং এতে লোডার ফিক্সআপ আইডেম্পোটেন্স এবং অ্যাড্রেস স্পেস লেআউট পরিচয়ের মতো বিষয় জড়িত। লোকেরাও এই বিষয় সম্পর্কে বই লিখতে এবং থাকতে পারে। ☺

ভাগ করা পাঠ্যটি কার্নেলের দ্বারা নিযুক্ত একটি অপ্টিমাইজেশন। এটি একক চলমান প্রোগ্রামের ইমেজের প্রতিটি স্বতন্ত্র মেমরি চিত্র ধারণ করার প্রয়োজনীয়তা সরিয়ে দেয়, একই মেশিন কোডের একাধিক অনুলিপি (এবং ধ্রুবক) সহ মূল্যবান শারীরিক স্মৃতি গ্রহণ করে।

স্টিকি পাঠ্য

তবে কেউ ভাগ করা পাঠ্যের চেয়ে আরও ভাল করতে পারে। স্পষ্টতই, যদি সর্বদা কমপক্ষে একটি প্রক্রিয়া চলমান থাকে যা একটি নির্দিষ্ট ভাগ করা পাঠ্য প্রোগ্রাম চিত্র ব্যবহার করে, কার্নেলটি কেবলমাত্র নতুন প্রসেসের ভার্চুয়াল মেমরি স্পেসটি বিদ্যমান ভাগ করা পাঠ্য বিভাগে সংযুক্ত করে যখন প্রোগ্রামটির নতুন উদাহরণটি চালিত হয়। প্রায়শই একটি মাঝারি আকারের সিস্টেমে (বলুন) /bin/loginবা কোথাও/bin/sh চলার উদাহরণ পাওয়া যায়, তাই লগইন প্রোগ্রামের নতুন উদাহরণ বা ডিফল্ট শেলটি কেবল তাদের পাঠ্য বিভাগের লোড কপিগুলিতে সংযুক্ত করতে পারে যা কার্নেলটি ইতিমধ্যে মেমরিতে লোড করেছে।

স্টিকি টেক্সট এই চিত্রটিকে প্রোগ্রামের চিত্রগুলিতে প্রসারিত করে যা বর্তমানে কোনও প্রক্রিয়া চলছে না । যদি একটি এক্সিকিউটেবল ইমেজ ফাইলটি স্টিকি টেক্সট হিসাবে চিহ্নিত করা হয়, তবে কার্নেলটি শেষ প্রক্রিয়ায় ব্যবহারের পরে এটি প্রস্থান করার পরে তার পাঠ্য বিভাগটিকে প্রায় রাখে; এই আশায় যে প্রোগ্রামটির আর একটি উদাহরণ শীঘ্রই কার্যকর হবে এবং কেবলমাত্র সেগমেন্টে সংযুক্ত হতে পারে।

প্রারম্ভিক ইউনিটগুলিতে, কোনও প্রক্রিয়া সংযুক্ত না থাকলে লোডযুক্ত স্টিকি পাঠ্য বিভাগগুলি অদলবদল স্টোরেজে সরিয়ে নেওয়া হবে। (পরে ইউনিসিগুলি এর জন্য অদলবদল বন্ধ করে দিয়েছিল)) আপনি এটি সংরক্ষণের পাঠ্যের নামে শুনেও থাকতে পারেন ।

অবশ্যই, কোনও প্রোগ্রামের চিত্রটিতে স্টিকি টেক্সট বিট সেট করা এমন কিছু যা যত্ন সহকারে করা উচিত। প্রোগ্রামগুলি এতে কী উপকার করে তা নির্ভর করে মেশিনটি সাধারণত যা ব্যবহার করে তা থেকে। এবং বর্তমানে অপঠিত পাঠ্য বিভাগগুলি কার্নেল সংস্থান গ্রহণ করে যার অর্থ যে কোনও সিস্টেমে কতজন থাকতে পারে তার ব্যবহারিক সীমা রয়েছে। সুতরাং এটি সাধারণত একটি অপারেশন যার জন্য অতিরিক্ত ব্যবহারকারীর সুবিধাগুলি প্রয়োজন।

অপ্রচলন

অনুমানের একটি সম্পূর্ণ বোঝা রয়েছে যা আঠালো পাঠ্যের ক্রিয়াকলাপকে অন্তর্নিহিত করে, এটি আর সত্য নয়। অদলবদল স্টোরেজ থেকে প্রাক-তৈরি সেগমেন্ট পড়া প্রকৃত নির্বাহযোগ্য চিত্র ফাইল থেকে সাধারণ চাহিদা পেজিংয়ের চেয়ে অগত্যা দ্রুত নয়। ফাইল সিস্টেমে ফর্ম্যাটগুলি এলোমেলোভাবে (অনুক্রমের বিপরীতে) পড়ার ধরণগুলির জন্য আরও ভাল হয়ে উঠেছে। ডিমান্ড পেজিংয়ের আবির্ভাব নিজেই জিনিসগুলিকে পরিবর্তিত করে, যেমন ইউনিফাইড ক্যাশে, ভাগ করা লাইব্রেরি অনুসন্ধানের পার্থক্যের ফলে অ-আদর্শবান শক্তি বহিরাগত ফিক্সআপ এবং স্পেস লেআউটের র্যান্ডমাইজেশনের ঠিকানা দেয় things

এক্সিকিউটেবল প্রোগ্রামের চিত্রগুলির জন্য স্টিকি টেক্সট বিটের দিনগুলি দীর্ঘ are উদাহরণস্বরূপ, 1980 এর দশকের মাঝামাঝি সময়ে 4.3BSD এর লেখকরা এক্সিকিউটেবল প্রোগ্রামের চিত্রগুলির জন্য একটি স্পষ্ট স্টিকি টেক্সট মার্কার পতাকাকে অপ্রচলিত বলে বিবেচনা করেছিলেন।

আরও পড়া

  • মরিস জে বাচ (1986)। ইউনিক্স অপারেটিং সিস্টেমের ডিজাইন । প্রেন্টিস হল. আইএসবিএন 9780132017992।

1
খুব সুন্দর উত্তর! আজ আমি কিছু শিখেছি। :)
Andreas Wiese

আমিও :) এটি TSRডসের দিনগুলিতে আমি যা জানতাম তার মতো অনেকটা মনে হচ্ছে - "সমাপ্তি এবং বাসিন্দা থাকুন"। যাইহোক, এটি সাধারণত ডিভাইস ড্রাইভারগুলির মতো জিনিসগুলির জন্য ছিল যা পরে চালিত অন্যান্য প্রক্রিয়াগুলির জন্য কল করা প্রয়োজন, এবং সম্ভবত বিশ্বটি মাল্টি-থ্রেডেড / মাল্টি-প্রসেস ওএসে স্থানান্তরিত হওয়ার পরে অপ্রচলিত।
স্টিভ

1
এটি একটি দুর্দান্ত উত্তর। এর জেনেসিস সম্পর্কে আমি কোথায় পড়তে পারি bss?
বিড়াল

1
টিএসআরগুলি সত্যই সাদৃশ্য নয়। আইবিএম + মাইক্রোসফ্ট ওয়ার্ল্ডে অ্যানালগগুলির জন্য, স্ট্যান্ডার্ড মোডে ডস + উইন্ডোজ 3.x এবং 16-বিট ওএস / 2 সংস্করণ 1.x দেখুন। CODEরাস্তা, (এবং OS / 2 শুধুমাত্র পাঠযোগ্য উপর DATAঅংশ) খরচ এবং ডিএলএল এর (সাধারণত) সমস্ত চলমান প্রোগ্রাম মধ্যে যৌথরূপে ব্যবহৃত হয়। "স্টিকিনেস" এর প্রকৃত সমতুল্য নেই, কারণ অংশটি 32-বিট ওএস / 2 সংস্করণ 2.x এবং 386 বর্ধিত মোড ডিগ্রি ডিপেন্ডিং ডিপেন্ডেড ডিমান্ড পেজ ভার্চুয়াল মেমরির সাথে বদলেছে, ইউনিক্স জগতের বেশ কয়েক বছর আগে যেমন ছিল, উভয় ক্ষেত্রেই প্রভাবিত করছে বিভাজন স্টিকনেস জন্য একইভাবে প্রয়োজন।
জেডিবিপি

3
@ জেডিবিপি: প্রশ্নটি "স্টিকি বিট কি সেটুইডের মতো ছিল?" বরং বিস্তৃত এবং অসম্পূর্ণ। আমি যুক্তি দেব যে উত্তরটি "হ্যাঁ, কিছুটা; এটি জটিল" কারণ নিম্ন-আদেশের নয়টি বিট ছিল এবং একই রকম: তারা নির্দিষ্ট ব্যবহারকারীদের কোনও ফাইলে কিছু নির্দিষ্ট ক্রিয়াকলাপ সম্পাদন করতে পারে কিনা তা তারা প্রভাবিত করে। এবং সেট-ইউআইডি, সেট-জিআইডি এবং স্টিকি বিটগুলি একই রকম ছিল যে তারা কোনও অপারেশন করার অনুমতি দেয় কিনা সম্পর্কিত নয় তবে পরিবর্তে এটি (বিশেষত, এক্সিকিউট অপারেশন) কীভাবে সম্পাদিত হয়েছিল তার কিছু দিক নিয়ন্ত্রণ করেছিল ।
জি ম্যান
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.