داروین (Darwin) شاید نامی نه چندان آشنا برای کاربران جدیدی که تازه از سیستم عامل های OS X و iOS استفاده می‌کنند٬ باشد. اما افرادی که از سال‌ها پیش با مک کار کرده اند حتما در خط فرمان‌ها و حتی در بوت های اولیه دستگاه واژه Darwin را دیده اند. Darwin هسته اصلی Mac OS X و iOS است هسته ای که بر پایه POSIX تولید شد.

(POXIS مخفف Portable Operating system Interface for Unix است و مجموعه از استانداردهایی برای نامگذاری و تعریف شمایل رابط برنامه نویسی کاربردی بر پایه هسته مرکزی و دستورات Unix می باشد)

در اصل Darwin یک سیستم عامل متن باز است که اولین بار در سال ۱۹۹۹ در Mac OS X Server 1.0 بطور رسمی استفاده شد ولی پایه داروین بخصوص تولید برنامه برپایه این کرنل قبل تر از این‌ها بوده است٬ Darwin برپایه سیستم عامل NeXTSTEP از شرکت NeXT است٬شرکت NeXT شرکتی بود که استیو جابز بعد از جدایی از اپل آنرا تاسیس کرد و بعدها بعد از بازگشت به اپل این شرکت و پروژه ها را با شرکت اپل ادغام کرد و در نهایت سیستم عامل NeXTSTEP که بعدها به OPENSTEP معروف شد پایه گذار Darwin شد و در نهایت اولین نسخه از Darwin در هسته Mac OS X استفاده شد.

nextstep

نمایی از سیستم عامل NeXTSTEP

Darwin برپایه کدهای منبع یونیکس٬ POSIX و سازگار برای برنامه‌های تولید شده با Objective-C و Cocoa frameworks است.
نوع برنامه نویسی برای این کرنل با دیگر سیستم عامل ها برپایه کدهای منبع یونیکس و POSIX متفاوت است٬ زیرا استیو جابز زمانی که شرکت NeXT را تاسیس کرد٬به فکر تولید یک سیستم عامل اختصاصی برای محصولاتش بود و براساس این استراتژی٬ برنامه نویسان را وادار به تولید کدهای اختصاصی برای نوشتن برنامه برای این سیستم عامل کرد و آنرا سیستم عاملی از نوع XNU نامید. XNU مخفف X is Not Unix است. یعنی استیو جابز از همان اول هم به دنبال اختصاصی کردن این سیستم عامل بود و با این معرفی که این سیستم عامل Unix نیست سعی در انحصاری کردن آن داشت.

Darwin یک کرنل ترکیبی از کامپوننت های Mach ٬ BSD و I/O-Kit است که بر روی پردازنده های معمول بازار قابل پیاده سازی است ولی اپل با تغییراتی روی آن اوایل آنرا تنها برای PowerPCها و در سال های بعد برای پزدازنده های Intel و برای iOS برای ARM ها آماده کرد.

400px-Diagram_of_Mac_OS_X_architecture

ولی یک نکته در مورد انحصاری کردن این سیستم عامل و بستن کد‌های منبع وجود داشت. به هر حال Darwin بر پایه POSIX بود (مجموعه استانداردهایی برای رابط برنامه نویسی در محیط‌های شبه یونیکس که توسط IEEE تعریف شده بود)
POSIX پیشنهاد آقای ریچارد استالمن بنیانگذار بنیاد نرم افزار آزاد بود. طبق قوانین بنیاد نرم افزارهای آزاد هیچ کس حق انحصاری کردن کدهای منبع و بستن آن‌ها را ندارد.

سیستم عامل های زیادی بر پایه POSIX تولید شدند مثل Solaris – Minix – BSD/OS – HP-UX – OPENBSD – NetBSD – Linux – Symbian 9 طبق قوانین بنیاد نرم افزارهای آزاد انحصاری کردن سورس‌ها کار غیر قانونی و خلاف مرام نامه این بنیاد است پس اپل نیاز به یک استراتژی جدید در این باره داشت.

شرکت NeXT بعد از توسعه سیستم عامل NeXTSTEP نسخه متن باز آنرا با نام OPENSTEP منتشر کرد. بعدها با رفتن استیو جابز به شرکت اپل و ادغام پروژها این سیستم عامل توسعه داده شد و کرنل Darwin متولد شد ولی باز هم اپل حق انحصاری کردن و بستن سورس را نداشت بنابراین یک نسخه نه چندان توسعه یافته از نسخه اصلی را با نام OpenDarwin منتشر کرد که شامل کدهای منبع Darwin بود بعد نام سیستم عامل ها را از نسخه های Darwin یه یک نام عمومی تغییر داد.
Darwin 1.3.1 با نام Cheetah ٬ Darwin 5.5 با نام Puma و نسخه Darwin 12 با نام Mountain Lion از نمونه های نام گذاری برای نسخه هایی از Darwin است.

Mac-OS-X

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

در حال حاضر شرکت اپل پروژه OpenDarwin را به حالت تعلیق درآورده است. Darwin از نسخه ۹ به بعد دیگر به صورت کد منبع منتشر نشد و شرکت اپل سیستم عامل iOS را هم بر پایه Darwin تولید کرده است. برای نمونه نسخه ۱۳ Darwin همین iOS 6 است. که همین موضوع نشانه تمرکز اپل برای یکپارچه سازی سیستم عامل‌ اختصاصی دستگاه‌هایش است.

اگر از سیستم عامل مک استفاده می کنید همین الان می تونید برنامه Terminal را از داخل فولدر Applications سپس Utilities باز کنید و دستور uname -r را وارد کنید و روی کلید Enter بزنید تا نسخه Darwin مربوط به سیستم عامل دستگاه خود را مشاهده کنید.

Screen Shot 2013-04-22 at 12.40.18 PM