سلام توی سی شارپ چطور میشه خود یک درایو یا یک پارتیشن رو اینکریپت کرد؟ حالا یا مثلا فلش یا هارد دیسک... اصلا توی سی شارپ شدنیه؟ چون دسترسی سطح پایین میخواد.
سلام توی سی شارپ چطور میشه خود یک درایو یا یک پارتیشن رو اینکریپت کرد؟ حالا یا مثلا فلش یا هارد دیسک... اصلا توی سی شارپ شدنیه؟ چون دسترسی سطح پایین میخواد.
در #C صرفا می توانید به ابزار هایی مثل VeraCrypt فرمان بدهید که پارتیشن بسازه، Mount و Unmount کنه و ... اما مستقلا در #C نمی توانید روتین های سیستمی رو انجام بدهید.
البته یک کار دیگه هم می توانید در #C انجام بدهید، می توانید سیستم فایل ویندوز رو بذارید کنار و یک سیستم فایل مجازی اختصاصی طراحی کنید که برای خودش مفاهیم فایل و پوشه داشته باشه و بعد برای مدیریت این سیستم فایل مجازی یک Explorer اختصاصی طراحی کنید (نه Explorer خود ویندوز)، کنترل ListView هم که هست و برای ساختن Explorer اختصاصی بدردتون میخوره.
سپاس بابت پاسخ دادنتون،
ممنون میشم یکم بیشتر در موردش صحبت کنید و در مورد اینکریپت درایو ازش مثال بزنید .در #C صرفا می توانید به ابزار هایی مثلVeraCryptفرمان بدهید که پارتیشن بسازه، Mount و Unmount کنه و ...
میشه بگین سیشارپ چرا این ضعف ها رو داره؟ و اینکه با ++C میشه این کارو کرد؟اما مستقلا در #C نمی توانید روتین های سیستمی رو انجام بدهید.
ببخشید ولی مگه سیستم فایل ساختن به این سادگیه؟ یکم بیشتر توضیح بدین لطفا.البته یک کار دیگه هم می توانید در #C انجام بدهید، می توانید سیستم فایل ویندوز رو بذارید کنار و یک سیستم فایل مجازی اختصاصی طراحی کنید که برای خودش مفاهیم فایل و پوشه داشته باشه و بعد برای مدیریت این سیستم فایل مجازی یک Explorer اختصاصی طراحی کنید (نه Explorer خود ویندوز)، کنترل ListView هم که هست و برای ساختن Explorer اختصاصی بدردتون میخوره.
با سپاس
موضوع سوال تون برنامه نویسی نیست، صرفا معرفی یک نرم افزار ئه. پیشنهاد می کنم ابزار VeraCrypt رو نصب کنید و باهاش آشنا شوید.
از اونجایی که VeraCrypt دستورات Command Line مشخصی رو قبول می کنه می توانید با #C و اغلب زبان های برنامه نویسی دیگه بهش دستور بدهید تا اغلب کارهایی که در محیط نرم افزارش قابل انجامه رو در با دستور دادن برنامه خودتون هم انجام بدهید.
هر زبانی و هر کامپایلری یکسری ویژگی هایی داره، این ویژگی ها برای بعضی کاربرد ها مزیت ئه و برای بعضی کاربرد ها عیب.
برای همین هر زبانی و هر کامپایلری برای یکسری کاربرد هایی خیلی مناسبه و برای یکسری کاربردهایی مناسب نیست.
#C یک زبان برنامه نویسی سطح بالا است، برنامه هاش در سطح کاربری اجرا میشه، ارتباط مستقیمی با سخت افزار برقرار نمی کنه، کامپایلرش کد میانی تولید می کنه، اجراش تحت ماشین مجازی انجام میشه، مدیریت منابع اش خودکار ئه و ...
اما برنامه نویسی برای روتین های اساسی سیستم عامل و هسته سیستم عامل و درایور نویسی و ... نیاز به زبان ها و کامپایلر هایی داره که یکسری ویژگی هایی رو داشته باشند.
مثلا خروجی کامپایلر شون کد ماشین پردازنده واقعی باشه، برنامه نویس بتونه منابع رو خودش مدیریت کنه، خروجی کامپایلر شون برای اجرا شدن در سطح سیستمی مناسب باشه، زبان برنامه نویسی شون سطح پایین باشه، با سخت افزار بتوانند ارتباط مستقیم برقرار کنند و ... دقیقا ویژگی هایی که C++/C و کامپایلر های این زبان ها دارند.
اتفاقا یکی از موضوعات عمومی که در دانشگاه به عنوان پروژه پایانی درس آزمایشگاه سیستم عامل از دانشجو ها میخواهند همین طراحی یک سیستم فایل ئه. اگر خیلی سخت یا زمانبر بود که از تک تک دانشجو های یک کلاس همچین پروژه ای رو نمیخواستند.
سیستم فایل واقعی با سخت افزار واقعی و سکتور و کلاستر و دیسک سر و کار داره، در نتیجه بخاطر پیچیدگی های ارتباط با سخت افزار و مدیریت درخواست های همزمان و ... طراحی اش پیچیده است.
اما در سیستم فایل مجازی، شما بخش عمده کار رو آماده از سیستم فایل واقعی تحویل میگیرید، نه مستقیما از دیسک. یک منبع فرضا یک فایل C:\My Folder\disk.dat رو بستر سیستم فایل مجازی خودتون قرار می دهید و تمامی ساختار این سیستم فایل رو در همین تک فایل disk.dat پیاده سازی می کنید، دقیقا شبیه یک فایل غیر فشرده iso که تصویری از محتویات یک CD / DVD ئه، وقتی یک فایل iso رو با UltraISO یا PowerISO و ... باز می کنید و ویرایش می کنید، عملا یک سیستم فایل مجازی رو در Explorer مخصوصش مدیریت کرده اید.
شما هم یک سیستم فایل مجازی طراحی می کنید که با Explorer اختصاصی شما قابل ویرایش ئه و اطلاعاتش هم بصورت کد گذاری شده ذخیره میشه، مثل فایل rar که password داره و داخلش یکسری فایل و پوشه است.
پس در واقع با این کار پارتیشن رو نمیشه اینکریپت کرد و یک فایل میسازیم که مثل یک دیتابیس پرتابل عمل میکنه درسته؟ حالا توی این فایل dat فقط اطلاعات فایل ها و پوشه ها ذخیره میشن یا خود فایل ها و پوشه ها؟ حالا اگه مثلا بخوایم یک فلش رو اینکریپت کنیم که اصلا نشه بازش کرد چی؟! فکر کنم اینجا به مشکل بخوره سیستم فایل مجازی.یک منبع فرضا یک فایل C:\My Folder\disk.dat رو بستر سیستم فایل مجازی خودتون قرار می دهید و تمامی ساختار این سیستم فایل رو در همین تک فایل disk.dat پیاده سازی می کنید، دقیقا شبیه یک فایل غیر فشرده iso که تصویری از محتویات یک CD / DVD ئه، وقتی یک فایل iso رو با UltraISO یا PowerISO و ... باز می کنید و ویرایش می کنید، عملا یک سیستم فایل مجازی رو در Explorer مخصوصش مدیریت کرده اید.
شما هم یک سیستم فایل مجازی طراحی می کنید که با Explorer اختصاصی شما قابل ویرایش ئه و اطلاعاتش هم بصورت کد گذاری شده ذخیره میشه، مثل فایل rar که password داره و داخلش یکسری فایل و پوشه است.
میشه یک نمونه از سیستم فایل مجازی (اگه به زبان سی شارپ هست) رو قرار بدین؟
و اگر میشه به برنامه دستور داد باید یک واسطی باشه مثل یک API چون این VeraCrypt خودش یک برنامه جدا هست؟!موضوع سوال تون برنامه نویسی نیست، صرفا معرفی یک نرم افزار ئه. پیشنهاد می کنم ابزار VeraCrypt رو نصب کنید و باهاش آشنا شوید.
از اونجایی که VeraCrypt دستورات Command Line مشخصی رو قبول می کنه می توانید با #C و اغلب زبان های برنامه نویسی دیگه بهش دستور بدهید تا اغلب کارهایی که در محیط نرم افزارش قابل انجامه رو در با دستور دادن برنامه خودتون هم انجام بدهید.
آخرین ویرایش به وسیله daniyaltjm : جمعه 04 مهر 1399 در 11:39 صبح
خیر.
یک برنامه جدا است، برای ارتباط هم همانطور که قبلا گفتم از فرمان های Command Line استفاده می کنید.
لینک فرمان های Command Line اش رو در همون پست اولم قرار داده بودم. اگه اون صفحه رو ببینید، مشخص کرده که فرمان ها چیه، فلان فرمان سوئیچ هاش چیه و اجرا بشه چیکار میکنه.