انتشار مجموعه مینیمالیستی از ابزارهای سیستمی BusyBox 1.31

ارسال شده توسط انتشار بسته BusyBox 1.31 با پیاده سازی مجموعه ای از ابزارهای استاندارد یونیکس، طراحی شده به صورت یک فایل اجرایی و بهینه سازی شده برای حداقل مصرف منابع سیستم با حجم مجموعه ای کمتر از 1 مگابایت. اولین نسخه از شاخه جدید 1.31 به عنوان ناپایدار است، تثبیت کامل در نسخه 1.31.1 ارائه می شود که حدود یک ماه دیگر انتظار می رود. کد پروژه تحت مجوز GPLv2 توزیع شده است.

ماهیت ماژولار BusyBox ایجاد یک فایل اجرایی یکپارچه حاوی مجموعه دلخواه از ابزارهای کاربردی پیاده سازی شده در بسته را ممکن می سازد (هر ابزار به شکل یک پیوند نمادین به این فایل موجود است). اندازه، ترکیب و عملکرد مجموعه ابزارها بسته به نیازها و قابلیت های پلت فرم تعبیه شده که مونتاژ برای آن انجام می شود، می تواند متفاوت باشد. بسته مستقل است؛ وقتی به صورت استاتیک با uclibc ساخته می‌شود، برای ایجاد یک سیستم کار در بالای هسته لینوکس، فقط باید چندین فایل دستگاه را در دایرکتوری dev ایجاد کنید و فایل‌های پیکربندی را آماده کنید. در مقایسه با نسخه قبلی 1.30، مصرف رم مجموعه معمولی BusyBox 1.31 86 بایت کاهش یافت (از 1008478 به 1008392 بایت).

BusyBox ابزار اصلی در مبارزه با نقض GPL در سیستم عامل است. Software Freedom Conservancy (SFC) و Software Freedom Law Center (SFLC) به نمایندگی از توسعه دهندگان BusyBox، هر دو از طریق دادگاه، و از این طریق نتیجه گیری قراردادهای خارج از دادگاه به طور مکرر بر شرکت هایی که دسترسی به کد منبع برنامه های GPL را فراهم نمی کنند، با موفقیت تأثیر گذاشته است. در همان زمان، نویسنده BusyBox تمام تلاش خود را می کند اشیاء در برابر چنین محافظتی - با این باور که کسب و کار او را خراب می کند.

BusyBox 1.31 تغییرات زیر را برجسته می کند:

  • اضافه شدن دستورات جدید: ts (اجرای سرویس گیرنده و سرور برای پروتکل TSP (پروتکل مهر زمان)) و i2ctransfer (ایجاد و ارسال پیام های I2C).
  • پشتیبانی از گزینه های DHCP به udhcp اضافه شده است 100 (اطلاعات منطقه زمانی) و 101 (نام منطقه زمانی در پایگاه داده TZ) برای IPv6.
  • پشتیبانی از اتصالات استاتیک نام میزبان به مشتریان در udhcpd اضافه شده است.
  • پوسته‌های خاکستر و خاموش، لفظ‌های عددی "BASE#nnnn" را اجرا می‌کنند. اجرای دستور ulimit با bash سازگار شده است، از جمله گزینه های "-i RLIMIT_SIGPENDING" و "-q RLIMIT_MSGQUEUE". پشتیبانی از "wait -n" اضافه شده است. اضافه شدن متغیرهای EPOCH سازگار با bash.
  • پوسته hush یک متغیر "$-" را پیاده سازی می کند که گزینه های پوسته فعال به طور پیش فرض را لیست می کند.
  • کد عبور مقادیر توسط مرجع به bc از بالادست منتقل شد، پشتیبانی از توابع void اضافه شد و توانایی کار با مقادیر ibase تا 36.
  • در brctl، تمام دستورات با استفاده از شبه FS /sys به کار تبدیل شده اند.
  • کد ابزارهای fsync و sync ادغام شده است.
  • پیاده سازی httpd بهبود یافته است. بهبود پردازش هدرهای HTTP و کار در حالت پروکسی. لیست انواع MIME شامل SVG و جاوا اسکریپت است.
  • گزینه "-c" به losttup (بررسی دوبار اجباری اندازه فایل مرتبط با دستگاه حلقه) و همچنین گزینه ای برای اسکن پارتیشن ها اضافه شده است. mount و losetup برای کار با استفاده از /dev/loop-control پشتیبانی می کنند.
  • در ntpd، مقدار SLEW_THRESHOLD از 0.125 به 0.5 افزایش یافته است.
  • اضافه شدن پشتیبانی برای تخصیص مقادیر null به sysctl.
  • اضافه شدن پشتیبانی از مقادیر کسری در گزینه "-n SEC" برای تماشا.
  • اضافه شدن قابلیت اجرای mdev به عنوان یک فرآیند پس زمینه.
  • ابزار wget پرچم "-o" را برای مشخص کردن فایلی برای نوشتن گزارش اجرا می کند. اعلان‌هایی درباره شروع و تکمیل دانلودها اضافه شده است.
  • پشتیبانی از دستور AYT IAC به telnetd اضافه شد.
  • اضافه شدن دستور 'dG' به vi (حذف محتویات از خط فعلی تا انتهای فایل).
  • گزینه 'oflag=append' به دستور dd اضافه شد.
  • پرچم '-H' به ابزار بالا اضافه شده است تا اسکن رشته های جداگانه را فعال کند.

همچنین دو هفته پیش صورت گرفت رهایی Toybox 0.8.1، آنالوگ BusyBox که توسط نگهدارنده سابق BusyBox و توزیع شده است تحت مجوز BSD هدف اصلی Toybox این است که به تولید کنندگان توانایی استفاده از مجموعه حداقلی از ابزارهای استاندارد را بدون باز کردن کد منبع اجزای اصلاح شده ارائه دهد. با توجه به قابلیت های Toybox تاکنون عقب ماندن از BusyBox، اما 188 دستور اساسی از 220 دستور برنامه ریزی شده قبلاً اجرا شده است.

از جمله نوآوری های Toybox 0.8.1 می توان به موارد زیر اشاره کرد:

  • سطحی از عملکرد به دست آمده است که برای ساخت اندروید در محیطی مبتنی بر ابزارهای Toybox کافی است.
  • دستورات جدید mcookie و devmem گنجانده شده اند و دستورات بازنویسی شده tar، gunzip و zcat از شاخه تست منتقل می شوند.
  • پیاده سازی جدیدی از vi برای آزمایش پیشنهاد شده است.
  • اکنون دستور find از گزینه های "-wholename/-iwholename" پشتیبانی می کند.
    "-printf" و "-context"؛

  • گزینه "--exclude-dir" به grep اضافه شد.
  • اکو اکنون از گزینه "-E" پشتیبانی می کند.
  • پشتیبانی از "UUID" برای نصب اضافه شد.
  • دستور date اکنون منطقه زمانی مشخص شده در متغیر محیطی TZ را در نظر می گیرد.
  • پشتیبانی از محدوده های نسبی (+N) به sed اضافه شده است.
  • خوانایی بهتر خروجی ps، top و iotop.

منبع: opennet.ru

اضافه کردن نظر