Seventh Edition Unix terminal interface
সপ্তম সংস্করণ ইউনিক্স টার্মিনাল ইন্টারফেস হল সাধারণীকৃত বিমূর্ততা, যা সপ্তম সংস্করণ ইউনিক্সে ঐতিহাসিকভাবে উপলব্ধ একটি টার্মিনালের প্রোগ্রামগুলির জন্য একটি অ্যাপ্লিকেশন প্রোগ্রামিং ইন্টারফেস এবং ব্যবহারকারীদের জন্য আচরণগত প্রত্যাশার একটি সেট উভয়ই নিয়ে গঠিত। এটি মূলত পোসিক্স টার্মিনাল ইন্টারফেস দ্বারা প্রতিস্থাপিত হয়েছে। ধারণা এবং সংক্ষিপ্ত বিবরণ সপ্তম সংস্করণ ইউনিক্স এবং ইউনিক্স/32ভি দ্বারা প্রদত্ত টার্মিনাল ইন্টারফেস, এবং বিএসডি সংস্করণ 4 দ্বারা পুরানো টার্মিনাল ড্রাইভার হিসাবে উপস্থাপিত, একটি সহজ ছিল, যা মূলত টার্মিনাল হিসাবে টেলিটাইপরাইটারগুলির দিকে পরিচালিত হয়েছিল। ইনপুটটি একবারে একটি লাইনে প্রবেশ করানো হত, অপারেটিং সিস্টেমে টার্মিনাল ড্রাইভার (এবং টার্মিনালগুলি নয়) সহজ লাইন সম্পাদনা ক্ষমতা প্রদান করে। কার্নেল দ্বারা একটি বাফার রক্ষণাবেক্ষণ করা হত যেখানে সম্পাদনা করা হত। টার্মিনাল ইনপুট পড়া অ্যাপ্লিকেশনগুলি কেবল তখনই বাফারের বিষয়বস্তু গ্রহণ করবে যখন শেষ লাইন সম্পাদনার জন্য টার্মিনালে কী টিপে দেওয়া হবে। টার্মিনাল থেকে সিস্টেমে পাঠানো কী সম্পাদনা বাফারের পুরো বর্তমান বিষয়বস্তু মুছে ফেলবে ("কিল"), এবং সাধারণত একটি '@"প্রতীক হিসাবে প্রদর্শিত হবে যার পরে মুদ্রণের অবস্থানকে একটি নতুন ফাঁকা লাইনে নিয়ে যাওয়ার জন্য একটি নতুন লাইন ক্রম প্রদর্শিত হবে। টার্মিনাল থেকে সিস্টেমে পাঠানো কী সম্পাদনা বাফারের শেষ থেকে শেষ অক্ষরটি মুছে ফেলবে এবং সাধারণত একটি '#' প্রতীক হিসাবে প্রদর্শিত হবে, যা ব্যবহারকারীদের পূর্ববর্তী অক্ষরের 'রুবাউট' বোঝায় (টেলিটাইপরাইটারগুলি কাগজে মুদ্রিত হওয়ার পরে অক্ষরগুলি মুছে ফেলতে শারীরিকভাবে সক্ষম নয়)। প্রোগ্রামিং দৃষ্টিকোণ থেকে, একটি টার্মিনাল ডিভাইসে বাউড রেট প্রেরণ ও গ্রহণ, "মুছে ফেলুন" এবং "কিল" অক্ষর (যা লাইন সম্পাদনা সম্পাদন করে, যেমন ব্যাখ্যা করা হয়েছে), "ইন্টারাপ্ট" এবং "কুইট" অক্ষর (যে সমস্ত প্রক্রিয়ার জন্য টার্মিনালটি একটি নিয়ন্ত্রণকারী টার্মিনাল ছিল তাতে সংকেত তৈরি করে), "স্টার্ট" এবং "স্টপ" অক্ষর (সফ্টওয়্যার প্রবাহ নিয়ন্ত্রণের জন্য ব্যবহৃত), একটি "এন্ড অফ ফাইল" অক্ষর (রিড () সিস্টেম কল দ্বারা বাফার থেকে ফেলে দেওয়া ব্যতীত একটি ক্যারেজ রিটার্নের মতো কাজ করে এবং তাই সম্ভাব্য শূন্য-দৈর্ঘ্যের ফলাফল ফেরত দেয়) এবং কার্নেলের টার্মিনাল ড্রাইভার দ্বারা স্থানীয় প্রতিধ্বনি অনুকরণ করা হয়েছিল কিনা তা নির্ধারণ করার জন্য বিভিন্ন মোড ফ্ল্যাগ, মডেম প্রবাহ নিয়ন্ত্রণ সক্ষম করা হয়েছিল কিনা, বিভিন্ন আউটপুট বিলম্বের দৈর্ঘ্য, ম্যাপিং ছিল। সপ্তম সংস্করণ ইউনিক্সে টার্মিনালের জন্য তিনটি ইনপুট মোড ছিলঃ লাইন মোড (যাকে "রান্না করা" মোডও বলা হয়) লাইন মোডে লাইন শৃঙ্খলা সমস্ত লাইন সম্পাদনা ফাংশন সম্পাদন করে এবং "ইন্টারাপ্ট" এবং "কুইট" নিয়ন্ত্রণ অক্ষরগুলিকে স্বীকৃতি দেয় এবং সেগুলিকে প্রক্রিয়াগুলিতে পাঠানো সংকেতে রূপান্তরিত করে। ব্যবহারকারী রিটার্ন টিপে লাইন সম্পাদনা শেষ করার পরে টার্মিনাল থেকে পড়া অ্যাপ্লিকেশন প্রোগ্রামগুলি সম্পূর্ণ লাইন গ্রহণ করে। সি-ব্রেক মডেকব্রেক মোড দুটি ক্যারেক্টর-অ্যাট-এ-টাইম মোডের মধ্যে একটি। (স্টিফেন আর বোর্ন রসিকতার সাথে এটিকে "অর্ধ-রান্না করা" এবং তাই "বিরল" মোড হিসাবে উল্লেখ করেছেন।) লাইন শৃঙ্খলা কোনও লাইন সম্পাদনা করে না এবং লাইন সম্পাদনা ফাংশনের জন্য নিয়ন্ত্রণ ক্রমগুলি সাধারণ অক্ষর ইনপুট হিসাবে বিবেচিত হয়। টার্মিনাল থেকে পড়া অ্যাপ্লিকেশন প্রোগ্রামগুলি পড়ার জন্য ইনপুট সারিতে উপলব্ধ হওয়ার সাথে সাথেই অক্ষরগুলি গ্রহণ করে। যাইহোক, "ইন্টারাপ্ট" এবং "কুইট" নিয়ন্ত্রণ অক্ষরগুলি, পাশাপাশি মডেম ফ্লো নিয়ন্ত্রণ অক্ষরগুলি এখনও বিশেষভাবে পরিচালিত হয় এবং ইনপুট স্ট্রিম থেকে বাদ দেওয়া হয়। কাঁচা মডারা মোড হল দুটি ক্যারেক্টর-অ্যাট-এ-টাইম মোডের মধ্যে অন্যটি। লাইন শৃঙ্খলা কোনও লাইন সম্পাদনা করে না এবং লাইন সম্পাদনা ফাংশন এবং বিভিন্ন বিশেষ অক্ষর ("ইন্টারাপ্ট", "কুইট" এবং ফ্লো কন্ট্রোল) উভয়ের জন্য নিয়ন্ত্রণ ক্রমকে স্বাভাবিক অক্ষর ইনপুট হিসাবে বিবেচনা করা হয়। টার্মিনাল থেকে পড়া অ্যাপ্লিকেশন প্রোগ্রামগুলি অবিলম্বে অক্ষরগুলি গ্রহণ করে এবং পুরো অক্ষর প্রবাহটি অপরিবর্তিতভাবে গ্রহণ করে, ঠিক যেমন এটি টার্মিনাল ডিভাইস থেকে এসেছে। পোসিক্স টার্মিনাল ইন্টারফেসে, এই মোডগুলি মাত্র দুটি ইনপুট মোডের একটি সিস্টেম দ্বারা প্রতিস্থাপিত হয়েছেঃ ক্যানোনিকাল এবং নন-ক্যানোনিকাল। পি. ও. এস. আই. এক্স টার্মিনাল ইন্টারফেসে সিগন্যাল-জেনারেটিং বিশেষ অক্ষরগুলির পরিচালনা ইনপুট মোড থেকে স্বাধীন এবং পৃথকভাবে নিয়ন্ত্রণযোগ্য। সপ্তম সংস্করণ ইউনিক্সে কোনও টার্মিনাল কাজ নিয়ন্ত্রণ ছিল না এবং একটি প্রক্রিয়া গোষ্ঠীকে আজকাল যা বলে মনে করা হয় তা নয় বলে মনে করা হত। সিস্টেমের প্রতিটি প্রক্রিয়ায় হয় একটি একক নিয়ন্ত্রণকারী টার্মিনাল ছিল, অথবা কোনও নিয়ন্ত্রণকারী টার্মিনাল ছিল না। একটি প্রক্রিয়া তার মূল থেকে তার নিয়ন্ত্রণকারী টার্মিনাল উত্তরাধিকার সূত্রে পায়। একটি নিয়ন্ত্রণকারী টার্মিনাল অর্জন করা হয়েছিল যখন কোনও নিয়ন্ত্রণকারী টার্মিনাল ওপেন () সহ একটি প্রক্রিয়া একটি টার্মিনাল ডিভাইস ফাইল যা ইতিমধ্যে অন্য কোনও প্রক্রিয়ার জন্য নিয়ন্ত্রণকারী টার্মিনাল নয়। যে সমস্ত প্রক্রিয়াগুলির একই নিয়ন্ত্রণকারী টার্মিনাল ছিল সেগুলি একটি একক প্রক্রিয়া গোষ্ঠীর অংশ ছিল। অ্যাপ্লিকেশন প্রোগ্রামিং ইন্টারফেস এই সমস্ত মোড এবং নিয়ন্ত্রণ অক্ষর অনুসন্ধান এবং সংশোধন করার জন্য প্রোগ্রাম্যাটিক ইন্টারফেস ছিল ioctl () সিস্টেম কল। (এটি ষষ্ঠ সংস্করণ ইউনিক্সের স্টিটি () এবং জিটিটি () সিস্টেম কলগুলিকে প্রতিস্থাপন করেছে।) যদিও "মুছে ফেলুন" এবং "কিল" অক্ষরগুলি তাদের ডিফল্ট থেকে পরিবর্তনযোগ্য ছিল এবং সপ্তম সংস্করণের বিকাশের জড়তার পরে বহু বছর ধরে তারা টার্মিনাল ডিভাইস ড্রাইভারগুলিতে পূর্বনির্ধারিত ডিফল্ট ছিল, এবং অনেক ইউনিক্স সিস্টেমে, যা শুধুমাত্র ব্যবহারকারীর ব্যবহারকারীর নাম এবং পাসওয়ার্ড প্রবেশ করার পরে চলমান সিস্টেম লগইন স্ক্রিপ্টগুলিতে লগইন প্রক্রিয়াটির অংশ হিসাবে টার্মিনাল ডিভাইস সেটিংস পরিবর্তন করেছিল, লগইন এবং পাসওয়ার্ড প্রম্পটগুলিতে যে কোনও ভুল টেলিটাইপ রাইটার টার্মিনাল থেকে উত্তরাধিকারসূত্রে প্রাপ্ত ঐতিহাসিক সম্পাদনা মূল অক্ষর ব্যবহার করে সংশোধন করতে হয়েছিল। প্রতীকী ধ্রুবক, যার মান স্থির এবং সংজ্ঞায়িত করা হয়েছিল, এবং প্রোগ্রাম্যাটিক ইন্টারফেসের ডেটা স্ট্রাকচার সংজ্ঞা sgtty.h সিস্টেম হেডারে সংজ্ঞায়িত করা হয়েছিল। ioctl () ক্রিয়াকলাপগুলি নিম্নরূপ ছিলঃ sgttib তথ্য কাঠামো টার্মিনাল সিস্টেম কল দ্বারা ব্যবহৃত একটি তথ্য কাঠামো হল sgttib কাঠামো, যার সি প্রোগ্রামিং ভাষার সংজ্ঞা নিম্নরূপঃ কাঠামো sgttib {চার sg _ ispeed;// ইনপুট স্পিড চার sg _ ospeed;// আউটপুট স্পিড চার sg _ erase;// ক্যারেক্টর চার এসজি _ কিল মুছে ফেলুন;// কিল ক্যারেক্টর চার এসজি _ ফ্ল্যাগ;// কন্ট্রোল ফ্ল্যাগ; পোসিক্স টার্মিনাল ইন্টারফেসের বিপরীতে, সপ্তম সংস্করণ ইউনিক্স টার্মিনাল ইন্টারফেস সরাসরি তথ্য কাঠামোতে ইনপুট এবং আউটপুট বাউডের হার রেকর্ড করে। sg _ ispeed এবং sg _ ospeed ক্ষেত্রগুলিতে ইনপুট এবং আউটপুট গতি ছিল DEC DH-11-এর, এবং সংখ্যা ছিল 0 থেকে 15, যা প্রতীকী ধ্রুবক (আরোহী ক্রমে) B0, B50, B75, B110, B134, B150, B200, B300, B 600, B1200, B1800, B2400, B4800, B9600, EXTA, এবং EXTB দ্বারা প্রতিনিধিত্ব করা হয়, যেখানে বাউডের হার নামের মতোই ছিল (শেষ দুটি সহ "বাহ্যিক A" এবং "বাহ্যিক B")। শূন্যের বাউড রেট নির্ধারণ করা টার্মিনাল চালককে একটি মডেম বন্ধ করতে বাধ্য করে (যদি টার্মিনালটি একটি মডেম ডিভাইস হয়)। এসজি _ ইরেজ এবং এসজি _ কিল ক্ষেত্রগুলি ছিল যথাক্রমে "মুছে ফেলুন" এবং "হত্যা করুন" অক্ষরগুলির অক্ষর মান, যা যথাক্রমে "এবং" এর জন্য (এএসসিআইআই) মানগুলিতে ডিফল্ট হয়। এসজি _ ফ্ল্যাগ ক্ষেত্রটি নিম্নলিখিত টেবিলের মতো বিভিন্ন ইনপুট এবং আউটপুট নিয়ন্ত্রণ ফ্ল্যাগ নির্দিষ্ট করেছে। টার্মিনাল সিস্টেম কলগুলির দ্বারা ব্যবহৃত একটি ডেটা স্ট্রাকচার হল টিচার্স স্ট্রাকচার, যার সি প্রোগ্রামিং ভাষার সংজ্ঞা নিম্নরূপঃ স্ট্রাকচার টিচার্স {চার টি _ ইন্ট্রাক;// ইন্টারাপ্ট চার টি _ কুইট;// কুইট চার টি _ স্টার্ট;// স্টার্ট চার টি _ স্টপ;// স্টপ চার টি _ ইওএফসি;// ফাইল চার টি _ ব্রাকের শেষ;// ব্রেক (একই প্রভাব সহ হার্ডওয়্যার্ড এলএফ অক্ষরের বিকল্প); এই ক্ষেত্রগুলির মানগুলি ছিল বিভিন্ন প্রোগ্রামগতভাবে কনফিগারযোগ্য বিশেষ অক্ষরের মান। যে কোনও ক্ষেত্রে A-1 মান টার্মিনাল ড্রাইভার দ্বারা তার স্বীকৃতি অক্ষম করে। রেফারেন্স গ্রন্থপঞ্জি অ্যাপ্লিকেশন প্রোগ্রামিং ইন্টারফেস বেল ল্যাবস ইউনিসেস বার্কলে সফ্টওয়্যার ডিস্ট্রিবিউশন কম্পিউটার টার্মিনাল প্রযুক্তিগত যোগাযোগ