domainhostcentre
3-23-2014 8-47-20 AM
فناوری

یونیکس چیست و چرا دارای اهمیت است؟

رضا مقدری:

3-23-2014 8-42-21 AM

بیشتر سیستم‌عامل‌ها را می‌توان در دو خانواده قرار داد و به‌ غیر از سیستم‌عامل‌های بر مبنای ویندوز NT مایکروسافت تقریباً سایر اکثریت قریب به اتفاق آنها در صورتی که پیشینه‌شان مورد بررسی قرار گیرد از دل سیستم‌عامل دیگری به نام یونیکس (Unix) زاده شده‌اند.

لینوکس، Mac OS X، اندروید، iOS، کروم OS، اوربیس OS که بر روی پلی استیشن چهار مورد استفاده قرار گرفته است، هر نوع فریم‌وری که بر روی مودم یا روتر خود استفاده می‌کنید و… همه این سیستم‌عامل‌ها در اصطلاح سیستم‌عامل‌هایی بر مبنای یونیکس نامیده می‌شوند.

طراحی یونیکس و بقای حیات آن تا به امروز

یونیکس در آزمایشگاه بل (Bell) متعلق به کمپانی AT&T در اواخر دهه ۶۰ میلادی توسعه داده شد. انتشار اولیه یونیکس در زمینه طراحی دستاوردهایی داشت که تا به امروز نیز در قید حیات مانده و مورد استفاده قرار می‌گیرند. یکی از آنها که به فلسفه یونیکس معروف می‌باشد و هدفش ایجاد یک ابزار موژلار است که تنها یک کار را انجام می‌دهد ولی آن کار را به بهترین و بی‌نقص‌ترین شکل ممکن به انجام می‌رساند. بنابراین اگر با ترمینال لینوکس آشنایی داشته باشید به یقین این موضوع را می‌دانید که این سیستم به شما ابزارهای مختلفی ارائه می‌دهد که با ترکیب آنها به روش‌ّهای مختلف می‌توانید تسک‌های پیچیده‌تری را به سرانجام برسانید. حتی برنامه‌های دارای رابط گرافیکی نیز تمایل دارند ابزارهای کوچک‌تری را در پس‌زمینه فراخوانی کنند تا کارهای سنگین را به کمک آنها انجام دهند. همین موضوع ایجاد شل اسکریپت‌ها را برای متصل کردن ابزارهای ساده به یکدیگر با هدف به سرانجام رساندن کارهای پیچیده‌تر آسان می‌نماید.

یونیکس حتی دارای فایل سیستمی یکتا بوده است که برنامه‌ها برای ارتباط با یکدیگر از آن بهره می‌بردند و همین موضوع سبب شده است که هر چیزی بر روی لینوکس “بصورت یک فایل” باشد حتی ابزارهای سخت‌افزاری، فایل‌های ویژه‌یی که اطلاعات سیستمی را ارائه می‌دهند و… .

3-23-2014 8-43-31 AM

بررسی خانواده و فرزندان یونیکس

مثل همهٔ بخش‌های تاریخ اگر در تاریخ یونیکس نیز به ۴۰ سال قبل برگردیم و بخواهیم به کند و کاو در مورد اولاد یونیکس و خودش بپردازیم با پیچیدگی‌ها بسیاری مواجه خواهیم شد. و برای رفع این پیچیدگی‌ها هر چند به سختی ولی ‌می‌توانیم فرزندان یونیکس را به دو دسته تقسیم کنیم.

یک گروه از فرزندان یونیکس در آکادمی‌ها و مراکز دانشگاهی متولد شدند. و اولین آنها با نام BSD که مخفف توزیع نرم‌افزاری برکلی یا Berkeley Software Distribution شناخته می‌شد و یک سیستم‌عامل کدباز برمبنای یونیکس بود. جالب است بدانید BSD امروزه نیز در قالب FreeBSD، NetBSD و OpenBSD به حیات خودش ادامه می‌دهد. همچنین NextStep نیز بر مبنای BSD بود و البته سیستم‌عامل مشهور Mac OS X‌ اپل نیز بر مبنای NextStep عرضه گردید و iOS بعدها بر مبنای Mac OS X پایه‌گذاری شد. بسیاری از سیستم‌عامل‌های دیگر مانند Orbis که بر روی پلی استیشن چهار ارائه می‌شود نیز بر مبنای یکی از انواع سیستم‌عامل BSD‌ هستند.

پروژهٔ گنوی (GNU) ریچارد استالمن نیز در واکنش به فزایندگی قوانین نرم‌افزاری محدود کننده بهره‌گیری و بکارگیری یونیکس توسط AT&T آغاز شد. MINIX یک سیستم‌عامل بر مبنای یونیکس بود که برای اهداف آموزشی طراحی و پیاده‌سازی گردیده بود و در خلقت لینوکس از MINIX الهام گرفته شده است. لینوکسی که ما امروزه می‌شناسیم در اصل GNU/Linux‌ می‌باشد و از ترکیب کرنل یا هستهٔ لینوکس با تعدادی از ابزارهای GNU پدید آمده است. گنو/لینوکس مستقیماً یکی از فرزندان BSD محسوب نمی‌شود ولی در اصل یکی از فرزندان طراحی متعلق به یونیکس است و ریشه‌هایش به مراکز دانشگاهی و آکادمیک باز می‌گردد. بسیاری از سیستم‌عامل‌های امروزی که در ابعاد وسیعی از آنها استفاده می‌شود همانند اندروید، کروم OS، استیم OS و… بر مبنای لینوکس هستند.

در سوی دیگر نسخه‌هایی تجاری از سیستم‌عامل یونیکس مانند AT&T Unix، SCO UnixWare، Sun Microsystems، HP-UX، IBM AIX، SGI IRIX قرار دارند و بسیاری از کمپانی‌های بزرگ تلاش کردند تا نسخه‌ای از یونیکس را با لایسنس و قوانین تجاری خودشان پیاده‌سازی و ارائه نمایند. هر چند بسیاری از این نسخه‌های یونیکس امروزه دیگر رایج نیستند ولی هنوز برخی از آنها در بازار حضور دارند.

3-23-2014 8-44-50 AM

رستاخیز DOS‌ و ویندوز NT

بسیاری از افراد انتظار داشتند تا یونیکس در صنعت کامپیوتر تبدیل به یک سیستم‌عامل استاندارد شود اما برخلاف این انتظار سیستم‌عامل DOS و کامپیوترهای شخصی مبتنی بر پلتفرم IBM به یکباره دچار محبوبیتی همگانی شدند. DOS هرگز بر مبنای یونیکس پایه‌ریزی و کدنویسی نشده بود و یک نشانه بارز این موضوع در این است که مسیر فایل‌ها در این سیستم‌عامل از سمبل بک اسلش استفاده می‌نماید در حالی که این موضوع در سایر سیستم‌عامل‌ها بدون استثنا از سمبل اسلش استفاده می‌نماید. تصمیم به استفاده از بک اسلش در روزهای اولیه توسعه DOS گرفته شد و بعدها سیستم‌عامل ویندوز نیز این رویه را از DOS به ارث برد همانطوری که BSD، لینوکس، Mac OS X و سایر سیستم‌عامل‌های مبتنی بر یونیکس بسیاری از اصول طراحی پدر خود یعنی یونیکس را به ارث بردند.

ویندوز ۳.۱، ویندوز ۹۵، ویندوز ۹۸ و ویندوز ME همگی بر مبنای سیستم‌عامل DOS بودند اما مایکروسافت در همان زمان در حال توسعه نسخه مدرن‌تر و پایدار‌تری از سیستم‌عامل با نام ویندوز NT بود که در اصل مخفف تکنولوژی جدید ویندوز یا Windows New Technology‌ می‌بود. ویندوز NT در نهایت راه خودش را بر روی کامپیوترهای شخصی کاربران با نام ویندوز XP باز نمود ولی قبل از آن برای مصارف تجاری و… با عناوینی مانند ویندوز NT و ویندوز ۲۰۰۱ ارائه شده بود.

در حال حاضر کلیهٔ سیستم‌ عامل‌های مایکروسافت بر مبنای هسته یا کرنل ویندوز NT ارائه شده‌اند و ویندوز هفت، ویندوز هشت، ویندوز RT، ویندوز فون ۸، ویندوز سرور و سیستم‌عامل کنسول بازی Xbox One همگی از کرنل ویندوز NT بهره می‌برند. هر چند مایکروسافت در ارائه ویندوز NT همه چیز را از اول طراحی و پیاده‌سازی نکرده است و جهت سازگاری با نسخه‌های قبلی سیستم‌عامل‌هایش که بر مبنای DOS بودند در ویندوز NT‌ نیز شاهد این موضوع هستیم که بسیاری خواص و اصول DOS مانند استفاده از بک اسلش در مسیر فایل‌ها، اختصاص یک حرف به درایوها، استفاده از اسلش برای سوئیچ‌های خطوط دستور و… به ارث برده شده‌اند. ولی NT نیز در نهایت هرگز ذره‌ای از اصول یونیکس و یا طراحی یونیکس پیروی نکرده است و کاملاً از آن مستقل است.

3-23-2014 8-45-50 AM

چرا این موضوعات دارای اهمیت هستند؟

آیا تا به حال به ترمینال Mac OS X و فایل سیستم آن توجه کرده‌اید و متوجه شباهت بیش از حد آن با سیستم‌عامل لینوکس شده‌اید؟ دلیل این امر این است که هر دوی این سیستم‌عامل‌ها بر مبنای یونیکس توسعه داده شده‌اند. دانستن این بخش از تاریخچه کامپیوترها و سیستم‌عامل‌ها این موضوع را برای شما توضیح می‌دهد که چرا بسیاری از سیستم‌عامل‌ها مشابه یکدیگر هستند و از اصولی یکسان پیروی می‌نمایند در حالی که سیستم‌عامل ویندوز ابداً از این اصول پیروی نمی‌کند. و حالا به سادگی می‌توانید درک کند که چرا ترمینال در Mac OS X دارای تفاوت‌های بسیاری با Command Prompt و PowerShell در ویندوز است و این دو محیط خط دستور هر یک دارای اصول منحصر به فرد خود هستند.

در بحث شرکت کنید

  • 2
    11.6k

    Firmware رو با تلفظ کوچه‌بازاری “فریم ور” ترجمه کردید! بهتر بود از همون کلمه firmware انگلیسی، یا حداقل از “فیرم‌ور” استفاده میکردید.

    • 3569
      30

      بهتره به جای غلط دیکته ای گرفتن و اشکال تراشی از صفحاتی که در کار تولید محتوی هستن قدردانی کنیم و تا جایی که بتونیم در کار ویرایش و ادیت( edit :))) ) کمک حال همدیگه باشیم تا تنها بگردیم به دنبال نکات به ظاهر منفی و اشتباه غیر عمدی غیر مهم و minnor

      • 3570
        30

        minor درسته نه minnor ؛ lol

      • 2
        11.6k

        اتفاقاً بخاطر اینکه قدردان این بلاگ هستم و برام مهم بود این نکته رو گوشزد کردم. ایراد موجود هم به قول شما یک «غلط دیکته‌ای» نیست! دوستانی که در ضمینه سخت‌افزار و الکترونیک فعالیت میکنند با این واژه آشنایی کافی دارند و با دیدن ترجمه اشتباه و بکار بردن عبارتی که بین افراد غیر متخصص رایج شده درباره سایت قضاوت خواهند کرد. به همین دلیل من درخواست اصلاح اون رو داشتم، چون «یک پزشک» ارزشش بیش از اینهاست (:

      • 747
        130

        الان minor رو عمدا غلط نوشتی؟

      • 1674
        70

        به اعتقاد من یک محتوای بد مثل این مطلب بهتره اصلن تولید نشه که هم منزلت بلاگ شریف شما حفظ بشه و هم وقت خوانندگان تلف نشه. این مطلب علاوه بر این اشکالات [به باور شما دیکته ای و به اعتقاد من تخصصی] دارای مشکلات محتوایی و ساختاری هم هست. انتشار مطلبی سرهم بندی شده و بی و سر و ته که به غیر از انبوهی اسم و لیبل هیچ فهم درستی از یونیکس و اهمیتش به خواننده نمیده برای مخاطبینی مثل من که بلاگ شما رو با مطالب مفصل و حرفه ای ش به یاد داره مقداری عجیب به نظر میرسه.

    • 924
      110

      درسته…حق باشماست …
      دکتر قبول کن دیگه !
      :دی

  • 3570
    30

    thx for providing such a good article

  • 4096
    30

    عالی بود
    مرسی

  • 657
    150

    منم علاقمند به تلفظ صحیح تمام زبان ها و یا ترجمه فارسی و علمی آن هستم.

  • 12
    1.6k

    مقاله خوبی بود. امیدوارم ادامه پیدا کنه و مثلا در مقاله بعدی توزیعهای مختلف لینوکس رو بررسی کنه و یا مثلا درباره “گنو” و تاریخچه اش بیشتر توضیح بده.

  • 401
    210

    ممنون.مطلب زیبایی بود.

    امیدوارم پس از این مطلب،سلسله پست هایی در خصوص گنو/لینوکس و نرم افزارهای آزاد ارائه بشه تا مردم هرچه بیشتر به سمت این فرهنگ سوق پیدا کنن و از زیر یوغ شرکت های تجاری مثل اپل و مایکروسافت بیرون بیان.

  • 4270
    30

    ممنون بابت مطلب.من تازه با یک پزشک اشنا شدم.واقعا سایت عالی دارید.امیدوارم موفق باشید.

  • 14
    1.6k

    اوهوم من به شباهتش خیلی دقت کرده بودم :))

    بگو چرا هی جادی در به در میگه گنو/لینوکس خوب است و فلان است و ما گوشمون بدهکار نیست

  • 18
    1.5k

    من یک سوال دارم: افرادی که عمرشون را وقف توسعه ی لینوکس میکنند، چه مجرای درآمدی دارند؟ طبق لایسنس GNU، حق ندارند دستمزدی در قبال کارشون دریافت کنند. ممنون میشوم اگر کسی میداند راهنمایم کند.

    • 235
      310

      سلام. بهنام گرامی، GNU استفاده‌های تجاری از لینوکس و دیگر نرم‌افزارهای آزاد رو منع نکرده. با اینکه بسیاری از توسعه‌دهندگان لینوکس داوطلبانی از سراسر جهان هستند و بسیاری از نسخه‌های این سیستم‌عامل به‌صورت رایگان قابل دانلود هستند اما کسب درآمد از راه فروش این سیستم‌عامل منع نشده.
      سوال و جواب مندرج در سطر زیر را ببینید:
      https://www.gnu.org/licenses/gpl-faq.html#GPLCommercially

      در واقع واژه free به معنی «آزادی» نرم‌افزاره و نه رایگان بودن اون. برای مثال شرکت ردهت نسخه تجاری و سرور سیستم‌عامل خودش رو با قیمت‌های چندصددلاری به فروش می‌رسونه. لینک زیر رو ببییند:
      redhat.com/wapps/store/catalog.html

      شرکت‌ها می‌تونن نرم‌افزارهای آزاد و تحت لایسنس GNU رو به‌فروش برسونند به شرطی که بندهای GNU رو در قبال اون رعایت کنند از جمله اینکه کد منبع نرم‌افزار رو هم در اختیار خریدار قرار بدهند.

    • 5704
      20

      اشتباه متوجه شدید. طبق قوانین گنو فروش نرم افزارهای آزاد هیچ ایرادی نداره (مثل ردهت اینترپرایز) مهم اون باز بودن کد/سورس نرم افزارهاست و چند مورد دیگه!

  • 4513
    30

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

  • 1632
    70

    But GNU’s Not Unix! :D

  • 21761
    10

    اگه مایکروسافت و آی بی ام هم از سیستم عامل یونیکس بهره می بردند شاید الان این مقدار اختلاف و سردرگمی برای مصرف کننده در انتخاب سیستم عامل و پلت فرمها ایجاد نمی شد.

  • 52
    720

    جالب بود ممنون

  • 2302
    50

    سلام

    فقط ویندوز
    استیو جابز ادعا میکرد که بیل گیتس از ما کپی کرده بیل گیتس از مک کپی نکرده بیل گیتس رفت DOS رو خرید تغییرش داد به ویندوز ولی استیو جابز از یونیکس استفاده کرد و یونیکس رو تغییر داد معلومه که هیچ کدوم از اون یکی کپی نکردند اگه بیل گیتس و داس و ویندوز نبود هنوز تو این دنیا همه عقده کامپیوتر داشتن بیل گیتس مسیر رو هموار کرد سیستم هاشو ارزان در خدمت دنیا گذاشت و بعد روی مسیر صاف شده استیو جابر با اون صفحه های لمسی زیباش آسفالت کشید