PDA

View Full Version : نوشتن یک سیستم عامل جدید یا کار روی GNU/Linux؟



eshpilen
دوشنبه 04 دی 1391, 09:57 صبح
میگم GNU/Linux رایگان و آزاد/بازمتن که هست و این همه هم کار انجام شده و Base مستقر شده داره.
هرکس میخواد روی سیستم عامل کار کنه، بجای اینکه از صفر شروع کنه و وقت و انرژی خودش رو هدر بده میتونه بره روی GNU/Linux کار کنه.
چه اشکالی داره؟ چه مانعی داره؟
چرا بعضیا اینقدر وقت و انرژی صرف میکنن و ظاهرا میخوان هسته و سیستم عامل جدیدی رو بسازن؟
من در این زمینه تخصص ندارم اما چیزهای پراکنده ای خوندم و میدونم که نوشتن یک سیستم عامل کامل واقعی و بدردبخور که شانس استقبال کافی (حتی غیرتجاری) داشته باشه در مقابل سیستم عاملهای موجود امروزی، کار بسیار دشوار و طولانی ای هست که از عهدهء یک نفر و دو نفر به تنهایی ساخته نیست.
فرضا فقط یک استاندارد که برای API و ساختار و اینترفیس سیستم عامل ایجاد میکنن یک تیم با کلی زمان و بودجه و تشکیلات و متخصصان خبره لازمه که بعد از یک یا چند سال تازه یک استاندارد میدن بیرون. تازه اونم میبینی توش مشکل پیدا میشه یا بنظر بعضیا کمبود داره و میبینی یک تیم دیگری تشکیل میشه و بعد از مدتی یک استاندارد دیگری هم از یک طرف دیگه میاد بیرون.
حالا مسئلهء اینکه سیستم عامل کاربران کافی پیدا بکنه و نرم افزارها و اپلیکیشن های کافی براش نوشته بشه به کنار.
خلاصه میدونم که خیلی خیلی مسائل هست که احتمالا بیشتر اونایی که میگن میخوان سیستم عامل خودشون رو بسازن از یک دهم اون مسائل هیچ خبری هم ندارن. همینطور فقط چون یک مقدار برنامه نویسی بلدن و بوت لودری چیزی نوشتن فکر میکنن بقیش هم همینطوره.

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

pswin.pooya
دوشنبه 04 دی 1391, 11:32 صبح
آنكس كه نداند و نداند كه نداند - در مركب جهل ابدر دهر بماند


هرکس میخواد روی سیستم عامل کار کنه، بجای اینکه از صفر شروع کنه و وقت و انرژی خودش رو هدر بده میتونه بره روی GNU/Linux کار کنه.شما هر چند وقت يكبار مباحثي مثل اين رو بيان ميكنيد كه واقعا نيجه فني در بر نداره. پس بهتره مطرح نشه.چون خود اين هم انرژي بيخود مصرف ميكنه.

اما در مورد سوالتون. هزاران پردازنده مختلف در دنيا وجود دارن و هزاران كاربرد مختلف و هزارن دليل مختلف براي نوشتن سيستم عامل جديد.



اگر apple ميخواست از windowns ce براي گوشهاش استفاده كنه نمي شد يكه تاز دنيا.
اگر توي موارد خاصي مثل موارد نظامي از سيستم عاملهاي اختصاصي استفاده نشه دشمن سه سوته كشور رو توي دست مي گيره.
اگر يه پردازنده خاص منطوره داري و يا حتي طراحي كردي مجبوري سيستم عامل بنويسي ( الان خيلي ها اينكار رو ميكنن)
اگر ....

و مهمتر از همه اگر لينوس هم مثل شما فكر ميكرد الان لينوكس وجود نداشت و يا اگر بيل گيتس هم مثل شما فكر مي كرد الان داس و ويندوز هم نبودن. و ... و حتي اگر بشريت مثل شما فكر مي كرد به احتمال زياد الان داشتم غارهاي داخل كوه و يا ابزارهاي كشاورزي دستي رو بهبود ميداديم چون امثال غارها به مراتب محكمتر از خونه هاي خشتي و ... اوليه هستن.


مساله اينه اگر ميخواي رو هسته لينوكس كار كني كسي جلوي شما رو نگرفته و بفرما شروع كن كار كردن. اما واقعا چه دليلي همچين موضوعي رو بايد مطرح كني.

eshpilen
دوشنبه 04 دی 1391, 13:06 عصر
پروفسور شما که بیشتر فرافکنی کردی تا اینکه سوال رو پاسخ بدی.
تمام اینا که میگی حکایت خودتون نبود.
خود شما چه هدفی داری و چطوری میخوای به کجا برسی با سیستم عامل نوشتن؟
آیا بنظرت شانسی داری؟ چرا؟ دلیل و سند. کارت چرا چه ارزش و کاربردی داره؟ چرا این همه وقت و انرژی رو صرف کار دیگه ای نکردی؟ آیا این بهینه ترین کار برای شما بوده به چه دلایلی؟ ...

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

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

pswin.pooya
دوشنبه 04 دی 1391, 14:04 عصر
سوال پرسيدن نه جرمه نه زشت. منتها سوال درست پرسيدن شرط منطق و عقل هست.

من بازهم ميگم اينجا يه تالار فني هست و اينجور سوالها اصولا توش جا نداره. وقتي همچين سوالي دارين ميتونين اين رو از طريق پيغام شخصي و يا حتي ايميل بپرسيد. ( بگذريم از اينكه بارها جوا اين سوال داده شده)

اما باز هم جواب سوال شما رو دادم:



اما در مورد سوالتون. هزاران پردازنده مختلف در دنيا وجود دارن و هزاران كاربرد مختلف و هزارن دليل مختلف براي نوشتن سيستم عامل جديد.


اگر apple ميخواست از windowns ce براي گوشهاش استفاده كنه نمي شد يكه تاز دنيا.
اگر توي موارد خاصي مثل موارد نظامي از سيستم عاملهاي اختصاصي استفاده نشه دشمن سه سوته كشور رو توي دست مي گيره.
اگر يه پردازنده خاص منطوره داري و يا حتي طراحي كردي مجبوري سيستم عامل بنويسي ( الان خيلي ها اينكار رو ميكنن)
اگر ....

اگر با جواب مشكل داريد مطرح كنيد.


آنكس كه نداند و نداند كه نداند - در مركب جهل ابدر دهر بماندفكر كنم جاي شعر رو اشتباه نوشتم اما منظورم تحقير و يا توهين نبود بذار توضيح بدم:

ما يه موسسه به اسم دارپا براي وزارت دفاع آمريكا داريم و كارش خيلي درسته اين موسسه معمولا 50 سال از علم بشر جلوتر هست و دلايل خودش رو هم داره. ما چون نمي دونيم چه خبره و اونها چه علمي دارن هميشه توي علم 50 سال گذشته اونها دست و پا ميزنيم به نظر ميرسه cutting edge حركت مي كنيم. اما واقعين اينه كه از هيچي خبر نداريم و چون نمي دونيم هم هميشه داخل همون مركب جهل ابدر دهر مي ميونيم و هيچ وقت نمي دونيم از اون علم مخفي چي چيزي و چرا لازم داريم تا زماني كه ارائه بشه. استيوز جاب خدا بيامرز هم ميگفت مردم نمي دونن چه چيزي رو نياز دارن، شما بايد بهشون بگيد.

براي اينكه در مورد هر چيزي و دليل نياز به اون اطلاع داشته باشيم بايد در موردش اطلاع داشته باشيم و اونو درك كنيم. شما اگر سيستم عامل رو طراحي نكني و يا كامپايلر نسازي و يا ... هيچ وقت نمي توني متوجه بشي كه به چه چيزي نياز داري و به چه شكلي ميتوني اون رو حل كني.

در مورد نياز به سيستم عامل:
توي ليست درسهاي رشته مهندسي كامپيوتر درسهايي رو مثل كامپايلر، آتاماتا (نظريه زبان و ماشين) و سيستم عامل و ... رو ميبيني. توي مرحله اول به نظر ميرسه كه اين درسها به هيچ دردي نمي خورن و اين مباحث بسته شده هست و ... اما ليست دروس رشته نرم افزار حداقل توي دانشگاه آزاد از يكي از معتبرترين دانشگاه هاي آمريكايي برداشته شده. اگر واقعا ديگه نيازي به سيستم عامل جديد و ... نبود همچين درسهايي حداقل توي دوره مهندسي ( كه براي تربيت افرادي هست كه از علم توليد شده استفاده بكنن) اين دروس ارائه نمي شد. اما برعكس اون پافشاري زيادي داخل اين دانشگاها براي آموزش اين دروس ميشه. به عنوان مثال دانشگاه استنفورد:

http://www.stanford.edu/class/cs140/projects/pintos/pintos_1.html

ايده سيستم عامل:
ما با اينكه داريم سيستم عاملهاي مدرن رو تجربه مي كنيم اما هنوز ايده هاي پشت سر سيستم عاملها تموم نشده. هنوز سيستم عاملها در ابتداي راه خود هستن. ما هنوز سيستم عاملهاي توزيع شده واقعي ( كه هر هفت اصل سيستم توزيعي رو داخل خودش جا بده) نداريم. هنوز كه هنوزه روز به روز سيستم عاملهاي جديد ميان روي كار. حتي برخي از اونها پلتفرمهاي سخت افزاري جديدي رو مطرح ميكنن. به عنوان مثال در جريان تكميل يونيكس سيستم عامل جديدتري كه ارائه شده:

http://en.wikipedia.org/wiki/Plan_9_from_Bell_Labs

از يه طرف ديگه هنوز بحث بازار سيستم عاملهاي embedded و بلادرنگ به شدت داغ هست و جاي پيشرفت توي اونها خيلي زياده.


خود شما چه هدفی داری و چطوری میخوای به کجا برسی با سیستم عامل نوشتن؟
آیا بنظرت شانسی داری؟ چرا؟ دلیل و سند. کارت چرا چه ارزش و کاربردی داره؟ چرا این همه وقت و انرژی رو صرف کار دیگه ای نکردی؟ آیا این بهینه ترین کار برای شما بوده به چه دلایلی؟ ... حتي فكر نكنم خدا هم بپرسه كه چرا وقت رو صرف اينكار كردي چه برسه به بنده خدا. اما بازهم در جواب بايد بگم تا همين الانش همين os ياعث شده من به جاهايي برسم و كارهايي بكنم (تا اينجا فقط سر نوشتن همين os كلي پيشنهاد كار و پروزه داشتم) كه حتي فكرش رو هم نمي كردم. اما در كل هدف من در كنار سرگرمي درك درستر سيستم هست. من قبل از نوشتن os كتاب هسته لينوكس رو خوندم و چيزي نفهميدم يكبار اينكار رو بعد از اون كردم و همه چي رو متوجه شدم. الان درك نسبتا درستي از قسمتهاي زيادي از سيستم دارم و تغييراني رو كه دلم ميخواد رو راحتر اعمال مي كنم.
در حالت كلي بايد بگم وقتم رو بجاي اينكه صرف اينكار كنم كه فايده داره و نميشه و بيخودي هست و كتاب ديتابيس و مهندسي نرم افزار بخونم. وقتم رو درستر مصرف كردم. (البته بازم منظورم توهين به ديتابيس و مهندسي نرمافزار نيست و فقط ميخوام بگم نشدم يكي از هزران نفر يا قشر 90 درصدي جامعه برنامه نويسها. بلكه دارم سعي مي كنم توي قشر 10 درصدي برنامه نويسها جا بگيرم).

البته فقط فعاليت من محدود به اين موضوع نيست و به زودي خبر كار با سطوح پايينتر و پروژه هاي جديدم رو منتشر ميكنم.

eshpilen
دوشنبه 04 دی 1391, 14:54 عصر
اگر با جواب مشكل داريد مطرح كنيد. بنده هم میدونستم سیستم عامل زیاد بوده و هست و هر روز هم درمیاد یا روشون کار میشه.
سوال/ایراد بنده در باب هدف نوشتن سیستم عامل برای PC/دسکتاپ بود و افرادی که منفرد در این زمینه کار میکنن، که میگم بجاش چرا GNU/Linux رو ارتقا نمیدن با کمک و تکمیل و تطبیق و خلاصه هر کمبودی که هست.
شرکتهای بزرگ یا حکومتها هم که حسابشون جداست، چون منابع مالی و انسانی خیلی بیشتر در اختیار دارن و نیازهای خاص دارن و این کارها براشون در طولانی مدت هم که شده صرف میکنه.


ما يه موسسه به اسم دارپا براي وزارت دفاع آمريكا داريم و كارش خيلي درسته اين موسسه معمولا 50 سال از علم بشر جلوتر هست و دلايل خودش رو هم داره. ما چون نمي دونيم چه خبره و اونها چه علمي دارن هميشه توي علم 50 سال گذشته اونها دست و پا ميزنيم به نظر ميرسه cutting edge حركت مي كنيم. اما واقعين اينه كه از هيچي خبر نداريم و چون نمي دونيم هم هميشه داخل همون مركب جهل ابدر دهر مي ميونيم و هيچ وقت نمي دونيم از اون علم مخفي چي چيزي و چرا لازم داريم تا زماني كه ارائه بشه.حالا خیلی هم نباید اغراق کرد. شاید در بعضی چیزها اینطور باشه، ولی نه لزوما درمورد هرچیزی.
برای هر ادعایی هم سند و دلیل روشن و محکم باید باشه یا نه؟
الان شما از کجا این اطلاعات و اطمینان رو داری؟


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

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


تي فكر نكنم خدا هم بپرسه كه چرا وقت رو صرف اينكار كردي چه برسه به بنده خدا.منم ازت بازخواست نکردم. عمر خودته، وقت و انرژی خودته، پول خودته.
اظهار نظر و سوال و بحث که فقط نیتش اینا نیست. هست؟
در محیط نت و فروم هم هرکس آزاده نظرش رو بگه، گرچه به مذاق دیگران خوش نیاد.


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


كتاب ديتابيس و مهندسي نرم افزار بخونم. وقتم رو درستر مصرف كردم. (البته بازم منظورم توهين به ديتابيس و مهندسي نرمافزار نيست و فقط ميخوام بگم نشدم يكي از هزران نفر يا قشر 90 درصدي جامعه برنامه نويسها. بلكه دارم سعي مي كنم توي قشر 10 درصدي برنامه نويسها جا بگيرم).
البته شاید منظورت این نبوده باشه، ولی امیدوارم صرفا بخاطر درصد و متمایز بودن چیزها رو انتخاب نکنی.
البته بنده هم همینطور دنبال چیزهای خیلی خاص و دشوارتری رفتم، چون علاقه داشتم و میخواستم بتونم تقریبا هرکاری انجام بدم، و قدرت زیادی رو در بعضی کارهای خاص میدیدم.
ولی درصدش رو کاری ندارم یا اینکه دنبال یک چیزی برم غیر از دیگران فقط بخاطر اینکه متمایز باشم.
البته میدونم که منظور شما هم احتمال زیاد این نیست.
البته فقط هم سطح پایین و کرنل و اینها نیست که کارهای پیچیده و خاص و پیشرفته و قدرتمندی دارن.
بعدم اول از همه چیز بنظر من کاربرد عملی اهمیت داره.
همینطور نمیرم دنبال چیزی فقط بخاطر پیچیدگی و سختیش، بلکه دنبال کاربرد و ارزش عملیش هستم.
برنامه نویسی سطح بالا هم خیلی چیزها و کاربردهای عالی داره. فقط برنامهء حسابداری و دیتابیس و برنامه های تجاری و بازار هم نیست. خودت میدونی.

prpe26
دوشنبه 04 دی 1391, 23:19 عصر
عنوان تاپیک بستگی به خیلی چیزا داره.

مثلا فرض کنیم قصد داریم یک سیستم عامل برای سرور یک شرکت درست کنیم که در اون سرویس های زیادی قراره کار کنند و امضا (برند) اون شرکت هم روش باشه. خب در این صورت معلومه که لینوکس بهتر و بیشتر به کارمون میاد! مثلا اوبونتو سرور با سرویس های دلخواه + برند شرکت خودمون!
اما بعضی وقتها نمیشه. مثلا Apple سیستم عاملش نوعی BSD UNIX محسوب میشه و به وفور از کدهای گنو ماخ و FreeBSD در هسته های XNU و Darwin و در مجموع در همون XNU/Darwin (بخش بزرگ و اصلی مک ، iOS و Apple TV Firmware ) استفاده کرده ، ولی بعضی چیزها رو باید از اول میساختند. مثلا فرمورک Cocoa که خودش کلی لایبرری و ماژول اضافی در هسته میطلبه.

لپ کلام این هست که تا موقعی که نیازهامون توسط لینوکس رفع میشه لینوکس ولی وقتی نمیتونیم نیازی رو رفع کنیم باید خودمون دست به کار شیم.

البته اگر پروژه شخصی یا تفریحی هست بستگی به خودمون داره که چی رو میخوایم بدست بیاریم! آشنا شدن با سیستم لینوکس یا درک لذت نوشتن کدهای قلمبه سلمبه سیستم عامل !