問題タブ [sel4]
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.
microkernel - L4(マイクロカーネル)の用途はありますか?
私はL4マイクロカーネルについて多くのことをグーグルで検索しましたが、L4には非常に少ないリソースがあることがわかりました。
- 私が参照できるいくつかの良いリンクは何ですか?
- L4のアプリケーション(つまり、それが使用される場所)はありますか?
operating-system - デスクトップユーザー向けのマイクロカーネルアーキテクチャベースのオペレーティングシステム?
デスクトップ ユーザーを対象としたマイクロカーネル アーキテクチャを備えたオペレーティング システムを使用できますか? この Web サイトで、古いマイクロカーネルはモノリシック カーネルよりも 50% 遅くなる可能性があることを読みましたが、L4 などの新しいバージョンはモノリシック カーネルよりも 2% または 4% しか遅くありませんでした。L4 カーネルは、そのパフォーマンスで非常に有名です。
デスクトップユーザーを対象としたマイクロカーネルアーキテクチャに基づくオペレーティングシステムがないのはなぜですか? 将来、そのようなオペレーティング システムを使用できるでしょうか。
c - sel4 マイクロカーネルで virtio-net イーサネット デバイスをセットアップするための正しい手順とメモリ アドレス
要するに:
x86_64 仮想マシン内で sel4 マイクロカーネルを実行しようとしていますが、イーサネット インターフェイスが機能しません。sel4 マイクロカーネルで (vitio-net イーサネット デバイス経由で) インターネット接続を取得するための正しい手順は何ですか? そして、正しい(メモリ)アドレスは何ですか?
長いバージョン:
e1000 ネットデバイスで camkes (picoserver) の例を試してみましたが、うまく動かなかったので、いくつか新しいことを学び、ゼロから始めることにしました。また、パフォーマンスを向上させるために、エミュレートされた e1000 デバイスの代わりに virtio-net (vhost と一緒に) を使用することにしました。私の計画は、構造体ethif_virtio_pci_init
を初期化してeth_driver
から、その構造体を picoTCP に渡すために使用することです。今のところ、sel4 で virtio PCI デバイスを見つけることができますが、正しくアクセスしてethif_virtio_pci_config_t
必要な を作成する方法がわかりませんethif_virtio_pci_init
。
libethdrivers virtio_pci.h からの情報:
そのため、ethif_virtio_pci_config_t
uint16_t io_base アドレスと MMIO ベースへのポインターが必要です。
これは私がこれまでに得た情報です:
私が理解している限り、物理アドレスを仮想アドレスにマップする必要があります。そのために、IO-mapper を作成しましたが、何をマップすればよいかわかりません。0x8000000 から始まる dma 領域全体ですか、それとも virtio デバイスのアドレスだけですか? 私が理解している限り、新しい仮想アドレスは MMIO ベース ポインターになりますが、uint16_t io_base とは何ですか?
これはこれまでの私のコードです。不明な部分は最後にあります。
私は sel4 カーネルについて多くのことを読みましたが、sel4 マイクロカーネル (および Linux カーネル) のほとんどの概念についてはまだ初心者なので、ヒントや推奨事項があれば非常に感謝しています。私は通常、組み込み、マイクロコントローラー、およびより多くの「ベアメタル」プラットフォームで作業しており、何か新しいことを学びたいと思っていましたが、今のところ多くのことが非常に混乱しています.