বন্ধুরা সবাই কেমন আছেন? আশা করছি আপনারা সকলেই আল্লাহর রহমতে অনেক ভালো আছেন। বরাবরের মতো আজও নতুন একটি টিউন নিয়ে হাজির হয়েছি আপনাদের সামনে। যেখানে আপনি প্রতিদিনের মত জানতে পারবেন নতুন সব বিষয় সম্পর্কে।
আপনি হয়তোবা অনেক জায়গায় শুনে থাকবেন ওপেনসোর্স সফটওয়্যার সম্পর্কে। যেখানে বলা থাকে এটি একটি ওপেনসোর্স সফটওয়্যার। যেমনভাবে আমরা যে অ্যান্ড্রয়েড ফোন ব্যবহার করি এখানে বলা থাকে, অ্যান্ড্রয়েড একটি ওপেনসোর্স সফটওয়্যার অথবা লিনাক্স একটি ওপেনসোর্স সফটওয়্যার। তো, এবার আমাদের মাথায় এই প্রশ্ন আসতেই পারে যে ওপেনসোর্স সফটওয়্যার আসলে কি?
আমরা যখন ইউটিউবে কিংবা কোন ব্লগে গিয়ে কোন কিছু দেখি, তখন কথার ফাঁকে কোন অ্যাপ সম্বন্ধে রিভিউ করার মাঝে কিংবা অন্য কোন বিষয়ে কথা বলার সময় সেখানে বলা হয় আমাদের ব্যবহৃত অ্যান্ড্রয়েড একটি ওপেনসোর্স সফটওয়্যার। যেকোনো একটি অ্যাপ সম্বন্ধে হ্যাকিংয়ের বিষয় কিংবা ভাইরাস ও ম্যালওয়্যার এর আলোচনা আসলে এই কথাটি শোনা যায়। যেখানে আমরা এই ওপেনসোর্স সফটওয়্যার এর নাম টি শুনতে শুনতে অনেক বিরক্তই হয়ে গিয়েছি। কিন্তু কি এই ওপেনসোর্স সফটওয়্যার, সেটি হয়তো বা আমাদের অনেকেরই এখনো অজানা। আপনিও যদি এখনো না জেনে থাকেন যে ওপেনসোর্স সফটওয়্যার কি? তবে আজকের টিউনটি আপনার জন্য।
তবে চলুন এবার আলোচনা করা যাক যে, ওপেনসোর্স সফটওয়্যার কি এবং এর সুবিধা অসুবিধা গুলো। এজন্য সম্পূর্ণ টিউনটি অবশ্যই মনোযোগ সহকারে দেখবেন। এছাড়া আপনাকে আরও একটি কথা বলে নিচ্ছি, আপনি যদি এ পর্যন্ত আমাকে ফলো করে না রাখেন তবে এখনই ফলো করে রাখুন। কেননা আমি নিত্যনতুন এরকম বিজ্ঞান ও প্রযুক্তি ভিত্তিক বিভিন্ন টিউন নিয়ে আপনাদের সামনে হাজির হয়। আর আপনি যদি আমাকে কল করে রাখেন তবে টেকটিউনস এর হোমপেজে এসে "Follow টিউনস" থেকে খুব সহজেই আমার টিউন গুলো খুঁজে নিতে পারবেন।
বন্ধুরা এই টিউনের মাধ্যমে আপনি জানতে পারবেন যে কি এই ওপেনসোর্স সফটওয়্যার এবং সাধারণ সফটওয়্যার থেকে এটি কোন বিষয়ে আলাদা। আর কেনইবা বেশিরভাগ লোক ওপেনসোর্স সফটওয়্যার ব্যবহার করতে বেশি পছন্দ করে। এসব সকল প্রশ্নের উত্তর আমি এই টিউনে দিতে চলেছি। এজন্য অবশ্যই সম্পূর্ণ টিউনটি দেখুন। চলুন তবে শুরু করি।
ওপেন সোর্স সফটওয়্যার সম্বন্ধে জানার আগে আমাদের প্রথমে জানা উচিত, এই ওপেনসোর্স কথাটির অর্থ কি। যেখানে Open শব্দের অর্থ "খোলা" এবং Source শব্দের অর্থ "উৎস"। ওপেন সোর্স কথাটির মধ্য দিয়ে কোন একটি বস্তুর যে উৎস রয়েছে সেটিই হচ্ছে "খোলা"। এখানে "খোলা" এর অর্থ হচ্ছে, এর সঙ্গে আপনি যা ইচ্ছা তাই করতে পারবেন। যেখানে আপনাকে কেউ কোনো বাধা দেবার থাকবে না।
এবার চলে আসে যে, ওপেনসোর্স সফটওয়্যার তাহলে আসলে কি? তো দেখুন, আপনাকে যদি প্রশ্ন করা হয় যে একটি সফটওয়্যার এর উৎস বা সোর্স কোথায়, তবে আপনি কি বলবেন? নিশ্চয় এক্ষেত্রে উত্তর হবে যে কোডিং। একজন প্রোগ্রামার কোডিং করেই তো একটি সফটওয়্যার কিংবা একটি প্রোগ্রাম তৈরি করে। আপনি যদি একটি সফটওয়্যার কে Compiler করার আগে দেখেন তবে দেখতে পাবেন শুধু লাইনের পর লাইন কোড আর কোড।
এবার এখানে আপনি লক্ষ্য করবেন যে, একজন প্রোগ্রামার কিন্তু বিভিন্ন ভাষাতে সেই সফটওয়্যার বা প্রোগ্রামটি তৈরি করতে পারে। যেগুলোর মধ্যে, প্রোগ্রামিং ভাষা C+, Java, Python ইত্যাদি যেকোন ল্যাংগুয়েজে প্রোগ্রাম করতে পারে। কিন্তু কম্পিউটার এসব ভাষা গুলো কিন্তু বুঝতে পারেনা। এই কোডগুলো মূলত মানুষের বোধগম্য, অর্থাৎ শুধুমাত্র মানুষ এগুলোকে পড়তে পারে; কম্পিউটার এগুলোকে পড়তে পারে না। যাতে কম্পিউটার এসব কোড গুলোকে পড়তে পারে এজন্য এগুলোকে Compiler করা হয়, অর্থাৎ কম্পিউটারের ভাষা তে 0 এবং 1 এ রূপান্তর করা হয়।
আমরা যেসব ডিজিটাল কনটেন্ট গুলোই দেখতে পাই না কেন, এগুলোর সবই জমা থাকে ০ এবং ১ হয়ে। আর এখানে এটা বলা যায় যে, একটি সফটওয়্যার এর উৎস হচ্ছে কোড। কেননা কোড দিয়েই সেই সফটওয়্যারটি তৈরি হয়েছে এবং সেই কোড গুলো কে Compiler করেই সফটওয়্যারটি কে বানানো হয়েছে। এখানে যে এই কোড গুলো রয়েছে এগুলোকে বলা হবে তবে সেই সফটওয়্যারটির সোর্স। অর্থাৎ, সেসব কোড গুলো দিয়ে এই সফটওয়্যারটি তৈরি।
আর ওপেনসোর্স সফটওয়্যার দিয়ে এটা বোঝানো হয় সেই অ্যাপ এর যে সোর্স কোড গুলো রয়েছে সেগুলো সকলের জন্য Available রয়েছে, অর্থাৎ সেগুলো খোলা। "খোলা" মানে, সেসব কোডগুলোর সঙ্গে আপনি যা ইচ্ছা তাই করতে পারবেন। একজন প্রোগ্রামার যেকোনো কাজেই এসব কোড গুলোকে ব্যবহার করতে পারবে, যেখানে এগুলো ব্যবহার করা নিয়ে কোনো বাধ্যবাধকতা নেই। আপনি ইচ্ছা করলে এগুলো থেকে কিছু শিখতে পারবেন কিংবা এগুলোকে নিজের মতো করে কাস্টমাইজ করতে পারবেন। যেখানে সেই সফটওয়্যারটির কোড গুলোকে ভাঙ্গিয়ে তার মধ্যে আপনি অন্য কোড যুক্ত করে সেটাকে আরও উন্নত করতে পারবেন।
অর্থাৎ কোন একটি সফটওয়্যার যদি ওপেনসোর্স হয়, তবে সেই সফটওয়্যারটি একজন প্রোগ্রামার নিজের মতো করে মডিফাই করতে পারবে বা আবার কোডিং করতে পারবে। ওপেনসোর্স সফটওয়্যার এর কোড গুলো কে যে কেউ নিয়ে অন্য কোন সফটওয়্যার বানানোর কাজে ব্যবহার করতে পারবে বা যে কেউ সে গুলোকে যেকোনোভাবে বিতরণ করতে পারবে। অর্থাৎ, আপনি সেই সোর্সকোড এর সঙ্গে যা ইচ্ছা তাই করতে পারবেন। যেখানে আপনাকে কেউ বাধা দেবার থাকবে না। আর এটিই হচ্ছে মূলত ওপেনসোর্স সফটওয়্যার।
যে সফটওয়্যার এর কোড গুলো সবাই দেখতে পারে, সেটিকেই বলা হয় ওপেনসোর্স সফটওয়্যার। এখন প্রশ্ন হল যে ওপেনসোর্স সফটওয়্যার গুলো বাকি সব সফটওয়্যার এর চাইতে কোন ক্ষেত্রে আলাদা। যেখানে প্রত্যেক টি সফটওয়্যার তৈরি করা হয় কোডিং এর মাধ্যমেই, সেখানে ওপেনসোর্স সফটওয়্যার গুলো কেন আলাদা এবং এদের বৈশিষ্ট্য কি রকম।
তো দেখুন, একটি সফটওয়্যার এর দুই ধরনের হতে পারে। যেটির একটি হচ্ছে Open source সফটওয়্যার এবং যেটির কোডগুলো Publicly available থাকে; আর না হলে সেটি Closed source এবং যেটির কোডগুলো Publicly available হয়না। এক্ষেত্রে Closed source সফটওয়্যারটি যে ব্যক্তি বা যে প্রতিষ্ঠানটি বানিয়েছে শুধুমাত্র সেই ব্যক্তি বা প্রতিষ্ঠান সেই সফটওয়্যারটির কোডগুলো দেখতে পারবে কিংবা পরিবর্তন করতে পারবে। এখন আমি আপনাদেরকে যদি কিছু ক্লোজ সোর্স সফটওয়্যার এর উদাহরণ দেই তবে আমরা বেশিরভাগ সময়ই যে সমস্ত শব্দগুলো ব্যবহার করি সেগুলোর সমস্তই Closed source সফটওয়্যার হয়ে থাকে। আমরা প্রতিদিন যে এডোবি এর সফটওয়্যার গুলো সেগুলোও ক্লোজ সফটওয়্যার; যেমনঃ Adobe Photoshop, Adobe after effect, Adobe premiere pro, Adobe illustrator ইত্যাদি এই সমস্ত সফটওয়্যার গুলো Closed source সফটওয়্যার।
কিংবা আমরা Microsoft-এর যেসব অ্যাপ্লিকেশনগুলো ব্যবহার করি; যেমনঃ Microsoft office word, Microsoft office Excel, Microsoft PowerPoint ইত্যাদি এই সমস্ত অ্যাপ্লিকেশন গুলোর সমস্ত গুলোই Closed source সফটওয়্যার। এছাড়া আমাদের ব্যবহৃত অনেক অ্যাপ্লিকেশন রয়েছে যেগুলো Closed source সফটওয়্যার। তবে আজকের টিউনটি আমি শুধুমাত্র ওপেনসোর্স সফটওয়্যার নিয়ে আলোচনা করছি, আর এ কারণেই আমি চলে যাচ্ছি আবার Open source software-এর আলোচনায়। যেখানে আপনাকে Closed source সফটওয়্যার গুলো সম্পর্কে বলতে হবে না। বরং, ওপেনসোর্স সফটওয়্যার সম্বন্ধে আলোচনা করলেই আপনি ক্লোজ সোর্স সফটওয়্যার সম্বন্ধে জানতে।
ওপেনসোর্স সফটওয়্যার বলতে আমরা সবার প্রথমে যেটিকে বিবেচনায় রাখি সেটি হচ্ছে আমাদের ব্যবহৃত অপারেটিং সিস্টেম "অ্যান্ড্রয়েড"। আমরা ইদানিং অনেক জায়গায় শুনেছি যে, অ্যান্ড্রয়েড একটি ওপেনসোর্স সফটওয়্যার। অর্থাৎ, অ্যান্ড্রয়েড অপারেটিং সিস্টেম এর যে সমস্ত কোডগুলো রয়েছে সেগুলোর সমস্তই Publicly available এবং এগুলোকে যে কেউ চাইলেই পড়তে পারবে এবং Edit করতে পারবে। এছাড়া আমাদের ব্যবহৃত অ্যান্ড্রয়েড এর পাশাপাশি লিনাক্সও একটি ওপেনসোর্স সফটওয়্যার। ওপেনসোর্স সফটওয়্যার এবং ক্লোজ সোর্স সফটওয়্যার এর মধ্যে যে আরও একটি পার্থক্য রয়েছে তা হচ্ছে Licence agreement।
আপনি যখন কোন Closed source সফটওয়্যার ইন্সটল করবেন তখন সেখানে আপনাকে একটি Licence agreement-এ Agree করতে হবে। এখানে যে ব্যক্তি কিংবা প্রতিষ্ঠানটি সেই সফটওয়ারটি তৈরি করেছে, সে আপনাকে কিছু নিয়মাবলী দেখাতে পারে। অর্থাৎ, আপনি সেই সফটওয়্যারটি কোন কোন কাজে কিভাবে ব্যবহার করতে পারবেন এ সমস্ত কিছু তারাই সিলেক্ট করে দিবে। আপনি তাদের নিয়মের বাইরে আর যেতে পারবেন না। অন্যদিকে ওপেনসোর্স সফটওয়্যার এর যে Licence agreement রয়েছে সেখানে আপনাকে কোন নিয়মাবলী দেওয়া হয় না।
ওপেনসোর্স সফটওয়্যার কে আপনি যেভাবে খুশি সেভাবে যেকোনো কাজে ব্যবহার করতে পারবেন। এখানে আবার অনেকেই ভাবে যে, একটি ওপেনসোর্স সফটওয়্যার মানে ফ্রি সফটওয়্যার। অর্থাৎ, এখানে ওপেনসোর্স সফটওয়্যার টির জন্য এখানে তাকে কোন টাকা পে করতে হবে না। এখানে বলে রাখি যে, এই কথাটি ঠিক। ওপেনসোর্স সফটওয়্যার গুলো সবসময় ফ্রি হয়ে থাকে।
ওপেনসোর্স সফটওয়্যার গুলো আপনি সবসময় ফ্রিতে ডাউনলোড এবং ব্যবহার করতে পারবেন। এটা বলা ভুল যে, ওপেনসোর্স সফটওয়্যার ব্যবহার করার জন্য আপনাকে কখনোই কোনো টাকা দিতে হবে না। অনেক সময় ওপেনসোর্স সফটওয়্যার এর কোন একটি সার্ভিস কিংবা সাপোর্টের জন্য চার্জ নিতে পারে। কিন্তু বেশিরভাগ ক্ষেত্রেই ওপেনসোর্স সফটওয়্যার ফ্রি হয় এবং এগুলো কি ফ্রিতেই আপনি ডাউনলোড করে ব্যবহার করতে পারবেন। শুধুমাত্র ওপেনসোর্স সফটওয়্যার গুলোই ফ্রি হয় না।
বরং, Closed source সফটওয়্যার গুলো অনেক সময় ফ্রি হয়ে থাকে। তবে যেভাবে প্রশ্ন হতে পারে, তবে ওপেনসোর্স সফটওয়্যার এবং ক্লোজ সোর্স সফটওয়্যার এরমধ্যে এখানে কি পার্থক্য রয়েছে? এখানে এটি বোঝানোর জন্য আপনাকে একটি ছোট্ট উদাহরণ দেয়া যাক। মনে করুন, আপনার বাড়ির পাশে কোন একটি দোকানে কোন একদিন ফ্রিতে বার্গার খাবার জন্য অফার করছে। এক্ষেত্রে আপনিও গেলেন বার্গার খাবার জন্য।
কিন্তু সেখানে গিয়ে দেখলেন যে এই দোকানটিতে শুধুমাত্র আপনাকে ফ্রিতে বার্গার অফার করা হচ্ছে। কিন্তু তার পাশের দোকানেও ফ্রিতে বার্গার অফার করা হচ্ছে; কিন্তু সেখানে বার্গার কিভাবে বানাতে হয় সেটিও দেখানো হচ্ছে। এবার আপনি হয়তোবা সেই প্রথম দোকানটি বাদ দিয়ে দ্বিতীয় দোকানটিতে চলে যাবেন। কেননা সেই দোকানটিতে ফ্রিতে বার্গার দেওয়ার পাশাপাশি আপনাকে বার্গার বানানো শেখানো হচ্ছে এবং এটি সম্পূর্ণ বিনামূল্যে। যদিও আমরা বার্গার বানানো দেখি বাড়িতে না বানাই, তবু এক্ষেত্রে আমাদের সেখানে কৌতূহলবশত দেখতে যাব।
কেননা কিভাবে সেই বার্গার বানানো হয় সেটি আমাদের দেখা উচিত। যদি এমন কোন ভাবে বার্গারকে বানানো হয় যা আমাদের জন্য স্বাস্থ্যসম্মত নয় তবে অবশ্যই আমরা সেটি খাব না। এছাড়া এটি যদি আমাদের রুচির বিরুদ্ধে যায় তবুও এক্ষেত্রে আল্লাহ পরবর্তীতে সেটিকে আর খাব না কিংবা এর চাইতেও উন্নত কোন খাবারের খোঁজ করব। ঠিক একই রকম টি হয় ওপেনসোর্স সফটওয়্যার এর ক্ষেত্রে। যেখানে আমরা ওপেনসোর্স সফটওয়্যার গুলো ফ্রিতে ব্যবহার করতে পারি।
তবে ওপেন সোর্স সফটওয়্যার গুলো ফ্রিতে ব্যবহার করার পাশাপাশি আমরা কোন ক্লোজ সোর্স সফটওয়্যার গুলোও ফ্রিতে ব্যবহার করার সুবিধা পেতে পারি। কিন্তু এখানে সমস্যা হচ্ছে যে, ক্লোজ সোর্স সফটওয়্যার এর কোড গুলো আমরা দেখতে পারি না। যেখানে আমরা ওপেনসোর্স সফটওয়্যার গুলোর কোড গুলো দেখতে পারি এবং এগুলোকে নিজের ইচ্ছামত পরিবর্তন করে আবার নতুন কোন প্রোগ্রাম তৈরি করতে পারি, সেখানে ক্লোজ সোর্স সফটওয়ারটির বেলায় আর সেটি হয়না। যেখানে এটি উপরের উদাহরণ দেওয়া বার্গার ফ্রিতে দেবার মত।
আমি এখানে উপরের উদাহরণে যেমনটি বলেছিলাম। আপনাকে দুইটি দোকানেই বার্গার ঠিকই ফ্রীতে দেওয়া হবে কিন্তু সেখানকার একটি রেস্টুরেন্টে সেটি বানানোর প্রক্রিয়াটিও দেখানো হবে। আর স্বাভাবিক ভাবেই আমরা হয়তো সেই দ্বিতীয় দোকানটিকে বেছে নিব, কেননা সেখানে আমরা বার্গার বানানোর উৎস দেখতে পারছি। এক্ষেত্রে আমরা যদি বার্গার বানানোর সম্বন্ধে না জেনে থাকি তবে সেখান থেকে শিখে নিতে পারব এবং জানা থাকলে আমাদের অভিজ্ঞতাকে আরও উন্নত করতে পারব। যেমনটি ওপেনসোর্স সফটওয়্যার এর কোড দেখার সময় কোন প্রোগ্রামার করে থাকে।
যেখানে কোনো একজন প্রোগ্রামার ওপেনসোর্স সফটওয়্যার টির সকল কোড দেখতে পারে এবং সেখান থেকে সে তার অভিজ্ঞতাকে আরও উন্নত করতে পারবে। এছাড়া পুরাতন কোন প্রোগ্রামার ওপেনসোর্স সফটওয়্যার টির প্রোগ্রামিং দেখেও নিজের ভুলগুলো সংশোধন করতে পারে এবং নিজের মতো করে সফটওয়্যার তৈরি করতে হয়। এছাড়া একজন প্রোগ্রামার এর জন্য ওপেনসোর্স সফটওয়্যার আরো অনেক সুবিধা আনতে পারে, যেটি সম্পর্কে আরেকটু নিচে আলোচনা করা হয়েছে।
ওপেন সোর্স সফটওয়্যার ব্যবহার করার ক্ষেত্রে সব রকমের সুবিধাই পাওয়া যায়। যেখানে এটি অনেক ক্ষেত্রে ক্লোজ সোর্স সফটওয়্যার এর চাইতেও বেশি পরিমাণে সুবিধা দেয়। এরকম অনেক বহু কারণ রয়েছে যেসব কারণে ওপেনসোর্স সফটওয়্যার গুলো বেশি পরিমাণে মানুষ ব্যবহার করে এবং এগুলো কেই বেশি পছন্দ করে। চলুন তবে এবার দেখে নেয়া যাক ওপেন সোর্স সফটওয়্যার এর এরকমই কিছু সুবিধা।
ওপেনসোর্স সফটওয়্যার গুলো মানুষের বেশি ব্যবহার করার আগ্রহের অনেক কারণ রয়েছে। এগুলোর মধ্যে প্রথম কারণ হচ্ছে এগুলোর কন্ট্রোল বা নিয়ন্ত্রণ। আমরা সকলেই জানি যে, ওপেনসোর্স সফটওয়্যার এর কোড গুলো Publicly available; অর্থাৎ এই কোডগুলো কে যে কেউ দেখতে পারে। এখানে যেই ব্যক্তি সেই সফটওয়্যারটি ব্যবহার করবে সে যদি একজন প্রোগ্রামার হয়, তবে সে প্রত্যেকটি কোড পরীক্ষা করে দেখতে পারবে। এখানে সেই ব্যক্তি এটি নির্ধারণ করতে পারবে যে, কোন বিষয়টি তার পছন্দ নয়। এখানে কোনো একজন প্রোগ্রামার চাইলে নতুন কোড যুক্ত করে দিতে পারবে এবং সে চাইলে নিজের মতো করে আবার প্রোগ্রামটি করতে পারবে।
এছাড়া যে ব্যক্তি একজন নতুন প্রোগ্রামার সেও ওপেনসোর্স সফটওয়্যার টি থেকে নিজে শিক্ষা নিতে পারবে। যেমনঃ সে যেমন ইচ্ছা তেমন ভাবে সফটওয়্যারটি ব্যবহার করতে পারবে এবং তার প্রোগ্রামিং শেখার কাজে যেকোনো কাজে সেটিকে ব্যবহার করতে পারবে। এখানে এমনটি নয় যে, Closed source সফটওয়্যার এর মত ব্যবহার করার ক্ষেত্রে বাধ্যবাধকতা রয়েছে। অনেকেই এজন্য ওপেনসোর্স সফটওয়্যার গুলো কে ব্যবহার করতে বেশি পছন্দ করে। যেখানে ওপেনসোর্স সফটওয়্যার একজনকে ভালো প্রোগ্রামার হতে সাহায্য করে।
কেননা ওপেনসোর্স সফটওয়্যার এর কোড গুলো Publicly available হয় এর জন্য যারা প্রোগ্রামিং শিখতে নতুন তারা এই কোডগুলো দেখে ভালো প্রোগ্রামিং শিখতে পারে। তো এটিতো একটি সাধারণ ধারণা মাত্র যে, ওপেনসোর্স সফটওয়্যার থেকে কোন একজন নতুন প্রোগ্রামার কিছু শিখে নেবে। তবে সেই ওপেনসোর্স সফটওয়্যার টি থেকে নতুনভাবে যেই সফটওয়্যারটি বা প্রোগ্রামটি তৈরি করা হবে সে ক্ষেত্রেও সেটি সোর্সকোড সকলের জন্য উন্মুক্ত থাকতে হবে; আর এটি হচ্ছে ওপেনসোর্স সফটওয়্যার এর শর্ত। কিন্তু এর বাইরেও ওপেনসোর্স সফটওয়্যার আরো অনেক কারণে জনপ্রিয়।
যেখানে একটি Closed source সফটওয়্যার কে শুধুমাত্র কোন একজন ব্যক্তি কিংবা প্রতিষ্ঠান মিলে তৈরি করেছে বা প্রোগ্রামিং করেছে, সেখানে একটি ওপেনসোর্স সফটওয়্যার তৈরি করে অসংখ্য মানুষ এবং প্রতিষ্ঠান মিলে। যেখানে গোটা পৃথিবী থেকে প্রোগ্রামারেরা মিলে একটি ওপেনসোর্স সফটওয়্যার কে ডেভেলপ করে। আর এজন্যই একটি ওপেনসোর্স সফটওয়্যার এর ইউজার এক্সপেরিয়েন্স এবং স্টাবিলিটি হয় তা একটি ক্লোজ-সোর্স সফটওয়্যার এর চাইতে অনেক ভালো হয়। এছাড়া অনেকেই সিকিউরিটি এর কথা চিন্তা করেও ওপেনসোর্স সফটওয়্যার কে ব্যবহার করতে বেশি পছন্দ করে। যেখানে একটি কোন ক্লোজ-সোর্স সফটওয়্যার এর ক্ষেত্রে এটি হয় না।
ওপেনসোর্স সফটওয়্যার এটি পৃথিবীর সমস্ত প্রোগ্রামাররা মিলে তৈরি করার কারণে এটির সিকিউরিটি সিস্টেম অনেক শক্তিশালী হয়। যেখানে কোনো একজন প্রোগ্রামার যদি কোন বাগ খুঁজে না পায়, তবে অন্য কোন প্রোগ্রামার সেটি ধরতে পারে এবং সেটির সমাধান করতে পারে। আর এভাবে করে সবার প্রচেস্টার ফলে একটি ওপেনসোর্স সফটওয়্যার হয়ে ওঠে অনেক বেশি নিরাপদ বা সিকিউর। যেখানে আমরা একটি প্রবাদ বাক্য বলে থাকি যে, "দশের লাঠি একের বোঝা"। এখানে এই প্রবাদ বাক্যটি কোন ওপেনসোর্স সফটওয়্যার এর ক্ষেত্রে হয়ে থাকে।
যেমন হবে অ্যান্ড্রয়েড একটি ওপেনসোর্স সফটওয়্যার এবং এটিকে পুরো বিশ্বের ডেভলপাররা মিলে একেক জন একেক ভাবে কোডিং করতে পারে। তবে এটির প্রধান সোর্সকোড সবার কাছেই রয়েছে। সেই কোড গুলোকে মডিফাই করে আবার নতুন করে কোন একজন প্রোগ্রামার সেটিকে কাস্টমাইজ করতে পারে। আর এভাবে করে যেকোনো একটি অ্যাপ যদি ওপেনসোর্স হয়, তবে সে টিও পুরো বিশ্বের প্রোগ্রামাররা মিলে নিজের মতো করে তৈরি করতে পারবে। যেখানে কেউ যদি কোন বিষয় উন্নতি করতে নাও পারে অন্য কেউ সেই আপডেট কোন নতুন ফিচার আবার যুক্ত করে দিবে।
যেমনভাবে আমাদের ব্যবহৃত অ্যান্ড্রয়েড অপারেটিং সিস্টেমটি একটি ওপেন সোর্স অপারেটিং সিস্টেম। আর এই অপারেটিং সিস্টেমটির কোড গুলো কে স্মার্ট ফোন প্রস্তুতকারক প্রতিষ্ঠানগুলো তাদের মত করে সাজাতে পারবে এবং সেখানে নতুন নতুন ফিচার গুলো যোগ করে দিতে পারবে। যেখানে তারা কোন নিরাপত্তা ঘাটতি দেখতে পারলে সেটিকে সমাধান করে দিবে।
আমাদের ব্যবহৃত অ্যান্ড্রয়েড অপারেটিং সিস্টেম টি ওপেনসোর্স সফটওয়্যার হওয়ার কারণে আমরা একেকটি ডিভাইস একেক ধরনের ফিচার দেখতে পারি। যদিও আমাদের সমস্ত ডিভাইস গুলোই অ্যান্ড্রয়েড; কিন্তু আমরা লক্ষ্য করি একেকটি ব্রান্ডের স্মার্টফোনের সফটওয়্যার অপটিমাইজেশন একেক রকম। যেখানে তারা প্রত্যেকেই নিজেদের মতো করে আবার কোডগুলো কে সেগুলো কে সাজায়। ওপেনসোর্স সফটওয়্যার এর ক্ষেত্রে কোড পরিবর্তন করার কোন শর্ত না থাকায় তারা যেকোন ভাবে আমাদের ইউজার এক্সপেরিয়েন্স কে উন্নত করার জন্য আরও উন্নত ভাবে সেগুলোর কোডিং করে এবং নতুন নতুন ফিচার তাতে যুক্ত করে। আর সেই সঙ্গে তারা সেই ডিভাইসটিতে তাদের নিজস্ব অপারেটিং সিস্টেম সফটওয়্যার ও যুক্ত করে দেয়।
এছাড়া স্মার্ট ফোন প্রস্তুতকারক প্রতিষ্ঠান গুলো নিয়মিত সফটওয়্যার আপডেট দিয়েই যায়। যেখানে তারা ডিভাইসটিতে আরো নতুন নতুন সব ফিচার যুক্ত করে দিতে পারে কিংবা কোন বাগ রিমুভ করতে পারে। এছাড়া প্রত্যেকবার আপডেটের সময় সেখানে সিকিউরিটি আপডেটও থাকে। যদি সেই সময়ে এমন কোন কিছু খুঁজে পাওয়া যায় যা ফোনটির নিরাপত্তার জন্য অনেক বড় ঝুঁকি তবে এ ক্ষেত্রে তারা আবার কোডিং এ পরিবর্তন এনে মোবাইলটিতে আপডেট পাঠায়।
ওপেনসোর্স সফটওয়্যার এর ক্ষেত্রে সেটির কোডিং লাইন-বাই-লাইন দেখার অপশন রয়েছে। আর এতে করে এটি নিশ্চিত হওয়া যাবে যে এই সফটওয়্যারটি তে এমন কোনো কোড নেই যা তার পছন্দ নয়। অন্যদিকে Closed source এর ক্ষেত্রে এই অপশনটি থাকেনা। তার ভিতরে যদি এমন কোন কোড থাকে, তাহলে সে খুঁজে বের করতে পারবেনা। যেখানে তেমন ভাবেই আপনাকে সেই Closed source সফটওয়্যারটি ব্যবহার করতে হবে এবং এখানে আপনি Open source সফটওয়্যার এর মত বাড়তি কোনো সুবিধা পাবেন না। যেমনভাবে এখানে Open source সফটওয়্যারটিতে আপনি সকল কোড গুলো দেখতে পেতেন।
উপরের আলোচনায় আমরা এটা বুঝতে পারলাম যে, ওপেনসোর্স সফটওয়্যার এর সোর্স কোড গুলো সকলের জন্য উন্মুক্ত এবং এগুলোকে নিয়ে যে কেউ মাথা ঘামাতে পারে বা চর্চা করতে পারে। এছাড়া ওপেনসোর্স সফটওয়্যার এর কোড গুলোকে যে কেউ যেকোনো কাজে সেগুলো ব্যবহার করতে পারে; যেখানে কোডগুলো ও মুক্ত থাকার ফলে সে গুলোকে ইচ্ছামত পরিবর্তনের সুযোগ রয়েছে। যেখানে আর্থিক বিষয়ের ওপর গুরুত্ব না দিয়ে বরং সকলের অবদান ও অংশগ্রহণের বিষয়টি কে বেশি গুরুত্ব দেওয়া হয়েছে ওপেনসোর্স সফটওয়্যার এর ক্ষেত্রে। এতে করে কোন ব্যক্তির ছোট বড় অবদান এর মাধ্যমে মূল সফটওয়ারটির অনেক উন্নতি সাধিত হয়। ওপেন সোর্স সফটওয়্যার এর মত কোন একটি সফটওয়্যার যদি বিনামূল্যের হয় এবং সে সফটওয়ারটিতে যদি অবদানের সুযোগ না থাকে তবে এটিকে উম্মুক্ত সফটওয়্যার বলা যায় না।
যেখানে উন্মুক্ত শব্দের অর্থ দ্বারা প্রকাশ করছে যে ওপেনসোর্স সফটওয়্যার এর বিশালতা অনেক। যেখানে রয়েছে স্বাধীনভাবে কোডিং দেখা এবং সেগুলো পরিবর্তন করার সুযোগ।
তো বন্ধুরা, আমি আশা করছি যে আপনারা বুঝতে পেরেছেন একটি ওপেনসোর্স সফটওয়্যার কি এবং এটি সাধারণ সফটওয়্যার থেকে কিভাবে আলাদা। যদি আপনার কাছে টিউনটি ভাল লেগে থাকে তবে জোসস করুন, শেয়ার করুন এবং আপনার মতামত জানাতে টিউনমেন্ট করুন। এছাড়া আমাকে ফলো করে রাখুন ভবিষ্যতে এরকম ধরনের কন্টেন্ট পাবার জন্য।
আপনি যে স্মার্টফোনটি ব্যবহার করেন এটিও হয়তোবা একটি অ্যান্ড্রয়েড ফোন এবং যেটির অপারেটিং সিস্টেম ও একটি ওপেনসোর্স সফটওয়্যার। আমরা প্রতিনিয়ত বিভিন্ন মাধ্যমে এই ওপেনসোর্স সফটওয়্যার টি নিয়ে অনেক আলোচনা শুনেছি। কিন্তু হয়তোবা এই ওপেনসোর্স সফটওয়্যার টি সম্পর্কে আমাদের বিস্তারিত এতদিন জানা হয়নি। যেখানে সহজ ভাষায় বলতে গেলে, এ ধরনের সফটওয়্যার গুলোর কোডসমূহ যে কেউ দেখতে পারে এবং সে গুলোকে নিজের মত করে সাজিয়ে আবার নতুন কোন প্রোগ্রাম তৈরী করতে পারে। যেখানে সেই প্রোগ্রামগুলো নতুনভাবে তৈরি করা এবং সেই নতুন সফটওয়্যার এটি বিক্রি করার ক্ষেত্রে কোন নিষেধ নেই। এসব কোডগুলো কে যে কেউ যেকোনো ভাবে ব্যবহার করতে পারে।
তো বন্ধুরা, ওপেনসোর্স সফটওয়্যার সম্পর্কিত আজকের এই টিউন টি তবে এখানেই শেষ করছি। আসসালামু আলাইকুম।
আমি মো আতিকুর ইসলাম। কন্টেন্ট রাইটার, টেল টেক আইটি, গাইবান্ধা। বিশ্বের সর্ববৃহৎ বিজ্ঞান ও প্রযুক্তির সৌশল নেটওয়ার্ক - টেকটিউনস এ আমি 4 বছর যাবৎ যুক্ত আছি। টেকটিউনস আমি এ পর্যন্ত 421 টি টিউন ও 93 টি টিউমেন্ট করেছি। টেকটিউনসে আমার 62 ফলোয়ার আছে এবং আমি টেকটিউনসে 3 টিউনারকে ফলো করি।
“আল্লাহর ভয়ে তুমি যা কিছু ছেড়ে দিবে, আল্লাহ্ তোমাকে তার চেয়ে উত্তম কিছু অবশ্যই দান করবেন।” —হযরত মোহাম্মদ (সঃ)
Open Source is all time best.