محمد نصیری
بنیانگذار انجمن تخصصی فناوری اطلاعات ایران ، هکر کلاه خاکستری ، کارشناس امنیت اطلاعات و ارتباطات

تفاوت GPL و LGPL چیست؟ به زبان بسیار ساده

پیش از این در توسینسو در خصوص تفاوت نرم افزارهای Freeware و Open Source صحبت کردیم و در این میان در خصوص پروژه GNU نیز صحبت هایی کردیم ، در این مطلب می خواهیم در خصوص دو پروژه GPL و LGPL صحبت کنیم که از زیر مجموعه های پروژه GNU هستند .

دوره های شبکه، برنامه نویسی، مجازی سازی، امنیت، نفوذ و ... با برترین های ایران

اگر با پروژه یا لایسنس GNU آشنایی ندارید بهتر است قبل از مطالعه این مطلب به مطب من در خصوص معرفی پروژه GNU مراجعه کنید. برای اینکه تفاوت بین لایسنس های GPL و LGPL را بهتر متوجه شوید اول از هر چیز باید توجه کنید که نرم افزارهای Open Source با انواع و اقسام لایسنس یا مجوز استفاده به دنیای فناوری اطلاعات معرفی می شوند که مهمترین و معروفترین مجوز استفاده از اینگونه نرم افزارها GPL و LGPL هستند. حتما با ایده اصلی نرم افزارهای Open Source یا سورس باز آشنایی دارید.

GPL چیست ، LGPL چیست

GPL در واقع واژه اصلی است که Open Source را تعریف می کند و همان چیزی می کند که از آن انتظار می رود. تا زمانیکه شما به کدها یا سورس های یک نرم افزار Open Source دسترسی داشته باشید شما مجوز یا لایسنس این را دارید که بر روی این سورس کد تغییرات خود را اعمال کنید ، آن را پیشرفته تر کنید .

به آن امکانات بیشتری اضافه کنید و ... اما به هر حال لایسنس یک نرم افزار یا مجوز استفاده از نرم افزار باز متن به شما می گوید که شما ملزم هستید بعد از اینکه همه این کارها را بر روی نرم افزار Open Source انجام دادید ، نرم افزار خود را بصورت عمومی برای همه کاربران در اینترنت منتشر کنید و امکان استفاده رایگان دیگران از این سورس کد جدید را نیز فراهم کنید.

لینوکس شناخته ترین نوع نرم افزار Open Source در دنیا است که تحت لیسانس GPL ارائه شده است.یعنی اگر شخصی یا سازمان یا شرکت خاصی هر گونه تغییری بر روی این سیستم عامل انجام دهد ، موظف است کلیه تغییرات انجام شده بر روی این سیستم عامل را بصورت عمومی منتشر کند. GPL مخفف کلمه های General Public License می باشد و LGPL در واقع نسخه بهبود یافته یا ترمیم شده GPL است. LGPL مخفف کلمه های Lesser General Public License می باشد.

اگر نرم افزار تحت لیسانس GPL باشد ، شما هر چقدر که کد به آن اضافه کنید موظف هستید کد اضافه شده را بدون هرگونه شرط و قانون برای دیگران نیز منتشر کنید. اما زمانیکه یک نرم افزار تحت لیسانس LGPL منتشر می شود اگر تغییرات زیادی بر روی نرم افزار انجام دهد همانند GPL باید این تغییرات را با سورس مورد نظر منتشر کند اما این امکان به شرکت توسعه دهنده یا شخص توسعه دهنده در لایسنس LGPL داده می شود ک

ه اگر ماژول یا امکانات جدیدی به نرم افزار اضافه کرده است و می خواهد این امکانات جدید را به فروش برساند ، این امکان و مجوز را دارد که فقط و فقط کدهای ماژول جدید اضافه شده توسط خود را منتشر نکند و آن را بصورت محرمانه نگه دارد. بنابراین LGPL به شما این امکان را می دهد که نرم افزار را تغییر دهید و نسخه دلخواه خود را از آن بیرون بیاورید و در این میان از محصول تولید شده جدید خود نیز محافظت کنید.

LGP به همان روشی که GPL برای استفاده طراحی شده است کار نمی کند. استفاده از لایسنس LGPL محدود به کتابخانه ها ( Library ) و از این قبیل موارد است. GPL برای فایل هایی که قابلیت اجرایی دارند طراحی شده است و قابل استفاده می باشد ، برای مثال شما می توانید با استفاده از یک نرم افزار Open Source که دارای فایل اجرایی و لایسنس GPL است ابتدا وب سایت خود را طراحی کنید و در انتها فقط کافیست که لینک نرم افزار و اطلاعات مورد نیاز برای عموم را در آن برای دیگران قرار دهید.

GPL یک نعمت بزرگ برای صنعت برنامه نویسی به حساب می آید زیرا برنامه های زیادی همه روزه بصورت رایگان در اینترنت ایجاد می شوند ، توسعه پیدا می کنند و تغییر می کنند که هر برنامه نویسی می تواند با الگو برداری از شیوه کد نویسی این برنامه ها ، دانش برنامه نویسی خود را ارتقاء دهد. از GPL می توان به عنوان یک انقلاب در عرصه برنامه نویسی در دنیا نام برد. بصورت خلاصه تفاوت مجوز های GPL و LGP را می توان به شرح زیر عنوان کرد :

  1. در GPL شما موظف هستید که هر تغییری در کد نرم افزار ایجاد می کنید را بصورت عمومی منتشر کنید
  2. GPL در واقع پایه و اساس اصلی نرم افزارهای Open Source از دید برنامه نویسان است
  3. در GPL شما می توانید تمام فایل های اجرایی یک نرم افزار را تغییر دهید
  4. LGPL برای استفاده از کتابخانه ها یا Library های نرم افزارها استفاده می شود
  5. GPL باعث بالا رفتن دانش برنامه نویسی و در واقع به وجود آمدن یک انقلاب نرم افزاری در دنیا شد
  6. نرم افزارهای دارای مجوز LGPL این قابلیت را دارد که تبدیل به GPL شوند

البته این توضیحات و این مطلب به تنهایی برای تعریف کردن این مجوز ها کافی نیست و خوشحال می شویم در انتها دوستان اطلاعاتی که در این زمینه دارند را در اختیار سایرین قرار دهند. یک مشکل اساسی که در Open Source وجود دارد این است که در واقع درست است که مجوز هایی مثل GPL و LGPL در دنیا وجود دارد اما قوانین سفت و سختی در خصوص سوء استفاده از این مجوز ها وجود ندارد و در واقع بسیاری از افراد سودجو برنامه هایی که تحت لیسانس GPL ارائه می شوند را دستکاری و آن را به عنوان یک نرم افزار جدید به بازار ارائه می دهند.

متاسفانه در طی سالهای اخیر این موارد به شدت در کشور عزیزمان ایران افزایش یافته است ، به خاطر دارم چند سال پیش در نمایشگاه الکامپ مشغول گشت و گذار بودم که یک تبلیغ جالب دیدم و محتوای تبلیغ به این شکل بود که سیستم مدیریت مخاطرات و تهدیدات بومی ... این تبلیغ نظر من را جلب کرد و بعد از نگاه کردن به چهره نرم افزار احساس کردن چهره آن را قبلا جایی دیده ام ... در دوره آموزش لینوکس اسنشیالز و در قسمت مفهوم لایسنس در لینوکس به بررسی انواع لایسنس های لینوکس هم می پردازیم.

بعدها متوجه شدم که این UTM بومی در واقع فقط فارسی سازی شده یک UTM متن باز خارجی معروف بوده است و فقط چهره آن عوض شده است. البته این موارد خیلی پیش می آید ، بعضا سیستم های مدیریت محتوای اینترنتی که بیشتر به زبان PHP نوشته می شوند و در ایران به فروش می رسند اکثرا یک سیستم مدیریت محتوای فارسی سازی شده است که فقط لینک GNU آن حذف شده است و تغییرات جزئی در آن داده شده است ، قبل از خرید چنین محصولاتی حتما از کارشناسان زبده مشاوره بگیرید ، امیدوارم مورد توجه شما قرار گرفته باشد.


محمد نصیری
محمد نصیری

بنیانگذار انجمن تخصصی فناوری اطلاعات ایران ، هکر کلاه خاکستری ، کارشناس امنیت اطلاعات و ارتباطات

محمد نصیری هستم ، هکر قانونمند و کارشناس امنیت سایبری ، سابقه همکاری با بیش از 50 سازمان دولتی ، خصوصی ، نظامی و انتظامی در قالب مشاور ، مدرس و مدیر پروژه ، مدرس دوره های تخصص شبکه ، امنیت ، هک و نفوذ ، در حال حاضر در ایران دیگه رسما فعالیتی غیر از مشاوره انجام نمیدم و مقیم کشور ترکیه هستم ، عاشق آموزش و تدریس هستم و به همین دلیل دوره های آموزشی که ضبط می کنم در دنیا بی نظیر هستند.

نظرات