PDA

View Full Version : مبتدی: چگونگی نوشتن فراخوان سیستمی در هسته لینوکس



manoto1371
یک شنبه 03 فروردین 1393, 21:08 عصر
با یاد خدا و با سلام
از دوستان عزیز لینوکسی کسی میتونه راهنمایی کنه که چطور می تونم یک فراخوان سیستمی در هسته لینوکس بنویسم ؟
در نحوه کامپایل هسته مشکلی ندارم، فقط چطور فراخوان سیستمی را در آن ایجاد نمایم.
متشکر

pswin.pooya
یک شنبه 03 فروردین 1393, 21:16 عصر
در مورد نحوه نوشتن ماژولها در لینوکس تحقیق کنید. (module)

manoto1371
دوشنبه 04 فروردین 1393, 17:07 عصر
در مورد نحوه نوشتن ماژولها در لینوکس تحقیق کنید. (module)

با سلام دوست عزیز
متشکر، اما امکانش هست بیشتر توضیح بدید؟
منبع فارسی خوبی سراغ دارید که آموزش بده ؟
مثلا میخوام یک فراخوان سیستمی ایجاد کنم که دو عدد با هم جمع کند.
اگر امکانش هست آموزشی قرار بدید، در اینده ممکن است دیگران هم همین مکل داشته باشند، میتوانند استفاده کنند.
سپاسگزارم

ssbostan
دوشنبه 04 فروردین 1393, 18:49 عصر
باسلام،
این کتاب با اینکه انگلیسی هست اما خیلی ساده موضوع رو بیان کرده و خیلی راحت قابل فهم هست.

http://www.tldp.org/LDP/lkmpg/2.6/lkmpg.pdf

میتونید از این شروع کنید.
موفق باشید.

manoto1371
دوشنبه 04 فروردین 1393, 21:55 عصر
با سلام
متشکرم دوست عزیز
اگر ممکن است در این باره اندکی توضیح دهید؟
منظور از نوشتن فراخوان سیستمی همان ماژول است ؟
متشکرم

ssbostan
دوشنبه 04 فروردین 1393, 23:10 عصر
ماژول های هسته چیست؟
اگر در مورد لینوکس تحقیق کنید، متوجه خواهید شد که لینوکس یک هسته یکپارچه است.
این یکپارچگی باعث میشه هنگامی که قرار باشه هسته گسترش پیدا کنه، نیاز به کنار هم گذاشتن مجدد اجزا و rebuild کردن هسته باشه.
اما این فرآیند هم طولانی و هم خسته کننده هست.
در کنار این موضوع، با به وجود اومدن ماژول ما میتوینم بدون انجام مراحل بالا یک قابلیت جدید رو به هسته اضافه کنیم.
به عنوان مثال: دستگاه های جانبی نیاز به درایور دارن، اگر قرار باشه برای نصب یا حذف هرکدوم یکبار هسته بازسازی بشه و سیستم ریبوت شه تا از هسته جدید استفاده کنیم که....

و اما ماژول:
ماژول ها یک سری برنامه هستند که در هسته load یا unload می‌شوند و کاری که براشون مشخص شده رو انجام میدن.
ماژول ها دارای دو تابع اصلی برای load و unload هستند.
در برنامه نویسی ماژول ها فقط می توانید از توابع مخصوص هسته استفاده کنید.
و...

که در کتابی که گفتم میتونید همه چیز رو بخونید.
موفق باشید.

nrp man
سه شنبه 05 فروردین 1393, 00:36 صبح
systemcall ها شامل جدولی حدودا ۲۰۰ تایی از توابع سطح کرنل هستند که با ارائه ورژن های جدیدتر هسته ، به تعداد توابع این لیست افزوده می شود.نوشتن برنامه در سطح کرنل نیازمنده تسلط و آشنایی بر مبانی و معماری لینوکس می باشد.
به عنوان پیشنیاز می توانید کتب مربوطه از جمله :‌Professional Linux Kernel Architecture نوشته ی Wolfgang Mauerer (ویا Linux Kernel Development نوشته ی Robert Love) همینطور Linux Kernel Prime را مطالعه بفرمایید.پس از آن می توان به سراغ Linux Programming Interface بروید.