লিনাক্স টার্মিনাল কীভাবে কাজ করে?


32

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


6
কটাক্ষপাত একটি সহজ টার্মিনাল এমুলেটর এবং একটি সহজ শেল সঙ্গে একটি সহজ খেলনা অপারেটিং সিস্টেম (এবং প্রথম পনের তাই তার বইয়ের পৃষ্ঠা)। এছাড়াও, সম্পর্কিত প্রশ্নের এই উত্তরটি পড়ুন ।


@ নিউল্ডনার দুর্দান্ত,
মাইকে

উত্তর:


30

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

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

একটি "টার্মিনাল এমুলেটর" - আপনি যেমন "টার্মিনাল উইন্ডো" যেমন প্রোগ্রামগুলি দিয়ে খুলেন xtermবা konsole- যেমন বোবা টার্মিনালের কার্যকারিতা অনুকরণ করার চেষ্টা করে। PuTTY(উইন্ডোজ) টার্মিনালগুলি এমুলেট করার মতো প্রোগ্রামগুলিও ।

পিসি দিয়ে, যেখানে "কনসোল" (কীবোর্ড + স্ক্রিন) এবং "কম্পিউটার" একক ইউনিটের বেশি, আপনি তার পরিবর্তে "ভার্চুয়াল টার্মিনাল" পেয়েছেন (লিনাক্সে, Alt + F6 -র মাধ্যমে Alt + F1 কীগুলি ব্যবহার করেছেন) তবে এটিও পুরানো শৈলীর টার্মিনালগুলি নকল করুন। অবশ্যই, ইউনিক্স / লিনাক্স ডেস্কটপ অপারেটিং সিস্টেম হিসাবে প্রায়শই সিংগ ব্যবহারকারীর দ্বারা ব্যবহৃত হয়, আপনি এখন আপনার বেশিরভাগ কাজ "কনসোলে" করেন, যেখানে ব্যবহারকারীরা আগে সিরিয়াল-লাইন দ্বারা সংযুক্ত টার্মিনালগুলি ব্যবহার করেছিলেন।


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


এবং বোবা সিরিয়াল টার্মিনাল এবং এক্সটার্মের মধ্যে ছিল
এন.উইকিপিডিয়া.আর.উইকি

31

আপনি যখন "টার্মিনাল খুলুন", আপনি একটি টার্মিনাল এমুলেটর প্রোগ্রাম শুরু করছেন, যেমন এক্সটার্ম, জিনোম-টার্মিনাল, এলএক্সটারম, কনসোল,…

টার্মিনাল এমুলেটর প্রথম কাজগুলির মধ্যে একটি হ'ল সিউডো টার্মিনাল বরাদ্দ করা (প্রায়শই সিউডো-টিটি বা সংক্ষেপে পিটিআই বলা হয়)। পিটিআই হ'ল একজোড়া চরিত্রের ডিভাইস ফাইল : পিটিআই মাস্টার, টার্মিনাল এমুলেটরটি যে পাশটি খোলে, এবং পিটিআই স্লেভ, যা টার্মিনালের অভ্যন্তরে চলমান প্রোগ্রামগুলি খোলা আছে side বেশিরভাগ আধুনিক ইউনিটগুলিতে, মাস্টার হ'ল /dev/ptmx(যা প্রতিটি টার্মিনাল এমুলেটর খোলা থাকে) এবং দাসটি /dev/pts/NUMBER। সিউডো-টার্মিনালগুলির জন্য কার্নেল ড্রাইভার প্রতিটি গোলাম ডিভাইসের জন্য কোন প্রক্রিয়া মাস্টারকে নিয়ন্ত্রণ করে তা ট্র্যাক করে। টার্মিনাল এমুলেটর মাস্টার ডিভাইসে একটি আইওএসটিএল এর মাধ্যমে সংশ্লিষ্ট ক্রীতদাসের পাথ পুনরুদ্ধার করতে পারে ।

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

  • একটি শিশু প্রক্রিয়া কাঁটাচামচ ,
  • ফাইল বর্ণনাকারী 0, 1 এবং 2 (স্ট্যান্ডার্ড ইনপুট, স্ট্যান্ডার্ড আউটপুট এবং ত্রুটি স্ট্রিম) -এ স্লেভ পিটিআই ডিভাইসটি খুলুন,
  • শিশু প্রক্রিয়াতে শেল বা অন্যান্য প্রোগ্রাম কার্যকর করুন।

শিশুটি (বা অন্য কোনও প্রক্রিয়া) যখন pty দাসকে লিখেন, এমুলেটরটি pty মাস্টারে ইনপুট দেখেন।

বিপরীতে, যখন এমুলেটর মাস্টার ডিভাইসে লেখেন, তখন এটি স্লেভের ইনপুট হিসাবে দেখা যায়।

প্রত্যাশা ঠিক একইভাবে কাজ করে। এক্সপেট এবং এক্সটার্মের মতো টার্মিনাল এমুলেটারের মধ্যে পার্থক্য হ'ল তারা প্রোগ্রামটি (স্ক্রিপ্ট বনাম কীবোর্ড ইনপুট) ফিড করে এবং আউটপুট (লগ ফাইল বা পার্সার বনাম একটি উইন্ডোতে অঙ্কন পাঠ্য) কী করে সেগুলি দেয় the


এখানে যা বর্ণনা করা হয়েছে তার একটি সাধারণ উদাহরণ হ'ল ব্যাসিবক্সের scriptকমান্ডটি প্রয়োগ করা , যেখানে xgetptyফাংশনটি কাজটির মূল কাজ /dev/ptmx
রুসলান

@ টিম আমি প্রশংসা করি যে ইংরেজি আপনার মাতৃভাষা নয়। তবে আপনি যদি কোনও পোস্ট সম্পাদনা করেন তবে দয়া করে নিশ্চিত হন যে আপনি এটি ভুল করেন না। আপনি যদি এটি বুঝতে না পারেন তবে সম্পাদনা করবেন না। এছাড়াও, আবার, দয়া করে এমন জিনিস হাইলাইট করার জন্য সাহসী ব্যবহার করবেন না যেগুলিকে হাইলাইট করার দরকার নেই।
গিলস 'অশুভ হওয়া বন্ধ করুন'
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.