Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.

QNX Neutrino - POSIX alternativa

[es] :: Advocacy :: QNX Neutrino - POSIX alternativa

Strane: 1 2

[ Pregleda: 5685 | Odgovora: 28 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

dr ZiDoo
Banja Luka

Član broj: 189
Poruke: 1728
79.143.164.*

Jabber: ZiDoo@elitesecurity.org
ICQ: 299539598
Sajt: zidoo.geek.rs.ba


Profil

icon Re: QNX Neutrino - POSIX alternativa24.05.2008. u 18:48 - pre 192 meseci
Ja potpisujem peticiju da se graficki drajveri prebace u user space. Meni nvidia satra Vistu (unisava mi omiljeni hobi napucavanja sa teroristima :D)
tu nema kašike....
 
Odgovor na temu

maksvel

Član broj: 107376
Poruke: 2417

Jabber: maksvel
Sajt: maksvel.in.rs


+161 Profil

icon Re: QNX Neutrino - POSIX alternativa24.05.2008. u 18:51 - pre 192 meseci
Lepo: evo, posle solidne pauze, poučne teme na ES Advocacy. Podseti me na The Tanenbaum-Torvalds Debate Ivan mu dođe Tanenbaum
 
Odgovor na temu

Ivan Dimkovic

Administrator
Član broj: 13
Poruke: 16683
*.dip.t-dialin.net.



+7169 Profil

icon Re: QNX Neutrino - POSIX alternativa24.05.2008. u 18:53 - pre 192 meseci
Nece to ici lako - da bi se napravio efikasan user-mode graficki drajver morali bi da raspisu GUI layer ponovo tako da bude u user mode-u i da ume da efikasno iskoristi graficki drajver...

To znaci raspisivanje gomile komponenti - od drajverskog interfejsa (a taman su uveli onaj WDDM), preko directX-a, opengl-a i sl... Puno posla.

Doduse, Microsoft je ipak nesto uradio po pitanju grafickih drajvera - WDDM model izoluje graficki drajver tako da neke greske u WDDM drajveru ne obaraju ceo kernel, vec samo drajver - to su vlasnici NVidia kartica sigurno imali prilike da vide kada se ekran zatamni, i video se restartuje... Doduse, to nije savrseno (cesto se nekoliko sekundi posle desi plavi ekran)

Citat:

Ivan mu dođe Tanenbaum


:-)

Istini za volju, mnogo toga se promenilo od te cuvene debate... QNX je ipak pokazao da mikrokernel OS ne mora biti isto sto i spori OS, a takodje cena context-switcha danas nije ni priblizno ista ceni u tom vremenu kada su carovale 386 DX masine.

Mikrokernel OS-evi nude odredjene prednosti koje su jako bitne u mission-critical aplikacijama kada jednostavno ne mozes da dopustis da OS (kernel) padne... Zato je QNX i popularan u tim okruzenjima, mada neki od njegovih konkurenata (wxWorks) ne samo da su monolitni-kernel OS-evi, nego u wxWorksu sve aplikacije dele jedan isti adresni prostor i fakticki su jedan proces! Mogu da zamislim sta se desava ako neka od tih aplikacija krene da trashuje memoriju :)

Mislim da mane mikrokernel OS-eva nisu nesto sto je odgovorno za njihovu malu popularnost u sirokoj upotrebi, firma QNX jednostanvo nikad nije ni htela da nesto vise uradi sa tim OS-om od njihovih trzista, dok su drugi vendori (Microsoft, Apple) uzeli delove dizajna Microkernel OS-eva i kombinovali ih sa monoliticnim dizajnom tamo gde je to imalo smisla na Intel platformi.


DigiCortex (ex. SpikeFun) - Cortical Neural Network Simulator:
http://www.digicortex.net/node/1 Videos: http://www.digicortex.net/node/17 Gallery: http://www.digicortex.net/node/25
PowerMonkey - Redyce CPU Power Waste and gain performance! - https://github.com/psyq321/PowerMonkey
 
Odgovor na temu

dr ZiDoo
Banja Luka

Član broj: 189
Poruke: 1728
79.143.164.*

Jabber: ZiDoo@elitesecurity.org
ICQ: 299539598
Sajt: zidoo.geek.rs.ba


Profil

icon Re: QNX Neutrino - POSIX alternativa25.05.2008. u 08:29 - pre 192 meseci
Citat:
Ivan Dimkovic:
Doduse, Microsoft je ipak nesto uradio po pitanju grafickih drajvera - WDDM model izoluje graficki drajver tako da neke greske u WDDM drajveru ne obaraju ceo kernel, vec samo drajver - to su vlasnici NVidia kartica sigurno imali prilike da vide kada se ekran zatamni, i video se restartuje... Doduse, to nije savrseno (cesto se nekoliko sekundi posle desi plavi ekran)
...


Nazalost u mom slucaju uvjek :/
tu nema kašike....
 
Odgovor na temu

icobh
Igor Pejašinović
Network Admin
Navigo SC d.o.o.
Banja Luka

Član broj: 18738
Poruke: 1319
*.inecco.net.

Sajt: www.nsc.ba


+4 Profil

icon Re: QNX Neutrino - POSIX alternativa25.05.2008. u 11:28 - pre 192 meseci
I ja imam problema sa nVidia drajverima na Visti. Krene on tako da gasi monitor i ništa ne mogu raditi. Ali ja rješavam problem tako da drajvere instaliram iz safe mod-a, i onda je sve OK.
I ♥ ♀

Ovaj post je zlata vrijedan!
 
Odgovor na temu

windows_zakon
nista

Član broj: 97723
Poruke: 27
*.broadband.blic.net.



Profil

icon Re: QNX Neutrino - POSIX alternativa26.05.2008. u 11:24 - pre 192 meseci
Citat:

ako treba imam ja ovde puno te listinge sa oops-evima,pa da stavim nesto novije :D
Bas je lepo kad nesto tako napravi oops pa onda neki put pocne i da pisti :)


Offtopic, informacije radi... oops nije isto sto i panic.
Kad se desi panic, tu je kraj... kad se desi oops, to je indikacija da negdje u kodu postoji neki bug, pa ako ti recimo, mreza, prestane da radi... mozes da reloadujes drajver pa da nastavis da radis.

Mada, mozes ti da uradis recimo
echo "1" > /proc/sys/kernel/panic_on_oops

Pa da tako na kraju oops-a pozoves panic() syscall
i onda
echo "1" > /proc/sys/kernel/panic

Da automatski rebootujes sistem ako se desi kernel panic.

Sad, nazad na topic.
Bilo bi dobro da drajveri (pricam o mreznim) rade na vishem nivou. To bi znacajno poboljsalo stabilnost svih OS-ova... medjutim, sta bi se desilo kad bi odredjeni procesi zakucavali cpu ili uzimali cpu snagu na i/o wait-u ?

Recimo, imas 30mbps outbound traffic, puno procesa koji odradjuju neke operacije tipa SQL/Web ili ne bitno, striming... ? Dolazilo bi do varijacija i neefikasnosti mreze.

Evo ti real life example.. meni se desavalo da se toliko server zakuca, da mu se ne moze prici niti sta, ali mreza i dalje radi. I krucijelni servisi i dalje rade... sto je poprilicno handy, jer ako iznajmljujes server od the planeta, zagarantovan ti je ultra mega giga losh support i da cekas 5 sati za reboot ili tako nesto.
Sve je to moguce odraditi, ali (vjerovatno) nije lako implementirati da radi kako treba... zato vjerovatno niko i ne pokusava.

Pravilan rad mreze je krucijelan, i userland procesi ne smju da degradiraju performanse iste ni pod kakvim uslovima.
Pogotovo kad je remote odrzavanje/ili_sta u pitanju.
 
Odgovor na temu

Ivan Dimkovic

Administrator
Član broj: 13
Poruke: 16683
193.47.77.*



+7169 Profil

icon Re: QNX Neutrino - POSIX alternativa26.05.2008. u 11:35 - pre 192 meseci
Pazi,

Na dobro dizajniranom OS-u to ne bi smeo da bude problem, ISR rutine obicno imaju prioritet niti 255 - sto znaci da pre-emptuju bilo koji drugi thread, osim thread-ova koji imaju prioritet 255, a to su drugi interapti.

Da li je mrezni drajver u userlandu ili u kernel-modu nema nikakve veze sa stanovista prioriteta. ISR je 255, a ISR se koristi kada stigne mrezni paket preko interapta za obradu.

Na primer, mreznom drajveru mozes setovati visok prioritet + prioritet od 255 za ISR i, takodje, recimo pod QNX-om kreirati adaptivnu particiju koja kaze da mrezni drajver mora dobiti bar 5% CPU-a ako on to zeli.

I to je to... pravilno dizajniran pre-emptive multitasking OS bi se vrlo lako izborio sa tim u momentima opterecenosti sistema.

Sa stanovista schedulinga, ne bi trebalo da bude razlike izmedju user-mode i kernel-mode procesa - jedino sto je bitno je prioritet, i da li je u pitanju ISR ili normalna funkcija.
DigiCortex (ex. SpikeFun) - Cortical Neural Network Simulator:
http://www.digicortex.net/node/1 Videos: http://www.digicortex.net/node/17 Gallery: http://www.digicortex.net/node/25
PowerMonkey - Redyce CPU Power Waste and gain performance! - https://github.com/psyq321/PowerMonkey
 
Odgovor na temu

windows_zakon
nista

Član broj: 97723
Poruke: 27
*.broadband.blic.net.



Profil

icon Re: QNX Neutrino - POSIX alternativa26.05.2008. u 12:02 - pre 192 meseci
Citat:

Na primer, mreznom drajveru mozes setovati visok prioritet + prioritet od 255 za ISR i, takodje, recimo pod QNX-om kreirati adaptivnu particiju koja kaze da mrezni drajver mora dobiti bar 5% CPU-a ako on to zeli.

I to je to... pravilno dizajniran pre-emptive multitasking OS bi se vrlo lako izborio sa tim u momentima opterecenosti sistema.



To da, ali to pravilno dizajniran je kljucno. Prvo zato sto Linuxov (a vjerovatno ni Windows-ov) kernel nisu tako dizajnirani, da to rade... znaci trebali bi mass rewrite da urade i da onda testiraju taj kod 2 godine dok se to ne ustabili malo.

Preemtion imaju, medjutim, preemtion koji je dizajniran ovako kako jeste, nije efektivan(u svim situacijama)... i definitivno nije prepourcen na bilo kakvim production sistemima. Eventualno na desktopima i to je to.. sto znaci da se na to ne moze osloniti.

Ali kao ideja za research i rad, nije lose...

 
Odgovor na temu

Ivan Dimkovic

Administrator
Član broj: 13
Poruke: 16683
*.dip.t-dialin.net.



+7169 Profil

icon Re: QNX Neutrino - POSIX alternativa26.05.2008. u 21:32 - pre 192 meseci
Hm hm

Mislim da sam potpuno siguran da u Windowsu i Linuxu thread sa prioritetom 255, tj. ISR ima potpuni pre-emtpion i da tu nije problem, jer su svi user-mode procesi u kojima trce aplikacije na nizem prioritetu (osim, ako nisu pisane da traze najvisi prioritet sto je losa praksa u dizajnu) - i da bi uz pazljiviji dizajn bilo moguce napraviti network stack koga nije moguce ugroziti ni iz user moda.

Ono gde jeste problem, je da ISR moze blokirati ceo sistem, ali taj problem postoji i kod QNX-a u teoriji - i na bilo kom OS-u koji se izvrsava na modernim arhitekturama procesora.

E, sad, QNX to resava na prost nacin - vecinu drajvera pise QNX ;-) Tako da mogu da garantuju da ni jedan drajver nece da blokira kernel sa ISR-om koji ne vraca kontrolu...

Obicno se to radi tako sto:

a) ISR samo scheduluje novi thread, ili setuje event i odmah vraca kontrolu kernelu, a onda u drugom threadu radi sta vec treba da radi, a u ISR-u se rade iskljucivo time-critical stvari (tipa, ako je DMA bafer prepun)

b) Na QNX-u je moguce registrovati interapt hendler ne kao ISR, vec kao event, i u tom slucaju nema nikakvog blokiranja jer kernel nikad ne daje kontrolu interapta drajveru, vec drajver dobija samo event - problem sa ovim je sto u slucaju da neki drugi proces istog prioriteta nije zavrsio (neki drugi drajver, recimo), tvoj drajver ima nepredvidljivu latenciju dok na njega ne dodje red

U Windowsu i Linuxu je to daleko teze, jer drajvere pisu svi - pa latencija nije garantovana jer, recimo, neki neposlusni drajver moze da zadrzi kontrolu nad sistemom za vreme ISR-a.

Mada, cenim da se to jako retko dogadja i na Linuxu i na Windowsu NT (Vista/XP) ako se dogadja uopste, osim ako nemas bas neki skrndelj drajve koji je pisala neka budala - vecina drajvera se pisu uz pomoc DDK-a koji ima jako lepe primere sta treba i sta ne treba raditi.

DigiCortex (ex. SpikeFun) - Cortical Neural Network Simulator:
http://www.digicortex.net/node/1 Videos: http://www.digicortex.net/node/17 Gallery: http://www.digicortex.net/node/25
PowerMonkey - Redyce CPU Power Waste and gain performance! - https://github.com/psyq321/PowerMonkey
 
Odgovor na temu

[es] :: Advocacy :: QNX Neutrino - POSIX alternativa

Strane: 1 2

[ Pregleda: 5685 | Odgovora: 28 ] > FB > Twit

Postavi temu Odgovori

Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.