در حال حاضر محصولی در سبد خرید شما وجود ندارد.

پنل کاربری

رمز خود را فراموش کرده اید؟ اگر اولین بار است از سایت جدید استفاده میکنید باید پسورد خود را ریست نمایید.
دسته بندی
دسته بندی

در حال حاضر محصولی در سبد خرید شما وجود ندارد.

آموزش برنامه نویسی هسته لینوکس

10,900 تومان
بیش از یک محصول به صورت دانلودی میخواهید؟ محصول را به سبد خرید اضافه کنید.
افزودن به سبد خرید
خرید دانلودی فوری

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

ویدئو معرفی این محصول

با مشاهده این کورس آموزشی از طریق انجام پروژه های واقعی و به زبانی بسیار ساده مطالب فراوانی را در رابطه با برنامه نویسی هسته لینوکس یاد می گیرید.

عنوان اصلی : Character Device Drivers in deep

سرفصل ها :


معرفی :
آشنایی با درایورهای دستگاه کاراکتر
لیست کاراکترها و مسدود کردن دستگاه ها
مراحل ثبت نام درایور کاراکتر
شماره دستگاه = عمده + مینور
نحوه انتخاب شماره دستگاه
نوع داده برای شماره دستگاه dev_t
نمونه ای از ماکروهای MAJOR، MINOR، MKDEV
فایل /proc/devices
تخصیص استاتیک شماره دستگاه
نمونه ای از تخصیص ایستا شماره دستگاه
موارد تست در مثال قبلی
اگر بخواهم همان شماره اصلی را ثبت کنم چه اتفاقی می افتد
اگر بخواهم با همین نام ثبت نام کنم چه اتفاقی می افتد
ثبت حداکثر اعداد جزئی
حداکثر عدد اصلی چیست؟
تخصیص دینامیک شماره دستگاه
نمونه ای از تخصیص پویا شماره دستگاه
فراخوانی alloc_chrdev_region در حلقه
دستی ایجاد گره دستگاه
ایجاد خودکار گره دستگاه - class_create
ایجاد خودکار گره دستگاه - device_create
نمونه ای از ایجاد خودکار گره دستگاه
آزمون 1
عملیات فایل:
معرفی
ثبت file_operations با کرنل لینوکس
cdev_init در مقابل cdev_alloc
نمونه ماژول هسته لینوکس ثبت عملیات فایل - cdev_alloc
نمونه ای از ماژول هسته لینوکس از ثبت عملیات فایل - cdev_init
دستگاه های شبه - /dev/null، /dev/zero، /dev/urandom
راهنمای رانندگان/char/mem.c
در صورت فورک چند بار باز و رها کردن فراخوانی می شود
در صورت وجود چندین پردازش، چند بار باز و انتشار فراخوانی می شود
فایل struct
نمونه ای از فایل struct
struct inode
نمونه ای از struct inode
نمونه ای از struct inode در مقابل فایل struct
وقتی بافر فضای کاربر را در تابع نوشتن چاپ می کنم چه اتفاقی می افتد
دسترسی به بافر فضای کاربر در فضای کرنل
copy_from_user
وقتی NULL ptr را در نوشتن فراخوانی سیستم پاس می کنم چه اتفاقی می افتد
copy_to_user
put_user
get_user
انتقال ساختار از فضای کاربر به فضای هسته و بالعکس
آیا می توانم متغیرهای کاربر را روی درایور هیپ به هسته منتقل کنم؟
عبور ساختار با یک عضو از پشته و دیگری در پشته
ابزار هسته برای چاپ dev_t - print_dev_t، format_dev_t
آیا می توانم از strlen در فضای هسته استفاده کنم؟
strnlen_user
راه حل عبور ساختار با یک عضو در پشته و دیگری در پشته
مشکل در درایور کاراکتر وقتی کاراکتر به کاراکتر می خوانیم
افزودن پشتیبانی افست در اجرای خواندن و نوشتن
منطق به روز شده برای خواندن/نوشتن بایت های کمتر از درخواستی/در دسترس
افزودن پشتیبانی lseek
ایجاد چندین گره دستگاه
container_of macro
افزودن پشتیبانی برای داده های خصوصی
چه اتفاقی می‌افتد وقتی از فضای کاربر نوشتن را صدا می‌کنم
IOCTL:
معرفی
مثال Ioctl - BLKGETSIZE
مثال Ioctl - BLKGETSIZE64
روش درایور Ioctl - unlocked_ioctl
افزودن سه ioctl در درایور هسته
نام های نمادین دستورات ioctls
تعریف دستورات ioctl
C مثالی از ماکروهای ioctl
ماکروها برای رمزگشایی اطلاعات از دستور ioctl
کد درایور با استفاده از ماکروهای ioctl به روز شد
اگر دستور پشتیبانی نشده از فضای کاربر ارسال شود، مقدار بازگشتی باید چقدر باشد
ماکرو access_ok
کد درایور با استفاده از ماکرو access_ok به روز شد
سناریوهای شکست دسترسی_ok
چه اتفاقی می افتد وقتی یک اندازه متفاوت را در دستور ioctl ارسال می کنیم
compat_ioctl
مشکلاتی که هنگام پردازش 32 بیتی سعی در اجرای دستور ioctl دارد
ارسال سیگنال از ماژول به پردازش
کنترل دسترسی و قابلیت ها:
چند بار یک درایور دستگاه توسط برنامه استفاده می شود
فقط به یک فرآیند اجازه دهید از فایل دستگاه در یک زمان استفاده کند
محدود کردن دسترسی به یک کاربر در یک زمان
توانایی ها
نمونه ای از استفاده از قابلیت ها - cap_dac_override
نمونه ای از استفاده از قابلیت ها - cap_sys_module
نمونه ای از استفاده از قابلیت ها - cap_sys_admin
پرچم ها را باز کنید
چه اتفاقی می‌افتد اگر با بستن تماس نگیرم و فرآیند خاتمه یابد
درایور متفرقه:
معرفی
نمونه ای از درایور متفرقه
منابع:
دانلودها

نمایش سرفصل های انگلیسی

Character Device Drivers in deep