2017-04-15 8 views
1

外部ハードウェアデバイスがシステムコールを使用してオペレーティングシステムにアクセスすることは可能ですか?それは私にディスク上のキーデバイスの自動実行を思い出させるが、オペレーティングシステムまたはデバイス自体のためにそれが発生するかどうかわからない。外部ハードウェアデバイスはシステムコールを使用できますか?

+1

オペレーティングシステムが原因で自動実行が行われている可能性があります。 CDプレイヤーまたはUSBハードウェアがCPUに割り込みを送り、CPUがオペレーティングシステムドライバーを実行し、ドライバーが何らかの種類の「新しいディスクが見つかりました」というメッセージを作成し、そのメッセージを探しているソフトウェアが実行されます。 –

+0

Linuxの場合、あなたは 'udev'と' dbus'を調べたいと思っています。 –

+1

グーグルが少し見つかりましたhttps://linuxmeerkat.wordpress.com/2014/11/12/python-detection-of-usb-storage-device/ –

答えて

1

システムコールではプロセスが必要です。デバイスに接続されたプロセスがない限り、システムコールを行う方法はありません。

通常、デバイスは割り込みによってオペレーティングシステムにアクセスします。割り込みは、システムコールのディスパッチ方法と同様の方法で処理されます。システムコールの違いは、割り込みではなく例外によってトリガされます。

0

私は確かに誰かができているか、おそらくそれを構築していると思います。しかし、一般的にそれはどのように動作していません。ハードウェアは割り込みやポーリングなどのソフトウェアを介してハードウェアイベントを処理します(USBキーを挿入し、ドライバレベル以上にUSBドライバやオペレーティングシステムソフトウェアの機能を有効にして自動実行ファイルを検索して実行します)。

マウスボタンをクリックすると、コンピュータに信号を送信するだけで、ボタンを操作するソフトウェアが起動します。そのソフトウェアはオペレーティングシステムの一部であるか、オペレーティングシステムと相互作用しています。

ドライブまたはcdまたはdvdを自動的にマウントする場合は、信号が送信され、そのインターフェイス用の低レベルソフトウェアを起動して起動すると、それはオペレーティングシステムに渡されます。そのドライブが自動的にマウントされると、そのドライブが機能を持ち、有効になっていれば、そのデバイス上のソフトウェアをオペレーティングシステムが実行できるようにする合意されたファイルを検索するかもしれません。すべてのオペレーティングシステムの対話はソフトウェアによって行われます。

関連する問題