সিস্টেম প্রোগ্রামিং ঠিক কি?


26

সিস্টেম প্রোগ্রামিং বলতে কী বোঝায় তা আমি কখনই বুঝতে পারি নি। প্রদত্ত সাধারণ সংজ্ঞাটি হ'ল "... ওএসের কাছাকাছি কিছু করা বা ওএস বৈশিষ্ট্যগুলি প্রসারিত করা ..."।

উইন্ডোজ এপিআই ব্যবহার করে কিছু লাইব্রেরির পরিবর্তে ফাইল আই / ও বলার চেয়ে কী এটি সিস্টেম প্রোগ্রামিং করে? অ্যান্ড্রয়েড ওএস সিস্টেম প্রোগ্রামিং লিখছিলাম? যদি আমি এমন কোনও কিছু লিখি যা অ্যান্ড্রয়েডে কনসোলের মতো অ্যাপ্লিকেশনটির মাধ্যমে লিনাক্স কার্নেলটি প্রকাশ করে তবে আমি কি সিস্টেম প্রোগ্রামিং করছি? আমি যদি কোনও ওয়াশিং মেশিন নিয়ন্ত্রণ করতে সফটওয়্যার লিখছি আমি কি সিস্টেম প্রোগ্রামিং লিখছি?

আমি প্রোগ্রামিংয়ের একটি শিক্ষানবিস এবং এটি আমাকে শেষ পর্যন্ত বিভ্রান্ত করছে। এটি "অ্যাপ্লিকেশন প্রোগ্রামিং" এর সাথে বিপরীতে ব্যাখ্যা করুন।


2
এই সংজ্ঞাটি পরিবর্তিত হয়েছে এবং সিস্টেম প্রোগ্রামাররা নিজেরাই আজ একটি অনন্য সংজ্ঞা সম্পর্কে নিশ্চিত বলে মনে হয় না। এই সমস্যাটি সাধারণত তখন আসে যখন লোকেরা X সিস্টেম সিস্টেমের জন্য সুবিধাজনক কিনা তা নিয়ে বিতর্ক করে ...
Denys S Denguret

@ ডেনিস সাগুরেট - বৈদ্যুতিন যদি কেউ "সিস্টেম প্রোগ্রামিং" কী শুরু করতে শুরু করে তাতে সম্মত না হতে পারে।
জন

উত্তর:


19

আমি ব্যক্তিগতভাবে উইকিপিডিয়া থেকে সংজ্ঞাটি পছন্দ করি :

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


12

সেই প্রশ্নটি সিদ্ধান্ত নেওয়ার জন্য অনুশীলন পেতে নিজেকে জিজ্ঞাসা করতে পারেন এমন অনেকগুলি প্রশ্ন রয়েছে।

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

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


4

সংক্ষেপে: রাইটিং সফ্টওয়্যার যা কোনও ওএসের কার্যকারিতা প্রসারিত বা বাড়ায়, যেমন ড্রাইভার, সিস্টেম ইউটিলিটিগুলি ওএস বা এমনকি ব্র্যান্ড নিউ ওএস'গুলিতে আপডেট করে।

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


3

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

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


1

সাধারণত, এটি "নিম্ন স্তরের স্টাফগুলিকে বোঝায় যে প্রযুক্তিবিহীন শেষ ব্যবহারকারীরা জানেন না যে তারা বিদ্যমান জানেন না বা খুব স্পষ্টভাবে জানেন না যে তারা ব্যবহার করছেন বা কী করছেন"।

কিছু উদাহরণ যা প্রায়শই সিস্টেম প্রোগ্রামিং হিসাবে বিবেচিত হবে:

  • অপারেটিং সিস্টেম এবং ড্রাইভার
  • কম্পাইলার
  • অনুকরণকারী এবং ভার্চুয়ালাইজেশন
  • ডিস্ট্রিবিউশন তৈরি, অর্থাৎ ইউজারল্যান্ড ইমেজ তৈরি করা।

    এর মধ্যে উল্লেখযোগ্যভাবে সি স্ট্যান্ডার্ড লাইব্রেরি, আরম্ভ সিস্টেম এবং শেলের মতো মৌলিক ইউজারল্যান্ড উপাদান নির্বাচন করা জড়িত।

সিস্টেম প্রোগ্রামিং প্রায়শই সি বা অ্যাসেমব্লির মতো স্বয়ংক্রিয় আবর্জনা সংগ্রহ ছাড়াই নিম্ন সংকলিত স্তরের ভাষায় করা হয় এবং প্রায়শই পসিক্স সি ইন্টারফেসের মাধ্যমে কম সাধারণ সিস্টেমে কল পাওয়া যায় ।

আমি টিউটোরিয়ালে একটি হাত বজায় রাখছি যা এখানে বেশ কয়েকটি সিস্টেম প্রোগ্রামিংয়ের বিষয়গুলি কভার করে ।


0

এটি সংজ্ঞায়িত করার সময় আমি কোনও প্রযুক্তিগত বিবরণ পুরোপুরি পরিষ্কার করব। তাহলে এটি সহজ হয়ে যায়।

একটি অ্যাপ্লিকেশন ব্যবহারকারীকে কিছু প্রযুক্তি ব্যবহারের জন্য দরকারী কিছু করতে দেয়। সুতরাং অ্যাপ্লিকেশন প্রোগ্রামিংটি সরাসরি কোনও ব্যবহারকারীকে বৈশিষ্ট্য সরবরাহ করার লক্ষ্যে লক্ষ্যযুক্ত।

অন্যদিকে সিস্টেম প্রোগ্রামিং অ্যাপ্লিকেশন প্রোগ্রামিংকে সম্ভব করার জন্য ভিত্তি তৈরি করবে। এটি ব্যবহারকারীর চেয়ে অ্যাপ্লিকেশন প্রোগ্রামারকে বৈশিষ্ট্যগুলি সরবরাহ করে।

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


-3

সংক্ষেপে, অ্যাপ্লিকেশন প্রোগ্রামিংয়ের সাথে তুলনা করার সময় সিস্টেম প্রোগ্রামিংটি হ'ল এসপি হার্ডওয়্যার রিসোর্সগুলির সাথে কাজ করতে ওএস সফ্টওয়্যার পরিচালনা করে এবং এপি শেষ ব্যবহারকারীদের কার্যকলাপ পরিচালনা করে।


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