آرم دانشگاه علامه جعفری رفسنجان

آرم دانشگاه علامه جعفری

 

آرم دانشگاه علامه جعفری - (Big Size)

Advertisements

طنز: راهنماي مشاغل

حسابدار:
كسي است كه قيمت هر چيز را مي‌داند ولي ارزش هيچ چيز را نمي‌داند

بانكدار:
كسي است هنگامي كه هوا آفتابي است چترش را به شما قرض مي‌دهد و درست تا باران شروع مي‌شود آن را مي خواهد

مشاور:
كسي است كه ساعت شما را از دستتان باز مي كند و بعد به شما مي گويد ساعت چند است

سياستمدار:
كسي است كه مي‌تواند به شما بگويد به جهنم برويد منتها به نحوي كه شما براي اين سفر لحظه شماري كنيد

اقتصاددان:
كسي است كه فردا خواهد فهميد چرا چيزهايي كه ديروز پيش‌بيني كرده بود امروز اتفاق نيفتاد

روزنامه‌نگار:
كسي است كه 50% از وقتش به نگفتن چيزهايي كه مي‌داند مي‌گذرد و 50% بقيه وقتش به صحبت كردن در مورد چيزهايي كه نمي‌داند

رياضي‌دان:
مرد كوري است كه در يك اتاق تاريك بدنبال گربه سياهي مي‌گردد كه آنجا نيست

هنرمند مدرن:
كسي است كه رنگ را بر روي بوم مي‌پاشد و با پارچه‌اي آن را بهم مي‌زند و سپس پارچه را مي‌فروشد

فيلسوف:
كسي است كه براي عده‌اي كه خوابند حرف مي‌زند

استاد:
كسي است كه كاري ندارد، ولي حداقل مي‌داند چرا؟

روانشناس:
كسي است كه از شما پول مي‌گيرد تا سوالاتي را بپرسد كه همسرتان مجاني از شما مي‌پرسد

معلم مدرسه:
كسي است كه عادت كرده فكر كند كه بچه‌ها را دوست دارد

جامعه‌شناس:
كسي است كه وقتي ماشين خوشگلي از خيابان رد مي‌شود و همه مردم به آن نگاه مي‌كنند، او به مردم نگاه مي‌كند

برنامه‌نويس:
كسي است كه مشكلي كه از وجودش بي‌خبر بوديد را به روشي كه نمي‌فهميد حل مي‌كند

پند آموز – بخوانید

يک روز بعد ازظهر وقتی که جو با ماشين پونتياکش می‌کوبيد که بره خونه زن مسنی رو ديد که اونو متوقف کرد. ماشين مرسدسش پنچر بود.
 
جو می‌تونست ببينه که اون زن ترسيده و بيرون توی برفها ايستاده تا اينکه بهش گفت: » من جو هستم و اومدم که کمکتون کنم.»
 
زن گفت:» من از سن لوئيز ميام و فقط از اينجا رد می شدم. بايستی صدتا ماشين ديده باشم که  از کنارم رد شدن و اين واقعا لطف شما بود.»
 
وقتی که او لاستيک رو عوض کرد و درب صندوق عقب رو بست و آماده شد که بره،  زن پرسيد:» من چقدر بايد بپردازم؟»  و جو به زن چنين گفت:
 
«شما هيچ بدهی به من نداريد. من هم در اين چنين شرايطی بوده‌ام و روزی  يکنفر هم به  من کمک کرد همونطور که من به شما کمک کردم. اگر تو واقعا می‌خواهی که بدهيت رو به  من بپردازی بايد اين کار رو بکنی. نگذار زنجير عشق به تو ختم بشه!»
 
چند مايل جلوتر، زن کافه کوچکی رو ديد و رفت تو تا چيزی بخوره و بعد راهشو ادامه بده.
 
ولی نتونست بی توجه از لبخند شيرين زن پيشخدمتی بگذره که می‌بايست هشت ماهه باردار  باشه و از خستگی روی پا بند نبود.
 
او داستان زندگی پيشخدمت  رو نمی‌دانست و احتمالا هيچ گاه هم نخواهد فهميد.
 
وقتی که پيشخدمت رفت تا بقيه صد دلار شو بياره زن از در بيرون رفته بود. درحاليکه روی   دستمال سفره اين يادداشت رو باقی گذاشت. اشک در چشمان پيشخدمت جمع شده بود، وقتی   که نوشته زن رو می‌خوند:
 
«شما هيچ بدهی به من نداريد. من هم در اين چنين شرايطی بوده‌ام و روزی يکنفر هم به   من کمک کرد همونطور که من به شما کمک کردم. اگر تو واقعا می خواهی که بدهيت رو  به من بپردازی، بايد اين کار رو بکنی. نگذار زنجير عشق به تو ختم بشه!»
 
اونشب وقتی  که زن پيشخدمت از سرکار به خونه رفت، به تختخواب رفت در حاليکه به اون پول و يادداشت  زن فکر می کرد.
 
وقتی که شوهرش دراز کشيد تا بخوابه به آرومی و نرمی به گوشش گفت:
 
«همه چيز داره درست ميشه. دوستت دارم، جو!»

 


 

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

 


 

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

 


 

راز 37 ثانیه ای یک امید

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

انها ساعتها در باره عقاید ,  خانواده ها ,  خانه ,  شغل ,  دوران خدمت سربازی و تعطیلاتشان با هم صحبت میکردند .هر بعداز ظهر وقتی مرد کنار پنجره میتوانست بنشیند ,  تمام چیزهائی را که میتوانست بیرون پنجره ببیند را برای هم اتاقی اش تعریف میکرد .

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

در یک بعدازظهر گرم مرد کنار پنجره گفت : سربازانی را می بیند که رژه می روند ,  مرد دیگر اگر چه صدای آنها را نمیشنید ,  میتوانست با کلمات توصیفی و زیبا آنها را تصور کند .

 روزها و هفته ها گذشت .

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

 پرستار را صدا کرد و پرسید چه کسی ان مرد را مجبور کرده بود که چنان چیزهای خیال انگیزی برای او در بیرون پنجره به تصور بکشد .پرستار پاسخ داد که ان مرد کور بوده و حتی دیوار  را هم نمی دیده است .

 چه لذتبخش است که دیگران را خوشحال کنیم ,  حتی اگر خود در وضعیت بدی باشیم .ما با شرح غصه هامان نیمی از آن را به دیگران انتقال می دهیم ,  در حالی که اگر شادی تقسیم شود دو برابر می شود !!!

روانشناسی رنگها

 

ایدا

ایدا

از ویکی‌پدیا، دانشنامهٔ آزاد.

پرش به: ناوبری, جستجو

اِیدا یک زبان برنامه‌نویسی شیءگرا و سطح بالا است که در سال ۱۹۸۳ میلادی توسط وزارت دفاع آمریکا ایجاد شد. برای ایجاد این زبان برنامه نویسی بیش از هر زبان دیگری هزینه صرف شده‌است.[۱]

فهرست مندرجات

[نهفتن]

[ویرایش] تاریخچه ایدا

اِیدا 95 در آغاز با سه دغدغه مهم طراحی شد:

  • قابلیت اعتماد و نگهداری برنامه،
  • برنامه‌نویسی به عنوان یک فعالیت انسانی،
  • و کارآیی.

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

[ویرایش] خلاصهٔ زبان اِیدا 95

یک برنامهٔ ایدا از یک یا بیش از یک واحد تشکیل شده‌است. واحدهای برنامه ممکن است زیربرنامه‌ها (که الگوریتم‌های قابل اجرا را تعریف می‌کنند)، پکیج‌ها (که مجموعه‌ای از موجودیت‌ها را تعریف می‌کنند)، واحدهای وظیفه (که محاسبات هم‌زمان را تعریف می‌کنند)، واحدهای حفاظت شده (که عملیاتی برای اشتراک هماهنگ داده‌ها بین وظیفه‌ها را تعریف می‌کنند)، یا واحدهای عمومی (که فرم‌های پارامتردار پکیج‌ها و زیربرنامه‌ها را تعریف می‌کنند) باشند. هر واحد برنامه معمولاً شامل دوبخش است: یکی بخش ذکر خصوصیات، شامل اطلاعاتی که باید برای واحدهای دیگر آشکار باشند؛ و دیگری بخش بدنهٔ برنامه، شامل پیاده‌سازی جزئیاتی که لازم نیست برای واحدهای دیگر قابل رؤیت باشد. بیشتر واحدهای برنامه می‌توانند به طور جداگانه کامپایل شوند.

[ویرایش] ویژگیهای ادا

ایدا یک زبان برنامه‌نویسی استاندارد شده و همه‌منظوره‌است که در گسترهٔ وسیعی از کاربردها استفاده می‌شود – از کنترل موشک‌ها گرفته تا تحویل صورت‌پرداخت به سیستم کنترل ترافیک هوایی.

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

ایدا شیوهٔ صحیح برنامه‌نویسی را به وسیلهٔ‌ اصول مهندسی نرم‌افزار یکپارچه با امکان تایپ کد قوی، پیمانه‌ای بودن، قابلیت حمل، قابلیت استفادهٔ مجدد و قابلیت خواندن (یا خوانایی) تقویت می‌کند. این خصوصیات هزینه‌ها را در تولید و توسعه، بررسی، اشکال‌زدایی و نگهداری نرم‌افزار، کاهش می‌دهد.

[ویرایش] قابلیت حمل

ایدا برای یک سیستم ساخته شد در حالی که می‌تواند به آسانی کامپایل مجدد شده و به سیستم دیگری منتقل شود، چون تمام کامپایلرهای ایدا معتبر هستند و ایدا یک زبان طراحی نرم‌افزاری است که از لحاظ بین‌المللی استاندارد شده توسط MIL-STD-1815A، ANSI و ISO می‌باشد.

[ویرایش] پیمانه‌ای بودن

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

[ویرایش] قابلیت استفادهٔ مجدد

مفهوم پکیج در ایدا اجازه می‌دهد که کاربران اجزایی از نرم‌افزار را که می‌توانند بازیابی، استفاده و/یا تغییر داده شوند بدون اینکه بر بقیهٔ اجزای برنامه اثر بگذارند، توسعه دهند. واحدهای برنامه‌های عام ایدا همچنین اجازه می‌دهد که یک تابع منطقی روی بیشتر از یک نوع داده اجرا شود. پکیج‌ها و برنامه‌های عام همچنین تجرد داده‌ها و طراحی مبتنی بر شیء را پشتیبانی می‌کنند.

[ویرایش] قابلیت اعتماد

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

[ویرایش] نگهداری

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

[ویرایش] زمینه‌های برنامه‌های کاربردی ادا

موفقیت‌های مستند سراسری ایدا، استفاده آن را در دامنهٔ وسیعی از کاربردها برمی‌شمرند. امروزه ایدا سیستم‌های زیر را طراحی می‌کند :

  • سیستم‌های صورت پرداخت، سیستم بانکداری تجاری، سیستم معاملهٔ سهمیه‌بندی کالا، سیستم تراکنش زبان و RDMS‌ها.
  • اکتشافات ژئوفیزیک و سیستم پردازش داده‌ها، و سیستم تجزیهٔ شیمیایی.
  • مرکز تجاری مخابرات تلفن همراه و برنامه‌های تجاری ارتباطات راه دور مانند PABXها.
  • FAA در جت‌های تجاری، سیستم‌های کنترل ترافیک هوایی، سیستم‌های ردیابی و هدایت زمان پرواز، شبیه‌سازهای آموزش پرواز و سیستم‌های کنترل/نمایشگر پرواز.
  • سفینه‌های فضایی ناسا و محیط‌های ایستگاههای فضایی.
  • سیستم‌های تولید خودکار، سیستم‌های خودکار جابه‌جایی مواد، سیستم‌های جوشکاری رباتیک و سیستم‌های مدیریت موجودی.
  • سیستم‌های نظارت بی‌درنگ و پیوسته بهداشتی و کنترل تعبیه شدهٔ بی‌درنگ دستگاه‌های کپی و نسخه برداری.
  • سیستم‌های تعبیه شدهٔ نظامی استراتژیک، و اکثر برنامه‌هایی که در برنامه‌های کاربردی و سیستم‌های بی‌درنگ، استفاده می‌شوند.

[ویرایش] برنامهٔ نمونه

with Ada.Text_IO; 

procedure Hello is
begin
  Ada.Text_IO.Put_Line(«Hello, world!»);
end Hello;

 

سی++

سی++

از ویکی‌پدیا، دانشنامهٔ آزاد.

(تغییر مسیر از C++)
پرش به: ناوبری, جستجو

زبان برنامه‌نویسی ++C (تلفظ می شود: سی پلاس پلاس) یک زبان برنامه‌نویسی کامپیوتری عمومی با قابلیت‌های سطح بالا و سطح پایین می‌باشد. این زبان دارای قابلیت‌های انواع داده ایستا، نوشتار آزاد، چندمدلی، معمولاً زبان ترجمه شده با پشتیبانی از برنامه‌نویسی ساخت‌یافته، برنامه‌نویسی شی‌گرا، برنامه نویسی جنریک است.

زبان ++c یک زبان سطح میانی در نظر گرفته می‌شود. این زبان دارای قابلیت زبان‌های سطح بالا و پایین بصورت هم‌زمان است.

زبان ++C توسط بی‌یارنه استراس‌تروپ دانمارکی در سال ۱۹۷۹ در آزمایشگاه های بل (Bell Labs) و بر مبنای زبان سی ساخته شد و آن را «C با کلاس» نام‌گزاری نمودند. در سال ۱۹۸۳ به ++c تغییر نام داد. توسعه با اضافه نمودن کلاس‌ها و ویژگی‌های دیگری مانند توابع مجازی، سربارگزاری عملگرها، وراثت چندگانه، قالب توابع، و پردازش استثنا انجام شد. این زبان برنامه‌نویسی در سال ۱۹۹۸ تحت نام ISO/IEC 14882:1998 استاندارد شد. نسخه فعلی استاندارد این زبان ISO/IEC 14882:2003 است. نسخه جدیدی از استاندارد (که به صورت غیررسمی C++0x نامیده می‌شود) در دست تهیه است.

فهرست مندرجات

[نهفتن]

[ویرایش] تاریخچه زبان

استراس‌تروپ کار بر روی زبان «c با کلاس» را در سال ۱۹۷۹ آغاز کرد.ایده ساخت این زبان جدید در زمان کار بر روی تز دکترای خود به ذهن استراس‌تروپ خطور نمود. او متوجه شد که سیمولا دارای ویژگی‌های مناسب برای ساخت برنامه‌های بسیار بزرگ است اما برای استفاده عملی بسیار کند است اما BCPL با وجود سرعت بسیار زیاد برای ساخت برنامه‌های بزرگ بسیار سطح پایین است. زمانی که استراس‌تروپ کار خود را در آزمایشگاه های بل (Bell Labs) آغاز نمود با مشکل تحلیل هسته unix با توجه به محاسبات توزیع شده روبرو شده بود. با یادآوری تجربیات خود در دوران دکترا، او زبان C را با استفاده از ویژگی‌های سیمولا گسترش داد. C به این دلیل انتخاب شد که C یک زبان عمومی، سریع، قابل حمل، و بصورت گسترده در حال استفاده بود. علاوه بر C و سیمولا زبان‌های دیگری مانند ALGOL 68، ADA، CLU، ML نیز بر ساختار این زبان جدید اثر گذاشت. در ابتداویژگی‌های کلاس، کلاس‌های مشتق شده، کنترل نوع قوی، توابع درون خطی، و آرگومان پیش‌فرض از طریق Cfront به C اضافه شد. اولین نسخه تجاری در سال ۱۹۸۵ ارائه شد.

در سال ۱۹۸۳ نام زبان از «C با کلاس» به ++C تغییر یافت. ویژگی‌های دیگر شامل توابع مجازی، سربارگزاری عملگر و نام تابع، ارجاعات، ثوابت، کنترل حافظه توسط کاربر بصورت آزاد، کنترل نوع بهتر، و توضیحات یک خطی به صورت BCPL با استفاده از «//» نیز به آن اضافه شد. در سال ۱۹۸۵ اولین نسخه زبان برنامه‌نویسی ++C انتشار یافت و مرجع مهمی برای این زبان فراهم شد در حالی که هیچ استاندارد رسمی وجود نداشت. در سال ۱۹۸۹ ویرایش 2.0 از زبان ++C ارائه شد. ویژگی‌های جدیدی مانند ارث‌بری چندگانه، کلاس‌های انتزاعی، اعضای ایستای توایع، اعضای ثابت تابع، و اعضای حفاظت شده به آن اضافه شد. در سال ۱۹۹۰ «راهنمای مرجع ++C » منتشر شد. این کار بنیان استانداردهای بعدی شد. آخرین ویژگی‌های اضافه شده شامل موارد زیر بودند: قالب توابع، استثناها، فضاهای نام، تبدیلات جدید، و یک نوع داده منطقی.

در حین تکامل ++C کتابخانه استاندارد نیز بوجود آمد. اولین نسخه کتاب استاندارد شامل کتابخانه جریانات I/O بود که جایگزین printf و scanf شد. در ادامه مهم‌ترین ویژگی اضافه شده Standard Template Library بوده است.

[ویرایش] استاندارد زبان

بعد از سال‌ها کار کمیته مشترک ANSIISO در سال ۱۹۹۸ ++C را استاندارد نمودند (ISO/IEC 14882:1998). به مدت چند سال پس از انتشار استاندارد این کمیته گزارشات معایب را مورد بررسی قرار داده نسخه اصلاح شده استاندارد ++C منتشر شد. در سال ۲۰۰۵ گزارشی فنی بنام «گزارش فنی کتابخانه ۱» (که معمولاً بصورت اختصار TR1 خوانده می‌شود) انتشار یافت. با وجود این که گزارش بخشی رسمی از استاندارد نیست ولی بخش‌هایی را به آن اضافه نموده که انتظار می‌رود در نسخه‌های بعدی استاندارد در نظر گرفته شود. پشتیبانی از این گزارش در حال افزایش بین تمام کامپایلرهای فعلی است.

در حالی که ++C به هیچ موسسه‌ای وابسته نیست این مستندات بصورت آزادانه در دسترس نیستند.

[ویرایش] نام ++C

این نام منسوب به ریک ماسکیتی (اواسط ۱۹۸۳) است و برای اولین بار در دسامبر سال ۱۹۸۳ به کار برده شد. در طول مدت تحقیق این زبان بنام «C جدید» و بعدها «C با کلاس» خوانده شد. در علوم کامپیوتر هنوز هم ++C به عنوان ابرساختار C شناخته می‌شود. آخرین نام از عملگر ++ در زبان C (که برای افزایش مقدار متغیر به اندازه یک واحد بکار می‌رود) و یک عرف معمول برای نشان دادن افزایش قابلیت‌ها توسط + ناشی گشته است. با توجه به نقل قولی از استراس‌تروپ: «این نام ویژگی‌ها تکاملی زبان در C را نشان می‌دهد.» +C نام زبانی غیرمرتبط به این زبان است.

استراس‌تروپ مبدا این نام را در فصل اول کتاب خود «زبان برنامه‌نویسی ++C» اشاره می‌نماید که معنی دیگر ++C را می‌توان در ضمائم کتاب جرج ارول بنام ۱۹۸۴ یافت. در سه قسمت از زبان تخیلی Newspeak «کلمات C» برای اشاره به لغات فنی و حرفه‌ای بکار می‌رود. «دو علامت +» برای ایجاد صفات عالی از صفات Newspeak به کار می‌رفت بنابراین ++C به معنای زبانی با بیشترین شباهت به C است.

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

[ویرایش] توسعه آینده

++C همچنان در حال تکامل است تا نیازهای آینده را پاسخگو باشد. نسخه جدید استاندارد ++C در حال بررسی است و تحت عنوان C++0x است که انتظار می‌رود در سال ۲۰۱۰ منتشر گردد. تغییرات کنونی نشان می‌دهد که که همچنان به صورت چندمدلی ++C تاکید می‌گردد. توسعه‌های مهم پشتیبانی از چندرشته‌ای و مفاهیمی برای راحت نمودن کار با قالب‌هاست. اضافه نمودن ویژگی جمع‌آوری زباله به آن به شدت مورد بحث است. Boost.org گروهی برای بیشترین استفاده از ویژگی‌های فعلی ++C می‌باشد. آنها ویژگی‌های تابعی و فرابرنامه‌نویسی آن را گسترش می‌دهند و در مورد ++C به کمیته استاندارد نصیحت‌هایی نموده است که کدام ویژگی‌ها خوب عمل نمی‌کنند و کدام‌ها نساز به توسعه دارند.

[ویرایش] فلسفه

در کتاب «طراحی و تکامل ++C» بی‌یارنه استراستروپ قوانین مورد استفاده در طراحی ++C را بیان می‌نماید. دانستن این قوانین به فهمیدن نحوه عملکرد ++C و چرایی آن کمک می‌کند. جزئیات بیشتر در کتاب قابل دسترسی است:

  • ++C طراحی شده است تا یک زبان عمومی با کنترل نوع ایستا و همانند C قابل حمل و پربازده باشد.
  • ++C طراحی شده است تا مستقیما و بصورت جامع از چندین شیوه برنامه‌نویسی (برنامه‌نویسی ساخت‌یافته، برنامه‌نویسی شی‌گرا، انتزاع داده، و برنامه‌نویسی جنریک)
  • ++C طراحی شده است تا به برنامه‌نویس امکان انتخاب دهد حتی اگر این انتخاب اشتباه باشد.
  • ++C طراحی شده است تا حداکثر تطابق با C وجود داشته باشد و یک انتقال راحت از C را ممکن سازد.
  • ++C از بکاربردن ویژگی‌های خاص که مانع از عمومی شدن است خودداری می‌نماید.
  • ++C از ویژگی‌هایی که بکار برده نمی‌شوند استفاده نمی‌کند.
  • ++C طراحی شده است تا بدون یک محیط پیچیده عمل نماید.

[ویرایش] کتابخانه استاندارد

در سال ۱۹۹۸ استاندارد ++C شامل دو بخش هسته زبان و کتابخانه استاندارد ++C است. این کتابخانه شامل بیشتر بخش‌های STL و کتابخانه استاندارد C است. بیشتر کتابخانه‌های ++C در استاندارد وجود ندارند و یا استفاده از تعریف قابلیت پیوند کتابخانه‌ها را می‌توان در زبان‌هایی مانند فرترن، C، پاسکال، بیسیک نوشته شوند. البته با توجه به ویژگی‌های کامپایلر مشخص خواهد شد که کدام زبان را می‌توان استفاده نمود.

کتابخانه استاندارد ++C شامل کتابخانه استاندارد C با یک سری تغییرات برای بهبود عملکرد است. بخش بزرگ بعدی این کتابخانه STL است. STL شامل ابزار بسیار قدرتمندی مانند نگه‌دارنده‌ها (مانند vector و list)، تکرارکننده‌ها (اشاره‌گرهای عمومی شده) برای شبیه‌سازی دسترسی مانند آرایه الگوریتم‌هایی برای جستجو و مرتب‌سازی در آنها وجود دارند. نقشه‌ها (نقشه‌های چندگانه) (آرایه شرکت‌پذیر) و مجموعه‌ها (مجموعه‌های چندگانه) واسط‌های عمومی فراهم می‌سازند. در نتیجه با استفاده از قالب تابع، الگوریتم‌های جنریک با هر نگه‌دارنده و دارای تکرارکننده عمل نماید. همانند C ویژگی‌های کتابخانه را می‌توان با استفاده از شبه دستور include# شامل یک سرآیند استاندارد اضافه نمود. c دارای ۶۹ کتابخانه استاندارد است که ۱۹ تا از آنها نامناسب تشخیص داده شده‌اند.

استفاده از کتابخانه استاندارد – مانند std::vector یا std::string به جای آرایه‌های C- موجب ایجاد برنامه‌های مطمئن‌تر شده است.

STL در آغاز محصولی جداگانه از HP و سپس SGL پیش از ادغام در کتابخانه استاندارد ++C بوده است. استاندارد عبارت STL را بکار نمی‌برد بلکه آن را بخشی از کتابخانه می‌داند اما مردم هنوز هم آن را برای جداسازی بخش‌های مختلف کتابخانه با این نام بکار می‌برند.(جریان‌های ورودی/خروجی، جهانی‌سازی، تشخیص، زیرمجموعه کتابخانه C)

بیشتر کامپایلرها کتابخانه استاندارد و STL را پیاده‌سازی می‌نماید. پیاده‌سازی‌های مستقلی نیز همانند STLport نیر وجود دارند. پروژه‌های دیگر نیز پیاده‌سازی‌های خود را از STL با توجه به اهداف خود بوجود می‌آورند.

[ویرایش] ویژگی‌های معرفی شده در ++C

در مقایسه با C زبان ++C ویژگی‌های جدیدی را معرفی نموده است مانند تعریف متغیر به عنوان عبارت، تغییر نوع‌های همانند تابع، new/delete، نوع داده bool، توابع درون‌خطی، آرگومان پیشفرض، گرانبارسازی عملگر و تابع، فضای نام و عملگر تعیین حوزه ::، کلاس‌ها (شامل تمام ویژگی‌های مربوط به کلاس‌ها همانند وراثت، اعضای تابع، توابع مجازی، کلاس‌های انتزاعی، و سازنده‌ها)، قالب‌ها، پردازش استثنا، کنترل نوع زمان اجرا، عملگرهای سربار شده ورودی (<<) و خروجی (>>).

برخلاف باور عموم ++C نوع داده ثابت را معرفی ننموده است. کلمه const کمی پیش از استفاده از این کلمه در ++C توسط زبان C بصورت رسمی بکار گرفته شد.

در بعضی حالات ++C تعداد کنترل نوع بیشتری نسبت به زبان C انجام می‌دهد. (برای اطلاعات بیشتر بخش «ناهماهنگی با C» را در پایین ببینید)

توضیحات با استفاده از // قبل از زبان C در زبان BCPL معرفی شده بود که مجدداً در زبان ++C به کار گرفته شد.

بعضی ویژگی‌های ++C بعدا توسط C به کار گرفته شد مانند نحوه تعریف for، توضیحات به شکل ++C (با استفاده از //)، و کلمه inline با وجود اینکه تعریف این کلمه در C99 با تعریف آن در زبان ++C هماهنگی ندارد. همچنین در C99 ویژگی‌هایی معرفی شده است که در ++C وجود ندارند مانند ماکروهای قابل تغییر و استفااده بهتر از آرایه‌ها به عنوان آرگومان. بعضی کامپایلرها این ویژگی‌ها را پیاده نموده‌اند اما در بقیه این ویژگی‌ها موجب ناهماهنگی می‌گردد.

[ویرایش] برنامه Hello World

برنامه زیر با استفاده از کتابخانه استاندارد و جریان‌های خروجی یک متن را به خروجی استاندارد ارسال می‌نماید.

#include <iostream> // provides std::cout

int main()
{
    std::cout << "Hello, world!\n";
    return 0;
}

[ویرایش] ویژگی‌های زبان

[ویرایش] عملگرها

به بخش عملگرهای سی و سی++ مراجعه نمایید

[ویرایش] پیش پردازنده

++C بطور عمومی در سه فاز ترجمه می‌گردد: پیش‌پردازنده، ترجمه به کد object، پیوند (که دو مرحله آخر به عنوان عمل کامپایل شناخته می‌شود.) در اولین مرحله در پیش‌پردازنده، شبه‌دستورات پیش‌پردازنده تغییرات لغوی بر روی کد منبع ایجاد می‌نمایند و آن را به به مراحل دیگر تحویل می‌دهند.

شبه دستورات پیش‌پردازنده با استفاده از کاراکتر # قبل از هر گونه فضای خالی آغاز گشته و رشته‌هایی را در کد منبع با فایل یا رشته‌های دیگر با توجه به قوانین تعریف گشته توسط برنامه‌نویس جایگزین می‌نماید. این دستورات معمولاً اعمال زیر را انجام می‌دهند: جایگزینی ماکروها، شمول فایل‌های دیگر (برخلاف ویژگی سطح بالاتر مانند شمول ماجول‌ها/پکیج‌ها/یونیت‌ها/کامپوننت‌ها)، کامپایل شرطی و/یا شمول شرطی. به عنوان مثال:

#include <iostream>

که این دستور تمام سمبل‌ها در فایل سرایند کتابخانه استاندارد iostream را در فایل منبع وارد می‌سازد.

کاربرد معمول دیگر به عنوان ماکرو خوانده می‌شود:

#define MY_ASSERT(x) assert(x)

که کد (MY_ASSERT(x را با (assert(x در فایل منبع جایگزین می‌نماید. که این جایگزینی امکان کنترل استفاده از این تابع را در اختیار برنامه‌نویس قرار می‌دهد.

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

علاوه بر شبه‌دستورات معمول تعدادی شبه دستور برای کنترل جریان کامپایل وجود دارد که امکان شمول یا عدم‌شمول قطعه‌ای کد یا سایر ویژگی‌های کامپایل را در اختیار ما قرار می‌دهد.

دستورات پیش‌پردازنده برای کاربردهای عددی نیز به کار می‌رود که هم‌اکنون استفاده از const به جای #define ترجیح داده می‌شود. این کار علاوه بر ایجاد کنترل نوع قوی مانع از گمراهی در فضاهای نام می‌گردد.

هدف کمیته استانداردسازی از بین بردن پیش‌پردازنده است اما با توجه به خصوصیت مدولار ++C بعید به نظر می‌آید که این حذف امکان‌پذیر باشد.

[ویرایش] قالب‌ها

قالب‌ها متفاوت با ماکروها هستند. در حالی که هر دوی این ویژگی‌های زمان کام پایل برای ایجاد کامپایل شرطی استفاده می‌شوند قالب‌ها محدود هب تغییرات لغوی و متنی نیستند. قالب‌ها با آگاهی از معنا و سیستم نوع در زبان استفاده شده و سایر ویژگی‌های زمان کامپایل می‌توانند از عملیات سطح بالا برای کنترل ترتیب اجرا براساس نوع پارامترها استفاده نمایند. ماکروها کنترل خود را بر کامپایل از طریق ویژگی‌های از پیش تعیین شهد انجام می‌دهند ولی قادر به ایجاد انواع جدید و کنترل نوع نیستند و فقط محدود به تغییرات متنی پیش از کامپایل هستند. به زبان دیگر ماکروها کنترل خود را با استفاده از نشانه‌های از پیش تعیین شده انجام می‌دهند اما همانند قالب‌ها نمی‌توانند نشانه‌ها را خود ایجاد نمایند. قالب‌ها ابزاری برای چندریختی ایستا و برنامه‌نویسی جنریک است. مثلاً جایگزین معادل با استفاده از قالب‌ها برای عبارت خطرناک #define max(x,y) ((x)>(y)?(x):(y)) در پایین نشان داده شده است.

template <typename T>
const T& max(const T& x, const T& y)
{
    return x > y ? x : y;
}

این قالب در سرآیند algorithm تحت عنوان std::max() قابل دسترسی است. معمولاً می‌توان از کلمه کلیدی class بجای typename استفاده کرد.

علاوه بر این قالب‌ها یک ویژگی تورینگ-کامل هستند که به این معناست که هر برنامه قابل محاسبه توسط کامپیوتر را می‌توان با استفاده از فرابرنامه‌نویسی قالب‌ها نوشت.

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

[ویرایش] اشیا

سی++ چندین ویژگی شی‌گرا را زبان سی معرفی نمود معرفی کلاس چهار ویژگی که در زبان‌های شی‌گرا و بعضا غیر شی‌گرا حضور دارد یعنی انتزاع، بسته‌بندی، وراثت، و چندریختی را فراهم کرد. اشیا نمونه‌های ساخته شده از کلاس در زمان اجرا هستند. می‌توان کلاس را نمونه‌ای از قالب‌ها دانست که چندین مورد از آنها بوجود می‌آید.

[ویرایش] بسته‌بندی

بسته‌بندی به معنای جمع‌آوری عملیات و داده در یک محل می‌باشد. سی++ بسته‌بندی را با ایجاد امکان تعریف هر کلاس به صورت public، private، protected پیاده‌سازی نموده است. اعضای private فقط توسط اعضای کلاس و یا کلاس‌ها دقیقا بیان شده (friend) قابل دسترسی هستند. اعضای protected توسط کلاس‌های ارث برده شده و اعضای کلاس و کلاس‌های friend قابل دسترسی هستند.

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

عموماً توصیه بر این است که تمام اعضا به صورت خصوصی یا حفاظت شده تبدیل گردند و فقط توابعی که باید توسط دیگر کلاس‌ها به عنوان واسط استفاده شوند عمومی باقی بمانند.

[ویرایش] وراثت

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

وراثت چندگانه یکی از ویژگی‌های مورد بحث در سی++ است. وراثت چندگانه امکان اشتقاق از چند کلاس پایه را فراهم می‌نماید که موجب بوجود آمدن گراف رابطه وراثت بسیار پیچیده است. به عنوان مثال «گربه پرنده» می‌تواند از کلاس «گربه» و کلاس «پستانداران پرنده» ارث برد. در زبان‌های دیگر مانند سی‌شارپ و جاوا به صورت دیگری ویژگی مشابه را پیاده‌سازی می‌نماید هر کلاس می‌تواند از چندین واسط اشتقاق یابد اما فقط یک کلاس پایه برای اشتقاق وجود دارد(واسط‌ها برخلاف کلاس پایه فقط تعریف هستند و هیچ‌گونه پیاده‌سازی را شامل نمی‌گردند).

[ویرایش] چندریختی

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

سی++ دو نوع چندریختی در اختیار برنامه‌نویس قرار می‌دهد: چندریختی زمان کامپایل و چندریختی زمان اجرا. چندریختی زمان کامپایل امکان تصمیم‌گیری‌های زمان اجرا را فراهم نمی‌سازد و چندریختی زمان اجرا اغلب موجب پایین آمدن بازدهی می‌گردد.

[ویرایش] چندریختی ایستا

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

[ویرایش] گرانبارسازی تابع

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

[ویرایش] گرانبارسازی عملگر

بطور مشابه گرانبارسازی عملگر امکان استفاده از یک عملگر مشخص می‌شود که عملکرد متفاوتی با توجه به عملوندهای خود دارد. این عملگرهای گرانبار شده موجب فراخوانی تابع مشخصی متناسب با آن موقعیت می‌گردند. گرانبارسازی عملگر ترتیب اجرا یا تعداد عملوندهای یک عملگر را تغییر نمی‌دهد. عملگرهای . :: .* ? نمی‌توانند گرانبار شوند.

[ویرایش] آرگومان پیش‌فرض

آرگومان پیش‌فرض در شرایطی به کار می‌رود که تعیین یک مقدار مشخص برای یک آرگومان نیاز به تعریف یک تابع جدید را برطرف می‌سازد. هنگام استفاده از این مشخصه باید دقت شود که تابع‌های گرانبار شده و تابع‌های دارای آرگومان پیش‌فرض با یکدیگر تداخل نداشته باشند به عنوان مثال:

// function with default argument but also an overloaded function
int strcpy(char *str1, char *str2, short unsigned n=65535);
// second overloaded function
int strcpy(char *str1, char *str2);

کد بالا در صورت استفاده از یک آرگومان n برای strcpy درست کامپایل می‌گردد اما اگر آرگومانی تعیین نگردد درست عمل نخواهد کرد. چرا که کامپایلر نخواهد دانست که باید از مقدار پیش‌فرض استفاده نماید یا از تابع بدون آرگومان.

[ویرایش] چندریختی پویا

چندریختی پویا شامل وراثت و توابع مجازی عضو است.

[ویرایش] ساختار برنامه ها

ساختار برنامه ها در این زبان بدین صورت است که همانند زبان سی، هر برنامه بایستی یک تابع اصلی (main) به عنوان بدنه برنامه داشته باشد. هر برنامه معمولاً از تعداد زیادی فایل تشکیل می شود که به هم الحاق می گردند (با دستور include) و به این فایل های الحاقی سرآیند (Header) می‌گوییم. فایل های الحاقی حاوی کد ها یا نسخه های اجرایی کلاس ها (مجموعه متغیر ها و توابع) می باشند که در بدنه اصلی برنامه از آنها استفاده می شود. معمولاً هر کلاس (که تعریف یک نوع داده ای با متد های مربوط به آن است) را در یک سرآیند می‌نویسند. هر سرآیند که معمولاً تنها تعاریف (معرفی) کلاس را در خود دارد به همراه فایل های پیاده سازی به زبان ++C یا پیاده سازی های کامپایل شده (به صورت فایل اشیا مانند dll یا so یا … ) می تواند به کار برده شود. به مجموعه های یکپارچه ای از کلاس های پیاده سازی شده (به صورت فایل های سرآیند با پیاده سازی های کد یا اشیای زبان ماشین) که برای برنامه نویسی به کار می روند، یک کتابخانه ++C گفته می شود و قدرت اصلی این زبان در امکان به کارگیری کتابخانه های آماده می باشد. کتابخانه های بزرگ ++C مانند STL، MFC، QT و … مجموعه قدرتمندی برای تولید برنامه در این زبان ایجاد کرده اند.

[ویرایش] محیط‌های برنامه نویسی

یک برنامه به زبان ++C می تواند در محیط های ++Turbo C++ , Borland C و ++Dev C نوشته شود. این محیط‌های برنامه‌نویسی، همراه با یک کمپایلر عرضه می‌شوند که کار تبدیل برنامه به فایل اجرایی را راحت می‌کند.

[ویرایش] منابع

بی‌اس‌دی

بی‌اس‌دی

از ویکی‌پدیا، دانشنامهٔ آزاد.

(تغییر مسیر از BSD)
پرش به: ناوبری, جستجو

BSD : Berkeley Software Distribution BSD افزون بر لینوکس و SVR4 نام مهم‌ترین خانواده در بین یونیکس‌ها ست و بسیاری از فناوری‌های شبکه که امروزه به‌کار می‌روند ، برنامه های BSD هستند. برای نمونه: BIND وSendmail در این دسته هستند. در گفتی دیگر BSD تنها یک سیستم عامل نیست بلکه نرم‌افزاری است که از چند فرهنگ دانشگاهی مانند متن‌باز ، نرم‌افزار رایگان و امن برخاسته است. و برعکس لینوکس که به فردی ویژه تعلق دارد BSD به هیچ کس تعلق ندارد و متعلق به یک گروه است.در سال 1992 متن برنامه‌های BSD ازمتن‌های AT&T جدا شدند و BSDLight انتشار یافت .هم اکنون از نسخه های امروزی BSD می‌توان نمونه‌های زیر را نام برد:

  1. FreeBSD
  2. NetBSD
  3. OpenBSD
  4. Mac OS X
  5. DragonFly BSD
  6. MirOS BSD
  7. Debian NetBSD

فهرست مندرجات

[نهفتن]

[ویرایش] پخش‌های زبانزد

[ویرایش] FreeBSD

فری‌بی‌اس‌دی در سال ۱۹۹۳به وسیله دیوید گرینمن از 386BSD Patchkit برنامه‌ریزی شد و از آن زمان تا کنون به عنوان یک سیستم عامل همه کاره به کار می‌رود. FreeBSD بانظر به بیست سال آزمودگی در شبکه یک سیستم عامل بسیار پرتوان و رشدیافته در شبکه است.

  • در گسترش FreeBSD تاکید بر کارایی خوب ٰ کاربرپسندی و استفاده آسان است.
  • درعمل FreeBSD پرکاربردترین یونیکس است و برای نمونه هم اکنون بیش از دو میلیون سرور در دنیا از این سیستم عامل استفاده می کنند. که برای نمونه می توان Yahoo, TaraSolution وApache را نام برد.
  • هم اکنون FreeBSD بیش از ۲۰۰ کمیتر دارد که می توانند هر زمان که بخواهند هر تغییری روی این سیستم عامل بدهند و هزاران برنامه ساز در دنیا برای آن برنامه سازی می کنند. گزینش کارگزاران (Commiters) به‌وسیله گروه هسته‌ای که هر دو سال از بین کارگزاران گزیده می شوند انجام می‌شود.

[ویرایش] NetBSD و OpenBSD و Mac OS X

NetBSD هم زمان با FreeBSD با تغییر 386BSD شروع به گسترش کرد. نت بی اس دی یک سیستم عامل قابل حمل وپرتابل (Portable) است که روی بیش از گونه رایانه اجرا می شود. اپن بی‌اس‌دی (OpenBSD) بر اساس NetBSD ساخته شد . کسانی که اپن بی‌اس‌دی (OpenBSD) گسترش دادند به دنبال یک سیستم عامل با امنیت بالا بودند. هم اکنون اپن بی‌اس‌دی (OpenBSD) امن‌ترین یونیکس برای کاربری همگانی است. مک اُ اس اکس (Mac OS X) سیستم عاملی بازرگانی که بر پایه ی بی‌اس‌دی ساخته شده است. (مک اُ اس اکس (Mac OS X) را با مک اُ اس اشتباه نکنید.) مک اُ اس اکس (Mac OS X) با اینکه متن باز است تجاری هم هست که این همان فرهنگ BSD است .(Darwin and OpenDarwin) مک اُ اس اکس (Mac OS X) امن ترین سیستم عامل تجاری به حساب آمده و بزرگ‌ترین بخش دنیای یونیکس برای کاربران مکینتاش است.

[ویرایش] جستارهای وابسته