মাইক্রোসফট উইন্ডোজ সাবসিস্টেম ফর লিনাক্স (WSL) হল মাইক্রোসফট কম্পোনেন্টের একটি সিরিজ যা নেটিভ লিনাক্স ৬৪-বিট Executable and Linkable Format (ELF64) বাইনারি কে উইন্ডোজ ১০ অপারেটিং সিস্টেম (OS)-এ উইন্ডোজ কার্নেলে চালাতে দেয়।
WSL কীভাবে কাজ করে
Windows 10-এ Windows Subsystem for Linux ফিচার সক্ষম করার পর, লিনাক্স বাশ শেল চালিয়ে উবুন্টু ইউজার-মোড ইমেজ ইনস্টল করা যায় যা উইন্ডোজ কার্নেল লেয়ারের ওপর চলে এবং ELF64 বাইনারি উইন্ডোজে অপারেট করতে দেয়। ইনস্টলেশনের পর ব্যবহারকারীরা উবুন্টু প্যাকেজ রিপোজিটরি থেকে অন্যান্য ফাইল চালাতে পারে; grep, sed, awk-এর মতো লিনাক্স কমান্ড-লাইন ইউটিলিটি ব্যবহার করতে পারে; লিনাক্স ফাইল সিস্টেম নেভিগেট করতে পারে; এবং CLI ইউটিলিটি দিয়ে স্ক্রিপ্ট এক্সিকিউট করতে পারে।
WSL-এ একটি ইউজার-মোড সেশন ম্যানেজার সার্ভিস থাকে লিনাক্স ইনস্ট্যান্স হ্যান্ডেল করতে, মিনিমাইজড পিকো প্রসেস লিনাক্স সিস্টেম কল হ্যান্ডেল করতে, এবং পিকো ড্রাইভার লিনাক্স কার্নেল অনুকরণ করতে। সমগ্রভাবে এই আর্কিটেকচার লিনাক্স সিস্টেম কলকে উইন্ডোজ কার্নেলে পাস ও হ্যান্ডেল করার সুযোগ দেয়।
কারারা WSL ব্যবহার করা উচিত
Windows Subsystem for Linux প্রাথমিকভাবে উইন্ডোজ পরিবেশে কাজ করা লিনাক্স ডেভেলপারদের জন্য। উদাহরণস্বরূপ, ওয়েব ডেভেলপাররা যারা GitHub-এর মতো সোর্স থেকে লিনাক্স ও ওপেন সোর্স টুল ব্যবহার করেন কিন্তু ডেভেলপমেন্ট ও এক্সপেরিমেন্টের জন্য পূর্ণ লিনাক্স সিস্টেমে সীমিত অ্যাক্সেস পান। WSL ডেভেলপারদের কমন লিনাক্স টুল এবং Ruby, Python-এর মতো উন্নত ডেভেলপমেন্ট ল্যাঙ্গুয়েজ উইন্ডোজের মাধ্যমে ব্যবহার করতে দেয়।
WSL 1 বনাম WSL 2
মাইক্রোসফট WSL-এর দুটি সংস্করণ অফার করে: WSL 1 এবং নতুন WSL 2। দুটোই উইন্ডোজ ও লিনাক্সের মধ্যে ইন্টিগ্রেশন দেয়, দুটোই লাইটওয়েট ও ফাস্ট বুট টাইম দেয়। দুটোই নন-মাইক্রোসফট হাইপারভাইজার (VMware, Oracle VM VirtualBox) এর সাথে কাজ করে।
প্রধান পার্থক্য
- WSL 2 একটি ম্যানেজড ভার্চুয়াল মেশিন (VM)-এ চলে। VM ম্যানেজড হয়ে থাকায় IT প্রফেশনালরা VM-র সাথে জড়িত কনফিগারেশন বা ম্যানেজমেন্ট টাস্ক চিন্তা করেন না।
- WSL 2 একটি পূর্ণ লিনাক্স কার্নেল চালায়। এই কার্নেল মাইক্রোসফট তৈরি করেছে, তাই Windows Update দিয়ে আপডেট থাকে।
মাইক্রোসফট সাধারণত WSL 2 ব্যবহার করার সুপারিশ করে কারণ এটি WSL 1-এর চেয়ে ভালো পারফরম্যান্স দেয় এবং ১০০% সিস্টেম কল কম্প্যাটিবিলিটি রয়েছে (Docker-এর মতো অ্যাপ চালানো যায়)। তবে প্রজেক্ট যদি Windows File System-এ স্টোর থাকতে হয় বা ক্রস-কম্পাইলেশন (উইন্ডোজ ও লিনাক্স টুল দুইটোই) প্রয়োজন হয় তবে WSL 1 ব্যবহার করতে হবে।
WSL সম্পর্কে সাধারণ প্রশ্নোত্তর
VM-এ লিনাক্স চালানোর বদলে WSL কেন?
দুটি সুবিধা: (১) পূর্ণ VM-এর চেয়ে কম রিসোর্স 오ভারহেড (প্রসেসর, মেমরি, স্টোরেজ)। (২) উইন্ডোজ ও লিনাক্স এনভায়রনমেন্ট একসাথে চলে, তাই ডেভেলপাররা একই ফাইলে উইন্ডোজ অ্যাপ্লিকেশন ও লিনাক্স ইউটিলিটি ব্যবহার করতে পারে।
WSL-এর কী কী লিমিটেশন?
- সব লিনাক্স অ্যাপ্লিকেশন সাপোর্ট করে না; বাশ এবং প্রধান লিনাক্স CLI ইউটিলিটি হ্যান্ডেল করার জন্য।
- লিনাক্স GUI এনভায়রনমেন্ট (Gnome, KDE) সাপোর্ট করে না।
- শুধু Ubuntu ডিস্ট্রিবিউশন সাপোর্ট করে (লেখার সময়)।
- শুধু Windows 10-এ উপলব্ধ, Windows Server-এ নয়।
- কিছু লিনাক্স সার্ভার অ্যাপ (যেমন Redis) চলে, কিন্তু লিনাক্স সার্ভার অ্যাপ হোস্ট করার জন্য নয়।
WSL কোন ফাইল সিস্টেম সাপোর্ট করে?
WSL দুটি ফাইল সিস্টেম ব্যবহার করে: VolFs (লিনাক্স ফাইল কনভেনশন: পারমিশন, লিংক, স্পেশ্যাল ক্যারেক্টার, ডিরেক্টরি স্ট্রাকচার) — কিন্তু উইন্ডোজ অ্যাপের সাথে ইন্টারঅপারেবিলিটি নেই। DriveFs (ইন্টারঅপারেবিলিটি প্রদান করে: লিগ্যাল উইন্ডোজ ফাইল নাম, উইন্ডোজ সিকিউরিটি এনফোর্স, কেস-সেনসিটিভ ফাইল নাম সাপোর্ট) — DriveFs-এ উইন্ডোজ বা লিনাক্স টুল দুইটোই ফাইলে অ্যাপ্লাই করা যায়।