کتابخانه سی گنو

از ویکی‌پدیا، دانشنامهٔ آزاد
کتابخانه سی گنو
نویسنده(های)
اصلی
رونالد مک‌گراث
توسعه‌دهنده(ها)پروژه گنو
انتشار ابتدایی۱۹۸۷؛ ۳۷ سال پیش (۱۹۸۷-خطا: زمان نامعتبر}})
انتشار پایدار
۲٫۲۲
۱۴ اوت ۲۰۱۵؛ ۸ سال پیش (۲۰۱۵-۱۴}})
مخزن
نوشته‌شده باسی
سیستم‌عاملسیستم‌عامل گنو، گنو/لینوکس، شبه-یونیکس
گونهکتابخانه زمان اجرا
پروانهگنو ال‌جی‌پی‌ال
وبگاه
GNU C Library

کتابخانه گنوسی (به انگلیسی: GNU C Library) که بیشتر glibc نامیده می‌شود، یک پیاده‌سازی کتاب‌خانه استاندارد سی توسط پروژه گنو است. با وجود نام آن، همچنین مستقیماً سی پلاس پلاس را نیز پشتیبانی می‌کند (و غیرمستقیم، زبان‌های برنامه‌نویسی دیگر). در اصل توسط بنیاد نرم‌افزار آزاد برای سیستم‌عامل گنو نوشته شده‌بود. توسعه کتاب‌خانه توسط کمیته‌ای از سال ۲۰۱۱ توسط Ulrich Drepper، به عنوان مدیر همکاران و همکاران، بازبینی شد. در مارس ۲۰۱۲، کمیته راه‌بری، رأی به منحل کردن خود و حذف Drepper به نفع روند توسعه جامعه-محور به همراه مسئولیت نگهداری توسط Ryan Arnold, Maxim Kuvyrkov, Joseph Myers, Carlos O'Donell, و Alexandre Oliva (بدون قدرت تصمیم-سازی اضفه) داد.

پیشینه[ویرایش]

glibc در ابتدا بیشتر توسط Roland McGrath نوشته شد، که او در دهه ۱۹۸۰ برای بنیاد نرم‌افزار آزاد فعالیت می‌کرد.

در فوریه ۱۹۸۸، FSF کتاب‌خانه glibc را به عنوان دارا بودن تقریباً کامل عملکردهای مورد نیاز ANSI C معرفی کرد. در ۱۹۹۲، عملکردهای استاندارد ANSI C-۱۹۸۹ و POSIX.1-1990 را داشت و در حال کار بر روی استاندارد POSIX.2 بود.

یک انشعاب موقت[ویرایش]

در حدود دهه ۱۹۹۰، توسعه‌دهندگان کرنل لینوکس، یک انشعاب از glibc گرفتند. انشعاب آنان، «Linux libc» نامیده شد و برای چند سال نگهداری می‌شد و نسخه‌های ۲ تا ۵ را انتشار داد.

هنگامی که FSF کتاب‌خانه glibc ۲٫۰ را در ژانویه ۱۹۹۷ منتشر کرد، انطباق بسیار بیشتری با استاندارد POSIX، عملکرد بهتر بین‌المللی‌سازی و چندزبانی، قابلیت IP نسخه ۶، دسترسی داده‌ای ۶۴بیتی، امکانات لازم برای برنامه‌های چندنخی، سازگاری با نسخه‌های بالاتر داشت و کُد آن قابل‌حمل‌تر شد. در این جا، توسعه‌دهندگان هسته لینوکس انشعاب خود را ادامه ندادند و به استفاده از glibc نسخه FSF بازگشتند.

با توجه به ریچارد استالمن، تغییرات ایجاد شده در Linux libc به خاطر حق‌تألیف، قابل ادغام شدن به libc نیست. وضعیت کُد مشخص نیست و پروژه گنو دربارهٔ حق‌تألیف و نویسندگان سخت‌گیر است.

پشتیبانی از سخت‌افزار و هسته[ویرایش]

glibc در سیستم‌های با هسته‌ها و معماری سخت‌افزاری مختلف استفاده شده‌است. بیشترین استفاده آن در سیستم‌هایی با هسته لینوکس بر سخت‌افزار x۸۶ است، هرچند، رسماً سخت‌افزارهای x۸۶، موتورلا ۶۸۰x۰ و DEC Alpha, PowerPC, ETRAX CRIS, s390, Elbrus و SPARC را نیز پشتیبانی می‌کند. همچنین به‌طور رسمی هسته‌های هرد و لینوکس را پشتیبانی می‌کند. همچنین نسخه‌هایی با وصله‌های بسیار بر هسته‌های فری‌بی‌اس‌دی و نت‌بی‌اس‌دی اجرا می‌شوند (که سیستم‌های Debian GNU/kFreeBSD و Debian GNU/NetBSD بدین ترتیب ساخته شدند)، همچنین یک نسخه انشعاب‌یافته از OpenSolaris. همچنین یک نسخه ویرایش‌شده آن با نام libroot.so در BeOS و Haiku استفاده شد.

منابع[ویرایش]