混合多系統虛擬網絡卡核間中斷實現
阿新 • • 發佈:2018-11-27
- APIC介紹
APIC的全稱是Advanced Programmable Interrupt Controller,是8259控制器的升級版本。APIC包括了Local APIC和I/O APIC兩部分內容,Local APIC是總的控制器,位於CPU內部;I/O APIC主要用於處理外部裝置的中斷。引入APIC可以適應多處理器環境。APIC在處理器中的邏輯如圖 1.1所示:
圖 1.1 APIC邏輯圖
- 混合系統間通訊
2.1 SylixOS和Linux通訊介紹
在J1900工控機上安裝SylixOS+Linux混合系統,SylixOS和Linux分別使用兩個核。為了在SylixOS和Linux之間實現通訊,在SylixOS和Linux上分別實現了虛擬網絡卡驅動,通過虛擬網絡卡實現兩個系統之間通過網路通訊的功能。虛擬網絡卡通過核間中斷方式來通知CPU收發網路資料包。
2.2 Linux虛擬網絡卡驅動
Linux網絡卡驅動設定虛擬網絡卡驅動傳送核間中斷如圖 2.1所示:
圖 2.1 Linux傳送核間中斷
2.3 SylixOS虛擬網絡卡驅動
SylixOS虛擬網絡卡驅動首先向系統註冊一個核間中斷,用於接收處理Linux傳送的網路資料包,介面如圖 2.2所示:
圖 2.2 SylixOS註冊核間中斷
2.4 核間中斷檢視
通過Linux和SylixOS系統之間相互ping檢視網路是否暢通,同時在Linux上可以檢視觸發的核間中斷個數,如圖 2.3所示:
圖 2.3 核間中斷檢視