PDA

View Full Version : استفاده از عبارات منظم در سطح کرنل



hmm
سه شنبه 11 دی 1386, 10:05 صبح
سلام
برای یک کار کاملاً آزمایشگاهی میخوام در سطح کرنل از عبارات منظم استفاده کنم ولی منبعی رو نیافتم.
دوستان اگه نکته خاصی در این مورد دارند لطف میکنن جواب بدن.
مورد استفاده : دستکاری iptables

Inprise
سه شنبه 11 دی 1386, 13:38 عصر
من نمیدونم عبارت منظم دقیقا چیه ، ولی اگر به C مربوط میشه هر جوری که کد معمولی و استاندارد مینویسی ( البته بدون استفاده از سیستم کال های یوزر مد ، فقط روتینهای استاندارد سی ) در یک کرنل ماژول هم میتونی همونکار رو بکنی . فرقی نداره

hmm
سه شنبه 11 دی 1386, 14:08 عصر
ممنون از پاسخت .
منظورم از عبارات منظم همون Regular Expression برای مقایسه ترکیبی از رشته بود مثلا تمام ترکیب های "سیب*" رو شامل بشه .
چیزی شبیه Content Filtering و حذف ترکیبات کلمه های مورد نظر.

Inprise
سه شنبه 11 دی 1386, 14:59 عصر
اگر کد سی ای هست که فقط از سی استاندارد استفاده میکنه میتونی تو کرنل هم ازش استفاده کنی . در کل تفاوت کرنل مد و یوزر مد مسئله توابع سیستم عامل و مدیریت حافظه هست . تا وقتی با سی کار کنی و با حافظه و توابع سیستم عامل کاری نداشته باشی هیچ فرقی نمیکنه . regex هم اگه خیلی پیچیده نباشه و سی++ توش نباشه ( معمولا هست ، و استفاده از سی++ در کرنل یه داستان کاملا متفاوت هست به دلیل Runtime متفاوت و محدودیتهاش ) و خلاصه سی خالص باشه میتونی اینکلود کنی و کد بنویسی بره . حتی میتونی کدت رو یوزر مد بنویسی و تست و دیباگ کنی و بعد در قالب یک تابع ساده به ماژول کرنلت وصل کنی

Inprise
سه شنبه 11 دی 1386, 15:01 عصر
راستی ، این دستکاری iptables که زیر دو تا از تاپیکهات نوشتی چیه ؟ اگر دنبال تعامل با فیلتر شبکه لینوکس در سطح کرنل هستی بهتره بدونی که iptables چیز مهمی نیست فقط یه رابط سطح کاربر هست برای NetFilter . ایشون هم تمام قابلیتهاش رو بصورت API سطح کرنل ارائه میکنه و حتی برای اضافه کردن لایه های اختصاصی کاربرد روتینهای هوکینگ خاصی هم ارائه میکنه که در کل خیلی خیلی بحث مفصلی هست . بعیده لازم باشه چیزی رو خودت بنویسی و ابتکار به خرج بدی . در موردش جستجو کن

hmm
چهارشنبه 12 دی 1386, 08:22 صبح
منظور من هم دستکاری همون NetFilter بود.
اصلا برای فیلترینگ محتوا یا حتی url لازمه در سطح کرنل دستکاری انجام بدیم ؟ چون تعداد حالات ، کلمات ، IP و Port هایی که باید چک بشن خیلی زیاده و چک کردن همه موارد خیلی کار رو کند میکنه.
یه مطلب دیگه اینکه سرعت اجرای کد در سطح کرنل نسبت به سطح یوزر چقدر بیشتره یا اصلاً بیشتر هست یا تفاوتی نمیکنه؟

Inprise
چهارشنبه 12 دی 1386, 08:30 صبح
سرعت اجرای کد در سطح کرنل نسبت به سطح یوزر چقدر بیشتره یا اصلاً بیشتر هست یا تفاوتی نمیکنه؟

طبیعتا اولویت اجرای کدهای کرنل بالاتر هست ولی جواب کلی نباید داد . بستگی داره . اون یکی سوالت رو با توضیح بیشتر در یک تاپیک دیگه بپرس چون یه موضوع دیگه هست

hmm
چهارشنبه 12 دی 1386, 08:31 صبح
هدف من از دستکاری کد های سطح کرنل تلاش برای اضافه کردن Reg Exp به امکانات Iptablesبود .بعیده Iptables بتونه عبارات منظم رو هم چک کنه (لااقل من چیزی نیافتم).
و در نهایت همه اینکارها یک جور تلاش برای یادگیری لینوکس و توانایی های اون هست نه بیشتر.

اون یکی سوالت رو با توضیح بیشتر در یک تاپیک دیگه بپرس چون یه موضوع دیگه هستبا کمال میل در اسرع وقت اقدام میکنم.
ممنون