آموزش مدیریت حافظه در کرنل لینوکس

Memory Management in Linux Kernel

در حال بارگزاری نمونه ویدیو، لطفا صبر کنید...
Video Player is loading.
Current Time 0:00
Duration 0:00
Loaded: 0%
Stream Type LIVE
Remaining Time 0:00
 
1x
    • Chapters
    • descriptions off, selected
    • subtitles off, selected
      نکته: آخرین آپدیت رو دریافت میکنید حتی اگر این محتوا بروز نباشد.
      نمونه ویدیوها:
      • در حال بارگزاری، لطفا صبر کنید...
      توضیحات دوره: برنامه نویسی کرنل لینوکس - مدیریت حافظه در دانش عمیق مدیریت حافظه در لینوکس کرنل پیش نیازها: باید قادر به نوشتن/کامپایل/بارگیری/دانلود ماژول های Hello World Linux Kernel باشد.

      به‌روزرسانی: 16 اکتبر 2020: یادداشت‌های اضافه شده/نمونه‌های استفاده شده در دوره

      از این دوره چه چیزی یاد خواهید گرفت؟

      • فضای آدرس فیزیکی پردازنده و نحوه مشاهده آن در لینوکس

      • فضای آدرس مجازی پردازنده

      • فضای آدرس مجازی هسته و فضای کاربر

      • صفحات و خطای صفحه

      • نحوه تبدیل آدرس مجازی به آدرس فیزیکی و فرمت های مورد استفاده برای چاپ

      • حافظه کم و حافظه بالا

      • مکانیسم تخصیص حافظه - تخصیص دهنده دوستان

      • مناطق -/proc/buddyinfo

      • تخصیص حافظه پویا در هسته لینوکس

      • پرچم‌های مختلف مورد استفاده در kmalloc - GFP_KERNEL، GFP_ATOMIC، GFP_DMA

      • تفاوت بین kmalloc و vmalloc

      • وقتی 0 را در kmalloc و vmalloc پاس می کنید چه اتفاقی می افتد

      • پشته هسته

      APIهای تحت پوشش این دوره آموزشی:

      • virt_to_phys

      • phys_to_virt

      • kmalloc

      • kfree

      • krealloc

      • ksize

      • vmalloc

      • vfree

      دستورات استفاده شده در این دوره:

      • qemu-system-x86


      سرفصل ها و درس ها

      مدیریت حافظه قسمت 1 Memory Management Part 1

      • فضای آدرس فیزیکی چیست؟ What is Physical Address Space

      • نحوه مشاهده نقشه حافظه/فضای آدرس فیزیکی در لینوکس -/proc/iomem How to view memory map/physical address space in Linux - /proc/iomem

      • اجرای تصویر Buildroot 32 بیتی در QEMU Running 32-bit Buildroot image in QEMU

      • مشاهده/تغییر اندازه RAM در QEMU -/proc/meminfo، free -m View/Change RAM Size in QEMU - /proc/meminfo, free -m

      • فضای آدرس مجازی برای پردازنده های 32 بیتی Virtual Address Space for 32-bit processors

      • چرا هسته فضای آدرس خود را برای همه فرآیندها به اشتراک می گذارد Why kernel shares its address space for all processes

      • نقشه حافظه 64 بیتی 64-bit Memory Map

      • تبدیل آدرس مجازی به آدرس فیزیکی و بالعکس Converting Virtual address to physical address and vice versa

      • صفحات - PAGE_SIZE ماکرو Pages - PAGE_SIZE macro

      • صفحه ساختار struct page

      • خطای صفحه Page Fault

      • وقتی حافظه 4 کیلوبایت باشد، صفحه خطا می کند Page Faults when memory is 4 KB

      • فضای کاربری فضای آدرس مجازی User space virtual address space

      • فضای آدرس مجازی هسته - حافظه کم و حافظه بالا Kernel Virtual address space - low mem and high mem

      • حافظه کم Low Memory

      • چگونه می توانم بفهمم مم کم و مم بالا چقدر است How can i find out how much is my low mem and high mem

      • حافظه بالا High Memory

      • مکانیسم تخصیص حافظه Memory Allocation Mechanism

      • kmalloc و kfree kmalloc and kfree

      • نمونه ماژول هسته لینوکس kmalloc و kfree Linux Kernel Module example of kmalloc and kfree

      مدیریت حافظه قسمت 2 Memory Management Part 2

      • مناطق Zones

      • تخصیص دهنده سیستم دوستان Buddy System allocator

      • چیدمان حافظه هسته مجازی Virtual Kernel Memory Layout

      • آیا می توانم از virt_to_phy برای دریافت آدرس فیزیکی اشاره گر kmalloc استفاده کنم Can i use virt_to_phy to get physical address of kmalloc pointer

      • نمونه ای از ارسال GFP_FLAGS های مختلف به kmalloc Example of passing various GFP_FLAGS to kmalloc

      • حداکثر اندازه ای که می توان با استفاده از kmalloc اختصاص داد Maximum size that can be allocated using kmalloc

      • اگر حافظه اختصاص داده شده با استفاده از kmalloc را آزاد نکنیم چه اتفاقی می افتد What happens if we don't free memory allocated using kmalloc

      • ksize ksize

      • kzalloc kzalloc

      • krealloc krealloc

      • مثال برای نشان دادن kmalloc به صورت فیزیکی و مجازی به هم پیوسته است Example to demonstrate kmalloc is contiguous in physical and virtual

      • vmalloc vmalloc

      • حداکثر اندازه ای که می توان با استفاده از vmalloc اختصاص داد Maximum size that can be allocated using vmalloc

      • vmalloc در مقابل kmalloc vmalloc vs kmalloc

      • حداکثر اندازه ای که می توان با استفاده از vmalloc در 32 بیت اختصاص داد Maximum size that can be allocated using vmalloc on 32-bit

      • چرا VmallocUsed همیشه 0 است Why is VmallocUsed always 0

      • آیا می توانم از ksize با vmalloc استفاده کنم؟ Can i use ksize with vmalloc

      • حداکثر مقدار حافظه قابل تخصیص با استفاده از vmalloc Maximum amount of memory that can be allocated using vmalloc

      • وقتی kmalloc 0 صفر بایتی انجام می دهم چه اتفاقی می افتد What happens when i do kmalloc of 0 zero bytes

      • وقتی vmalloc 0 بایتی انجام می دهم چه اتفاقی می افتد What happens when i do vmalloc of 0 bytes

      • پشته هسته Kernel Stack

      • CONFIG_FRAME_WARN CONFIG_FRAME_WARN

      • اسکریپت check_stack.pl check_stack.pl script

      منابع Resources

      • منابع Resources

      نمایش نظرات

      آموزش مدیریت حافظه در کرنل لینوکس
      جزییات دوره
      2 hours
      44
      Udemy (یودمی) Udemy (یودمی)
      (آخرین آپدیت)
      1,070
      4.4 از 5
      دارد
      دارد
      دارد
      Linux Trainer
      جهت دریافت آخرین اخبار و آپدیت ها در کانال تلگرام عضو شوید.

      Google Chrome Browser

      Internet Download Manager

      Pot Player

      Winrar

      Linux Trainer Linux Trainer

      مربی در آموزش آخر هفته لینوکس