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

PC as a poorly debugged set of device drivers

[es] :: Advocacy :: PC as a poorly debugged set of device drivers

Strane: 1 2

[ Pregleda: 2246 | Odgovora: 32 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

Ivan Dimkovic

Administrator
Član broj: 13
Poruke: 15765
*.adsl-surfen.hetnet.nl.



+6367 Profil

icon Re: PC as a poorly debugged set of device drivers31.12.2018. u 15:37 - pre 22 dana i 12h
Citat:
Branimir Maksimovic:
Ivan:"koda koji spava na po 10ms u beskonacnoj petlji u jednom threadu kao subsitucija za tajmer"

Znas kako timer mozes tako implementirati, potom bacati signal ili ubaciti u event loop. Linux nudi opciju 1. i 2. dok Windows nudi opciju 3.


Ne dovodim u pitanje da tako mozes implementirati tajmer, ali taj kod o kome pricam apsolutno nije imao potrebe da budi thread svakih 10 milisekundi i radi nesto (plus, ostatak tog koda je bio thread-unsafe, ali to je vec druga prica). Cela stvar je mogla biti uradjena asinhrono, sa budjenjem tacno kada treba ali... ko god je pisao taj kod ocigledno nije umeo da uradi to kako treba.

Ili jos sampionskija stvar, Windows je dozvoljavao (ne znam da li i dalje dozvoljava, znam da su smanjili lose efekte prelaskom na tickless) da bilo koja sugava aplikacija poveca rezoluciju Sleep()-a do 1ms - nekada je rezolucija bila izmedju 10 i 15 ms, sto je bio standardni sistemski kvant na NT sistemima (obicno 15 ms).

Kao sto mozes da pogodis, svaki genije koji je "morao da ima preciznost u milisekundama" (pogotovu u samo-izmisljenim "tajmerima") je samo trebao da pozove jednu Win32 API funkciju (bez admin privilegija) i da natera ceo prokleti sistem da poveca rezoluciju tajmer interapta sa 60-100 na 1000 puta u sekundi. Mislim da je cak i Chrome browser to radio. Verovatno su spucani megavati struje zbog takvih idiotizama.

Sve u svemu, odavno smo usli u fazu da je generalno kod djubre i bar neki OS-evi se trude da minimizuju stetu.

Sumnjam da moze ici na bolje od toga.


DigiCortex (ex. SpikeFun) - Cortical Neural Network Simulator:
http://www.digicortex.net/node/1
Demo Videos: http://www.digicortex.net/node/17
Gallery: http://www.digicortex.net/node/25
 
Odgovor na temu

Ivan Dimkovic

Administrator
Član broj: 13
Poruke: 15765
*.speed.planet.nl.



+6367 Profil

icon Re: PC as a poorly debugged set of device drivers31.12.2018. u 15:52 - pre 22 dana i 11h
Citat:
Branimir Maksimovic:
negyxo:"tj. verovatno su taskovi pa sam scheduler odlucuje kada je optimalno da ide na novi thread"

Ocigledno nije optimalno inace se Ivan ne bi zalio ;p


Ne poznajem arhitekturu Visual Studio-a pa ne mogu da komentarisem da li je optimalna ili ne, samo mogu da primetim da na masini koja je sve samo ne slaba imam situacije da cekam sekundama (nekada i duze) na trivijalne operacije.

Razumem da je to posledica decenija prosirivanja, boga pitaj koliko refaktoringa i cinjenica da je VS izuzetno komplikovan proizvod koji mora da podrzi gomilu ekstenzija, ali to ne opravdava fakat da ti IDE stuca na 36 jezgara i 128 GB RAM-a.

A o tragikomicnim problemima sa vecim projektima koji iz cista mira krecu da se stalno bilduju od nule da ne pricam... ako ikada budem pocinjao neki licni projekat od nule, ima da bude cist makefile :)

Inace, pre mnogo godina i pre Windows-ovih internih alatki za profilisanje Windowsa sam raspisao aplikaciju koja je radila profajling Windows boot-ovanja sa registrovanjem kad se sta desilo (u principu gro aplikacije je bio drajver koji se ucitavao vrlo rano u boot procesu i hook-ovao sta je mogao). Fantasticna stvar koju sam tada naucio je da boot proces uopste nije bio toliko I/O ili CPU opterecen, koliko je vremena prolazilo na inicijalizaciju drajvera. Nisam dublje ulazio u problem (tipa profajling drajvera) ali pretpostavljam da je gomila drajvera verovatno imala neke interne timeout-ove i nisu vracali kontrolu sistemu pre nego sto zavrse sta god su imali da urade.

Secam se da je Microsoft negde oko Viste ili 7-mice (valjda, ne secam se vise) uveo paralelnu inicijalizaciju drajvera upravo kako bi smanjili problem. Ali i dan danas, recimo, meni se OS cold-bootuje jako dugo, iako je na najbrzem konzumerskom NVMe disku i radi na prilicno brzim procesorima. Ali fakat da mora da inicijalizuje brdo hardvera ocigledno jos nije zadovoljavajuce resen.
DigiCortex (ex. SpikeFun) - Cortical Neural Network Simulator:
http://www.digicortex.net/node/1
Demo Videos: http://www.digicortex.net/node/17
Gallery: http://www.digicortex.net/node/25
 
Odgovor na temu

Nedeljko
Nedeljko Stefanović

Član broj: 314
Poruke: 8269
*.ptt.rs.



+2617 Profil

icon Re: PC as a poorly debugged set of device drivers01.01.2019. u 20:07 - pre 21 dana i 7h
Ovde se problematizuje monopolizacija tržišta web engine-a cloud eri.

Ja mislim da je cloud u danas masovnom obliku problem, kakav god da se web engine koristi.

Zašto AutoDesk ne podržava druge web engine? Da li mu je 20% korisnika drugih web engine-a problem? Očigledno nije, jer

1. Ima monopol nad CAD segmentom.

2. Korisnik će vrlo lako za AutoCAD da koristi web browser koji mu AutoDesk odredi, bez obzira na to koji web browser koristi za druge stvari.

Zašto se piše neoptimizovan kod? Zato što korisnici ne žele da odreše kesu za optimizovan kod.
Nije bitno koji su zaključci izvučeni, već kako se do njih došlo.
 
Odgovor na temu

Branimir Maksimovic

Član broj: 64947
Poruke: 1896
109.72.51.*



+448 Profil

icon Re: PC as a poorly debugged set of device drivers02.01.2019. u 01:34 - pre 21 dana i 2h
Ivan:"Sve u svemu, odavno smo usli u fazu da je generalno kod djubre i bar neki OS-evi se trude da minimizuju stetu."

Mislim da OS tu ne moze mnogo. Recimo na Windows-u zesci bloat dolazi od antivirusa koji su se ranije (ne znam da li i danas) inkorporirali u kernel.
Vidjao sam kako neki antivirus rusi XP kernel bez problema, a to su programi koji se vrte 24/7 i usporavaju sve operacije.
Iance kvalitet Windows koda sudeci po headerima is visual studia i samom WinApi-ju je questionable...




press any key to continue or any other to quit....
 
Odgovor na temu

Ivan Dimkovic

Administrator
Član broj: 13
Poruke: 15765
*.speed.planet.nl.



+6367 Profil

icon Re: PC as a poorly debugged set of device drivers02.01.2019. u 19:35 - pre 20 dana i 8h
Slazem se, zapravo nisam ni mislio na Windows vec na iOS i, u nekoj meri, Android. Windows je verovatno bez nade zbog kompatibilnosti koju moraju da odrzavaju.

Moje misljenje o Windows antivirusima (ne znam kako funkcionisu na drugim OS-evima) je vrlo nisko, to sta se dozvoljava tim aplikacijama je prakticno isto sto rade i virusi (u smislu niske "integracije" u OS) samo se AV vendorima veruje da ne rade nista lose.

Citat:
Branimir Maksimovic
Iance kvalitet Windows koda sudeci po headerima is visual studia i samom WinApi-ju je questionable...


Ako pogledas npr. Windows Research Kernel, videces da je kernel kod Windowsa dobrog kvaliteta i vrlo cist.

Userland kod... ko ce ga znati, verovatno druga prica :-)
DigiCortex (ex. SpikeFun) - Cortical Neural Network Simulator:
http://www.digicortex.net/node/1
Demo Videos: http://www.digicortex.net/node/17
Gallery: http://www.digicortex.net/node/25
 
Odgovor na temu

Branimir Maksimovic

Član broj: 64947
Poruke: 1896
109.72.51.*



+448 Profil

icon Re: PC as a poorly debugged set of device drivers03.01.2019. u 01:38 - pre 20 dana i 2h
Ma mene nervira sto prebacuju sve preko integera (wparam,lparam) sto automatski elimininise arhitekture koje imaju sire pointere. I potom nema mogucnosti prebacivanja user data pa ne mozes this pointer
da prebacujes u window proc tako lako. Ja sam pravio run time generaciju thunka samo da bih mogao da prosledim this pointer ;p

edit:
a da ne govorim sto je lik ogranicio 32 bitni proces na 2GB zato sto je uzeo jedan bit da razlikuje pointer od handle-a ;)

[Ovu poruku je menjao Branimir Maksimovic dana 03.01.2019. u 02:55 GMT+1]
press any key to continue or any other to quit....
 
Odgovor na temu

bojan_bozovic

Član broj: 29028
Poruke: 2951
87.116.183.*

Sajt: iching.ch


+290 Profil

icon Re: PC as a poorly debugged set of device drivers03.01.2019. u 08:40 - pre 19 dana i 18h
Branimir Maksimovic

To je API iz vremena kad je 8 Mb RAM bilo dovoljno za skoro sve. Zasto ne koristis 64 bita? Zasto uopste maris za 32 bita u 2019. jer ko uopste prodaje 32 bitne racunare?
 
Odgovor na temu

Ivan Dimkovic

Administrator
Član broj: 13
Poruke: 15765
*.speed.planet.nl.



+6367 Profil

icon Re: PC as a poorly debugged set of device drivers03.01.2019. u 10:17 - pre 19 dana i 17h
Citat:
Branimir Maksimovic:
Ma mene nervira sto prebacuju sve preko integera (wparam,lparam) sto automatski elimininise arhitekture koje imaju sire pointere. I potom nema mogucnosti prebacivanja user data pa ne mozes this pointer
da prebacujes u window proc tako lako. Ja sam pravio run time generaciju thunka samo da bih mogao da prosledim this pointer ;p

edit:
a da ne govorim sto je lik ogranicio 32 bitni proces na 2GB zato sto je uzeo jedan bit da razlikuje pointer od handle-a ;)

[Ovu poruku je menjao Branimir Maksimovic dana 03.01.2019. u 02:55 GMT+1]


Win32 API je zbrda-zdola zbudzena ekstenzija Windows 3.x API-ja zbog odrzavanja maksimalne kompatibilnosti i od tog momenta je evolucija istog bila zakucana sa tim.

Sama imena (wparam, lparam) su relikti te istorije i cinjenice da je Windows API originalno nastao na 16-bitnoj PC arhitekturi.

Sa druge strane, kernel deo NT familije Windows-a (NT, Win2k, XP, Vista, 7/8/10) je od starta bio propisno dizajniran zato sto ga je radio kompetentan tim neobuzdan sa odrzavanjem kompatibilnosti. Originalno je NT API trebao da ima OS/2 API kao userland ali je zbog izuzetnog uspeha Windows-a cela stvar promenjena i tako je i nastao "Win32 API".

Na zalost po performanse i kvalitet, MS je uvek prioritizirao maksimalnu kompatibilnost i njihove userland API odluke su takve kakve jesu zbog toga.

Btw, tvoj problem sa this pointerom o kojoj se arhitekturi radi?

64-bitni Windows API ima SetWindowLongPtr API koji prima LONG_PTR kao argument, tako da mozes da stavis 64-bitni pointer kao GWLP_USERDATA na sta god hoces.
DigiCortex (ex. SpikeFun) - Cortical Neural Network Simulator:
http://www.digicortex.net/node/1
Demo Videos: http://www.digicortex.net/node/17
Gallery: http://www.digicortex.net/node/25
 
Odgovor na temu

Branimir Maksimovic

Član broj: 64947
Poruke: 1896
109.72.51.*



+448 Profil

icon Re: PC as a poorly debugged set of device drivers03.01.2019. u 11:01 - pre 19 dana i 16h
Znas kako problem je u tome 'set'. Znaci da bilo sta u bilo kom trenutku moze da nasetuje pointer na nesto drugo i eto problema ;(
Pazi nisam se dzabe mucio da generisem thunk gde this pointer bacam kao prvi argument u member f-ju / windows proceduru koji pozivam ;p

press any key to continue or any other to quit....
 
Odgovor na temu

Ivan Dimkovic

Administrator
Član broj: 13
Poruke: 15765
*.adsl-surfen.hetnet.nl.



+6367 Profil

icon Re: PC as a poorly debugged set of device drivers03.01.2019. u 11:10 - pre 19 dana i 16h
Hmmm, priznajem da je moje znanje Windows API-ja matoro, ali CreateWindow prima lpParam koji je LPVOID, tj. sirine pointera na radnoj arhitekturi.

Taj parameter ce biti prosledjen tvojoj Window proceduri u WM_CREATE poruci i onda ti mozes unutar obrade te poruke da je uskladistis gde god hoces, ako ne verujes Windows API-ju tj. bojis se da neko drugi moze da ti pokvari GWLP_USERDATA podatke od prozora, onda mozes da napravis neki svoj niz (hwnd, this ptr.) kojem samo ti imas pristup.

Ali Windows API ti daje mogucnost skladistenja 64-bitnih podataka u njihovoj internoj strukturi prozora - posto je to C API, nemas "privatnost" (kao sto si primetio) ali to je muka sa celim Win32 API-jem uopste, unutar procesa se smatra da su svi "fer plejeri" :-)

Bilo je gore nekada, nekada si cak mogao izmedju procesa da "kvaris" prozore, secam se da je u vreme Windows 95-tice to bio jako popularan sport "unapredjenja" prozora sa kojekakvim nakaradnim subclass-ingom / hook-ovanjem. Srecom pa su kasnije uveli restrikcije da se gomila stvari moze promeniti samo unutar istog procesa. To je jos jedan "hint" koji otkriva pravo poreklo Win32 API-ja - sa single-user, nesigurne 16-bitne platforme gde se sve "delilo" kao u jednoj velikoj srecnoj familiji :-)
DigiCortex (ex. SpikeFun) - Cortical Neural Network Simulator:
http://www.digicortex.net/node/1
Demo Videos: http://www.digicortex.net/node/17
Gallery: http://www.digicortex.net/node/25
 
Odgovor na temu

Branimir Maksimovic

Član broj: 64947
Poruke: 1896
109.72.51.*



+448 Profil

icon Re: PC as a poorly debugged set of device drivers03.01.2019. u 11:18 - pre 19 dana i 16h
Pazi nije mi bilo tesko da odmah naidjem na ovo:
Citat:

While using the SetWindowLongPtr and GetWindowLongPtr to access the GWL_USERDATA might sound like a good idea, I would strongly recommend not using this approach.

This is the exactly the approached used by the Zeus editor and in recent years it has caused nothing but pain.

I think what happens is third party windows messages are sent to Zeus that also have their GWL_USERDATA value set. One application in particular was a Microsoft tool that provied an alternative way to enter Asian characters in any windows application (i.e. some sort of software keyboard utility).

The problem is Zeus always assumes the GWL_USERDATA data was set by it and tries to use the data as a this pointer, which then results in a crash

https://stackoverflow.com/ques...his-pointer-for-use-in-wndproc

A gle ovo na istom:
Citat:

ATL's thunk is the most efficent. the thunk executes once and replaces the callback function for the WINPROC to the classes own message processing member function. subsiquent messages are passed by a direct call to the classes member function by windows. it doesnt get any faster than that.


Znaci radio sam isto sto radi ATL ;)
press any key to continue or any other to quit....
 
Odgovor na temu

Ivan Dimkovic

Administrator
Član broj: 13
Poruke: 15765
*.adsl-surfen.hetnet.nl.



+6367 Profil

icon Re: PC as a poorly debugged set of device drivers03.01.2019. u 11:32 - pre 19 dana i 16h
Uprvo - problem je sto "privatni" podaci nizu zaista privatni posto u Win32 API-ju i dan danas do neke mere (mnogo manje nego ranije) 3rd party moze da ti "ukrasi" prozor sa svojim hook-ovima / promenama i unese probleme ako se oslanjas da su podaci koje si setovao u HWND strukturi zaista tvoji.

Zato se slazem da je bolje da svoje privatne podatke drzis razdvojeno od HWND "privatnih" podataka i da ih nalazis po HWND kljucu ili kako vec hoces. To sto stavis u HWND podatke je za ceo svet da vidi i, ako imaju dovoljno privilegija, i da menjaju.
DigiCortex (ex. SpikeFun) - Cortical Neural Network Simulator:
http://www.digicortex.net/node/1
Demo Videos: http://www.digicortex.net/node/17
Gallery: http://www.digicortex.net/node/25
 
Odgovor na temu

Space Beer
ISS

Član broj: 325788
Poruke: 71
185.96.210.*



+49 Profil

icon Re: PC as a poorly debugged set of device drivers19.01.2019. u 17:49 - pre 3 dana i 9h
Evo i Igor ima nešto da kaže na ovu temu, manje-više :)
https://www.dedoimedo.com/comp...ge-for-the-sake-of-change.html

Jedino se ne slažem da je kod avio-prevoznika problem low-cost ponuda i loša usluga, pošto uvek postoji biznis pa i prva klasa :) Veći problem su ovakve situacije, nastale iz istog razloga kao i sve ostalo što je naveo
https://www.bleepingcomputer.c...cted-by-major-security-breach/

 
Odgovor na temu

[es] :: Advocacy :: PC as a poorly debugged set of device drivers

Strane: 1 2

[ Pregleda: 2246 | Odgovora: 32 ] > FB > Twit

Postavi temu Odgovori

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