، پروژه Chromium از استفاده از کتابخانه های C++ Rust شخص ثالث در Chromium پشتیبانی می کند
گوگل رونمایی کرد اخیراً خبری مبنی بر اینکه تیم پشت پروژه Chromium است در حال کار بر روی اضافه کردن یک زنجیره ابزار Rust است از تولید تا سیستم ساخت شما.
برای کسانی که هنوز از Rust بی اطلاع هستند، باید آن را به خوبی به خاطر بسپارند زیرا این زبان برنامه نویسی که توسط موزیلا به طور خاص برای استفاده در نوشتن یک مرورگر توسعه داده شده است، شروع به نفوذ کرده و در بسیاری از پروژه های مهم پذیرفته شده است، یکی از آنها Rust Kernel. Linux.
این به ما امکان می دهد تا در سال آینده کد Rust را در باینری کروم قرار دهیم. هدف این است که از کوچک شروع کنیم و انتظارات روشنی را تعیین کنیم که کتابخانه ها در صورت آماده شدن برای آنها در نظر گرفته می شوند.
بنابراین منطقی است که Chromium بالاخره شروع به عرضه این فناوری نیز کرده است. برای گوگل، معرفی Rust در Chromium هدف ارائه یک راه آسانتر و ایمنتر برای پیروی از قانون دو، یعنی سرعت بخشیدن به توسعه و بهبود امنیت کروم، علاوه بر بهبود امنیت، حذف خطاهای حافظه را برآورده میکند. و کاهش تراکم خطاها در کد.
ما می دانیم که C++ و Rust به لطف ابزارهایی مانند cxx، autocxx bindgen، cbindgen، diplomat و crubit (تجربی) می توانند به خوبی با هم کار کنند. با این حال، محدودیت هایی نیز وجود دارد. ما میتوانیم انتظار داشته باشیم که شکل این محدودیتها در طول زمان با ابزارهای جدید یا بهبودیافته تغییر کند، اما تصمیمگیریها و توضیحات در اینجا بر اساس وضعیت فعلی فناوری است.
تصمیم به عنوان بخشی از ابتکار عمل برای جلوگیری از بروز خطاهای حافظه اتخاذ شد در پایگاه کد کروم. طبق آماری که دو سال پیش ارائه شد، 70 درصد از مسائل امنیتی حیاتی و خطرناک در کرومیوم به دلیل خطاهای حافظه است.
استفاده از زبان Rust که بر مدیریت حافظه ایمن تمرکز دارد و مدیریت خودکار حافظه را فراهم می کند، خطر آسیب پذیری های ناشی از مسائلی مانند دسترسی به یک ناحیه از حافظه پس از آزاد شدن و سرریز شدن بافر را کاهش می دهد.
هدف از آوردن Rust به Chromium، ارائه یک راه ساده تر (بدون IPC) و ایمن تر (به طور کلی C++ کمتر، بدون اشکالات ایمنی حافظه sandboxed) برای رعایت قانون دو، به منظور سرعت بخشیدن به توسعه (کد کمتر برای نوشتن) است. ، اسناد طراحی کمتر، وصله های امنیتی کمتر) و برای بهبود امنیت (خطوط بیشتر کد بدون اشکال امنیتی در حافظه، تراکم اشکال کد کمتر) Chrome. علاوه بر این، این شرکت مطمئن است که ما می توانیم از کتابخانه های شخص ثالث Rust برای رسیدن به این هدف استفاده کنیم.
در اوایل سال 2022، تیم Chromium قبلاً Rust را آزمایش کرده بود و بعد از چند ماه به نتیجه رسید این زبان در ابتدا به عنوان جایگزینی ++C برای کارهای پیچیده با کد ناهمزمان که باید در کنار کدهای موجود کار کند، مناسب نیست.
بنابراین، استفاده برنامه ریزی شده از Rust در Chromium در ابتدا به وضوح محدود است. برای یک چیز، interop فقط یک راه پیش می رود: از C++ به Rust. از سوی دیگر، در ابتدا فقط استفاده از کتابخانه های شخص ثالث مجاز است. اینها به عنوان اجزای مستقل کار می کنند و مستقل از اجزای داخلی Chromium هستند. کتابخانه ها باید یک API ساده برای کار خاص شما داشته باشند. سپس تیم Chromium کتابخانه ها را بررسی می کند.
در پایان قابل ذکر است که به این ترتیب افزودن پشتیبانی در Chromium به کد Rust اجازه می دهد تا به باینری های کروم منتقل شود از سال آینده این تصمیم عمدتاً به موضوع امنیت میپردازد: Rust هنگام نوشتن روی حافظه امنیت بیشتری نسبت به C++ ارائه میدهد و رفتارهای بالقوه مضر مانند خواندن متغیرهای نانوشته، دسترسی به فراتر از محدودیتهای تعیینشده توسط آرایهها، عدم ارجاع اشارهگرهای تهی یا نامعتبر، استفاده از تکرارکنندههای لغو شده را ممنوع میکند. .
اگر علاقه مند به دانستن بیشتر در مورد آن هستید، می توانید با جزئیات مشورت کنید در لینک زیر.
اولین کسی باشید که نظر