آشنایی با Open Source

  • شروع کننده موضوع ibtkm
  • تاریخ شروع
  • شروع کننده موضوع
  • #1

ibtkm

کاربر خاک‌انجمن‌خورده
ارسال‌ها
1,678
امتیاز
3,394
نام مرکز سمپاد
علامه حلی
شهر
تهران
دانشگاه
دانشگاه تهران
سلام به همه دوستان.
همونطور که قبلا هم اشاره کردم از این به بعد تصمیم دارم تو این بخش درباره مفاهیم کلیدی و اساسی لینوکس صحبت کنم .
خب یکی از پایه‌ای ترین چیز ها تو دنیای لینوکس، مفهوم اوپن سورس هست. می خوام تو این تاپیک درباره این مباحث صحبت کنیم :

۱- Open Source یعنی چی؟
۲- Open Source از کجا اومده؟
۳- چه نرم افزارهایی Open Source هستن؟
۴- مزیت نرم افزار های Open Source چیاس؟
۵- مجوز نرم افزار چیه؟
۶- مجوز های نرم افزارهای Open Source چیاس و هر کدوم به چه چیز هایی اشاره دارن؟
 
  • شروع کننده موضوع
  • #2

ibtkm

کاربر خاک‌انجمن‌خورده
ارسال‌ها
1,678
امتیاز
3,394
نام مرکز سمپاد
علامه حلی
شهر
تهران
دانشگاه
دانشگاه تهران
پاسخ : آشنایی با Open Source

Open Source یعنی چی؟
بیشتر مفاهیم کلیدی،چند تعریف مشابه و مرتبط دارند ولی لزوما یکی نیستند. دو نوع تعریف می شه برای Open Source اورد :

۱- اوپن سورس رو می شه یه شیوه تولید و طراحی و ساخت دونست. چه شیوه ای؟ شیوه ای که به کاربر یا استفاده کننده این امکان و اجازه رو می ده که مواد اولیه محصول نهایی رو ببینه. در حوزه ی کامپیوتر این مواد اولیه،سورس یا کد اولیه نرم افزار هستند. یعنی اینکه شما یه نرم افزاری دارید که می تونید سورسش رو ببینید. یعنی اگه اون سورس رو کامپایل کنید بشه اون نرم افزاره . امروزه دیگه به اسم یه شیوه نمی شناسن open source رو بلکه به صورت یک صفت بهش نگاه می کنن. مثلا می گن فلان محصول open source هست. یعنی صفت open sourceی رو داره و ما می تونیم کد اولیش رو ببینیم.

۲- بعضی ها open source رو یک روش عملگرایانه می دونن ( اصطلاح به کار برده شده در ویکی پدیا) . روش عملگرایانه حالا یعنی چی؟ اسم دیگه ی عملگرایی، پراگماتیسم هست.در سیاست یک اصطلاحی هست به نام پراگماتیست که به کسایی اطلاق می شه که برای رسیدن به هدف های خودشون، از خودشون انعطاف نشون می دن. روش عملگرایانه منظور روشیه که نرم افزار ما رو انعطاف پذیر کنه. ( هر کسی تعریف خودش رو از انعطاف پذیری نرم افزار داره. برا همین دیگه درباره انعطاف پذیری نرم افزار توضیح نمی دم).

جالبه که بدونید که مفهوم کلی open source از قبل از ایجاد اینترنت هم بوده ولی بعد از ایجاد اینترنت و افزایش ارتباطات و نیاز ها و پیدا شدن یه سری ویژگی ها، مفهوم واحد open source پیدا شد.
 
  • شروع کننده موضوع
  • #3

ibtkm

کاربر خاک‌انجمن‌خورده
ارسال‌ها
1,678
امتیاز
3,394
نام مرکز سمپاد
علامه حلی
شهر
تهران
دانشگاه
دانشگاه تهران
پاسخ : آشنایی با Open Source

نرم افزار Open Source چیه؟
یکی از مهمترین نکاتی که باید بهش دقت کنید و اغلب مردم در هنگام مواجه شدن باهاش دچار اشتباه می شن اینه که نرم افزار متن باز یا Open Source با نرم افزار آزاد یا Free Software فرق داره!.
بهتره یه کمی اول درباره نرم افزار آزاد صحبت کنیم. نرم افزار آزاد به هیچ وجه اشاره‌ای به قیمت نداره! به آزادی اشاره داره که می گم این آزادی دقیقا چیاس :

۱- آزادی در اجرای نرم افزار برای هرگونه هدفی.
۲- آزادی در تغییر نرم افزار.
۳- آزادی تو بازنشر اون ( مثلا اینکه بدید به همسایتون نه اینکه بذارید تو اینترنت به صورت رسمی. فک کنم البته)
۴- آزادی تو بهینه سازی اون نرم افزار و انتشار عمومی اون بهینه سازی ها.
و خب برای اینکه بتونید آزادی هاهی ۲ تا ۴ رو داشته باشید باید به source نرم افزار دسترسی داشته باشید!

و در ضمن بهتره به این متن توجه کنید که تو خود سایت gnu نوشته :
"نرم‌افزار آزاد" به معنای "غیر تجاری" نیست. یک برنامه آزاد باید برای استفاده تجاری، توسعه تجاری، و توزیع تجاری در دسترس باشد. توسعه تجاری نرم‌افزار آزاد دیگر غیر معمول نیست، بلکه چنین نرم‌افزارهای آزاد تجاری بسیار مهم هستند. بنابراین شما ممکن است پولی پرداخت کرده باشید تا کپی‌هایی از نرم‌افزار آزاد را بدست آورده باشید و یا ممکن است کپی‌ها را بدون پرداخت هزینه بدست آورده باشید. اما صرفنظر از اینکه چگونه کپی‌ها را بدست آورده باشید، شما همیشه این آزادی را دارید تا نرم‌افزار را کپی کنید و تغییر دهید و یا حتی کپی‌هایی از آن را بفروشید.

حالا نرم افزار متن باز یا Open Source چیه؟
نرم افزار Open Source با چند تا ویژگی مهم شناخته می شه :

۱- بشه به صورت رایگان تکثیرش کرد.
۲- به سورسش دسترسی داشته باشیم.
۳-تغیرات بتونیم توش بدیم.
۴-بعد از اینکه تغیرش دادیم بتونیم منتشرش کنیم.
۵-برای هیشکی نباید تمایز قایل بشیم. یعنی اینکه نگیم این نرم افزار رو این افراد نمی تونن استفاده کنن.
۶-مجوز امکان توزیع داشته باشه. یعنی اینکه شما این نرم افزار رو به کسی می دید مجوزش همون مجوز اصلیش باشه. مثلا با طرف درباره یه مجوز دیگه توافق نکنید.
۷-مجوز پس از تغییر باید همون باشه. یعنی اینکه شما مثلا نرم افزار رو تغییر می دید و منتشر می کنید باید انتشارتون تحت همون مجوز اصلی نرم افزار باشه.


پی نوشت : اگه یه مقدار درباره نرم افزار متن باز و ازاد و رایگان تحقیق کنید می بینید که برداشت ها و ترجمه های مختلفی از متون انگلیسی شده. ممکنه بعضی چیز هایی که گفتم به نوع دیگه ای تو یه جای دیگه باشه. می گم. در ترجمه این ۳ تا مفهوم اختلاف نظر وجود داره. اگه قسمتی از حرفام رو فکر کردید اشتباهه یا باید طور دیگه ای بیان شه یا منبع معتبری پیدا کردید که نقضش کرده بگید که دربارش بحث کنیم. منابعی که ازش اینا رو گفتم رو هم بهتره اینجا بذارم :
http://en.wikipedia.org/wiki/Open-source_software
http://fa.wikipedia.org/wiki/%D9%86%D8%B1%D9%85%E2%80%8C%D8%A7%D9%81%D8%B2%D8%A7%D8%B1_%D9%85%D8%AA%D9%86%E2%80%8C%D8%A8%D8%A7%D8%B2
http://www.gnu.org/philosophy
http://www.foss.ir/opensource
http://www.gnu.org/philosophy/open-source-misses-the-point.fa.html
http://opensource.org/docs/osd
 
  • شروع کننده موضوع
  • #4

ibtkm

کاربر خاک‌انجمن‌خورده
ارسال‌ها
1,678
امتیاز
3,394
نام مرکز سمپاد
علامه حلی
شهر
تهران
دانشگاه
دانشگاه تهران
پاسخ : آشنایی با Open Source

مبنای اصلی بخش لینوکس، فرهنگ‌سازی هست و با توجه به اینکه فکر می‌کنم این تاپیک تاپیک مناسبی برای این کار باشه، این تاپیک رو ادامه می‌دم.
هسته‌ی اصلی این پست و پست‌های شاید بعدی، "مزایای استفاده از نرم‌افزار‌های متن‌باز" هست.

برای اینکه بتونیم درباره‌ی این موضوع صحبت کنیم، لازمه که ابتدا بدونیم که برای سنجیدن یک نرم ‌افزار چه فاکتور و معیاری‌های مهمه:

- feature‌های ظاهری : مانند داشتن یک قابلیت نرم‌افزاری
- featureهای باطنی: مانند قابلیت ران شدن روی مدل‌های مختلف cpu
- امنیت
- stability یا میزان پایدار بودن

دوتای اول با نام Feature و دو تای دوم با نام Quality شناخته می‌شن و این دو، بحث خیلی خیلی رایج، مهم و پرکاربردی رو تشکیل می‌دن که بهش می‌گن Quality.vs.Feature که می‌شه برای کوتاه‌تر شدنش گفت QvF. به عبارتی سوال اینه که "کیفیت در اولویت است یاقابلیت؟"
QvF یکی از مهمترین وجه تمایزهای بین نرم‌افزارهای Open Source و اکثر نرم‌افزارهای تجاری هست.

در بین developerهای نرم‌افزار متن‌باز، کیفیت (Quality) از قابلیت(Feature) اهمیت بیشتری داره. به عبارتی، اون‌ها اولویت اولشون اینه که "نرم‌افزاری تولید کنند که حداقل درست درست کار کنه. هر چند با قابلیت کم" و سپس در افزایش قابلیت به اون قدم برمی‌دارن.
ولی اکثر developerهای نرم‌افزار‌های تجاری، Feature رو اولویت اولشون می‌دونند و یکی از دلایلش این می‌تونه باشه که بابت Feature می‌تونن پول بیشتری بگیرن!

این پست رو با یک مثال تموم می‌کنم و ادامه‌ی بحث برای پست‌های بعدی.

احتمالا با IDE‌ها آشنا هستید. (محیط‌هایی هستند که کد زدن رو برای برنامه‌نویسی، با ایجاد یک محیط مناسب و پرامکانات، آسون می‌کنند).
شما به عنوان یک استفاده کننده IDE هستید و معیارهای شما برای سنجیدن یک IDE ، داشتن Content Assist‌ ، Syntax Highlighting و یک دیباگر خوب هست.
نرم‌افزار متن‌بازی وجود داره که به هیچ وجه خوشگل نیست و از خیلی از شکل‌های کلاسیک استفاده می‌کنه. Syntax Highlighting بسیار خوبی داره. یک لیست پایین افتادنی مربوط به Content Assist داره و یک دیباگر خوب رو برای شما تامین کرده. این IDE هیچ امکانات دیگه‌ای نداره. حتی امکاناتی نظیر پشتیبانی از SVN و مشابهات اون رو نداره.

نرم‌افزار تجاری مثلا ویندوزی هم وجود داره که یک طراحی خیلی مدرن و دلربایی داره وقتی نرم‌افزار رو باز میکنید، زمان زیادی طول می‌کشه تا اجرا بشه. وقتی که اجرا می‌شه، به دلیل پراسس سنگینی که می‌گیره فن لپتاپ شروع می‌شه و کلا لپتاپتون داغ می‌کنه. Syntax Highlighting خوبی داره. اما در عوض وقتی می‌خواین بین گزینه‌های Content Assist با Arrow Key ها حرکت کنید، delay داره. دیباگرش هم بد نیست.

اگه شما باشید کدوم نرم‌افزار رو انتخاب می‌کنید؟ من اگه باشم اولی رو انتخاب می‌کنم ....
هر دوشون به نوعی کار آدم رو راه می‌اندازن، ولی کار کردن با نرم افزار دوم واقعا اعصاب آدم رو خورد می‌کنه، سرعت آدم رو کم می‌کنه و از کیفیت کار آدم می‌کاهه ....
 

p0oya

کاربر فوق‌فعال
ارسال‌ها
124
امتیاز
201
نام مرکز سمپاد
میرزاکوچک خان
شهر
رشت
پاسخ : آشنایی با Open Source

واقعا ازتون ممنونم خیلی زحمت می کشید (;
اما من یه انتقادی داشتم اونم اینه که شما از لفظ منبع باز و اوپن سورس زیاد استفاده می کنید در صورتی که هدف اصلی ازادی و نرم افزار ازاد هستش
اوپن سورس بودن بخشی از ازادی هستش اما خوده ازادی نیست
این مساله ایه که اقای استالمن هم سرش تاکید داره :)

× پویا: خب دلیلش اینه که واقعا بحث و تاپیک درباره‌ی نرم‌افزار متن‌باز هست نه نرم‌افزار آزاد :D . درباره‌ی بحث درباره‌ی نرم‌افزارهای آزاد برنامه‌هایی دارم ...
 
بالا