با یاد خدا و با سلام
از دوستان عزیز لینوکسی کسی میتونه راهنمایی کنه که چطور می تونم یک فراخوان سیستمی در هسته لینوکس بنویسم ؟
در نحوه کامپایل هسته مشکلی ندارم، فقط چطور فراخوان سیستمی را در آن ایجاد نمایم.
متشکر
با یاد خدا و با سلام
از دوستان عزیز لینوکسی کسی میتونه راهنمایی کنه که چطور می تونم یک فراخوان سیستمی در هسته لینوکس بنویسم ؟
در نحوه کامپایل هسته مشکلی ندارم، فقط چطور فراخوان سیستمی را در آن ایجاد نمایم.
متشکر
در مورد نحوه نوشتن ماژولها در لینوکس تحقیق کنید. (module)
با سلام دوست عزیز
متشکر، اما امکانش هست بیشتر توضیح بدید؟
منبع فارسی خوبی سراغ دارید که آموزش بده ؟
مثلا میخوام یک فراخوان سیستمی ایجاد کنم که دو عدد با هم جمع کند.
اگر امکانش هست آموزشی قرار بدید، در اینده ممکن است دیگران هم همین مکل داشته باشند، میتوانند استفاده کنند.
سپاسگزارم
باسلام،
این کتاب با اینکه انگلیسی هست اما خیلی ساده موضوع رو بیان کرده و خیلی راحت قابل فهم هست.
http://www.tldp.org/LDP/lkmpg/2.6/lkmpg.pdf
میتونید از این شروع کنید.
موفق باشید.
با سلام
متشکرم دوست عزیز
اگر ممکن است در این باره اندکی توضیح دهید؟
منظور از نوشتن فراخوان سیستمی همان ماژول است ؟
متشکرم
ماژول های هسته چیست؟
اگر در مورد لینوکس تحقیق کنید، متوجه خواهید شد که لینوکس یک هسته یکپارچه است.
این یکپارچگی باعث میشه هنگامی که قرار باشه هسته گسترش پیدا کنه، نیاز به کنار هم گذاشتن مجدد اجزا و rebuild کردن هسته باشه.
اما این فرآیند هم طولانی و هم خسته کننده هست.
در کنار این موضوع، با به وجود اومدن ماژول ما میتوینم بدون انجام مراحل بالا یک قابلیت جدید رو به هسته اضافه کنیم.
به عنوان مثال: دستگاه های جانبی نیاز به درایور دارن، اگر قرار باشه برای نصب یا حذف هرکدوم یکبار هسته بازسازی بشه و سیستم ریبوت شه تا از هسته جدید استفاده کنیم که....
و اما ماژول:
ماژول ها یک سری برنامه هستند که در هسته load یا unload میشوند و کاری که براشون مشخص شده رو انجام میدن.
ماژول ها دارای دو تابع اصلی برای load و unload هستند.
در برنامه نویسی ماژول ها فقط می توانید از توابع مخصوص هسته استفاده کنید.
و...
که در کتابی که گفتم میتونید همه چیز رو بخونید.
موفق باشید.
systemcall ها شامل جدولی حدودا ۲۰۰ تایی از توابع سطح کرنل هستند که با ارائه ورژن های جدیدتر هسته ، به تعداد توابع این لیست افزوده می شود.نوشتن برنامه در سطح کرنل نیازمنده تسلط و آشنایی بر مبانی و معماری لینوکس می باشد.
به عنوان پیشنیاز می توانید کتب مربوطه از جمله :Professional Linux Kernel Architecture نوشته ی Wolfgang Mauerer (ویا Linux Kernel Development نوشته ی Robert Love) همینطور Linux Kernel Prime را مطالعه بفرمایید.پس از آن می توان به سراغ Linux Programming Interface بروید.