হ্যালো টেকটিউনস জনগণ, কেমন আছেন আপনারা সবাই? আশা করি সবাই ভাল আছেন। এখন থেকে নিয়মিত আবার নতুন টিউন নিয়ে আমরা হাজির হলাম আপনাদের কাছে। আর টেকটিউনসের নিত্যনতুন টপিক আর সার্ভিস নিয়ে ভালো না থেকে আর উপায় আছে? আর এই নিত্যনতুন টপিক আর সার্ভিসের ধারা বজায় রাখার নিমিত্তে, আজকে আমি আপনাদের সাথে একদম নতুন একটি টপিক নিয়ে হাজির হলাম। আর আপনারা এই টিউনের মাধ্যমে জানতে পারবেন অনেক নতুন নতুন সব তথ্য।
আপনার পিসির হার্ড ডিস্কের জায়গা খালি করার সময় আপনি কি WinSxS ফোল্ডারটি কখনোও কি দেখেছিলেন? যদি না দেখে থাকেন কোন সমস্যা নেই, এই টিউন থেকে জানতে পারবেন কিভাবে এই বিশাল আকারের উইন্ডোজের ফোল্ডারটি ম্যানেজ করবেন।
যখন আপনার কম্পিউটার সিস্টেম এর হার্ডডিস্কের জায়গা কমতে থাকে, তখন থার্ড পার্টি অনেক সফটওয়্যার ব্যবহার করে আপনি আপনার সিস্টেমের সবচেয়ে বড় ফাইল এবং ছোট ফাইলগুলো এক নজরে দেখে নিতে পারবেন। তো তা দেখার সময় আপনি বিশাল আঁকারের WinSxS ফোল্ডারটি দেখে অবাক হতে পারেন। এই ফোল্ডারটির সাইজ প্রায় ৫-১০ গিগাবাইট হবে এবং উইন্ডোজ এর দুনিয়ায় অনেক ব্যবহারকারীরা এই ফোল্ডারটি কে বিমানের ব্ল্যাক বক্সের মতো মনে থাকে।
স্বাভাবিকভাবেই, আপনার মনে এই প্রশ্নটি আসতে পারে যে WinSxS ফাইলের মধ্যে আসলে কি ফাইল ইন্সটল করা রয়েছে এবং এটি এত বিশাল আঁকারের হওয়ার কারণ কি? ইন্টারনেটে সার্চ করা সহ বিভিন্ন ফোরামে এই প্রশ্ন নিয়ে আলাপ আলোচনায় ভরপুর। তবে আসুন এই টিউন থেকে WinSxS ফোল্ডারের সিক্রেটস এবং এটি কিভাবে পরিচালনা করবেন তা জেনে নেই।
WinSxS (Side-by-Side) ফোল্ডারটি উইন্ডোজ অপারেটিং সিস্টেমের "DLL Hell" সমস্যা সমাধানের জন্য তৈরি করা হয়েছিল। এক কথায়, এটি এমন অবস্থার সাথে জড়িত থাকে যখন কোন প্রোগ্রাম dynamic link library (DLL) ফাইলটিকে পরিবর্তন করে আর একই সময়ে অন্য একটি অ্যাপ্লিকেশানের এই একই DLL ফাইল ব্যবহারের প্রয়োজন পরে তখন ঐ অ্যাপ্লিকেশান উপর ক্রিটিকাল ফাংশনিং এর প্রভাব বিস্তার করে।
একটু কঠিন হয়ে গেছে বুঝতে! আচ্ছা একটা উদাহরণ দিয়ে বুঝানোর চেষ্টা করছি। মনে করুন, যে কোন একটি অ্যাপ্লিকেশান ব্যবহার করার জন্য 1.0.2 ভার্সনের DLL ফাইল প্রয়োজন। যদি অন্য একটি অ্যাপ্লিকেশান DLL ফাইলটিকে 1.0.3 ভার্সনে রিপ্লেস করে তাহলে আগের অ্যাপ্লিকেশানটি হয় ক্র্যাশ করবে অথবা DLL ফাইলের ভার্সন অসামঞ্জস্যতার কারণে ব্লু স্ক্রিন শো করবে।
উইন্ডোজ এক্সপির কম্পোনেন্ট স্টোরটি যথাযথ ভাবে প্রবর্তন করতে পেরেছিল। আর এতে, প্রতিটি কম্পোনেন্ট (DLL, OCX, EXE) গুলো WinSxS নামের ডিরেক্টরির মধ্যে থাকে। এই ডিরেক্টরিতে সফটওয়্যার এবং হার্ডওয়্যারের বিভিন্ন প্যাকেজগুলোর মাধ্যমে ইন্সটল করা DLL এর সমস্ত ভার্সনের ফাইল সংরক্ষণ করবে এবং চাহিদা অনুসারে DLL ফাইলের সঠিক ভার্সনটি লোড করবে।
সুতরাং একটি অ্যাপ্লিকেশান কিভাবে বুঝতে পারে যে এই DLL ভার্সনটি লোড করা দরকার? আর এই কাজের জন্যই "manifest file" একটি গুরুত্বপূর্ণ ভূমিকা পালন করে। এই "manifest file" এর মধ্যে সেটিংস করা রয়েছে, কোন প্রোগ্রাম চালু করার সময় ঐ প্রোগামটি কিভাবে ম্যানেজ করতে হবে এবং DLL এর কোন ভার্সন লোড করতে হবে তা আপনার অপারেটিং সিস্টেমকে জানিয়ে দেয়।
তাছাড়া প্রত্যেকটি কম্পোনেন্ট এর একটি ইউনিক নাম রয়েছে যাতে প্রসেসরের আর্কিটেকচার, ভাষা, ভার্সন এবং আইডি অন্তর্ভুক্ত থাকে। তারপরে নির্দিষ্ট ভার্সনের এই কম্পোনেন্ট গুলো একটি প্যাকেজে একত্রিত হয়ে থাকে। আর এর মাধ্যমেই আপনার সিস্টেমকে আপ টু ডেট রাখার জন্য Windows Update and DISM কম্পোনেন্ট ব্যবহার করে হয়।
নিচের টাইমলাইন থেকে Windows XP থেকে শুরু করে Windows 10 পর্যন্ত WinSxS ফোল্ডারের ইম্প্রুভমেন্ট দেখানো হল।
উইন্ডোজ অপারেটিং সিস্টেম জুড়ে অনেকগুলো Hard links ব্যবহার করা হয়। আর WinSxS হল এমন একটি স্থান যেখানে সিস্টেম কম্পোনেন্টস গুলো লাইভ ব্যবহৃত হয়। তাছাড়া কম্পোনেন্টস স্টোরের বাইরে থাকা ফাইলগুলো WinSxS ফোল্ডারের সাথে hard-linked এর মাধ্যমে যুক্ত রয়েছে। এখন, প্রশ্ন হল- এই hard link টা আবার কি?
Microsoft Docs অনুসারে, hard link একটি ফাইল সিস্টেম অবজেক্ট যা দুটি ফাইলকে হার্ড ডিস্কের একই লোকেশনে রেফার করতে দেয়। তার মানে উইন্ডোজ অপারেটিং সিস্টেম অতিরিক্ত কোন স্টোরেজ খরচ না করেই একই ফাইলের একাধিক কপি করতে পারে।
আর আপনি যখনই উইন্ডোজ আপডেট করবেন তখন এই কম্পোনেন্টটি একদম নতুন ভার্সনে আপডেট হয়, এবং hard links এর মাধ্যমে সিস্টেম প্রজেক্টগুলো আপডেট হয়। আর পুরানোগুলো নির্ভরযোগ্যতার জন্য কম্পোনেন্টস স্টোরে থাকে কিন্তু তার কোন hard links আর বিদ্যমান থাকে না।
Fsutil কমান্ডের সাহায্যে আপনি যে কোনও সিস্টেম ফাইলের hard links গুলো চেক করে দেখতে পারেন। এজন্য Win+X এবং Command Prompt (Admin) অপশনটি সিলেক্ট করুন, তারপরে নিচের কমান্ডটি টাইপ করুন।
fsutil hardlink list [system file path]
উদাহরণস্বরূপ, আপনি যদি "audiosrv.dll" নামের সিস্টেম ফাইলের hard links চেক করতে চান তবে টাইপ করুন
fsutil hardlink list "C:\Windows\System32\audiosrv.dll"
উইন্ডোজ কে কাস্টমাইজ এবং আপডেট করার জন্য প্রয়োজনীয় ফাংশনগুলোকে সাপোর্ট করাতে কম্পোনেন্ট স্টোরটি গুরুত্বপূর্ণ ভূমিকা পালন করে, তা নিম্নে বর্ণনা করা হল।
WinSxS ফোল্ডারে আপনার পিসির হার্ডওয়্যার এবং সফটওয়্যার এর সাথে সামঞ্জস্যতা বজায় রাখার জন্য প্রয়োজনীয় সমস্ত ফাইল রয়েছে। আর এই জন্যই উইন্ডোজ অপারেটিং সিস্টেমের সবচেয়ে বড় সুবিধাগুলোর মধ্যে একটি হল পুরানো হার্ডওয়্যার এবং অ্যাপ্লিকেশনগুলো চালানো যায়।
এখন C:\Windows\WinSxS এ নেভিগেট করুন, WinSxS ফোল্ডারের উপর রাইট ক্লিক করুন এবং Properties অপশনটি সিলেক্ট করুন। তাহলে এই ফোল্ডারটি কত জায়গা দখল করে আছে তা দেখতে পারবেন, আমার সিস্টেমে প্রায় ৮ জিবির মত হার্ড ডিস্কের জায়গা ব্যবহার করেছে। তবে আসল কথা হচ্ছে এটি আসল সাইজ না। আর এর কারণ হচ্ছে "hard links" গুলোকে File Explorer এবং অন্যান্য থার্ড পার্টি টুলস গুলো রিড করতে পারে না।
এটি প্রতিটি hard link এর অবস্থানের জন্য একটি ফাইলের রেফারেন্স গণনা করে। সুতরাং, যদি কোন সিস্টেম ফাইল WinSxS এবং System32 ডিরেক্টরির মধ্যে থাকে, তাহলে File Explorer ঐ ফাইলের সাইজ দ্বিগুণ দেখাবে যা আসলে সঠিক নয়।
উইন্ডোজ কম্পোনেন্ট স্টোরের আসল সাইজটি চেক করার জন্য Command Prompt (Admin) পারমিশনে ওপেন করুন এবং নিচের কমান্ড টাইপ করুন।
Dism.exe /Online /Cleanup-Image /AnalyzeComponentStore
নোট: উইন্ডোজ ৮ এবং তার আগের ভার্সনগুলোতে AnalyzeComponentStore অপশনটি নাই।
এনালাইজ করার পরে, কম্পোনেন্ট স্টোরের আসল সাইজটি কমে ৫.৪৯ গিগাবাইটে নেমে আসে। কারণ WinSxS ফোল্ডারের মধ্যে hard links থাকার কারণে হয়েছে। উইন্ডোজের সাথে শেয়ার করার কারণেই hard-linked ফাইলগুলোর সাইজ এই কমান্ডের সাহায্যে দেখতে পারবেন। এছাড়াও এই কমান্ডের মাধ্যমে সর্বশেষ কত তারিখে ক্লিনআপ করেছেন তা দেখতে পারবেন।
অনেকেই প্রায়ই জিজ্ঞাসা করেন WinSxS ফোল্ডার থেকে ম্যানুয়ালি ফাইলগুলো কি ডিলিট করা যায় কিনা? উত্তরটি জানতে নিচের প্যারাগ্রাফটি পড়ুন।
আপনি যদি না জেনেই WinSxS ফোল্ডারের ফাইলগুলো ম্যানুয়ালি ডিলিট করে ফেলেন তাহলে সম্ভবত উইন্ডোজ এর সিস্টেম ফাইলকে ক্ষতিগ্রস্ত করে ফেলতে পারেন এবং উইন্ডোজ এর ক্রিটিকাল আপডেট কে বাধাগ্রস্ত করতে পারেন। তবে আপনি যদি সম্পূর্ণ WinSxS ফোল্ডারটি ডিলিট করে ফেলেন তাহলে কোন সফটওয়্যারটি ঠিকঠাক ভাবে কাজ করছে না আপনি তা কখনোই জানতে পারবেন না।
তবে আপনি কয়েকটি বিল্ট ইন টুলস এর সাহায্যে WinSxS ফোল্ডারের সাইজ কমাতে পারবেন। আমরা WinSxS ফোল্ডারের সাইজ কমাতে Disk Cleanup, DISM commands এবং অন্যান্য রিমুভ ফিচার ব্যবহার করবো।
উইন্ডোজ সার্চ বক্সে, disk cleanup টাইপ করুন এবং disk cleanup টুলসটি সিলেক্ট করুন। Disk Cleanup এর উইন্ডো থেকে, Clean up system file বাটনটি সিলেক্ট করুন। এই অপশনে ক্লিক করার পরে নতুন আরেকটি উইন্ডো ওপেন হবে এবং সিস্টেম ফাইল ক্লিন করার আরও অনেক অপশন পাবেন। এই উইন্ডো থেকে আপনি ইন্সটলেশন ফাইল, পুরানো উইন্ডোজ ভার্সন এবং আরও অনেক কিছু রিমুভ করতে পারবেন। আর Disk Cleanup ই হচ্ছে উইন্ডোজ ১০ এর সিস্টেম ফাইল ক্লিন করার স্টার্টিং পয়েন্ট।
আপনি আপনার পছন্দ অনুযায়ী উইন্ডোজ এর ডিফল্ট ফিচারগুলো এনাবেল বা ডিজেবল করতে পারবেন। তাছাড়া আপনি কয়েকটি দরকারী ফিচারও যুক্ত করতে পারবেন- যেমনঃ Hyper V, Print to PDF, Windows Subsystem for Linux (WSL) এবং আরও অনেক ফিচার।
আর আপনি যেই ফিচারগুলো WinSxS ফোল্ডার থেকে ডিলিট করেননি তা আপনার হার্ড ডিস্কের জায়গা দখল করে রাখবে। আর যাদের হার্ড ডিস্কে জায়গা কম আছে তারা উইন্ডোজ ইন্সটলেশন এর ফাইল যতটা সম্ভব কমাতে চাইবেন। এখন, উইন্ডোজ থেকে Command Prompt (Admin) অপশনটি ওপেন করুন এবং নিচের কমান্ডটি ওপেন করুন।
DISM.exe /Online /English /Get-Features /Format:Table
তাহলে আপনি অনেকগুলো ফিচারের নাম এবং তাদের স্ট্যাটাস এর লিস্ট দেখতে পারবেন,
এখন, আপনার সিস্টেম থেকে যেকোন ফিচার রিমুভ করতে নিচের কমান্ডটি টাইপ করুন,
DISM.exe /Online /Disable-Feature /featurename:NAME /Remove
(আপনি যে ফিচারটি রিমুভ করতে চান, তার নাম NAME
এর স্থলে লিখবেন। )
আর আপনি যদি Get-Features কমান্ডটি রান করান তাহলে আপনি আপনি Disabled এর পরিবর্তে Disabled with Payload Removed অপশনটি দেখতে পাবেন। তারপরে আপনি যদি রিমুভ করা কম্পোনেন্টগুলো আবার ইন্সটল করতে চান তাহলে উইন্ডোজ আপডেট থেকে ডাউনলোড করতে পারবেন।
উইন্ডোজ ৮/৮.১ এর সিস্টেমের মধ্যে অব্যবহৃত থাকা কম্পোনেন্টগুলো অটোমেটিক্যালি রিমুভ করার জন্য বিল্ট ইন ফিচার রয়েছে। এই ফিচারটি ব্যবহার করতে প্রথমে Task Scheduler যান এবং Microsoft > Windows > Servicing অপশনে নেভিগেট করুন। তারপরে, Servicing ফোল্ডারে থাকা আইটেমে রাইট ক্লিক করুন এবং রান অপশন সিলেক্ট করুন।
কম্পোনেন্টটির পুরানো ভার্সন আনইন্সটল করার পরে নতুন আপডেট এর জন্য Task Scheduler কমপক্ষে 30 দিন অপেক্ষা করবে। তাছাড়া এই Task Scheduler সর্বনিম্ন এক ঘন্টার সময়সীমা রয়েছে এবং এর মাধ্যমে সমস্ত ফাইল ডিলিট নাও হতে পারে।
আর DISM এর Cleanup-Image প্যারামিটারের সাহায্যে আপনি অবিলম্বে কম্পোনেন্টটির পুরানো ভার্সন রিমুভ করতে পারবেন (অতিরিক্ত ৩০ দিন অপেক্ষা করা ছাড়াই) এবং নেই এক ঘন্টার সময়সীমা। এখন, Command Prompt (Admin) ওপেন করুন এবং নিচের কমান্ডটি টাইপ করুন।
DISM.exe /online /Cleanup-Image /StartComponentCleanup
আপনি যদি ResetBase কমান্ড অ্যাড করেন তাহলে আপনি প্রতিটি কম্পোনেন্টের সমস্ত ভার্সন রিমুভ করতে পারবেন। তবে মনে রাখবেন, এর মাধ্যমে আপনি লেটেস্ট আপডেট গুলো আনইন্সটল করতে পারবেন না এমনকি তাতে যদিও বাগ থেকে থাকে।
DISM.exe /online /Cleanup-Image /StartComponentCleanup /ResetBase
আর নিম্নলিখিত কমান্ডটি ব্যবহার করে সার্ভিস প্যাক আনইন্সটল করার জন্য ব্যাকাপে থাকা যেকোন কম্পোনেন্ট ফাইল রিমুভ করে দিবে।
DISM.exe /online /Cleanup-Image /SPSuperseded<
উইন্ডোজ এর প্রতিদিনের কার্যক্রমে WinSxS কম্পোনেন্ট স্টোরটি গুরুত্বপূর্ণ ভূমিকা পালন করে থাকে। সুতরাং আপনার ফাইলগুলো ডিলিট করে ফেলা বা WinSxS ফোল্ডারটি অন্যকোথাও মুভ স্পেস বাড়ানো ঠিক হবে না বলে আমি মনে করি। তাছাড়া উইন্ডোজ এর আপডেট গুলো ইনডেপট প্রতিবেদন প্রদান করে এবং স্পেস বাড়ানোর জন্য ক্লিন আপ টুলস তো রয়েছেই।
আমি এরকম নিত্যনতুন কাজের সফটওয়্যার নিয়ে টেকটিউনসে হাজির হবো নিয়মিত। তবে সে জন্য আপনার যা করতে হবে তা হলো আমার টেকটিউনস প্রোফাইলে আমাকে ফলো করার জন্য 'Follow' বাটনে ক্লিক করুন। আর তা না হলে আমার নতুন নতুন টিউন গুলো আপনার টিউন স্ক্রিনে পৌঁছাবে না।
আমার টিউন গুলো জোসস করুন, তাহলে আমি টিউন করার আরও অনুপ্রেরণা পাবো এবং ফলে ভবিষ্যতে আরও মান সম্মত টিউন উপহার দিতে পারবো।
আমার টিউন গুলো শেয়ার বাটনে ক্লিক করে সকল সৌশল মিডিয়াতে শেয়ার করুন। নিজে প্রযুক্তি শিখুন ও অন্য প্রযুক্তি সম্বন্ধে জানান টেকটিউনসের মাধ্যমে।
আমি রায়হান ফেরদৌস। বিশ্বের সর্ববৃহৎ বিজ্ঞান ও প্রযুক্তির সৌশল নেটওয়ার্ক - টেকটিউনস এ আমি 11 বছর 4 মাস যাবৎ যুক্ত আছি। টেকটিউনস আমি এ পর্যন্ত 191 টি টিউন ও 131 টি টিউমেন্ট করেছি। টেকটিউনসে আমার 73 ফলোয়ার আছে এবং আমি টেকটিউনসে 1 টিউনারকে ফলো করি।