প্রোগ্রামিং ভাষা তুলনা
সি: দ্য ল্যাঙ্গুয়েজ এলিথিং এভরিথিং অন
C হল অন্য সব কিছুর নীচের ভাষা: কার্নেল, ড্রাইভার, আপনার পাইথন সার্ভারগুলি যে ইন্টারপ্রেটারগুলি চালায়, আপনার ওয়েবসাইটগুলির পিছনে ডাটাবেস ইঞ্জিন৷ অপ্স টিমের জন্য, C হল এমন কিছু যা আপনি প্রতিদিন লেখেন এবং আরও কিছু যা আপনাকে অবশ্যই সাবলীলভাবে পড়তে হবে, কারণ CVE লেখা, স্ট্যাক ট্রেস এবং কোর ডাম্পগুলি C এর শব্দভাণ্ডারে তাদের ব্যবসা পরিচালনা করে। এটি আমাদের C-vs-C++ তুলনার পিছনে উত্সর্গীকৃত নিবন্ধ।
মূল বিষয়সমূহ
- মডেলটি সৎ: ম্যালোক/ফ্রি এর মাধ্যমে ম্যানুয়াল মেমরি, পয়েন্টারগুলিতে গাণিতিক, এবং বাগ বিভাগের পরিবর্তে একটি বিশেষ-স্তরের সত্য হিসাবে অনির্ধারিত আচরণ; যে শৃঙ্খলা সিকে দ্রুত করে তোলে একই শৃঙ্খলা যা অসাবধান সিকে ব্যয়বহুল করে তোলে।
- অনির্ধারিত আচরণ হল ঘূর্ণায়মান বিপদ: সীমার বাইরে সূচীকরণ, স্বাক্ষরিত ওভারফ্লো, ব্যবহারের পরে-মুক্ত ক্লাস যা মেমরি-নিরাপত্তা CVE পরিবারগুলির সাথে সরাসরি সম্পর্কিত (দশকের দশকের CVE ডেটাতে প্রায় এক এক করে প্লাগ করা হয়েছে); fuzzers (AFL-libFuzzer-শ্রেণীর সরঞ্জাম) এবং স্যানিটাইজার অনুমানকে রিপ্রো অবস্থায় পরিণত করে।
- ডিবাগ টুলিং বিশ্বমানের এবং জানার যোগ্য: gdb, valgrind/memcheck, Address Sanitizer এবং এর আত্মীয় (UBSan, TSan) পরীক্ষার সময় বাগগুলির ক্লাস ধরতে পারে যা উত্পাদন স্ট্যাকের ট্রেসগুলি কেবল ইঙ্গিত করে; এই সংমিশ্রণটি কেন 'সিআই-এ স্যানিটাইজার দিয়ে তৈরি করুন' আমরা কাজ করি এমন প্রতিটি সি-হেভি টিমের একটি ঘরের নিয়ম।
- সি রিডিং একটি অপস দক্ষতা: CVE ঘোষণার রেফারেন্স ফাংশন এবং প্রকার, সার্ভিস সেগফল্ট জিডিবি শব্দভান্ডারে ব্যাকট্রেস তৈরি করে এবং পোর্ট-ট্রি-ক্লাস সোর্স থেকে প্যাকেজ তৈরি করে কম্পাইলার সতর্কতা দেখায় যা জাঙ্ক থেকে গুণমানকে আলাদা করে; পাঠক সুবিধা বছরের জন্য শান্তভাবে যৌগ.
- এবিআই হল সংযোগকারী টিস্যু: প্রতিটি 'বিদেশী ফাংশন ইন্টারফেস' (পাইথনের টাইপস, রাস্টের এফএফআই, গো-এর সিজিও) সি-আকৃতির কারণ সি লাইব্রেরির সীমানার ভাষা ফ্রাঙ্কা হয়ে উঠেছে; যে ভূমিকা বিকাশকারী ফ্যাশন নির্বিশেষে সি প্রাসঙ্গিক রাখে।
- যখন C এখনও লেখার জন্য সঠিক টুল: কার্নেল, ড্রাইভার, এমবেডেড ফার্মওয়্যার, এবং সবচেয়ে ভিতরের লুপ যেখানে ক্যাশে আচরণ প্রাধান্য পায়; অন্যত্র ভাষার তুলনা (নিরাপদ সি উপাদানগুলিকে নিরাপদে পুনর্লিখনের জন্য মরিচা, অপস টুলিংয়ের জন্য যান) সৎ আধুনিক পছন্দগুলিকে কভার করে।
মাঠের নোট
যে সি বাগটি আমাদের স্যানিটাইজারকে প্রাতিষ্ঠানিক করে তুলেছে তা স্ট্যাক-ট্রেস লোককাহিনীর মাধ্যমে খুঁজে পেতে তিন সপ্তাহ সময় নিয়েছে এবং অ্যাড্রেস স্যানিটাইজারের অধীনে তিন মিনিট সময় নিয়েছে: কম্পাইলার ইকোসিস্টেম ইতিমধ্যেই জানে যে জিনিসগুলি মানুষের সকাল 2 টায় স্ক্যান করা উচিত নয়।
সচরাচর জিজ্ঞাসা
আমরা সি নতুন পরিকাঠামো লিখতে হবে?
প্রায় সম্পূর্ণরূপে কখনই নয়: যেখানে সর্বাধিক নিয়ন্ত্রণের বিষয়, কার্নেল এবং ড্রাইভারগুলি সি থাকে; পরিষেবা এবং টুলিং আজ পাইথন/গো/মরিচা স্থাপন; সি-কোর-সহ-নিরাপদ-প্রান্তগুলি হল বাস্তবসম্মত আধুনিক আকৃতি।
এত CVE-এর জন্য কেন C-কে দায়ী করা হয়?
কারণ মেমরি-নিরাপত্তা বাগগুলি ঠিক সেখানেই বাস করে যেখানে UB বাস করে এবং কারণ বিশ্বের সমালোচনামূলক কোডের একটি বিশাল অংশ হল সি। ম্যানেজাররা 'প্রোঅ্যাকটিভ ডেভেলপমেন্ট' অনুশীলন অনুসারে নিরাপদ মেমরি টুল, ফাজিং এবং লক্ষ্যযুক্ত পুনর্লিখনের মাধ্যমে প্রশমিত করে।
কিভাবে প্রশাসকরা কার্যকরভাবে সি পড়তে শিখতে পারে?
বাস্তব পরিষেবার উত্স বাছাই করুন: ছোট কোডবেস সহ প্যাকেজগুলি (কার্ল একটি ভাল শুরু), সংশোধনগুলির বিরুদ্ধে CVE রিপোর্টগুলি পড়ুন এবং একটি পরীক্ষা বাক্সে জিডিবি দিয়ে অনুশীলন করুন৷ সাবলীলতা হল কয়েক সপ্তাহান্তে এবং বাস্তব শিল্পকর্ম।
আধুনিক C (C17/C23) গল্প পরিবর্তন করার জন্য যথেষ্ট ভিন্ন?
ক্রমবর্ধমান: মান সাবধানে বিকশিত হয়, কিন্তু মেমরি মডেল এবং ইউবি ল্যান্ডস্কেপ দীর্ঘস্থায়ী বাস্তবতা থেকে যায়; টুলিং, স্ট্যান্ডার্ড মন্থন নয়, যেখানে নিরাপত্তা অগ্রগতি ঘটেছে।
প্রোগ্রামিং ভাষা তুলনা নিয়ে Kinetikatech কীভাবে সাহায্য করে
সত্যি বলতে, বেশিরভাগ দল আমাদের কাছে আসে নিজেরা চেষ্টা করার পর: সিস্টেমের কাজ, স্ক্রিপ্টিং এবং পরিষেবাগুলির জন্য ভাষাগুলি, উত্পাদনে আসলে কী গুরুত্বপূর্ণ তার তুলনায়: সুরক্ষা গ্যারান্টি, কাঁচা গতি, আপনি কাকে নিয়োগ করতে পারেন এবং এর ফলে পরিষেবাগুলি স্থাপন এবং প্যাচ করা কতটা বেদনাদায়ক৷ আমাদের সার্ভার ব্যবস্থাপনা and ওয়েবসাইট রক্ষণাবেক্ষণ সেবা তাই আছে, যাতে আপনাকে প্রোগ্রামিং ভাষা তুলনা শিখতে না হয় কষ্ট করে। সেটআপ, নজরদারি আর ভোর তিনটার হঠাৎ আসা ব্যাপার — সব আমাদের ঘাড়ে।