راز ۳۰ ساله ویندوز؛ چرا ساخت پوشه‌ای به نام CON غیرممکن است؟

اگر در سیستم‌عامل ویندوز تلاش کنید پوشه یا فایلی با نام CON ایجاد کنید، با خطای سیستم‌عامل مواجه خواهید شد. این محدودیت برعکس تصور بسیاری از کاربران، یک باگ نرم‌افزاری یا نقص فنی در فایل‌سیستم‌های مدرن مثل NTFS نیست؛ بلکه ریشه در تاریخچه فناوری و حفظ سازگاری با نسخه‌های قدیمی دارد.

نام‌های رزروشده دستگاه‌ها (Reserved Device Names) چیستند؟

ریشه این موضوع به دوران سیستم‌عامل MS-DOS برمی‌گردد. در آن زمان، برخی عبارت‌ها به عنوان شناسه سخت‌افزارها و دستگاه‌های ورودی و خروجی سیستم رزرو شده بودند. عبارت CON اختصار کلمه Console (کنسول؛ شامل کیبورد و صفحه نمایش) است.

علاوه بر CON، نام‌های رزروشده دیگری نیز وجود دارند که نمی‌توانید از آن‌ها برای نام‌گذاری فایل یا پوشه استفاده کنید:

  • CON: ورودی/خروجی کنسول (کیبورد و مانیتور)

  • PRN: چاپگر (Printer)

  • AUX: دستگاه کمکی یا پورت سریال (Auxiliary)

  • NUL: دستگاه خالی یا پوچ (Null Device)

  • COM1 تا COM9: پورت‌های ارتباطی سریال

  • LPT1 تا LPT9: پورت‌های موازی چاپگر

حتی اضافه کردن پسوند به این نام‌ها (مانند ساخت فایلی با نام NUL.txt) معمولاً مشکل را حل نمی‌کند؛ چراکه لایه Win32 سیستم‌عامل همچنان آن را به عنوان نام رزروشده سخت‌افزاری شناسایی می‌کند.

پوشه CON

چرا مایکروسافت این محدودیت را در ویندوزهای مدرن حفظ کرده است؟

بر اساس مستندات رسمی مایکروسافت، فایل‌سیستم‌های مدرن مانند NTFS به خودی خود هیچ محدودیتی برای ساخت پوشه‌هایی با این نام‌ها ندارند. این محدودیت در واقع متعلق به لایه نرم‌افزاری Win32 API است.

دلیل باقی ماندن این ساختار قدیمی پس از چند دهه، حفظ Backward Compatibility (سازگاری با گذشته) است. اگر مایکروسافت این محدودیت را از لایه Win32 حذف کند، بسیاری از نرم‌افزارها و برنامه‌های کدهای قدیمی (Legacy) که هنوز بر پایه ارتباطات پایه سیستم کار می‌کنند، دچار اختلال شدید و بروز خطا خواهند شد.

بنابراین، عدم امکان ساخت پوشه CON نشان‌دهنده یک میراث ارزشمند ارزشمند از معماری کامپیوترهاست که سیستم‌عامل برای پایداری نرم‌افزارهای قدیمی همچنان از آن محافظت می‌کند.

نوشته راز ۳۰ ساله ویندوز؛ چرا ساخت پوشه‌ای به نام CON غیرممکن است؟ اولین بار در آی‌ تی‌ رسان منتشر شد.