[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: Verständnisfrage über Linux-Kernel



* Enrico Weigelt <weigelt@metux.de> schrieb:

Nachtrag:

> Ein sehr einfaches network-filesystem, das sich sogar direkt in HW
> implementieren läßt. Hab irgentwo auch noch ein schönes Paper
> rumliegen, das 9P sogar als Alternative zu JTAG vorschlägt :)

Ich würde mir sehr wünschen, wenn möglichst viele klein-devices
wie NICs, usb-controller, usw. direkt 9P, evtl. über einen einfachen
Ringputter sprechen würden. Dann ließe sich alles wunderbar 
standardisieren. Wäre auch toll für Virtualisierung - bräuchte
man einfach nur betimmte subtrees wahlweise durchrouten oder emulieren.

zb: 

9P-PCI host interface:

    * arbeitet mit ringuffers in einem bestimmten Speicherbereich 
      mit dem Layout:
	+ [ro] header / magic value / device-ident
	+ [rw] config flags
	+ [ro] rx-queue size
	+ [ro] rx-queue offset
	+ [ro] tx-queue size
	+ [ro] tx-queue offset
	+ [ro] rx-queue write ptr offset (next write will go here)
	+ [wo] rx-queue read ptr offset (next read will go from here
	+ [wo] tx-queue write ptr offset
	+ [ro] tx-queue read ptr offset
    * die queue's enthalten normale 9P packets
    * eingehende packets werden vom controller in die rx-queue geschrieben 
      und entsprechend der write-ptr angepaßt
    * analog dazu vom host in der tx-queue
    * in den config-flags kann festgelegt werden, ob/wann ein interrupt
      gesendet werden soll

9P hub filesystem layout:

    /
	magic		-> enthält eine magic-value zur identifizierung
	info		-> infos über das hub-device
	    /id		
	    /vendor
	    /model
	/devices	-> hier liegen die angeschlossenen devices
	    /iic-bridge.000
	    /usb.000
	    /hotkeys.000
	    /powerswitch.000
	    /lcd.000
	    /serial.000
	    /serial.001
	    /eth.000
	    ...

9P serial device layout:

    /
	magic
	bitrate
	protocol
	rx-available
	tx-available
	stream

...

Wie man leicht sieht, läßt sich somit alles über standardisierte
Cores zusammensetzen, und host-seitig braucht man eigentlich nur noch einen
lowlevel-hw-Treiber: für das host-interface - alles andere kann eigentlich
ganz bequem durch userland-daemons lösen.


cu
-- 
---------------------------------------------------------------------
 Enrico Weigelt    ==   metux IT service - http://www.metux.de/
---------------------------------------------------------------------
 Please visit the OpenSource QM Taskforce:
 	http://wiki.metux.de/public/OpenSource_QM_Taskforce
 Patches / Fixes for a lot dozens of packages in dozens of versions:
	http://patches.metux.de/
---------------------------------------------------------------------


Reply to: