কম্পিউটিংয়ের স্তরগুলি বোঝা


9

দুঃখিত, আমার বিভ্রান্ত প্রশ্নের জন্য আমি কিছু পয়েন্টার খুঁজছি।

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

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

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

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



আক্রমণ এবং শোষণ সব স্তরে ঘটতে পারে। যদি আমি কোনও দুর্বল পিএইচপি স্ক্রিপ্টটি লিখি তবে অন্তর্নিহিত ওএস নির্বিশেষে এটি শোষণ করা যেতে পারে, কেবল হার্ডওয়্যার ছেড়ে দেওয়া হোক।
টিডামার্স

1
বিষয়টিতে একটি দুর্দান্ত বইটি পাওয়া গেছে: কম্পিউটারের সিস্টেমগুলির উপাদানসমূহ: প্রথম নীতিমালা নোয়াম নিসান, শিমন শোকেন থেকে আধুনিক কম্পিউটার তৈরি করা। এই পদ্ধতির বিষয়ে মিঃ
শোকেনের

ডসের দিনগুলিতে, ভিজিএ গ্রাফিক্সের রুটিনগুলির জন্য অ্যাসেম্বলি ভাষা ব্যবহার করা কোনও কার্যকারিতা পাওয়ার একমাত্র উপায় ছিল তবে আমি মনে করি আমি কী করছি তা আমি জানতাম না! তবে গত 10 বছর বা তার বেশি ক্যারিয়ারে আমাকে এত কম কিছু দেখার দরকার নেই। এবং আমি এখন এই স্তরের কী ঘটে যায় তা সম্পর্কে বেশিরভাগই অজ্ঞ am খুব কমই আমার নিজের স্মৃতিশক্তি বরাদ্দ বা পরিষ্কার করতে হবে। আমার সন্দেহ হয় আমার দলে অনেকেই জানেন না স্ট্যাক কী! অনেক ক্ষেত্রে এটি এমন স্তরের কোড করা কার্যকর হয় না, চাকাটিকে পুনরায় উদ্ভাবন করে speak বরং আমরা দৈত্যদের কাঁধে দাঁড়িয়ে।
গ্যাভিন হাডেন

উত্তর:


19

এই বিষয়গুলি সম্পর্কে চিন্তাভাবনার মূল শব্দটি বিমূর্ততা

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

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

সুরক্ষার বিষয়টি একটি আকর্ষণীয় বিষয়, কারণ বিমূর্তকরণের ত্রুটি এবং 'ফাঁস' প্রায়শই কোনও সিস্টেমের অখণ্ডতা লঙ্ঘনের জন্য কাজে লাগানো যেতে পারে। যখন একটি এপিআই পোস্ট করে যে আপনি পদ্ধতিগুলিকে এ, বি এবং সি কল করতে পারেন তবে কেবল এক্স শর্তটি ধরে রাখলে শর্তটি ভুলে যাওয়া এবং শর্ত লঙ্ঘিত হওয়ার পরে ঘটে যাওয়া পরিণতির জন্য অপ্রস্তুত হওয়া সহজ। উদাহরণস্বরূপ, ক্লাসিকাল বাফার ওভারফ্লো এই সত্যটিকে কাজে লাগায় যে আপনি মেমরির এই নির্দিষ্ট ব্লকটি বরাদ্দ না করা হলে মেমরি কোষগুলিতে লেখা অপরিজ্ঞিত আচরণ দেয় s এপিআই শুধু তাই গ্যারান্টী বা নিশ্চয়তা দিচ্ছে কিছুফলস্বরূপ ঘটবে, তবে বাস্তবে ফলাফলটি পরবর্তী নিম্ন স্তরের সিস্টেমের বিবরণ দ্বারা সংজ্ঞায়িত করা হয় - যা আমরা ইচ্ছাকৃতভাবে ভুলে গিয়েছি! যতক্ষণ আমরা শর্তটি পূরণ করি ততক্ষণ এটির কোনও গুরুত্ব নেই, তবে যদি তা না হয় তবে আক্রমণকারী যে উভয় স্তরকে ঘনিষ্ঠভাবে বুঝতে পারে সে সাধারণত পুরো সিস্টেমের আচরণকে পছন্দসই হিসাবে নির্দেশনা দিতে পারে এবং খারাপ জিনিস ঘটায়।

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

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


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

... জটিলতা সম্পর্কে খুব ভাল পয়েন্ট। যদি কেবলমাত্র মেশিনগুলিই আমাদের মেশিনগুলি ডিজাইন করতে পারে তবে এটি কোথায় বাড়ে? যদি এআই লোকেরা এআইদের আরও চৌকস এআই তৈরির কথা বলছে তবে আমরা সম্ভবত সেখানে রয়েছি। ;)
RParadox
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.