بانک آموزشی

بانک آموزشی

نرم افزار - سخت افزار - طراحی - برنامه نویسی _ ویروس شناسی ...
بانک آموزشی

بانک آموزشی

نرم افزار - سخت افزار - طراحی - برنامه نویسی _ ویروس شناسی ...

آشنایی کامل با کامنت و متغیرها در php

کامنت چیست؟

کامنت (comment) خطی در سورس کد ما است که به عنوان بخشی از کد های برنامه اجرا نمی شود و هدف آن بیشتر برای درک آسان تر کد منبع برای برنامه نویس های دیگر است و به طور کلی توسط کامپایلرها و مفسران نادیده گرفته می شوند. نحو نوشتاری کامنت ها در زبان های مختلف برنامه نویسی بسیار متفاوت است.و متغیر (variable) همانطور که از نامش پیداست یک مقداری است که می تواند تغییر کند ولی لزوما ثابت نیست.

دلایل استفاده از کامنت

  • به برنامه نویسان دیگر اجازه می دهد تا کد شما را بهتر درک کنند.
  • باعث می شود خودتان بفهمید که چه کدی را نوشته اید، بعضی از برنامه نویسان ممکن است بخواهند بعد از چند مدت به سورس برنامه خود بازگردند و لازم باشد تغییراتی را اعمال نمایند، پس کامنت می تواند کمک شایانی کند.

ایجاد کامنت در PHP

به دو صورت می توانیم از کامت استفاده کنیم.

  • کامنت کردن یک خط کد

با استفاده از // یا # می توان این کار را انجام داد. به مثال زیر توجه کنید:

<!DOCTYPE html>
<html>
<body>

<?php
// single comment

# single comment
?>

</body>
</html>
  • کامنت کردن بیش از یک خط

با استفاده از /* در ابتدا و */ در انتها می توانیم بیش از یک خط را کامنت کنیم. به مثال زیر توجه کنید:

<!DOCTYPE html>
<html>
<body>

<?php
// single line comment
/*
line 1
line 2
line 3
*/
?>

</body>
</html>

در مثال بالا ما line1 تا line3 را کامنت کردیم.

متغیرها در زبان برنامه نویسی php

یک متغیر مکانی (ظرفی) در حافظه است که برای ذخیره اطلاعات عددی و غیر عددی استفاده می شود.  در php متغییر را با $ (دلار) تعریف می کنیم. به مثال زیر توجه کنید.
<?php
$txt = "Hello world!";
$x = 5;
$y = 10.5;
?>

در مثال بالا متغیر $txt مقدار hello world را در خود ذخیره می کند. در متغییر $x مقدار عددی 5 وجود دارد و همینطور در متغییر $y نیز مقدار عددی 10.5 وجود دارد. توجه داشته باشید که مانند سایر زبان های برنامه نویسی برای قرار دادن متن یا رشته درون متغیر، باید آن را درون جفت کوتیشن (” “) قرار دهیم.

برای تعریف متغیر ناچار به رعایت قوانین زیر هستیم:
  • گذاشتن $ در ابتدای آن (متغیر می تواند کوتاه باشد مثل x و y،حتی می تواند بلند باشد مثل kaliboys).
  • متغیر حتما باید با یک حرف یا کاراکتری مثل _ شروع شود.
  • متغیر نمیتواند با عدد شروع شود. (برای مثال 5ali اشتباه است و باید ali5 تعریف کرد)
  • متغیر می تواند تنها کاراکتر هایی مثل (حروف A-z،اعداد 0-9 و _) را بپذیرد.
  •  نام متغییر ها case-sensitive هستند، یعنی به بزرگی و کوچکی حروف حساس اند.(برای مثال $Kaliboys با $kaliboys تفاوت دارد)

خروجی گرفتن در زبان برنامه نویسی php

در زبان php دستور echo اغلب برای نمایش یا چاپ خروجی در صفحه استفاده می شود. به مثال زیر توجه کنید:

<?php
$txt = "kaliboys.com";
echo "I love $txt!";
?>

در مثال بالا ما یک متغیر $txt تعریف کردیم و رشته kaliboys.com را در آن قرار دادیم، و سپس با دستور echo متن i love kaliboys.com را چاپ کردیم. خط سوم از کد بالا را می توان به این شکل زیر نیز نوشت که در هر دو صورت نتیجه یکی است.

echo "I love " . $txt . "!";
نکته : درواقع با قرار دادن . (نقطه) می توان در php متغیر را به رشته متصل کرد و به صورت یکپارچه چاپ کرد.حال شاید بخواهید بدانید که آیا می توان دو متغیر را نیز به هم پیوند داد؟ جواب بله است. به مثال زیر توجه کنید
<?php
$one = 12;
$two = 84;
echo $one + $two;
?>

در این مثال ما دو متغیر به نام $one و $two تعریف کردیم و با + به هم متصل کردیم. در نتیجه جواب ما حاصل جمع 12+84=96 می باشد. به همین سادگی!

گستره متغیرها در PHP

در php متغیر ها را میتوان بدون محدودیتی در هرجایی از کد خودمان تعریف و استفاده کنیم. اما گستره متغیر ها به این معنا است که بخشی از اسکریپت یا سورس کد ما است که می تواند استفاده شود و یا به آن رجوع کرد. پس php سه گستره متغیر مجزا دارد.

global (سراسری) : متغیر سراسری به متغیری گفته می‌شود که در تمامی ماژول‌ها و توابع برنامه‌نویسی مقدار خود را نگه دارد .(به کد زیر دقت کنید)

<!DOCTYPE html>
<html>
<body>

<?php
$name = "ali"; // global scope
 
function kaliboys() {
   // استفاده از متغیر name در داخل تابع باعث به وجود آمدن خطا می شود
    echo "<p>my name is: $name</p>";
} 
kaliboys();

echo "<p>my name is: $name</p>";
?>

</body>
</html>

متغیر global را میتوان به شکل زیر تعریف نمود.(به کد زیرتوجه کنید)

<?php
$a = 12;
$b = 15;

function Mykali() {
    global $a, $b;
    $b = $a + $b;
}

Mykali();
echo $b; // خروچی = 27
?>

خب در کد بالا،ما یک تابع تعریف کردیم به اسم mykali و دومتغیر به نام های a و b که متغیر سراسری هستند تعریف و مقداری را در آن قرار دادیم،پس از آن با صدا زدن تابع و دستور echo نتیجه را چاپ نمودیم.که جواب ما در اینجا 27 شد.

روش دیگر در تعریف متغییر سراسری 

میتوان به شکل دیگر نیز این متغیر های سراسری را تغریف کرد که در واقع php تمام متغیر های سراسری را در ارایه ای به این شکل نگه داری می کند.

 $GLOBALS['index']

index نام متغیر را در خود نگه می دارد.پس مثال قبل را میتوان به شکل زیر بازنویسی کرد و در هردوصورت نتیجه مشابه است.

<?php
$a = 12;
$b = 15;

function Mykali() {
    $GLOBALS['b'] = $GLOBALS['a'] + $GLOBALS['b'];
}

Mykali();
echo $b; // خروچی = 27
?>

local (محلی) : متغیرهایی که داخل یک تابع تعریف می شوند همگی محلی تلقی می‌شوند مگر آنکه مشخصاً ذکر شود که باید متغیر سراسری به کار گرفته شود که در اینصورت باید با پسوند global این کار را انجام داد.

<!DOCTYPE html>
<html>
<body>

<?php
function 
$name = "ali"; // متغیر سراسری
 
    echo "<p>my name is: $name</p>";
} 
kaliboys();
 // استفاده از متغیر name در خارج از تابع باعث به وجود آمدن خطا می شود
echo "<p>my name is: $name</p>";
?>

</body>
</html>

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

static(ایستا) : متغیری است که برای یک بار تمام طول برنامه تعریف می شود که باعث می شود تمامی نمونه های دیگر به آن دسترسی داشته باشند.

در حالت معمول وقتی یک تابع اجرا می شود،همه ی متغیر های ان تابع حذف می شوند!شاید درمواقعی ما نیاز داشته باشیم که متغیر local ما ثابت بماند تا برای استفاده های بعدی دردسترس ما باشد.برای این منظور از متغیر استاتیک (static) استفاده می کنیم.(به مثال زیر توجه کنید)

<!DOCTYPE html>
<html>
<body>

<?php
function Mykali() {
    static $a = 10;
    echo $a;
    $a++;
}

Mykali();
echo "<br>";
Mykali();
echo "<br>";
Mykali();
?> 

</body>
</html>

خب در کد بالا ما یک  تابع به اسم Mykali تعریف کردیم و در داخل آن یک متغیر استاتیک a تعریف کردیم و مقدار 10 را در آن قرار دادیم.خب حال اگر هرچند بار این تابع را فراخوانی کنیم مقدار ان چاپ شده و یکی به آن اضافه می شود.در نتیجه چون ما 3 بار این تابع را صدا زدیم پس جواب ما به صورت 10,11,12 خواهد بود.

عملگرهای بیتی و تکنیک های پر کاربرد با آنها

همه ما از عملگرهای ریاضی یا منطقی بطور معمول استفاده میکنیم، اما گاهی بسیار راحت تر و خیلی اوقات بسیار بهینه تر است اگر از عملگرهای بیتی استفاده کنیم.

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

عملگرهای بیتی همانطور که از نام آنها پیداست در سطح بیت عملیات انجام داده و کنترل انجام عملیات در این سطح را در اختیار ما می گذراند.

در این پست در مورد 6 عملگر بیتی معمول خواهیم گفت:

عملگرهای بیتی
عملگرهای بیتی
1
2
3
4
5
6
AND              : &amp;amp;amp;
OR               : |
XOR              : ^
NOT (COMPLEMENT) : ~
SHIFT (RIGHT)    : &amp;amp;lt;&amp;amp;lt;
SHIFT (LEFT)     : &amp;amp;gt;&amp;amp;gt;

در این بین عملگرهای AND و OR و XOR جبری دوطرفه هستند. یعنی دو ورودی گرفته و یک خروجی میدهند و فرقی اگر سمت چپ و راست ورودی را با هم جابجا کنیم جواب یکسان خواهد بود. درست مانند عملگر ریاضی SUM یا + یا همان جمع.

1
2
&amp;amp;gt;&amp;amp;gt; 2 = 00001100
00110000 &amp;amp;gt;&amp;amp;gt; 3 =

عملگر NOT و یا همان  COMPLEMENT تنها یک ورودی میگیرد و یک خروجی میدهد.

عملگرهای SHIFT دو ورودی گرفته اما جبری نیستند. یعنی مقادیر سمت چپ و راست با هم جابجا شوند جواب تغییر خواهد کرد.

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

عملگرها و نحوه عملکرد آنها

عملگر AND

درست مانند معنی لغوی AND, یعنی ‘و’, بدین معنی است که هر دو طرف باید ۱ باشند.

1
2
3
4
1 &amp;amp;amp; 1 = 1
1 &amp;amp;amp; 0 = 0
0 &amp;amp;amp; 1 = 0
0 &amp;amp;amp; 0 =0

از این عملگر در  MASK  کردن بسیار استفاده میشود. بعنوان مثال وقتی شما تنها ۳ بیت آخر را میخواهید, میتوانید از این تکنیک استفاده کنید:

1
1010011 &amp;amp;amp; 111 = 11

مقدار مورد نظر را با عددی که تنها بیت های مورد نظر آن تنظیم است AND کنید و خروجی بیت های عدد خروجی طوری خواهد بود که اگر بیت های عدد اول در بیت های ۱ عدد دوم ۱ بودند در خروجی باقی خواهند ماند. از این نکته در تکنیک های Bit Flags و پیدا کردن باقیمانده نیز استفاده میشود.

نکته: AND هر عدد با صفر, صفر خواهد بود.

عملگر OR

خروجی این عملگر در صورتی ۱ خواهد بود که هر دو یا یکی از طرفین ۱ باشند.

1
2
3
4
1 | 1 = 1
1 | 0 = 1
0 | 1 = 1
0 | 0 = 0

با استفاده از این عملگر میتوانید بیت های یک عدد را ۱ کرده و دیگر بیت ها را به حالت اولیه خود باقی بگذارید, تنظیم سه بیت آخر:

1
100100 | 000111 = 100111

نکته: OR هر عدد با صفر همان عدد خواهد بود.

 عملگر XOR

از جالب ترین عملگرهای بیتی است و تکنیک های سطح بالای بسیار حیاتی ای با استفاده از آن انجام شده است.

خروجی این عملگر در صورتی یک خواهد بود که تنها یکی از طرفین ۱ باشد.

1
2
3
4
1 ^ 1 = 0
1 ^ 0 = 1
0 ^ 1 = 1
0 ^ 0 = 0

عملگر XOR مخفف eXclusive OR میباشد و در خروجی تفاوت بیتی بین دو مقدار را نشان میدهد.

با داشتن این تفاوت و یکی از طرفین میتوان طرف دیگر را بدست آورد.

1
2
3
4
5
6
7
8
12 ^ 16 = 28
12 ^ 14 = 2
 
12 ^ 28 = 16
12 ^ 2  = 14
 
16 ^ 28 = 12
14 ^ 2  = 12

از این تکنیک برای رمزنگاری symmetric به همین نام XOR استفاده شده است.

همینطور از این تکنیک برای کم کردن Redundancy اطلاعات backup در برخی نسخه هایتکنولوژی RAID نیز استفاده شده است.

برای محاسبه  Hamming Distance نیز استفاده میشود که کاربرد فراوانی در تست صحت اطلاعات, اندازه گیری نویز و نهایتا یادگیری ماشینی دارد.

نکته: xor دو عدد یکسان با یکدیگر صفر است. زیرا هیچ تفاوتی ندارند.

عملگر NOT و یا COMPLEMENT

این عملگر هر بیت دریافت شده را معکوس میکند:

1
2
3
4
5
~ 1 = 0
~ 0 = 1
 
~ 110011 = 001100
~ 100000 = 011111

عملگر SHIFT RIGHT

این عملگر دو عملوند میگیرد:

  1. عملوند مقدار که عملیات shift بر روی آن انجام میشود. عملوند سمت راست این نقش را ایفا میکند.
  2. عملوند تعداد که عمل shift با استفاده از آن بر روی عملوند ۱ انجام میشود. عملوند سمت راست این نقش را ایفا میکند.

عملگر shift به سمت راست به تعداد عملوند ۲ به سمت چپ عملوند ۱ بیت های ۰ اضافه کرده و به همان تعداد نیز بیت های سمت راست را بر میدارد.

اگر لیست بیت ها را یک بسته لوله ای از توپ ها که دو طرف آن باز است در نظر بگیریم و بیت های ۱ توپ رنگ سبز و بیت های ۰ توپ رنگ سفید باشند. shift به سمت راست به n تعداد مانند این است که از سمت چپ n تعداد توپ سفید هل دهیم. اینکار باعث میشود n تعداد توپ های سمت راست که داخل بسته لوله ای بوده اند از سمت راست به بیرون هل داده شده و خارج شوند.

1
2
3
00110000 &amp;gt;&amp;gt; 2 = 00001100
00110000 &amp;gt;&amp;gt; 3 = 00000110
00110000 &amp;gt;&amp;gt; 4 = 00000011

عملگر SHIFT LEFT

این عملگر دقیقا مانند عملگر SHIFT RIGHT است اما برخلاف shift به راست, از سمت چپ بیت ها را بر میدارد و به سمت راست بیت های صفر اضافه می کند.

1
2
3
00001100 &amp;gt;&amp;gt; 2 = 00110000
00001100 &amp;gt;&amp;gt; 3 = 01100000
00001100 &amp;gt;&amp;gt; 4 = 11000000

تکنیک های بیتی

تکنیک پرچم ها یا همان Flags

به هر مقداری میتوان بعنوان یک عدد و یا لیستی از اعداد نگاه کرد و به هر عددی نیز میتوان بعنوان لیستی از بیت ها نگاه کرد. این دید این اجازه را به ما میدهد تا کنترل روی بیت ها را راحتتر درک کنیم.

فرض کنید میخواهید از یک لیستی از مقادیر منطقی یا همان boolean استفاده کنید که هر خانه در این لیست مفهوم ثابتی دارد. بعنوان مثال ساختار دسترسی به فایل در لینوکس را در نظر بگیرید:

1
2
3
4
5
6
7
8
permission = {READ, WRITE, EXEC}
R = 0
W = 1
X = 2
 
has_read_access = permission[R]
has_write_access = permission[W]
has_exec_access = permission[X]

حال به یک عدد بعنوان لیست از بیت ها نگاه کنید. آیا میتوان همین سیستم را با اعداد و عملگر های بیتی پیاده سازی کرد؟

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
permission = RWX
R = 1 &amp;lt;&amp;lt; 2 = 100
W = 1 &amp;lt;&amp;lt; 1 = 010
X = 1 &amp;lt;&amp;lt; 0 = 001
 
// get corresponding bit
has_read_access = permission &amp;amp; R
has_write_access = permission &amp;amp; W
has_exec_permission = permission &amp;amp; X
 
/// set corresponding bit
 
// set read access
permission = permission | R
// set write access
permission = permission | W
// set exec access
permission = permission | X
 
/// unset corresponding bit
 
// unset read access
permission = permission &amp;amp; ~(R)
// unset write access
permission = permission &amp;amp; ~(W)
// unset exec access
permission = permission &amp;amp; ~(X)

تکنیک تبدیل حرف کاراکتر ASCII به حرف بزرگ

نکته: این تکنیک تنها بر روی حروف A-Z و a-z کاربرد دارد. استفاده از این تکنیک برای دیگر کاراکترها ممکن است پیامد منفی داشته باشد.

نکته: در این تکنیک فرقی نمیکند کاراکتر حرف بزرگ باشد یا کوچک. خروجی یکسان خواهد بود.

1
2
3
4
5
6
7
8
9
10
'A' = 1(0)00001
'Z' = 1(0)11010
'a' = 1(1)00001
'z' = 1(1)11010
'_' = 1(0)11111
 
'A' &amp;amp; '_' = 'A'
'Z' &amp;amp; '_' = 'Z'
'a' &amp;amp; '_' = 'A'
'z' &amp;amp; '_' = 'Z'

تکنیک تبدیل حرف کاراکتر ASCII به حرف کوچک

نکته: این تکنیک تنها بر روی حروف A-Z و a-z کاربرد دارد. استفاده از این تکنیک برای دیگر کاراکترها ممکن است پیامد منفی داشته باشد.

نکته: در این تکنیک فرقی نمیکند کاراکتر حرف بزرگ باشد یا کوچک. خروجی یکسان خواهد بود.

1
2
3
4
5
6
7
8
9
10
'A' = 1(0)00001
'Z' = 1(0)11010
'a' = 1(1)00001
'z' = 1(1)11010
' ' = 0(1)00000
 
'A' | ' ' = 'a'
'Z' | ' ' = 'z'
'a' | ' ' = 'a'
'z' | ' ' = 'z'

تکنیک به n توان رساندن ۲

هر بیت در یک عدد نگهدارنده ی ۲ بتوان اندیس آن بیت در آن عدد است. این نکته به وفور در تبدیل مبنا استفاده میشود.

در این قسمت از این نکته برای تسریع محاسبه استفاده می کنیم:

1
2
3
4
5
6
7
8
9
pow(2, n) = 1 &amp;lt;&amp;lt; n
 
pow(2, 0) = 1 &amp;lt;&amp;lt; 0 =  1
pow(2, 1) = 1 &amp;lt;&amp;lt; 1 =  2
pow(2, 2) = 1 &amp;lt;&amp;lt; 2 =  4
pow(2, 3) = 1 &amp;lt;&amp;lt; 3 =  8
pow(2, 4) = 1 &amp;lt;&amp;lt; 4 = 16
pow(2, 5) = 1 &amp;lt;&amp;lt; 5 = 32
...

تکنیک ضرب x در ۲ به توان n

در اعداد مبنای ۱۰ داریم که ضرب هر عدد در عددی مانند ۱۰ که یک رقم ۱ در اول و مابقی ارقام ۰ دارد برابر است با همان عدد اما اضافه شدن صفر های عدد ضریب به انتهای عدد. مانند:

1
2
123 * 10 = 1230
123 * 1000 = 123000

اعداد مبنای ۲ از این قاعده مستثنا نیستند و در مبنای دو نیز میتوانید همینکار را انجام دهید. اما نکته قابل توجه اینجا است که:

1
2
1 &lt;&lt; 3 = 8
1 &lt;&lt; 4 = 16

بنابراین:

1
2
3 &lt;&lt; 2 = 3 * pow(2, 2) = 3 * 4 = 12
3 &lt;&lt; 3 = 3 * pow(2, 3) = 3 * 8 = 24

تکنیک تقسیم x بر ۲ به توان n

درست مانند ضرب اما بجای استفاده از shift به سمت چپ از shift به سمت راست استفاده می کنیم تا از بیت های سمت راست کاسته شود:

1
2
12 &gt;&gt; 2 = 12 / pow(2, 2) = 12 / 4 = 3
24 &gt;&gt; 3 = 24 / pow(2, 3) = 24 / 8 = 3

تکنیک باقیمانده تقسیم x بر ۲ به توان n

در تکنیک تقسیم x بر ۲ به توان n گفته شد که “از shift به سمت راست استفاده میکنیم تا از بیت های سمت راست کاسته شود”. بیت های کاسته همان باقی مانده ها هستند. برای نگه داری این باقیمانده از این تکنیک استفاده می کنیم:

1
2
3
4
5
6
1 &gt;&gt; 3       = 1000 = 8
(1 &gt;&gt; 3) - 1 = 0111 = 7
 
x &amp; ((1 &gt;&gt; n) - 1) = remainder
 
22 &amp; ((1 &gt;&gt; 3) - 1) = 22 &amp; 7 = 10110 &amp; 00111 = 00110 = 6


پرینتر لیزری بهتر است یا جوهر افشان؟

چاپگر جوهر افشان چیست و چگونه کار می‌کند؟

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

به طور کلی کارتریج ماده‌ایه که، پرینتر برای چاپ اسناد به اون احتیاج داره. این ماده براساس پرینتری که انتخاب می‌کنید، به دو دسته کارتریج جوهری و کارتریج تونر تقسیم میشه.

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

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

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

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

قیمت پرینتر جوهر افشان؟

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

معایب پرینترهای جوهر افشان؟

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

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

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

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

چاپگر لیزری چیست و چگونه کار می‌کند؟

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

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

معایب چاپگر لیزری؟

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

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

نتیجه گیری:

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

باج افزار جدیدی برای macOS کشف شده که کاربرانی را که از برنامه های دزدی استفاده میکنند را هدف قرار میدهد..!

 کارشناسان امنیتی در هفته ای که گذشت نوعی از باج افزار را برای سیستم عامل macOS کشف کرده اند که از طریق برنامه های دزدی انتشار می یابد.

 

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


باج افزار Zeppelin

باج افزار Zeppelin نمونه جدیدی از باج افزارهایی که در حال آلوده سازی سیستم کاربران است و دانستن و شناخت این باج افزار کمک میکند تا از این آلودگی در سازمانهای فناوری و خدمات درمانی در سراسر اروپا و کانادا و … است .

اندکی در باره پیشینه باج افزار Zeppelin :

این باج افزار ابتدا با نام vegalocker فعالیت خورد را شروع کرد . سپس نامش به Buran  تغییر پیدا کرد و در می 2019 در فروم های هکری شروع به خرید و فروش این باج افزار کردند . از این باج افزار نسخته های مختلفی منتتشر شده که در حال حاضر آخرین نمونه آن باج افزار Zeppelin است.
تاکنون نحوه ی توزیع این باج افزار دقیقا مشخص نشده ولی احتمالا از طریف سرویس Remote desktop که از طریق اینترنت فراهم شده انتشار یافته است.

عملکرد باج افزار Zeppelin به این صورت است که در ابتدا پایگاه داده ها ، سیستمهای بکاپ گیری ، سرویسهای ایمیل را درگیر میکند و بعد رمزنگاری فایلها (هیچ پسوندی به فایلها اضافه نمیکند ) و مشخصه آن اضافه کردن کلمه Zeppelin در فرمت HEX فایل است .

این بد افزار به زبان دلفی نوشته شده است و کاملا تنظیم پذیر است .

باج افزار Zeppelin

این باج افزار را میتوان شخصی سازی کرد ، این باج افزار به صورت فایلهای DLL  و EXE در قالب اسکریپتهای Powershell در سیستم هدف مستقر شود.

ویژگی های باج افزار :

•    IP Logger: برای ردیابی موقعیت و آدرس IP قربانیان
•    Startup: برای به دست آوردن ماندگاری در سیستم قربانی
•    Delete backups: برای متوقف کردن سرویس‌های خاص، غیرفعال کردن بازیابی فایل‌ها، حذف بکاپ‌ها و shadow copyها و غیره.
•    Task-killer: خاتمه دادن پروسس‌های مشخص شده توسط مهاجم
•    Auto-unlock: برای بازگشایی فایل‌هایی که حین رمزگذاری قفل شده‌اند.
•    Melt: برای تزریق thread دارای قابلیت خودحذفی به nodepad.exe
•    UAC prompt: تلاش برای اجرای باج‌افزار با سطح دسترسی بالا

در حال حاضر راهی برای بازیابی فایلهای رمز نشده کشف نشده است و در حال حاضر بهترین راه حل بکاپ گیری منظم از دیتابیس ها و فایلهای اصلی است.
این باج افزار تعداد فایلهای موجود در همه درایوها را محاسبه میکند و سپس اقدام به رمزنگاری آن میکند و برای پنهان کردن از لایه های متعدد و کلید های تصادفی و .. استفاده میکند .
به گفته‌ی محققان، Zeppelin از ترکیب استانداردی از رمزگذاری متقارن با کلیدهای تصادفی تولید شده برای هر فایل (AES-256 در مُد CBC)، و رمزگذاری نامتقارن برای محافظت از Session key (با استفاده از پیاده‌سازی خاصی از RSA) استفاده می‌کند.

نشانه های آلودگی

:HASH

   ۰۴۶۲۸e۵ec۵۷c۹۸۳۱۸۵۰۹۱f۰۲fb۱۶dfdac۰۲۵۲b۲d۲۵۳ffc۴cd۸d۷۹f۳c۷۹de۲۷۲۲
    ۳۹d۸۳۳۱b۹۶۳۷۵۱bbd۵۵۵۶ff۷۱b۰۲۶۹db۰۱۸ba۱f۴۲۵۹۳۹c۳e۸۶۵b۷۹۹cc۷۷۰bfe۴
   ۴۸۹۴b۱۵۴۹a۲۴e۹۶۴۴۰۳۵۶۵c۶۱faae۵f۸daf۲۴۴c۹۰b۱fbbd۵۷۰۹ed۱a۸۴۹۱d۵۶bf
    e۲۲b۵۰۶۲cb۵b۰۲۹۸۷ac۳۲۹۴۱ebd۷۱۸۷۲۵۷۸e۹be۲b۸c۶f۸۶۷۹c۳۰e۱a۸۴۷۶۴dba۷
   ۱f۹۴d۱۸۲۴۷۸۳e۸edac۶۲۹۴۲e۱۳۱۸۵ffd۰۲edb۱۲۹۹۷۰ca۰۴e۰dd۵b۲۴۵dd۳۰۰۲bc
    d۶۱bd۶۷b۰۱۵۰ad۷۷ebfb۱۹۱۰۰dff۸۹۰c۴۸db۶۸۰d۰۸۹a۹۶a۲۸a۶۳۰۱۴۰b۹۸۶۸d۸۶

کلید رجیستری

   HKCU\Software\Zeppelin

GUID:

 {۹۶۱۳۶۷AF-۲۵۳۸-۷AA۳-CE۰E-۲۰CBF۲F۴۰FD۲}
 {۴B۷۶FDEB-DA۹A-۲C۵۶-۷۴۶۰-BB۸AB۴۸A۳۴C۵}
 {۵۶A۶۸۰F۵-۴۹۶F-۸۳۲۸-C۰۸۰-FDF۸۶۶E۸۱۸۳F}
 {EEDECCF۱-۰۶D۱-۰۳۳۳-۰۳۳۳-۱۰۸۴CF۲۲۱۹BB}
  {A۳۲۱۰۶۴D-۱۱۷۷-۵C۳۰-۷EE۶-AEFD۴۸۳۰۲DCB}
  {۸۱۷۳۲۱۳۴-D۳۳۰-۰۵F۵-۳۵FC-۵۷B۲E۸FFB۹۸۳}

آدرس اینترنتی :

  https[://]iplogger[.]org/۱HVwe۷.png
 https[://]iplogger[.]org/۱HCne۷.jpeg
  https[://]iplogger[.]org/۱Hpee۷.jpeg
  https[://]iplogger[.]org/۱syG۸۷
 https[://]iplogger[.]org/۱H۷Yt۷.jpg
 https[://]iplogger[.]org/۱wF۹i۷.jpeg

ایمیل :

 bad_sysadmin(at)protonmail[.]com
 Vsbb(at)firemail[.]cc
 Vsbb(at)tutanota[.]com
 buratino(at)firemail[.]cc
 buratino۲(at)tutanota[.]com
 ran-unlock(at)protonmail[.]com
 ranunlock(at)cock[.]li
 buratin(at)torbox۳uiot۶wchz[.]onion

الگوریتم تبدیل حروف بزرگ به کوچک و حروف کوچک به بزرگ

در بعضی مسائل در زبان های مختلف از ما می‌خواهند حروف کوچک را بزرگ و حروف بزرگ را کوچک کنیم یا فقط lowercase یا uppercase کنیم. کامپیوتر فقط با اعداد سر و کار دارد. داده هایی که ما می‌بینیم حاصل یک نگاشت است. یعنی نسبت دادن عدد به حرف. برای این نگاشت استانداردی به نام یونی‌کد ارائه شده که حروف را به اعداد نسبت می‌دهد.


طبق استاندارد یونیکد حروف A-Z در بازه ۶۵ تا ۹۰ قرار دارند و حروف a-z در بازه ۹۷ تا ۱۲۲. به سادگی می‌توان فهمید فاصله a تا A برابر با ۳۲ است. پس وقتی به شما a داده بشود با کم کردن ۳۲ رقم از مقدار یونیکد آن شما به حرف A خواهید رسید.


 برای تبدیل حروف کوچک به بزرگ اگر حرف در بازه ۹۷ تا ۱۲۲ بود ۳۲ رقم از مقدار آن می‌کاهیم.

برای تبدیل حروف بزرگ به کوچک اگر حرف در بازه ۶۵ تا ۹۰ بود ۳۲ رقم به آن اضافه می‌کنیم.

(پایتون)

تابع زیر حروف کوچک را به بزرگ و حروف بزرگ را به کوچک تبدیل می‌کند.

def ToggleCase (text):

    text = list(text)

    for index, letter in enumerate(text):

        if (ord(letter) <= 122 and ord(letter) >= 97):

            text[index] = chr(ord(letter) - 32)

        elif (65 <= ord(letter) and ord(letter) <= 90):

            text[index] = chr(ord(letter) + 32)

    return ''.join(text)

چگونه Recycle Bin ویندوز را خود به خود خالی کنیم؟

با استفاده از ترفند می توانید به Recycle Bin برنامه بدهید تا به صورت خودکار فایل ها را حذف کند.

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


ابتدا در منوی Start عبارت Task Scheduler را تایپ کنید و در لیست نتایج بر وارد Task Scheduler شوید. در پنجره‌ی Task Scheduler، در پنل سمت راست و در قسمت Actions بر روی Create Basic Task کلیک کنید.




حال در پنجره ی پیش روی، در قسمت Name یک نام دلخواه بنویسید و سپس بر روی Next کلیک کنید.

در این مرحله زمان دلخواه خود برای شروع کار را مشخص کنید.


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


در صفحه‌ی بعد،‌ گزینه‌ی Start a Program را انتخاب کرده و روی Next کلیک کنید.


اکنون در قسمت Program/Script عبارت cmd.exe را وارد تایپ کنید. همچنین در قسمت Add Arguments کد زیر را وارد نمایید:

/c "echo Y|PowerShell.exe -NoProfile -Command Clear-RecycleBin"

سپس روی Next کلیک کنید.


اکنون تمامی تنظیمات را یک‌بار بازبینی نمایید و روی Finish کلیک کنید.


حال در پنجره‌ی اصلی محیط Task Scheduler، برنامه‌ی زمانی خود را انتخاب کرده و روی Run کلیک کنید. اگر تمامی مراحل را درست انجام داده باشید، پنجره‌ی Command Prompt برای لحظه‌ای باز می‌شود و Recycle Bin خالی می‌گردد.


چگونه پنجره‌های هنگ کرده را در ویندوز ببندیم؟

به جای استفاده از Task Manager می توانید با ترفندی ساده تر پنجره های هنگ کرده در ویندوز را ببندید.
در این خبر پست قصد داریم به شما راهکاری را ارائه دهیم تا به جای استفاده از Task Manager با اجرای یک فایل پنجره برنامه هایی که هنگ کرده اند را به راحتی ببندید. این ترفند بر روی تمامی نسخه های ویندوز اجرا می شود.


ابتدا کلید های ترکیبی Win+R با بفشارید تا به محیط Run هدایت شوید.

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

در محیط نرم افزاری باز شد کد taskkill /f /fi "status eq not responding" را کپی کنید.

در این مرحله از منوی فایل گزینه Save as را انتخاب کنید و فایل موردنظرتان را با پسوند ".bat" ذخیره کنید، فایلی به شکل چرخ دنده ذخیره می شود.

بر روی فایل ایجاد شده دو مرتبه کلیک کنید تا تمامی پنجره های هنگ کرده بسته شود.


معرفی سایت های برتر برنامه نویسی

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

10 سایت برتر برای یادگیری برنامه نویسی

1. Top Coders

10 سایت برتر برای یادگیری برنامه نویسی
سایت های برتر برنامه نویسی

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

کاربران این سایت که در رتبه های بالای جدول رده بندی قرار دارند، برنامه نویسان توانمندی هستند که رقابت های بسیار جذاب و رقابتی را برگزار می کنند.

2. Coderbyte

معرفی سایت های برتر برنامه نویسی

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

3. Project Eular

معرفی سایت های برتر برنامه نویسی

در این سایت حجم زیادی از چالش ها در زمینه علوم کامپیوتر و ریاضی فراهم اورده شده است. چالش ها در این سایت معمولا شامل نوشتن کدهایی برای بدست اوردن بهترین راه حل یک مسئله ریاضی است.

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

4. HackerRank

معرفی سایت های برتر برنامه نویسی

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

در این سایت همچنین کاربران می توانند رزومه ثبت کنند و برای فرصت های شغلی مختلف در خواست ارسال کنند.

5. Codechef

معرفی سایت های برتر برنامه نویسی

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

6. Exercism.io

معرفی سایت های برتر برنامه نویسی

این سایت با ارائه بیش از 3100 چالش در قالب 51 زبان برنامه نویسی مختلف این امکان را برای شما فراهم میکند تا در هر زبان برنامه نویسی که می خواهید شروع به یادگیری کنید (خط فرمان مخصوص این سایت را می توانید از Github دانلود کنید).

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

7. Codewars

معرفی سایت های برتر برنامه نویسی

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

8. LeetCode

معرفی سایت های برتر برنامه نویسی

این سایت دارای بیش از 190 هزار چالش است که برای مصاحبه های کاری در حوزه کدنویسی بسیار مفید می باشد. شما می توانید بصورت آنلاین در چالش های مختلف که 9 زبان برنامه نویسی را شامل می شود شرکت کنید، اما نمی توانید راه حل های کاربران دیگر را در سایت ببینبد و تنها قادر خواهید بود تا کد نوشته شده خود را از لحاظ کیفیت و سرعت کد زنی با سایر کاربران سایت مقایسه کنید.

9. SPOJمعرفی سایت های برتر برنامه نویسی

این سایت نیز بیش از 20 هزار چالش کدزنی را در اختیار شما می گذارد، در این سایت نیز شما می توانید کد خود را در ویرایشگر آنلاین سایت وارد کنید.

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

10. CodinGame  

معرفی سایت های برتر برنامه نویسی

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

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


VDI یا مجازی سازی دسکتاپ چیست؟

مجازی سازی دسکتاب (vdi) به میزبانی از محیط دسکتاپ در یک سرور مرکزی میگویند. Vdi یک شکل دیگر دسکتاپ است که از دسکتاپ به صورت مجازی استفاده میشود. سیستم عامل دسکتاپ در ماشین مجازی اجرا میشود و ما میتوانیم از آن استفاده کنیم. از دستگاه هایی مانند پی‌سی ها،تبلت ها و گوشی های هوشمند میتوان به عنوان نقطه دریافت (end-point) استفاده کرد.

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

VDI ممکن است persistent یا nonpersistent باشد که هر کدام فواید خاص خود را دارند:

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

در مقابل nonpersistent را نمیتوان شخصی سازی کرد و دقیقا مانند یک سیستم عمومی است و هیچ تغییری را نمیشه درش ایجاد کرد. اما نکته مثبت nonpersistent سادگی و ارزان بودن است.

چرا باید از VDI استفاده کنیم؟

تکنولوژی روز به روز افزایش پیدا میکند و ما هم باید خود را به مراتب با آن همگام سازی کنیم. با آمدن سرعت 5G قطعا میتوانیم خیلی از کارها را انجام دهیم. با این سرعت اینترنت و پیشرفت تکنولوژی دسکتاپ مجازی جایگزین سیستم های فیزیکی خواهند شد. از دلایل دیگر استفاده از VDI کم هزینه بودن آن نسبت به سیستم های فیزیکی است.

فواید VDI چیست؟

فواید vdi

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

  • دسترسی از راه دور : کاربران VDI میتوانند در هرمکان و با هر دستگاهی به دسکتاپ های مجازی خودشان متصل شوند. کاربران میتوانند در هر نقطه از جهان به فایل ها و برنامه های خود دسترسی داشته باشند.
  • صرفه جویی در هزینه : از آنجا که تمام پردازش ها بر روی سرور انجام میشود، سخت افزار وسیله اتصال میتواند یک سیستم ضعیف باشد. کاربران میتوانند با سیستم قدیمی و ضعیف از دسکتاپ مجازی استفاده بکنند. به این دلیل کاربران نیازی به خرید سیستم قوی ندارند و میتوانند با خرید سیستمی ضعیف و ارزان قیمت از دسکتاپ مجازی استفاده نمایند.
  • امنیت : در محیط VDI داده ها در سرور مرکزی نسبت به وسیله گیرنده ذخیره و نگهداری میشوند‌. این سرور ها از اطلاعات شما در زمان دزدیده شدن یا در معرض خطر قرار گرفتن وسیله اتصال یا همون “end-point” از داده های شما محافطت میکند.
  • مدیریت متمرکز : قالب متمرکز VDI اجازه میدهد به راحتی اپدیت و پیکربندی شوند و از ایجاد هرگونه مشکل جلوگیری شود.

VDI در چه جاهایی کاربرد دارد؟

با اینکه می توان از VDI در انواع محیط ها استفاده کرد، اما تعدادی مورد استفاده وجود دارد که مخصوصا مناسب VDI است.

  • کار از راه دور : از آنجا که VDI مجازی سازی دسکتاپ را فراهم میکند به همین دلیل دسترسی به آن راحت تر است. و شرکت ها میتوانند از آن برای چندین کارمند خود استفاده کنند.
  • تنها دستگاه خودت رو بیار (BYOD) : Bring Your own Device (BYOD) به این معنی است که شما در محیط هایی که میتوانید از “end-point” یا همان وسیله اتصال استفاده کنید، آن دستگاه را با خود آورده و از کارایی و امنیت بیشتر آن در مکان های بیشتری استفاده کنید.
  • کار های تمام وقت یا پاره وقت : VDI NONPERSISTENT دقیقا در زمان هایی استفاده دارد که کار به صورت تکراری انجام شود و میتوان از تعداد زیادی دستگاه برای انجام کار استفاده کرد که نیاز به همیشه کار کردن ندارد و همیشه در هرجا در دسترس باشند.

تفاوت میان VDI و مجازی سازی دسکتاپ چیست؟

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

تفاوت میان VDI و VMs چیست؟

ماشین های مجازی یا همان VMs یک تکنولوژی قدرت گرفته از VDI هستند. VMها ماشین های مجازی هستند که توسط یک hypervisor ساخته شده توسط یک سرور فیزیکی در چندین سرور مجازی ساخته شده اند. VMs میتواند در یک محیط VDI اجرا شود پس ماشین های مجازی در واقع یک نوع از VDI هستند.