سؤال

لدي امتداد kernel المستند إلى Iokit على Mac OS X ، فئة فرعية من الخدمات. عندما يتم تحميل هذه الخدمة ، أحتاج إلى نشر معلومات محددة من وقت التشغيل منها وأحتاجها إلى الوصول إليها من مساحة المستخدم دون تقديم بعض طلبات iouserclient محددة. المعلومات المعنية هي في الأساس حقل أزواج القيمة ويتم مشاركة تنسيقها بين kext ومكتبة غلاف فضاء المستخدم. ستتغير المحتويات بمرور الوقت في بعض الأحداث المحددة داخل الخدمة عندما تكون نشطة.

على Linux ، كنت قد أنجزت هذا مع ملف في نظام الملفات /proc. هل يمكنك أن تنصح باستراتيجية مماثلة في OS X؟ ربما شيء يتعلق بـ ioregistry؟

شكرًا لك.

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

المحلول

حسنًا ، اتضح أنه سهل للغاية. إن خدمة iokit الخاصة بك (بشكل مؤثر) ورثت من فئة الخدمات iOSERVICE ، والتي بدورها ورثت من ioregistryentry ، والتي تمثل مثيلًا لدخول خدمتك في الكيمياء ioregys الدخول لخدمتك.

يمكن الوصول برنامجياً من نوع المستخدم الذي يمكن الوصول إليه برمجيًا من مساحة المستخدم حيث يمكنك البحث عن إدخال الخدمة الخاص بك وقراءة المعلومات التي نشرتها ذلك.

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