دسته بندی | برنامه نویسی |
بازدید ها | 23 |
فرمت فایل | doc |
حجم فایل | 50 کیلو بایت |
تعداد صفحات فایل | 30 |
توضیحات مختصری در مورد زبانهای برنامه نویسی
DELPHI -1
C++ -2
C# -3
BASIC -4
FORTRAN -5
VISUAL BASIC -6
DELPHI -1
دِلفی (Delphi) یا به تعبیری ویژوآل پاسکال – یک زبان برنامهنویسی است و بستری برای توسعهٔ نرمافزار که شرکت بورلند آن را تولید کرده است. این زبان، در بدو انتشار خود در سال ۱۹۹۵، به عنوان یکی از نخستین ابزارهایی مطرح شد که از توسعهٔ نرمافزار بر مبنای متدولوژی RAD((Rapid Application Developmentپشتیبانی میکردند؛ یعنی تولید و توسعهٔ سریع برنامههای کاربردی این نرم افزار بر مبنای پاسکال شیگرا بوده و از این زبان مشتق شده است. البته بورلند نسخهای از دلفی و سیپلاسپلاسبیلدر را برای لینوکس به نام کایلیکس (Kylix) ارائه کرد که مورد استقبال توسعه دهندگان نرمافزارهای لینوکس قرار نگرفت. نرمافزارهای دلفی در ابتدا به صورت مستقیم از کتابخانههای ویندوز و کتابخانهٔ مخصوص خود به نام VCL استفاده میکرد، اما پس از نسخه ۶ دلفی، امکانات استفاده از داتنت هم به آن اضافه شد. در حال حاضر میتوان دلفی را یکی از رایجترین زبانهای ممکن در ایران دانست.زبانِ دلفی که پیشتر بنام پاسکال شیءگرا (Object-Pascal) خوانده میشد و برای طراحی نرمافزاهای تحت ویندوز به کار میرفت، امروزه چنان توسعه یافته است که برای تولید نرمافزارهای تحت سیستمعاملِ لینوکس و داتنت نیز به کار میآید. بیشترین کاربرد دلفی در طراحی برنامههای رومیزی و پایگاه دادهها است، اما به عنوان یک ابزارِ «چند- منظوره»، برای طراحی انواع گوناگونی از پروژههای نرمافزاری نیز مورد استفاده قرار میگیرد.
دلفی 2006
شرکت بورلند در سال ۲۰۰۶ نرمافزار جدید خود را با ویژگیهای جدید به بازار ارائه کرد. این برنامه جدید امکان برنامه نویسی با دلفی و سی پلاس پلاس و همچنین سیشارپ را بطور همزمان ارائه میدهد. بدین ترتیب برنامه نویسانی که با ابزارهای مختلفی کار میکنند براحتی میتوانند در این محیط جدید برنامه نویسی کنند. ویژگی مهم این نگارش نسبت به نگارش ۲۰۰۵ بحث مدیریت حافظه است. در نگارش ۲۰۰۵ ضعفهائی در این زمینه وجود داشت که در این نسخه حل شده است. شرکت بورلند افتخار دارد که به عنوان اولین شرکت تولید کننده IDE زبانهای برنامه نویسی مانند دلفی و سی شارپ بیلدر و جی بیلدر(مخصوص زبان جاوا) و .... از تکنولوژی دات نت در محصولات خود استفاده کرده است.
دلفی 2007
در اواخر سال 2006 شرکت بورلند یک شرکت تابع با نام CodeGear را تاسیس کرد تا این شرکت بتواند تمام انرژی خود را صرف محیط های برنامهنویسی مشهور خود یعنی دلفی و ++C بیلدر و... کند. بن اسمیت نام اولین مدیر CodeGear بود. شرکت بورلند نیز فعالیتهای خود را در زمینه Application Lifecycle Management ادامه میدهد. اولین محصول این شرکت، CodeGear Delphi 2007 هست که بسیاری از نقائص موجود در دلفی 2006 از جمله سرعت پائین آن در این محصول برطرف شده است و بعد از دلفی 7 میتوان از آن به عنوان محصولی مطمئن و قابل استفاده نام برد، هر چند که دلفی 2006 هم محصولی کارامد هست. از دیگر محصولات CodeGear میتوان به Delphi 2007 For PHP اشاره کرد که تحول شگرفی در رابطه با استفاده از تکنولوژی Ajax در دلفی است.
C++ -2
زبان برنامهنویسی ++C (تلفظ می شود: سی پلاس پلاس) یک زبان برنامهنویسی کامپیوتری عمومی با قابلیتهای سطح بالا و سطح پایین میباشد. این زبان دارای قابلیتهای کنترل نوع ایستا، نوشتار آزاد، چندمدلی، معمولا زبان ترجمه شده با پشتیبانی از برنامهنویسی ساختیافته، برنامهنویسی شیگرا، برنامه نویسی جنریک است.
زبان ++c یک زبان سطح میانی در نظر گرفته میشود. این زبان دارای قابلیت زبانهای سطح بالا و پایین بصورت همزمان است.
زبان ++C توسط بییارنه استراستروپ دانمارکی در سال ۱۹۷۹ در آزمایشگاه های بل (Bell Labs) و بر مبنای زبان C ساخته شد و آن را "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 بوده است.
استاندارد زبان
بعد از سالها کار کمیته مشترک ANSI–ISO در سال ۱۹۹۸ ++C را استاندارد نمودند (ISO/IEC 14882:1998). به مدت چند سال پس از انتشار استاندارد این کمیته گزارشات معایب را مورد بررسی قرار داده نسخه اصلاح شده استاندارد ++C منتشر شد. در سال ۲۰۰۵ گزارشی فنی بنام «گزارش فنی کتابخانه ۱» (که معمولا بصورت اختصار TR1 خوانده میشود) انتشار یافت. با وجود این که گزارش بخشی رسمی از استاندارد نیست ولی بخشهایی را به آن اضافه نموده که انتظار میرود در نسخههای بعدی استاندارد در نظر گرفته شود. پشتیبانی از این گزارش در حال افزایش بین تمام کامپایلرهای فعلی است.در حالی که ++C به هیچ موسسهای وابسته نیست این مستندات بصورت آزادانه در دسترس نیستند.
دسته بندی | کامپیوتر و IT |
بازدید ها | 9 |
فرمت فایل | doc |
حجم فایل | 209 کیلو بایت |
تعداد صفحات فایل | 29 |
رویکردی عملی به امنیت شبکه لایه بندی شده
مقدمه
امروزه امنیت شبکه یک مسأله مهم برای ادارات و شرکتهای دولتی و سازمان های کوچک و بزرگ است. تهدیدهای پیشرفته از سوی تروریست های فضای سایبر، کارمندان ناراضی و هکرها رویکردی سیستماتیک را برای امنیت شبکه می طلبد. در بسیاری از صنایع، امنیت به شکل پیشرفته یک انتخاب نیست بلکه یک ضرورت است. {گروه امداد امنیت کامپیوتری ایران}
در این سلسله مقالات رویکردی لایه بندی شده برای امن سازی شبکه به شما معرفی می گردد. این رویکرد هم یک استراتژی تکنیکی است که ابزار و امکان مناسبی را در سطوح مختلف در زیرساختار شبکه شما قرار می دهد و هم یک استراتژی سازمانی است که مشارکت همه از هیأت مدیره تا قسمت فروش را می طلبد.
رویکرد امنیتی لایه بندی شده روی نگهداری ابزارها و سیستمهای امنیتی و روال ها در پنج لایه مختلف در محیط فناوری اطلاعات متمرکز می گردد.
۱- پیرامون
۲- شبکه
۳- میزبان
۴- برنامه کاربردی
۵- دیتا
در این سلسله مقالات هریک از این سطوح تعریف می شوند و یک دید کلی از ابزارها و سیستمهای امنیتی گوناگون که روی هریک عمل می کنند، ارائه می شود. هدف در اینجا ایجاد درکی در سطح پایه از امنیت شبکه و پیشنهاد یک رویکرد عملی مناسب برای محافظت از دارایی های دیجیتال است. مخاطبان این سلسله مقالات متخصصان فناوری اطلاعات، مدیران تجاری و تصمیم گیران سطح بالا هستند.
محافظت از اطلاعات اختصاصی به منابع مالی نامحدود و عجیب و غریب نیاز ندارد. با درکی کلی از مسأله، خلق یک طرح امنیتی استراتژیکی و تاکتیکی می تواند تمرینی آسان باشد. بعلاوه، با رویکرد عملی که در اینجا معرفی می شود، می توانید بدون هزینه کردن بودجه های کلان، موانع موثری بر سر راه اخلال گران امنیتی ایجاد کنید.
افزودن به ضریب عملکرد هکرها
متخصصان امنیت شبکه از اصطلاحی با عنوان ضریب عملکرد (work factor) استفاده می کنند که مفهومی مهم در پیاده سازی امنیت لایه بندی است. ضریب عملکرد بعنوان میزان تلاش مورد نیاز توسط یک نفوذگر بمنظور تحت تأثیر قراردادن یک یا بیشتر از سیستمها و ابزار امنیتی تعریف می شود که باعث رخنه کردن در شبکه می شود. یک شبکه با ضریب عملکرد بالا به سختی مورد دستبرد قرار می گیرد در حالیکه یک شبکه با ضریب عملکرد پایین می تواند نسبتاً به راحتی مختل شود. اگر هکرها تشخیص دهند که شبکه شما ضریب عملکرد بالایی دارد، که فایده رویکرد لایه بندی شده نیز هست، احتمالاً شبکه شما را رها می کنند و به سراغ شبکه هایی با امنیت پایین تر می روند و این دقیقاً همان چیزیست که شما می خواهید.
تکنولوژی های بحث شده در این سری مقالات مجموعاً رویکرد عملی خوبی برای امن سازی دارایی های دیجیتالی شما را به نمایش می گذارند. در یک دنیای ایده آل، شما بودجه و منابع را برای پیاده سازی تمام ابزار و سیستم هایی که بحث می کنیم خواهید داشت. اما متأسفانه در چنین دنیایی زندگی نمی کنیم. بدین ترتیب، باید شبکه تان را ارزیابی کنید – چگونگی استفاده از آن، طبیعت داده های ذخیره شده، کسانی که نیاز به دسترسی دارند، نرخ رشد آن و غیره – و سپس ترکیبی از سیستم های امنیتی را که بالاترین سطح محافظت را ایجاد می کنند، با توجه به منابع در دسترس پیاده سازی کنید.
مدل امنیت لایه بندی شده
در این جدول مدل امنیت لایه بندی شده و بعضی از تکنولوژی هایی که در هر سطح مورد استفاده قرار می گیرند، ارائه شده اند. این تکنولوژی ها با جزئیات بیشتر در بخش های بعدی مورد بحث قرار خواهند گرفت.
ردیف |
سطح امنیتی |
ابزار و سیستم های امنیتی قابل استفاده |
۱ |
پیرامون |
|
۲ |
شبکه |
|
۳ |
میزبان |
|
۴ |
برنامه کاربردی |
|
۵ |
داده |
|
دسته بندی | کامپیوتر و IT |
بازدید ها | 10 |
فرمت فایل | doc |
حجم فایل | 23 کیلو بایت |
تعداد صفحات فایل | 23 |
اصول سیستمهای عامل توزیع شده
در طول دو دهه اخیر، حصول پیشرفت در تکنولوژی میکروالکترونیک باعث در دسترس قرار گرفتن پردازندههای ارزان و سریع شده است. از سوی دیگر پیشرفتهای موجود در تکنولوژی ارتباطات باعث به وجود آمدن شبکههای سریع تر و به صرفهتر شده است. از ترکیب پیشرفتها در این دو میدان از تکنولوژیها تکنولوژی ارزانتر و کاراتری به وجود آمده که در آن به جای این که از یک پردازنده خیلی سریع استفاده شود، از چند پردازنده معمولی که به هم متصل شدهاند استفاده میشود.
از نظر معماری، کامپیوترهایی که از چندپردازنده متصل به هم تشکیل شدهاند اساساً بر دو دسته تقسیم میشوند.
1- سیستمهای جفت شده قوی
2- سیستمهای جفت شده ضعیف
1- سیستمهای جفت شده قوی:
در این سیستمها یک حافظه اولیه (فضای آدرس) عمومی وجود دارد که میان همه پردازندهها به اشتراک گذاشته شده است. اگر برای مثال، پردازندهای در محل × از حافظه مقدار 100 را بنویسد هر پردازنده دیگری که بلافاصله از همان آدرس × بخواند مقدار 100 را دریافت خواهد کرد. بنابراین در این سیستمها هر نوع تبادل میان پردازندهها از طریق حافظه مشترک صورت میگیرد
سیستمهای جفت شده ضعیف:
در این معماری پردازندهها حافظه را به اشتراک نمیگذارند و هر پردازنده فضای آدرسدهی محلی مختص به خود را دارد. برای مثال اگر پردازندههای در محل × از حافظه مقدار 100 را بنویسد این عمل فقط محتویات حافظه محلی را عوض خواهد کرد و تاثیری در محتوای حافظه پردازنده های دیگر نخواهد داشت. بنابراین اگر هر پردازنده دیگری از محل× از حافظه را بخواند هرچیزی که قبلاً در آن محلی از حافظه محلی آن بوده به تحویل داده خواهد شد. در این نوع سیستمها هرگونه تبادل میان پردازندهها از طریق شبکهای که پردازندهها را به هم متصل کرده و توسط انتقال پیغام انجام میگیرد.
معمولاً به سیستمهای جفت شده قوی، سیستمهای پردازش موازی اطلاق می گردد و به سیستمهای جفت شده ضعیف «سیستمهای محاسبات توزیع شده» یا به طور سادهتر «سیستمهای توزیع شده» اطلاق میشود.
در این مقاله منظور از جمله سیستم توزیع شده» همان سیستمهای توزیع شده واقعی یا «سیستمهای محاسبات توزیع شده» است که از سیستم عاملهای توزیع شده استفاده میکنند.
در این مقاله عبارت «سیستمهای محاسبات توزیع شده» برای سیستمهای جفت شده ضعیف به کار برده خواهد شد. در مقایسه با سیستم های جفت شده قوی، پردازندههای سیستمهای محاسبات توزیع شده میتوانند خیلی دور از هم قرار گرفته باشند تاحدی که یک ناحیه جغرافیایی را تحت پوشش قرار دهند. بعلاوه، در سیستمهای جفت شده قوی، تعداد پردازندههایی که به طور موثر میتوانند مورد استفاده قرارگیرند مواجه با محدودیت ناشی از پهنای باند حافظه مشترک است، در حالی که در سیستمهای محاسبات توزیع شده چنین حالتی وجود ندارد و تقریباً به طور کامل آزادی داریم که هر تعداد که دلمان خواست پردازنده داشته باشیم. یعنی محدودیتی در مورد تعداد پردازندهها در «سیستمهای محاسبات توزیع شده» وجود ندارد.
به طور خلاصه یک سیستم محاسبات توزیع شده اساساً مجموعهای است از پردازندههایی که توسط یک شبکه ارتباطی به هم متصل شدهاند که هر پردازنده حافظه محلی و دستگاههای جانبی خود را دارد و ارتباط میان هر دو جفت پردازنده از سیستم از طریق عبور پیغام از شبکه ارتباطی صورت میگیرد. برای هر پردازنده، منابع آن «محلی» هستند و این در حالی است که پردازندههای دیگر و منابع آنها «دور» هستند به پردازنده و منابع آن به طور معمول «گره»، «سایت» یا «ماشین» سیستم عامل توزیع شده اطلاق میشود.
در ابتدا کامپیوترها خیلی گران (در حد میلیون دلار) بودند و جای زیادی را اشغال می کردند (در حد یک اتاق بزرگ) تعداد کمی کامپیوتر وجود داشت و آنها در لابراتوارهای تحقیقاتی دانشگاهها و مراکز صنعتی بود. این کامپیوترها از یک کنسول و بوسیله یک اپراتور قابل استفاده بودند وکاربران عادی نمیتوانستند از آن استفاده کنند. برنامه نویسان، برنامههای خود را مینوشتند و آن را روی رسانهی خاصی مثل کارت پانچ شده به مرکز کامپیوتر تحویل میدادند تا مورد پردازش قرار گیرند. قبل از پردازش یک برنامه، اپراتور باید محیط لازم برای پردازش را آماده سازی می کرد. این آماده سازی شامل سوار کردن نوارها و بارگذاری کارتهای پانچ شده در کارت خوان و … بود. برنامه اجرا میشود و نتایج اجرای برنامه به صورت پرینت شده به برنامه نویس برگشت داده میشد.
آماده سازی کار در کامپیوترهای اولیه یک مشکل اساسی بود و بسیاری از وقت CPU را هدر میداد. در سالهای 1950 تا 1960 مفاهیم جدیدی برای بهینه سازی صرف وقت CPU ارائه شده که از میان آنها میتوان به موارد زیر اشاره کرد: