program na prohlizeni BIOSu "offline" pod Win

hwkonfera hwkonfera
Středa Březen 17 14:34:30 CET 2004


> Ahoj,
> Mam board BX-133 RAID, Celeron 600 a WIN98.
> Po prechodu na tento PC mi prestalo chodit spoustu DOS programu, konkretne
> nejde komunikace pres COM porty. Da se to nejak spravit? Co takhle je
> zablokovat a koupit novou kartu na PCI sbernici.
>     Funguji porty COM na PCI sbernici standartne?
> Michal

Tak predne, jakekoliv zarizeni na PCI sbernici obsahujici inerni rozsirovaci
ROM podleha stejnym zasadam PnP jako zarizeni integrovane na desce. Pokud
system tedy spravne spolupracuje s COM pod Win98, podle meho nazoru prechod
na UART na PCI radici nic nespravi resp. nezachrani, ba naopak zvedne Vam
pocet COMu a tim si zadelavate na problemy (sdileni preruseni a problemy s
nastaveni I/O). To co jsem popsal, plati nezavisle na verzi Win32 s
rozsirenim u 2k a XP, ktere prirazuji virtualni preruseni, ale asi by
DOSovsky program nebehal poradne zadny :) (tedy XP jsou v tomto
neprekonatelne). Ale chtelo by, aby se k tomu vyjadrili i pritomni mazaci,
kteri maji s DOSem mnohonasobne vetsi zkusenosti.
Tak a ted k te sw casti: pokud mate v programovych rutinach (nevim v cem to
pisete) nejake ty "INP" ci "port" prikazy, mate smulu onen DOS (tedy
prikazovy radek) pod Win32 neni tak uplne DOS - to je dlooouhe psani :) - a
cokoliv delate s I/O je stale pod kotrolou Win32. A ty, jak vite, jsou
multitaskingovy operacni system, proto primy pristup na "port" bez uziti
driveru SYS nebo VxD (a tedy dll a API), tedy stale kontroly prostrednictvim
Virtual Machine Manageru, je bohuzel slozitejsi. Ve Win32 driver zajistuje
operace na urovni kernel vrstvy (kernel-mode), kter? pracuje v nejvyse
chranene oblasti operac? procesoru - ring(0) - co? je oblast virtualnich
stroju, VxD a SYS modulu, ktere zde nahrazuji, spravovany Virtual Machine
Managerem, funkci knihoven dll. Uveden? operace, nap??klad prave Vas I/O k
hardwaru, jsou v user-mode na urovni ring(3) procesoru zcela nepristupne. V
user-mode tedy probihaji vysokourovnove operace s uzivatelskymi aplikacemi a
knihovnami systemu, cili obecne tak, jak komunikuji Win32 s u?ivatelem.
Dilci entity ring(0) oblasti vuci sobe uplatnuji preemptivni multitasking
(nikoliv ale VxD), jsou zodpovedne za komunikaci s hardwarem a synchronizaci
systemu. Tolik k tomu proc je driver ve Win32 potreba.
Shrnuto: PCI karta Vas problem ani z hw ani ze sw hlediska podle meho nazoru
nevyresi ...
Hezky den, Simon Cihelnik
apropos: nikde jsem se nedozvedel proc eni treba ring(2) :))) ... vi nedko ?




Další informace o konferenci Hw-list