সংক্ষেপে ওএস কীভাবে কাজ করে তা জানতে চাই :
- এটিতে নির্মিত মৌলিক উপাদানগুলি
- কীভাবে এই উপাদানগুলি একসাথে কাজ করে
- কী ইউনিক্স ইউনিক্স করে তোলে
- উইন্ডোজের মতো অন্যান্য ওএস থেকে এটিকে কী আলাদা করে তোলে
সংক্ষেপে ওএস কীভাবে কাজ করে তা জানতে চাই :
উত্তর:
একটি ইউনিক্স সিস্টেমের বেশ কয়েকটি অংশ বা স্তর রয়েছে যা আমি তাদের কল করতে চাই।
একটি সিস্টেম শুরু করতে, বুট লোডার নামে পরিচিত একটি প্রোগ্রাম একটি হার্ড ডিস্ক পার্টিশনের প্রথম সেক্টরে থাকে। এটি সিস্টেম দ্বারা শুরু করা হয়, এবং এর ফলে এটি অপারেটিং সিস্টেমের কার্নেল সনাক্ত করে এবং এটি লোড করে।
layering
কর্নেল এটি কেন্দ্রীয় প্রোগ্রাম যা বুট লোডার দ্বারা শুরু করা হয়। এটি সিস্টেমে (ডিস্ক, মেমরি, ভিডিও, শব্দ) জন্য প্রাথমিক হার্ডওয়্যার ইন্টারঅ্যাকশন করে এবং একটি ভার্চুয়াল পরিবেশ সরবরাহ করে যেখানে এটি প্রোগ্রাম শুরু করতে পারে। কার্নেল সমস্ত ড্রাইভারকে জাহাজে দেয় যা হার্ডওয়্যার ডিভাইসের মধ্যে সামান্য পার্থক্য নিয়ে কাজ করে। বাইরের বিশ্বের কাছে (উচ্চ স্তরগুলি), প্রতিটি শ্রেণীর ডিভাইসগুলি একই ধারাবাহিকভাবে ঠিক একই আচরণ করতে দেখা দেয় - যার ফলস্বরূপ, প্রোগ্রামগুলি তৈরি করতে পারে।
পটভূমি সাবসিস্টেম। এখানে কেবল নিয়মিত প্রোগ্রাম রয়েছে যা কেবল আপনার পথ থেকে দূরে থাকে। এগুলি দূরবর্তী লগইন, সেন্টাল বার্তা বাস সরবরাহ এবং হার্ডওয়্যার / নেটওয়ার্ক ইভেন্টের ভিত্তিতে ক্রিয়া করে actions উদাহরণস্বরূপ, ব্লুটুথ আবিষ্কার, ওয়াইফাই পরিচালনা ইত্যাদি Any কোনও নেটওয়ার্ক পরিষেবাদি (ফাইল সার্ভার, প্রিন্ট সার্ভার, ওয়েব সার্ভার )ও এই স্তরে বাস করে। ইউনিক্স সিস্টেমে, এগুলি কেবলমাত্র সাধারণ প্রোগ্রাম।
কমান্ড লাইন সরঞ্জাম। এগুলি সমস্ত ছোট প্রোগ্রাম যা পাঠ্য সম্পাদনা, ফাইল ডাউনলোড করা বা সিস্টেম পরিচালনার মতো কাজ শুরু করা যেতে পারে। এই মুহুর্তে, সিস্টেম অ্যাডমিনিস্ট্রেটরদের জন্য একটি ইউএনআইএক্স সিস্টেম পুরোপুরি ব্যবহারযোগ্য। উইন্ডোজে, এই স্তরটির আর অস্তিত্ব নেই।
গ্রাফিকাল ইউজার ইন্টারফেস। এগুলি কেবলমাত্র প্রোগ্রাম, কেবলমাত্র পার্থক্য হ'ল তারা পাঠ্য লেখার পরিবর্তে স্ক্রিনে উইন্ডো আঁকেন। এটি নিয়মিত ব্যবহারকারীদের জন্য ব্যবহার করা সহজ করে তোলে।
যেকোন পরিষেবা বা ইভেন্ট নীচে থেকে উপরে পর্যন্ত সমস্ত অংশে যাবে।
গ্রন্থাগারগুলি - সাধারণ প্ল্যাটফর্ম
প্রোগ্রামগুলি উইন্ডো প্রদর্শন, স্ক্রিনে স্টাফ আঁকতে বা কোনও ফাইল ডাউনলোড করার মতো প্রচুর সাধারণ কাজ করে। একাধিক প্রোগ্রামের জন্য এই জিনিসগুলি সমান, অতএব সেই কোডটি পৃথক "লাইব্রেরি" ফাইলগুলিতে স্থাপন করা হয় ( .so
ফাইলগুলি - অর্থ ভাগ করা বস্তু)। গ্রন্থাগারটি সমস্ত প্রোগ্রামে ভাগ করা যায়।
প্রতিটি কল্পনাযোগ্য জিনিসের জন্য একটি লাইব্রেরি রয়েছে। পিএনজি ফাইল পড়ার / লেখার জন্য একটি রয়েছে। জেপিজি ফাইলগুলির জন্য, এক্সএমএল পড়ার জন্য, এনক্রিপশনের জন্য, ভিডিও প্লেব্যাকের জন্য এবং আরও কিছু আছে।
লিনাক্সে, অ্যাপ্লিকেশন বিকাশকারীদের জন্য সাধারণ লাইব্রেরিগুলি হ'ল Qt এবং Gtk। অ্যাপ্লিকেশন বিকাশকারীদের আরও দ্রুততর অ্যাপ্লিকেশন তৈরি করার জন্য তাদের কার্যকারিতাটি সুন্দর ধারাবাহিকভাবে এবং সংক্ষিপ্তভাবে প্রকাশের সময় এই নির্দিষ্ট লাইব্রেরিগুলি তাদের নির্দিষ্ট প্রয়োজনের জন্য অভ্যন্তরীণভাবে নিম্ন-স্তরের গ্রন্থাগারগুলি ব্যবহার করে।
গ্রন্থাগারগুলি অ্যাপ্লিকেশন প্ল্যাটফর্ম সরবরাহ করে, যার ভিত্তিতে প্রোগ্রামাররা অপারেটিং সিস্টেমের জন্য শেষ ব্যবহারকারী অ্যাপ্লিকেশন তৈরি করতে পারে। কোনও সিস্টেম উচ্চতর মানের লাইব্রেরি সরবরাহ করে, একটি সুন্দর প্রোগ্রাম তৈরি করতে কোনও প্রোগ্রামারকে যত কম কোড লিখতে হয়।
কিছু গ্রন্থাগার বিভিন্ন অপারেটিং সিস্টেম জুড়ে ব্যবহার করা যেতে পারে (উদাহরণস্বরূপ, Qt হল), কিছু সত্যই নির্দিষ্টভাবে একটি অপারেটিং সিস্টেমে আবদ্ধ। এটি আপনার প্রোগ্রামটিকে কেবল সেই প্ল্যাটফর্মে চালাতে সক্ষম হতে সীমাবদ্ধ করবে।
আন্ত প্রক্রিয়া যোগাযোগ
অপারেটিং সিস্টেমের তৃতীয় কোণার অংশটি হ'ল প্রোগ্রামগুলি একে অপরের সাথে যোগাযোগ করতে পারে। এগুলি হ'ল আন্তঃ প্রক্রিয়া যোগাযোগ (আইপিসি) ম্যাকানিজম। এগুলি বেশ কয়েকটি স্বাদে বিদ্যমান, যেমন ভাগ করা মেমরির এক টুকরো বা ডেটা আদান প্রদানের জন্য দুটি প্রোগ্রামের মধ্যে একটি ছোট চ্যানেল সেট আপ করা হয়। একটি কেন্দ্রীয় বার্তা বাসও রয়েছে যার উপর প্রতিটি প্রোগ্রাম একটি বার্তা পোস্ট করতে পারে এবং একটি প্রতিক্রিয়া পেতে পারে। এটি বৈশ্বিক যোগাযোগের জন্য ব্যবহৃত হয়, যেখানে কোন প্রোগ্রামটি সাড়া দিতে পারে তা অজানা unknown
গ্রন্থাগার থেকে অপারেটিং সিস্টেমগুলি to
লাইব্রেরি, আইপিসি এবং কার্নেলের জায়গায়, প্রোগ্রামাররা সিস্টেম পরিষেবাদি, ব্যবহারকারী প্রশাসন, কনফিগারেশন, প্রশাসন, অফিসের কাজ, বিনোদন ইত্যাদির জন্য সমস্ত ধরণের অ্যাপ্লিকেশন তৈরি করতে পারে the "।
ইউএনআইএক্স / লিনাক্স সিস্টেমে সমস্ত পরিষেবা কেবলমাত্র প্রোগ্রাম। সমস্ত সিস্টেম অ্যাডমিন সরঞ্জামগুলি কেবল প্রোগ্রাম। তারা সবাই তাদের কাজ করে, এবং তাদের একসাথে বেঁধে রাখা যেতে পারে। আমি http://codingdomain.com/linux/sysadmin/ এ অনেক বড় প্রোগ্রামের সংক্ষিপ্তসার করেছি
উইন্ডোজের সাথে পার্থক্যযোগ্য অংশ
ইউএনআইএক্স মূলত প্রোগ্রাম, ফাইল এবং সীমাবদ্ধ অনুমতিগুলির একটি সিস্টেম। অনেক জটিলতা এড়ানো হয়, এটিকে একটি শক্তিশালী সিস্টেম হিসাবে তৈরি করা হয় যখন মনে হয় এটি করার কোনও সহজ কাজ রয়েছে।
বিস্তারিতভাবে, এগুলি হ'ল নীতিগুলি যা ইউনিক্স / লিনাক্স সিস্টেম জুড়ে পাওয়া যায়:
তথ্য অ্যাক্সেস করার জন্য অভিন্ন উপায় আছে। ("সবকিছুই কেবল একটি ফাইল")। আপনি ফাইল হিসাবে একটি ফাইল, নেটওয়ার্ক সকেট, আইপিসি চ্যানেল, কার্নেল প্যারামিটার এবং ব্লক ডিভাইস খুলতে পারেন। সুতরাং / dev, / sys এবং / proc এ ভার্চুয়াল ফাইল সিস্টেমের উপস্থিতি। আপনার কেবলমাত্র একটিমাত্র এপিআই হ'ল open
, read
এবং close
।
অন্তর্নিহিত সিস্টেমটি স্বচ্ছ। প্রতিটি প্রোগ্রাম একই নিয়মে পরিচালিত হয়। উইন্ডোজের বিপরীতে, "কনসোল প্রোগ্রাম", "গুই প্রোগ্রাম" বা "ব্যাকগ্রাউন্ড পরিষেবা" এর মধ্যে কোনও কৃত্রিম পার্থক্য নেই। এগুলি সবই কেবলমাত্র প্রোগ্রাম, যা বিভিন্ন জিনিস ঘটে। এগুলিও একইভাবে পর্যবেক্ষণ, বিশ্লেষণ এবং ডিবাগ করা যেতে পারে।
সেটিংসটি পঠনযোগ্য, সম্পাদনাযোগ্য এবং মন্তব্যগুলির মাধ্যমে মন্তব্য করা যেতে পারে। এগুলির সাধারণত একটি আইএনআই-স্টাইলের ফর্ম্যাট থাকে তবে সেই অ্যাপ্লিকেশনটির প্রয়োজনের জন্য একটি কাস্টম ফর্ম্যাট ব্যবহার করতে পারে। যেহেতু এগুলি কেবল ফাইল, সেগুলি অন্য সিস্টেমে অনুলিপি করা যায়, সংরক্ষণাগারভুক্ত বা স্ট্যান্ডার্ড সরঞ্জামগুলির সাহায্যে ব্যাকআপ পাওয়া যায়।
কোনও অ্যাপ্লিকেশন অ্যাপ্লিকেশনগুলিতে "একবারে এটি করুন" কোনও বড় নয়। মন্ত্রটি হ'ল "একটা কাজ কর, ভাল করে করো"। কমান্ড লাইন সরঞ্জামগুলি শৃঙ্খলিত হতে পারে এবং একসাথে শক্তিশালী হতে পারে। পৃথক পরিষেবা (যেমন এসএমটিপি, আইএমএপি এবং পিওপি, এবং লগইন) পৃথক সাবপ্রগ্রামগুলি, জটিল আন্তঃখণ্ডিত কোড এবং সুরক্ষা সমস্যাগুলি এড়িয়ে চলে। জটিল ডেস্কটপ পরিবেশগুলি পৃথক প্রোগ্রামগুলিতে কঠোর পরিশ্রমের প্রতিনিধিত্ব করে।
fork()
। একটি নতুন প্রোগ্রাম নিজেই ক্লোনিং দ্বারা শুরু হয়। ক্লোনটি সবকিছু সেট আপ করে (উদাহরণস্বরূপ ফাইল হ্যান্ডলগুলি) এবং allyচ্ছিকভাবে নতুন প্রোগ্রাম কোডের সাথে নিজেকে প্রতিস্থাপন করে। এটি একই নতুন সুরক্ষা সেটিংস এবং নতুন প্রোগ্রামগুলিতে সীমাবদ্ধতা প্রয়োগ, মেমরি ভাগ করে নেওয়া বা কোনও আইপিসি ব্যবস্থা সেটআপ করা সত্যই সহজ করে তোলে। একটি প্রক্রিয়া শুরু করার ব্যয়ও খুব কম।
ফাইল সিস্টেমটি একটি গাছ, যাতে অন্যান্য ডিস্কের পার্টিশন এবং নেটওয়ার্কের শেয়ারগুলি মাউন্ট করা যায়। আবারও রয়েছে ডেটা অ্যাক্সেসের সর্বজনীন উপায়। প্রচলিত সিস্টেমের অবস্থানগুলি (যেমন /usr
সহজেই নেটওয়ার্ক ভাগ হিসাবে মাউন্ট করা যায়।
সিস্টেমটি কম ব্যবহারকারীর সুবিধার্থে নির্মিত। লগইন করার পরে, প্রতিটি ব্যবহারকারী (রুট ব্যতীত) কেবল নিজের অ্যাপ্লিকেশন এবং ফাইলগুলি চালিত করে তাদের নিজস্ব সংস্থানগুলিতে সীমাবদ্ধ থাকে। নেটওয়ার্ক পরিষেবাগুলি যত তাড়াতাড়ি সম্ভব তাদের সুবিধাগুলি হ্রাস করে। আরও সুবিধাগুলি পাওয়ার একক সুস্পষ্ট উপায় রয়েছে বা কাউকে তাদের পক্ষে কোনও সুবিধাপ্রাপ্ত চাকরি সম্পাদনের জন্য বলুন। প্রতিটি অন্যান্য কল প্রোগ্রামের সীমাবদ্ধতা এবং সীমাবদ্ধতার দ্বারা সীমাবদ্ধ।
প্রতিটি প্রোগ্রাম ব্যবহারকারীর হোম ডিরেক্টরিগুলির একটি লুকানো ফাইল / ফোল্ডারে সেটিংস সঞ্চয় করে। কোনও প্রোগ্রাম কখনও বিশ্বব্যাপী সেটিং ফাইল লেখার চেষ্টা করে না।
গোপন প্রক্রিয়া বা নির্দিষ্ট 1-থেকে -1 প্রক্রিয়াগুলির তুলনায় প্রকাশ্যে বর্ণিত যোগাযোগ ব্যবস্থার প্রতি পক্ষপাতী। অন্যান্য বিক্রেতারা এবং সফ্টওয়্যার বিকাশকারীদের একই স্পেসিফিকেশন অনুসরণ করতে উত্সাহিত করা হয়, যাতে জিনিসগুলি সহজেই সংযুক্ত হতে পারে, অদলবদল হতে পারে এবং এখনও আলগাভাবে জুড়ে থাকতে পারে।
ইউনিক্স একটি শক্তিশালী ওএস, একটি সাউন্ড ডিজাইন তৈরি করুন যা 40 বছরেরও বেশি সময় ধরে সফল প্রমাণিত হয়েছে (এটি কম্পিউটার বিজ্ঞানে প্রায় অনন্তকাল)। কেন্দ্রীয় প্রযুক্তি সি ভাষা এবং ছোট প্রোগ্রামগুলির একটি অগণিত: ইউএনআইএক্স কমান্ডের উপর ভিত্তি করে। মৌলিক দর্শনটি ম্যাকিল্রয়ে সংক্ষিপ্তসার করেছেন:
এমন একটি প্রোগ্রাম লিখুন যা একটি কাজ করে এবং এটি ভাল করে। এক সাথে কাজ করার জন্য প্রোগ্রাম লিখুন। পাঠ্য স্ট্রিমগুলি পরিচালনা করতে প্রোগ্রামগুলি লিখুন, কারণ এটি সর্বজনীন ইন্টারফেস।
ইউএনআইএক্স দর্শনের আরও কিছু পাওয়া যাবে ইএসরেমন্ডের "দ্য আর্ট অফ ইউনিক্স প্রোগ্রামিং" তে।
এখানে কিছু দুর্দান্ত উত্তর রয়েছে। যাইহোক, আমার মনে হয় যে একটি জিনিস বাকি রয়েছে যা হ'ল * নিক্স অন্যান্য অপারেটিং সিস্টেমগুলি, বিশেষত মাইক্রোসফ্ট উইন্ডোজ থেকে কীভাবে আলাদা হয়।
ইতিমধ্যে "একটি কাজ করুন, এটি ভাল করুন" এর উপরে বর্ণিত মৌলিক ধারণাটি * নিক্স অপারেটিং সিস্টেমগুলির মধ্যে এতটাই কেন্দ্রীয় যে এটি কখনও কখনও উপেক্ষা করা যায়। তবুও এটি এই নকশার দর্শন যা লিনাক্সকে এত নমনীয় এবং শক্তিশালী করে তোলে।
উদাহরণস্বরূপ, এমএস উইন্ডোজের গ্রাফিক্স ইউজার ইন্টারফেস (জিইউআই) ওএসের সাথে জড়িত। জিইউআই ছাড়া এমএস অপারেটিং সিস্টেম ইনস্টল করা কার্যত অসম্ভব। লিনাক্সে, আপনি সহজেই এমন একটি সার্ভার বা এমবেডেড সিস্টেম আনতে পারেন যার কোনও গ্রাফিক উপাদান নেই। এটি সম্পূর্ণ কমান্ড লাইন চালিত হতে পারে এবং এখনও একটি পূর্ণ বৈশিষ্ট্যযুক্ত সার্ভার হতে পারে।
লিনাক্সের মডিউলার ডিজাইনটি কোনও সিস্টেম প্রশাসককে কোনও পরিষেবা নামিয়ে আনতে, এটি আপগ্রেড করতে এবং অপারেটিং সিস্টেমটিকে রিবুট না করে এটিকে ফিরিয়ে আনতে সহায়তা করে। প্রকৃতপক্ষে লিনাক্স অপারেটিং সিস্টেমটি পুনরায় বুট করার সময় কেবল যখন কার্নেল নিজেই পরিবর্তন বা আপগ্রেড করা হয়।
উদাহরণস্বরূপ, আপনি লিনাক্সে একটি নতুন উইন্ডোজ ম্যানেজার (জিনোম, কেডি, যে কোনও) ইনস্টল করতে পারেন এবং সিস্টেমে বর্তমানে লগ ইন করা ব্যবহারকারী কখনও সচেতন হতে পারে না।
উইন্ডোজে, প্রায়শই সিস্টেমে সহজতম পরিবর্তনের জন্য একটি রিবুট প্রয়োজন, যদিও কখনও কখনও এটি প্রকৃত প্রযুক্তিগত প্রয়োজনের চেয়ে সুরক্ষার সমস্যা of আমি জমা দেব যে এটি এমএস অপারেটিং সিস্টেমের অন্যতম প্রাথমিক ত্রুটি। লিনাক্সে আপনি অনেকগুলি ড্রাইভার মডিউল আপগ্রেড করতে পারেন এবং ব্যবহারকারীদের উপর খুব কম প্রভাব ফেলতে পারেন। উইন্ডোজ আপনাকে কেবল নতুন অ্যাপ্লিকেশন ইনস্টল করলে পুরো বক্সটি পুনরায় বুট করার দরকার হতে পারে।
এই মডুলার ডিজাইনটি লিনাক্সকে অসাধারণ নমনীয়তা দেয়। প্রতিটি লিনাক্স সিস্টেমটি আপনার প্রয়োজনীয় নির্দিষ্ট কাজের জন্য উপযুক্ত হতে পারে, যতটা সম্ভব সংস্থানের কম সংস্থান রয়েছে head উইন্ডোজের সাহায্যে আপনি সাধারণ এইচটিটিপি সার্ভার চালানোর জন্য জিইউআই ইন্টারফেসটি বন্ধ করতে পারবেন না। একটি মেমরির পদচিহ্ন রয়েছে যা উইন্ডোজ ধরে নেয় যা একটি বাধা তৈরি করে যার নীচে আপনার হার্ডওয়্যার যেতে পারে না। এটি একটি প্রাথমিক কারণ যা লিনাক্স অনেকগুলি মোবাইল এবং এমবেডেড অ্যাপ্লিকেশনগুলির জন্য পছন্দসই ওএসে পরিণত হয়েছে।
আমি আরও এগিয়ে যেতে পারতাম, তবে আমি আশা করি যে এই উদাহরণগুলি লিনাক্স কেন এত জনপ্রিয় হয়ে উঠেছে, এবং কীভাবে এটি অন্যান্য ওএস থেকে সত্যই আলাদা হয় তা ব্যাখ্যা করতে সহায়তা করবে।
"ইউনিক্স অপারেটিং সিস্টেমের ডিজাইন" পড়ার জন্য ভাল বই হবে।
আমি ইউনিক্স এনভায়রনমেন্ট 2e এ সিঙ্গেল ইউনিক্স স্ট্যান্ডার্ড (এসইএস) এপিআই এবং পসিক্স সম্পর্কে আরও অনেক কিছু জানতে পড়াতে পরামর্শ দেব, যা আপনাকে ইউনিক্স ইউনিক্স কী করে এবং কী কী উপাদানগুলি কাজ করে এবং কীভাবে একসাথে কাজ করে সে সম্পর্কে একটি ধারণা দেবে।
তবে এটি খুব সি ভারী বই এবং একটি রেফারেন্স ম্যানুয়াল। যদি আপনার অনিদ্রার সমস্যা হয় তবে এটি কেবল আপনার সাথে বিছানায় নিয়ে যান। আপনি যদি ইউনিক্স সি প্রোগ্রামার হন তবে অবশ্যই এটি থাকা উচিত।
আগের দুটি বইয়ের চেতনায় আমি সুপারিশও করব
এম ক্যারিস্কের লিনাক্স প্রোগ্রামিং ইন্টারফেস
ইউএনআইএক্স / লিনাক্স সিস্টেম প্রোগ্রামিংয়ের বিষয়টিকে লক্ষ্য করে, যা প্রোগ্রামার / ব্যবহারকারীর দৃষ্টিকোণ থেকে লিনাক্স এবং আরও সাধারণভাবে ইউএনআইএক্স সিস্টেমগুলি কীভাবে কাজ করে সে সম্পর্কে প্রচুর বিশদ তথ্য প্রকাশ করে। এটি vdboor এর উত্তরে উল্লিখিত বেশিরভাগ বুলেটের উপর গভীরভাবে বিবরণ দেয় এবং মৌলিক ইউনিক্স ধারণাগুলি এবং তাদের নিম্নরূপগুলির অনুভূতি / চিত্র পেতে একটি বোধগম্য ও পঠনযোগ্য পদ্ধতিতে যথেষ্ট বিশদ প্রকাশ করে।