تغییر جدید کرنل لینوکس و استفاده از استاندارد C11

blog
۱۴۰۰-۱۲-۱۷
2 دقیقه

تغییر جدید کرنل لینوکس این بار شامل استانداردهای کامپایل هسته شده است. لینوکس یکی از سیستم‌عامل‌های محبوب و متن باز است که درواقع یکی از بخش‌های مهم آن کرنل است، تا کنون این کرنل به دلیل مشکلات موجود در کامپایلر GCC با استاندارد C89 که بسیار قدیمی است کامپایل می‌شود. لینوس تروالدز بنیان‌گذار لینوکس،با توجه به بهینه سازی های صورت گرفته در کامپایلر GCC تصمیم گرفته است که کرنل لینوکس را به استاندارد C11 (استاندارد ساخته‌شده در سال 2011) ارتقا دهد.

برای جزییات بیشتر با سیسوگ همراه باشید.

 

تغییر جدید کرنل لینوکس از کجا شروع شد

 سیستم‌عامل لینوکس به زبان C نوشته‌شده است، اما بسیاری از افرادی که از این سیستم‌عامل استفاده می‌کنند نمی‌دانند نسخه C استفاده‌شده برای نوشتن لینوکس، نسخه مربوط به سال ۱۹۸۹ است! این نسخه از زبان C با عنوان ANSI x3.159-1989 نیز شناخته می‌شود.

ازآنجایی‌که C89 همچنان پشتیبانی می‌شود و همچنین همه کامپایلرهای C با استانداردهای قدیمی سازگار است، این ارتقا لینوکس آن‌چنان که به نظر می‌رسد، چشم‌گیر نخواهد بود. پس این سؤال پیش می‌آید که اصلاً این کار چه ضرورتی دارد؟ خصوصاً وقتی‌که تغییرات پیش رو ویژگی‌های مفیدی که در نسخه‌های جدیدتر هستند را شامل نمی‌شود!

موضوع تغییر استاندارد C، زمانی مورد توجه قرار گرفت که توسعه یک Patch جدید با مشکل مواجه شد. در این Patch، هنگام برطرف کردن یک مشکل امنیتی بالقوه (که با توابع تخمین-اجرای اصلی linked-list مربوط به کرنل وجود داشت) مشکل دیگری بروز کرد. در زمان حل این مشکل، تروالدز متوجه شد که در استاندارد C99، متغیر iterator که به ماکروهای انتقال لیست داده می‌شود، باید در اسکوپی خارج از خود حلقه اعلان شود.

آقای تروالدز در لیست میلینگ کرنل لینوکس (LKML) نوشت:

تمام دلیل بروز یک خطای non speculation مانند این، عدم استفاده ما از ‘اعلان متغیرها در حلقه‌ها’ به سبک C99 است.

به طور کلی ماکروهایی مثل (list_for_each_entry) همیشه به این دلیل که نمی‌توانند متغیر iterator را در خود حلقه اعلان کند، آخرین ورودی HEAD را از حلقه خارج می‌کند.

 

راه حل چیست؟

بااینکه استاندارد C99 مربوط به بیش از 20 سال پیش است، اما امکان اعلان متغیرها در سطح بلاک را فراهم می‌کند. آرند برگمن توسعه‌دهنده لینوکس، گفته است که این کار قابل انجام است. وی همچنین اعلام کرده است که امکان رفتن به استاندارد C11 نیز وجود دارد و به عبارتی از آنجایی که C99 محبوبیت زیادی ندارد و C11 مزایایی مثل پشتیبانی از multithreading و امنیت بالا، انتقال به C11 منطقی‌تر به نظر می‌رسد.

کامپایلر مینیمال کرنل لینوکس برای C، یعنی GCC نسخه 5.1 از C11 پشتیبانی می‌کند

کامپایلر GCC نسخه ۵.۱ که معمولا برای کامپایل کرنل از آن استفاده می‌شود از استاندارد C11 نیز پشتیبانی می‌کند، بنابراین مهاجرت به C11 آسان خواهد بود. تروالدز اظهار داشته که «بسیار مشتاق هستم که بالاخره زمان انجام این تغییر فرارسیده است، خصوصاً با توجه به اینکه (استاندارد C) سال‌ها در حال تکامل بوده است.»

سرانجام پس از اطمینان از درستی عملکرد استاندارد جدید C، بدون بروز هیچ‌گونه اشکال در کرنل، تروالدز پروژه را کلید زده است.

این انتقال به زودی و در merge window 5.18 آزمایش می‌شود.

ازآنجاکه merge window 5.18 به‌زودی منتشر می‌شود می‌توانیم کرنل جدید را در ماه مارس 2022 امتحان کنیم.

در آخر جاناتان کوربرت ژورنالیست و توسعه‌دهنده لینوکس، اظهار داشته است که تا زمان عرضه‌نهایی این نسخه جدید و رفتن به یک استاندارد جدید ممکن است هر اتفاق غیرقابل‌پیش‌بینی را در پی داشته باشد (که در صورت بروز چنین اتفاقاتی ممکن است این تغییرات لغو شده و به حال قبل برگردانده شوند.) بااین‌وجود اگر همه‌چیز به خوبی پیش برود، در نسخه بعدی کرنل، شاهد انتقال به C11 خواهیم بود.

 

   منبع

اطلاعات
2
0
لینک و اشتراک
profile

سیاوش

متخصص الکترونیک

کارشناس ارشد الکترونیک دیجیتال، علاقه‌مند به یادگیری

مقالات بیشتر
slide

پالت | بازار خرید و فروش قطعات الکترونیک

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

آیسی | موتور جستجوی قطعات الکترونیک

سامانه آی سی سیسوگ (Isee) قابلیتی جدید و کاربردی از سیسوگ است. در این سامانه سعی شده است که جستجو، انتخاب و خرید مناسب تر قطعات برای کاربران تسهیل شود. وقتی شما در این سامانه، قطعه الکترونیکی را جستجو می‌کنید؛ آی سی به سرعت نتایج جستجوی شما در اکثر فروشگاه‌های آنلاین در حوزه قطعات الکترونیک را نمایش می‌دهد. جستجو در آیسی
family

فروشگاه سیسوگ

فروشگاه سیسوگ مجموعه ای متمرکز بر تکنولوژی های مبتنی بر IOT و ماژول های M2M نظیر GSM، GPS، LTE، NB-IOT، WiFi، BT و ... جایی که با تعامل فنی و سازنده، بهترین راهکارها انتخاب می شوند. برو به فروشگاه سیسوگ
family

سیسوگ فروم | محلی برای پاسخ پرسش‌های شما

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

نویسنده شو !

سیسوگ با افتخار فضایی برای اشتراک گذاری دانش شماست. برای ما مقاله بنویسید.

ارسال مقاله
become a writer

نویسنده شو !

سیسوگ با افتخار فضایی برای اشتراک گذاری دانش شماست. برای ما مقاله بنویسید.

ارسال مقاله
خانواده سیسوگ

پالت | بازار خرید و فروش قطعات الکترونیک

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

آیسی | موتور جستجوی قطعات الکترونیک

سامانه آی سی سیسوگ (Isee) قابلیتی جدید و کاربردی از سیسوگ است. در این سامانه سعی شده است که جستجو، انتخاب و خرید مناسب تر قطعات برای کاربران تسهیل شود. وقتی شما در این سامانه، قطعه الکترونیکی را جستجو می‌کنید؛ آی سی به سرعت نتایج جستجوی شما در اکثر فروشگاه‌های آنلاین در حوزه قطعات الکترونیک را نمایش می‌دهد.
family

فروشگاه سیسوگ

فروشگاه سیسوگ مجموعه ای متمرکز بر تکنولوژی های مبتنی بر IOT و ماژول های M2M نظیر GSM، GPS، LTE، NB-IOT، WiFi، BT و ... جایی که با تعامل فنی و سازنده، بهترین راهکارها انتخاب می شوند.
family

سیسوگ فروم | محلی برای پاسخ پرسش‌های شما

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

دیدگاه ها

profile
m.h.Yazdani گفت :
۱۴۰۰-۱۲-۱۷ ۲۱:۲۱

جادی تو کانال یوتیوب خودش کامل این مورد رو توضیح داده
اگه بیشتر میخواهید بدونید دیدنش خالی از لطف نیست

profile
Zeus ‌ گفت :
۱۴۰۰-۱۲-۱۸ ۱۱:۴۴

سلام
بله اتفاقا خیلی هم خوب توضیح داده و از روی سورس کد توضیح داده لینکش رو میذارم دوستان حتما ببینند

become a writer

نویسنده شو !

سیسوگ با افتخار فضایی برای اشتراک گذاری دانش شماست. برای ما مقاله بنویسید.

ارسال مقاله
become a writer

نویسنده شو !

سیسوگ با افتخار فضایی برای اشتراک گذاری دانش شماست. برای ما مقاله بنویسید.

ارسال مقاله