問題タブ [mach]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
0 に答える
337 参照

iphone - アプリケーションから CPU 使用率を取得する

重複の可能性:
iOS - アプリケーションから CPU 使用率を取得する

アプリケーションから iOS 4.x の CPU 使用率を監視しようとしています。host_processor_info を見つけましたが、これは文書化されていない API であるため、使用できません。この目的で使用できる別の機能はありますか?

前もって感謝します。

0 投票する
1 に答える
527 参照

macos - mach_inject キックスタート

現在、バンドルを Finder に挿入しようとしていますが、すべて正常に動作し、アクティビティ モニターでバンドルがそこにあることがわかります。

ただし、バンドル内のコードは実行されません。

バンドル内のコードの実行を開始するにはどうすればよいですか?

現在、バンドルには関数しかありません。そのvoid load()中には、コンソールにロードされたことを示す行が出力されます。

キックスタートの正しい方法ですか?

0 投票する
2 に答える
621 参照

kernel - カーネルを別のアーキテクチャに移植しますか?

xnuQemu内で完全なカーネルを実行できるようにするという最終的な目標を持って、カーネルをARMアーキテクチャに移植したいと思います。これは非常に難しい作業だとは思いますが、それでもやってみたいと思います。

私の知る限り、カーネルのエントリポイント(osfmk/arm/start.s)を記述して、一般的な初期化(MMUおよびPlatformExpert)を実行した後、Kext / IOKitサブシステムを起動し、CPU固有の拡張機能(トラップ、 GPIO、クロック)バイナリに事前リンクされているか、ブートローダーによってロードされます(NAND拡張機能がまだ利用できないため、カーネルがファイルシステムと対話できないため)。

ARM CPUがどのように機能するかについての一般的な考えはありますが、ポートをどこから始めればよいかさえわかりません。これは、次のxnu方法が完全にはわからないためです。

  • 低レベルのデバッグを実行します(起動中の早い段階でカーネルデバッグ機能を使用できないため)。
  • ARMブランチを残りのカーネルソースツリーと統合します(つまり、中のものosfmk/kernが機能していることを確認します)。
  • プラットフォームに依存しないカーネルを開始するための適切な環境を作成します(machine_startup());
  • メインカーネルコード内のいくつかのプラットフォーム固有のコードを修正します(プラットフォームコードのほとんどはに制限されてosfmk/platform_nameいますが、一部は他のコードに統合する必要がosfmk/kernあります)。

Linuxガイドと同じように、 XNU(または少なくともMach )カーネルをさまざまなプラットフォームに移植するための適切なガイドはありますか?

0 投票する
1 に答える
289 参照

c - CPU_STATE_MAX とは何ですか?

CPU_STATE_MAXマクロとは何ですか? また、何に使用されますか? 説明的/関連する Google の結果やマニュアル ページが見つかりませんでした。

違いがあれば、私は Mac OSX Snowleopard を使用しています。

0 投票する
3 に答える
2811 参照

macos - 特定のマッハ ポートでリッスンする PID

私のアプリケーションは、mach IPC メッセージを受信し、発信者に応答を返します。マッハの発信者がいて、発信者port(msgh_remote_port)を知りたいですPIDPID特定のマッハポートをリッスンするマッハポートでOSXを見つけることはできますか?

0 投票する
3 に答える
3496 参照

macos - KEXT からデーモンに通信し、結果がデーモンから返されるまでブロックする最良の方法

KEXT では、vnode またはファイル スコープ リスナーを介してファイル クローズをリッスンしています。特定の (ごく少数の) ファイルについては、システム デーモンにファイル パスを送信する必要があります。システム デーモンは何らかの処理を行い (これはデーモンで実行する必要があります)、結果を KEXT に返します。デーモンからの応答が得られるまで、ファイルを閉じる呼び出しをブロックする必要があります。結果に基づいて、クローズコールでいくつかの操作を行い、クローズコールを正常に返す必要があります。フォーラムでは、KEXT 通信関連のトピックについて多くの議論が行われています。しかし、それらは決定的なものではなく、非常に古いもの (2002 年ごろ) のようです。この要件は、FtlSendMessage(...)Win32 API で処理できます。Macで同等のものを探しています

これが私が見たものであり、私の理解を要約したいと思います:

  1. マッハ メッセージ: キューイング メカニズムを備えた送信側ポートと応答ポートを使用して、双方向通信の非常に優れた方法を提供します。ただし、マッハ メッセージ API (例: mach_msg、 ) は KPImach_port_allocatebootstrap_look_upはないようです。mach APIを使用mach_msg_send_from_kernelできますが、それだけでは双方向通信には役立ちません。私の理解は正しいですか?
  2. IOUserClient : これは、ユーザー空間から KEXT への通信と、KEXT からのいくつかのコールバックに関連しているようです。KEXT からデーモンへの通信を開始し、デーモンからの結果を待つ方法が見つかりませんでした。何か不足していますか?
  3. Sockets : KEXT から Daemon への双方向通信チャネル全体を実装する必要があるため、これが最後のオプションになる可能性があります。
  4. ioctl/ sysctl: 私は彼らについてあまり知りません。私が読んだことから、特に双方向通信には推奨されないオプションです
  5. RPC-Mig : 繰り返しますが、私はそれらについてあまり知りません。私が見たものから複雑に見えます。これが推奨される方法かどうかはわかりません。
  6. KUNCUserNotification : これは、KEXT からユーザーに通知を提供しているだけのようです。それは私の要件を満たしていません。

サポートされているプラ​​ットフォームは (10.5 以降) です。要件を見て、誰かがこのトピックに関するいくつかの指針を提案して提供できますか?

前もって感謝します。

0 投票する
1 に答える
250 参照

assembly - DCPU-16 の XNU カーネル クローン

https://github.com/galaxas0/MachX-Kernel

失敗するように設計されたプロジェクトに着手する前に、簡単な質問をして、失敗しないように物事を整理したいと思います.DCPU-16はカーネルをどのようにロードするのでしょうか...仮想であり、すべて. 物理コンピューターでのブートストラップとカーネルの初期化のプロセスは理解していますが、DCPU-16 には戸惑っています。まったく同じように動作する 1:1 16 ビット プロセッサであると仮定する必要がありますか?

0 投票する
0 に答える
1878 参照

mach - mach_inject と mach_override サンプル コード?

mach_injectandを使用して OSX 10.6 以降で動作するサンプルの作業コードを持っている人はいますmach_overrideか? を使用して独自のコンテキスト メニュー項目を追加するコードをファインダーに挿入しようとしていますmach_inject。サンプルの作業コードを見てもらいたいですか? 誰か他の提案があれば、それも大歓迎です。

0 投票する
0 に答える
205 参照

ios - iOS GDB レジスター検査コマンドの出力を変数に保管する

iOS GDBには次のものがあります:

GDB_receivedStatusBarData:actions:のように文字列を変数に格納するにはどうすればよいですか? $1アドバイスよろしくお願いします。

編集:

Delorieからの答えを見つけたと思います。

x コマンドによって出力されたアドレスと内容は、値の履歴に保存されません。代わりに、GDB はこれらの値を後で式で便利な変数 $_ および $__ の値として使用できるようにします。x コマンドの後、検査された最後のアドレスは、便利な変数 $_ の式で使用できます。そのアドレスの内容は、調べたところ、便利な変数 $__ で利用できます。