ویرگول
ورودثبت نام
محمدرضا رازیان
محمدرضا رازیانعلاقمند به حوزه علوم و مهندسی رایانه
محمدرضا رازیان
محمدرضا رازیان
خواندن ۱ دقیقه·۱۰ روز پیش

درایور در اندروید

در گوشی اندرویدی مفهوم درایور تفاوت‌های اساسی با سیستم‌های لینوکسی/ویندوزی دسکتاپ دارد. یک قابلیت ممکن است در لایه HAL با پیاده‌سازی بسیار محدود در دایرکتوری misc (فقط یک .h یا .c) در کرنل پیاده‌سازی شود. در تصویر زیر نمونه موردی برای یک زیرسامانه (مودم) در معماری سامانه-روی-تراشه (SoC) قابل بررسی است.

نمونه موردی برای یک زیرسامانه (مودم) در معماری سامانه-روی-تراشه (SoC). منبع تصویر: راهنمای Quectel
نمونه موردی برای یک زیرسامانه (مودم) در معماری سامانه-روی-تراشه (SoC). منبع تصویر: راهنمای Quectel


فلسفه طراحی اندروید

در اندروید «مفهوم درایور» با آنچه در سیستم‌های دسکتاپ مانند کامپیوترهای شخصی لینوکس یا ویندوز می‌بینیم متفاوت است. کرنل اندروید (عمدتا) صرفا ساز و کارهای اساسی مانند character device و ioctl را در اختیار قرار می‌دهد، در حالی که پیاده‌سازی قابلیت‌های تخصصی در جای دیگری انجام می‌شود.

عملکردهای واقعی دستگاه اندرویدی می‌توانند از طریق لایه انتزاع سخت‌افزار (HAL) و سرویس‌های وندور، پیاده‌سازی می‌شوند. به عبارت دیگر، HAL رابط‌های پایداری را تعریف می‌کند که فریمورک اندروید از آنها استفاده می‌کند، در حالی که رفتار واقعی سخت‌افزار خارج از کرنل پیاده‌سازی می‌شود. در نتیجه، برای بسیاری از مولفه‌های سخت‌افزاری، فقط یک درایور ساده با حداقل کد در drivers/miscقرار می‌گیرد. این رویکرد با پروژه تربل که جدایی کاملی بین سیستم اندروید و پیاده‌سازی وندور ایجاد می‌کند، کاملا عملیاتی در حال حاضر توسط شرکت‌های توسعه‌دهنده نرم‌افزار دستگاه‌های اندروید (همان سیستم‌عامل!) در حال استفاده است. بنابراین وندور، پیاده‌سازی‌های HAL و اجزای اختصاصی را در user space ارائه می‌دهد و کرنل تا حد زیادی بدون تغییر و قابل استفاده مجدد در نسخه‌های اندروید باقی می‌ماند.

جمع‌بندی

به عنوان جمع‌بندی باید گفت بسیاری از ویژگی‌های اندروید مانند حسگرها، دوربین، gnss، در کرنل فقط یک رابط کاربری ارائه می‌دهد و عمدتا «منطق درایور» در HAL و پیاده‌سازی‌های وندور (فایل‌های so) قرار می‌گیرد. این طراحی، تفاوت اصلی بین اندروید و سیستم عامل‌های دسکتاپ سنتی است. بنابراین، در اندروید به سادگی نمی‌توان گفت درایور مربوط به یک مؤلفه سخت‌افزاری یک موجودیت با حدود و ثغور معین است و تعیین حدود آن نیاز به بررسی فنی دارد.

اندرویددرایورسیستم‌عامل
۲
۰
محمدرضا رازیان
محمدرضا رازیان
علاقمند به حوزه علوم و مهندسی رایانه
شاید از این پست‌ها خوشتان بیاید