سؤال

هل من الممكن إنشاء جهاز كتلة Linux (2.6) (مثل جهاز الاسترجاع) بحجم فردي؟ لم أستطع تحقيق ذلك. losetup يبدو أن يدور إلى 512 بايت. ال ubd أجهزة Linux من وضع المستخدم ubd يبدو أن الأجهزة تدور حتى 512 بايت. في struct request, ، نملك sector_t __sector لعملية إزاحة الكتلة لعمليات القراءة/الكتابة.

أنا أطرح هذا السؤال فقط لأغراض تعليمية. يمكنني التعامل مع حدود 512 بايت ، لكنني ما زلت مهتمًا إذا كان من الممكن تجاوزها. في هذا السؤال ، لست مهتمًا بطبقات أخرى من التجريد (مثل استخدام الملفات العادية أو أجهزة الأحرف).

هل كانت مفيدة؟

المحلول

لا. لا تفهم طبقة كتلة Linux 2.6 أي شيء أصغر من 512 بايت. أي شيء أصغر (لا سيما قوة 2) يتطلب إعادة كتابة كبيرة لكثير من التعليمات البرمجية.

نصائح أخرى

هذا هو ما يجعل جهاز الكتلة بدلاً من جهاز الأحرف: الحبيبات كتلة. يوجد الانقسام لأنه أكثر كفاءة في تصميم أجهزة حقيقية تعمل في وقت واحد كتجريد يتعامل أيضًا مع الكتل. للقيام بخلاف ذلك ، من شأنه أن يحول كل عملية إلى حساب أكثر تكلفة بكثير.

الطريقة لتجاوزها ، كما ذكرت ، لاستخدام جهاز موجه نحو الأحرف أو التجريد. هذا أمر أساسي لنموذج جهاز UNIX: كل شيء عبارة عن سلسلة من الثمانيات ، باستثناء الأشياء التي يمكن أن تكون افتراضية فقط كواحد.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top