কার্নিখন এবং পাইক চ্যালেঞ্জ: ফাইলনামে স্ল্যাশ কীভাবে রাখবেন?


23

আমি ইউনিক্স প্রোগ্রামিং এনভায়রনমেন্ট , কার্নিগান এবং পাইকের ইউনিক্সের ক্লাসিক বইটিতে কেবল নিম্নলিখিত প্রশ্নের মুখোমুখি হয়েছি (1984 সালের সংস্করণে আমি পিএস 79 এর নীচের পাঠ্যটি পেয়েছি, আইএসবিএন: 0-13-937699-2):

অনুশীলন 3-6। (কৌশল কৌশল) আপনি কীভাবে একটি ফাইলনামে প্রবেশ করবেন (যেমন, একটি / যা পথের পৃথক উপাদানগুলি পৃথক করে না?

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

আমি বুঝতে পেরেছি যে লিনাক্স ix ইউনিক্স, তবে একই নীতিটি প্রয়োগ করা উচিত, যেহেতু সিস্টেমটি পাথ থেকে নির্বিঘ্নভাবে ডিরেক্টরি স্তরক্রমকে বের করতে সক্ষম হতে হবে।

কেউ কি জানেন, এই প্রশ্ন জিজ্ঞাসা করার সময় কার্নিগান এবং পাইক ঠিক কী সম্পর্কে ভেবেছিলেন? অনুমিত উত্তর কি ছিল? 'ট্রিক' আসলে কী? অথবা হতে পারে মূল ইউনিক্স সিস্টেমটি কেবল কোনওভাবে এই স্ল্যাশ থেকে বাঁচার অনুমতি দিয়েছে?

UPD:

আমি এই প্রশ্ন সম্পর্কে ব্রায়ান কার্নিগানের সাথে যোগাযোগ করেছি এবং সেটাই তার জবাব দিয়েছে:

উত্তরটি (বা ছিল) "আপনি পারবেন না।"

অতএব, টিমোথি মার্টিন ঠিক ছিলেন এবং গ্রিন টিক পেয়েছিলেন।




হুম। সম্ভবত আপনি নিম্ন- aকেসযুক্ত একটি ফাইল তৈরি করতে পারেন এবং আপনার সিস্টেমকে একটি EBCDIC লোকালে ফাইল সিস্টেমটি ভাবতে বাধ্য করতে পারেন? এএসসিআইআই a0x61, যা ইবিসিডিক /(কোড পৃষ্ঠা 37) এর সাথে সম্পর্কিত
ফক্স

বই নিজেই বলে যে এটি একটি কৌশল প্রশ্ন? যদি তা হয়, তবে আমি মনে করি যে এটির বাইরের নকশাগুলি আপনি ইতিমধ্যে জানিয়ে রেখেছেন, আপনি এটির বাই-ডিজাইন উপায়টি আবিষ্কার করতে সক্ষম হবেন না বলে আমি মনে করি।
ilkkachu

উত্তর:


12

সম্ভবত এই কৌশলটি প্রশ্নের উত্তরটির অংশ হিসাবে উত্তরটি একই:
আপনি কীভাবে একটি হাতি থেকে নামবেন? আপনি না। আপনি এটি একটি হংস থেকে পেতে।

ব্রায়ান ডাব্লু কার্নিগান এবং রব পাইকের "অনুশীলনের অনুশীলন" থেকে, সিএইচ। 6, pg। 158:

স্টিভ বোর্ন যখন তার ইউনিক্স শেলটি লিখছিলেন (যা বোর্ন শেল হিসাবে পরিচিতি পেয়েছিল), তিনি 254 ফাইলের একটি ডিরেক্টরিতে একটি অক্ষর নাম দিয়ে একটি ডিরেক্টরি তৈরি করেছিলেন, প্রতিটি বাইট মানের জন্য একটি '\ 0' এবং স্ল্যাশ ছাড়া দুটি অক্ষর যা ইউনিক্স ফাইলের নামগুলিতে উপস্থিত হতে পারে না।


3
আমাকে এই রসিকতা শেখানোর জন্য আপনাকে ধন্যবাদ। এটি সম্ভবত একটি ইংরেজি ফ্লুয়েন্সি পরীক্ষা হিসাবে পরিবেশন করতে পারে (যা আমি সবেমাত্র ব্যর্থ হয়েছি)।
ফায়ারগুরাফিকু

আপনি ঠিক বলেছেন। ইউপিডি দেখুন।
ফায়ারগুরফিকু

1
@ ফায়ারগুরাফিকু জোককে ব্যাখ্যা করুন
আইজাক

5

আমি এটা করেছি। এটি একটি ইউএনআইএক্স সিস্টেমে ছিল যেটি ১৯৮০ সালের দিকে কোনও পিডিপি-১১ এ চলছিল I "হোয়াটএক্সএনও?" নামে একটি ফাইল তৈরি করেছি। তারপরে আমি ডিস্ক ডিভাইসটি সম্পাদনা করতে এবং ইনোডের "X" কে "/" তে পরিবর্তন করতে (ফাইল সিস্টেমটি আনমাউন্ট ছাড়াই) বাইনারি ফাইল "সম্পাদক" ব্যবহার করি।

কীভাবে এটি অপসারণ করা যায় তা ভুক্তভোগী কখনই বুঝতে পারেননি।

সম্পাদনা: ওফ, বারমার ঠিক আছে, আমি ডিভাইসটি প্যাচিং না করার বিষয়ে লাইনটি দেখতে ব্যর্থ হয়েছি। এবং হ্যাঁ, এটি আমি সম্পাদিত ডিরেক্টরিটি ছিল, ইনোড নয়। কিছুক্ষণ হবে :-)


1
ফাইলের নামগুলি ইনোডে নেই, তারা ডিরেক্টরি বিশেষ ফাইলে রয়েছে।
বার্মার

1
আমার সন্দেহ হয় fsckএটি সরিয়ে ফেলত ।
বার্মার

1
প্রশ্নটি বলছে আপনি ব্লক ডিভাইস অ্যাক্সেসের মাধ্যমে আপনার ফাইল সিস্টেমটি প্যাচ করতে পারেন বা ইউনিকোড থেকে অনুরূপ বর্ণনামূলক অক্ষর ব্যবহার করতে পারেন, তবে সেগুলি সমাধান নয়। আপনি নিজের উত্তরে যা বর্ণনা করছেন তা কি তাই নয়?
বার্মার

@ বার্মার: হুম, সম্ভবত আমি প্রশ্নটিকে ওভারথিংক করছি এবং ফাইল সিস্টেমের প্যাচিংটিই সমাধানটি বোঝানো হচ্ছে? আমি জানি না।
ফায়ারগুরফিকু

আমি বাজি ধরেছিলাম এই উত্তর ছিল। আমার মনে আছে আপনি কখন ডিরেক্টরি পড়তে পারতেন। বহু বছর আগে রুট এগুলি লিখতে পারে।
জোশুয়া 1

1

কোন দৃশ্যকল্প যেখানে /(আরো সঠিকভাবে, একটি বাইট নয় একটি অক্ষর-সঙ্গে মান 0x2f; প্রায় সব ইউনিক্স কার্নেলের ইচ্ছাকৃতভাবে অক্ষর এনকোডিং থেকে মুখ ফিরিয়ে হয়) তার পথ একটি ডিরেক্টরি এন্ট্রিতে খুঁজে বের করে, কাঁচা ডিস্ক ব্লক ছাড়া হাতে কাজে ব্যবহৃত হয়েছে, নিঃসন্দেহে হয় কার্নেলের মধ্যে একটি বাগ।

এই ধরনের বাগগুলি সময়ে সময়ে ঘটে থাকে। আমি প্যাচ নোটগুলি পড়ার জন্য মনে রাখি, এটি হ'ল ১৯৯০-এর দশকের যুগের পুনরাবৃত্তিগুলি… আমি সোলারিস বলতে চাই, তবে এটি ভুল হতে পারে ... অ্যাপলটালক ফাইলিং প্রোটোকল (এএফপি) এর জন্য একটি সার্ভার অফার করেছিল, যা এনএফএসের ক্লাসিক ম্যাকোসের সমতুল্য ছিল। । সমস্যাটি ছিল, ক্লাসিক ম্যাকোএসে আপনাকে পুরোপুরি /কোনও পথের নাম উপাদান রাখার অনুমতি দেওয়া হয়েছিল ; ডিরেক্টরি বিভাজক :পরিবর্তে হয়। এএফপি সার্ভারটি যখন তার ডিস্কের ক্লায়েন্টদের দ্বারা ফাইলগুলিতে জমা দেওয়া প্যাথনামগুলি ম্যাপিংয়ের নৈতিক সমতুল্য করার কথা ছিল tr :/ /:, তবে তারা কয়েকটি কোড পাথ মিস করেছে এবং সার্ভারটি কার্নেলের অভ্যন্তরে প্রয়োগ করা হয়েছে, এটি আসলে খারাপ ডিরেক্টরি এন্ট্রিগুলি লিখতে পারে।

( উপরিউক্তটির দীর্ঘতর সংস্করণের জন্য " কমপ্লিট.উনিক্স এফএকিউ # ২.২ দেখুন , উপ- বিভাগটি শুরু হয়েছে" যদি ফাইলের নামটিতে একটি '/' থাকে তবে কী হবে? ")

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.