Jak inżynier Windowsa programował…

Jak inżynier Windowsa programował…

przez -
11 508

Na stronie linux.pl pojawił się bardzo ciekawy artykuł napisany przez Zbigniewa Karkuszewskiego, który opisuje zmagania z uruchamianiem karty pomiarowej w laboratorium Instytutu Fotonowego. Autor opisuje dlaczego zdecydowało się produkować kartę pomiarową tylko pod Linuksa.

Karta pomiarowa na USB (Linux)

Okazało się, że obsługa USB w Windows ma przerwy w transferze danych. Jeśli dane nie są gromadzone na karcie to taka przerwa oznacza ich bezpowrotną stratę.

Trochę głupia sprawa. Potrafiliśmy zbudować kartę pomiarową, a nie potrafimy jej oprogramować. Ludzie po doktoratach, komputerowi guru … eech.

Zajęło mi dwa tygodnie intensywnego szukania w google i przeglądania źródeł kernela, żeby nauczyć się pisania modułów linuksowych, zrozumieć sposoby obsługi USB i wreszcie napisać własny moduł, który nie tylko nie gubił danych z naszej karty pomiarowej ale jeszcze osiągał transfer 80 MB/s, o 16MB/s więcej niż maksymalny dopuszczalny dla USB 2.0.

Zapraszamy do przeczytania bardzo ciekawej lektury: Jak inżynier Windowsa programował….

  • Yutpo

    Ciekawe. No ja z ręki bym mógł podać kilka przyczyn czemu im ta karta nie chciała działać. Po pierwsze odpowiedni tryb USB, po drugie kontrola paczek danych, no panowie po doktoratach nie wiedzą, ze trzeba kontrolowac czy dane doszly cale, nawet po USB? Juz mialem do czynienia z jedną aparaturą badawczą na USB pod Windowsa i śmigała aż miło. Kwestia chęci i motywacji. No ale ja tam nic nie mowie, bo flejm znowu się zrobi. Ja programuję tylko od 10 lat i co mogę wiedzieć tam więcej od pryszczatych nastolatków, albo doktorów fizyki.

  • Ja pisałem sterownik do termometru USB i na Linuksie było to o wiele prostsze niż na Windowsie.

  • Michał

    @Kamil Porembiński

    Kiedyś czytałem wypowiedź pracownika MS, który porównywał pisanie sterowników pod Linuksa i Windows NT. Powiedział, że żeby zacząć pisać sterowniki pod Linuksa wystarczy przeczytać jedną (dobrą) książkę. Żeby pisać sterowniki pod WinNT trzeba przeczytać kilka książek. Teoretycznie więc pod Linuksa jest łatwiej, później dopiero zaczyna się jazda, jak trzeba utrzymywać zamknięty sterownik poza jądrem i dostosowywać go do zmian w API ;)

  • Problemem jest jak zwykle brak specyfikacji od producenta sprzętu :) A sterowniki serio prosto się pisze ;)

  • Michał

    Specyfikacja oczywiście też jest mile widziana. Kiedyś spędziłem kilkanaście rebootów nad dodaniem wsparcia dla mojego GF 7300 GT w buforze ramki – z pozoru zwykłe dodanie PCI id, ale trzeba to było zrobić w kilku miejscach (zajrzyj do kodu sterownika nv fb, żeby się dowiedzieć o co chodzi). Z braku specyfikacji musiałem to robić na chybił trafił – ta karta jest podobna do tego i tego modelu, to pewnie musi być tak ;)

  • "Ja pisałem sterownik do termometru USB i na Linuksie było to o wiele prostsze niż na Windowsie." – był także większy bałagan, na 10 ludzi 5 zrobiło by to na różne sposoby, następnych 5 zastanawiałoby się co mieli na myśli Ci poprzedni, ale o tym nie wspomniałeś. Szkoda, że "utrudnienia" typu szeroko zakrojona standaryzacja w Windowsie, traktowana jest przez fanów Linuxa jako wada.

  • gość

    Nikt jakoś nie uczepił się tego, że użytkownicy desktopów pracujących pod kontrolą Windows ( których jest – strzelam – ~10 razy więcej, niż desktopowych użytkowników wszelkiej maści GNU/Linux'ów ) mają w swoim systemie wadliwą obsługę USB. Jak to możliwe – przecież to element napisany przez sam Microsoft :)

    Jak to jest, że Ci pogardliwie nazywani pryszczersi ( lub jak kto woli – "linuksiarze" ), mają w swoim kernelu do dyspozycji lepszą obsługę USB?

  • Michał

    @gość

    "których jest – strzelam – ~10 razy więcej"

    W Polsce (zgodnie ze statystykami ranking.pl) jest ponad 180 razy więcej użytkowników Windows niż Linuksa.

    "mają w swoim systemie wadliwą obsługę USB. Jak to możliwe – przecież to element napisany przez sam Microsoft :)"

    Ja tam nie wiem, inni jakoś nie narzekają na USB pod Windows. U mnie drukarka, mysz, klawiatura działają. Takie egzotyczne problemy z USB kwalifikuje do kategorii "who cares?".

    Gdybym wziął dowolną wersję Linuksa, to w ciągu paru godzin znalazłbym jakieś błędy/problemy – robiłem to już wielokrotnie.

  • LMB

    "Ja tam nie wiem, inni jakoś nie narzekają na USB pod Windows. U mnie drukarka, mysz, klawiatura działają. Takie egzotyczne problemy z USB kwalifikuje do kategorii “who cares?”."

    I do care.

    Dobrze, że przeczytałem ten artykuł, i wręcz zajebiście, że mój szef ma odchył w stronę Linuksa. Będę pchał rozwój wszelkich "workstacji" w stronę linuksa, bo LabView działa na nim zdaje się bez problemu (sprawdzę), a nowe karty USB z National Instruments są tylko nieco droższe niż PCI – z tą drobną różnicą, że USB jednak chyba wytrzyma trochę więcej lat, więc kupujemy USB.

    Fajnie wiedzieć, że mam kolejny argument!

  • Odysseusz

    Błędy/problemy w Linuxie… – najczęściej z obsługą konkretnego sprzętu – trudno od społeczności linuksowej (tych pryszczatych…) oczekiwać tworzenia sterowników pod wszystko co jest na rynku. Ale zainstalujcie sobie cokolwiek pod windowsa bez sterowników producenta…

    U mnie od lat chodzi Linux bez problemów, a zmieniając sprzęt szukam po prostu kompatybilnego z Linuxem. Nie muszę kraść albo wydawać niesamowitej kasy na system, pakiet biurowy, fotoshopa – choć za swojego Linuksa płacę (ok 70 zł co roku).

  • Mały

    "Gdybym wziął dowolną wersję Linuksa, to w ciągu paru godzin znalazłbym jakieś błędy/problemy…"

    A ja chętnie zajrzałbym w kod Windowsa ;)

    Ciekawe ile tam błędów by się znalazło, jako że raczej więcej ludzi pracuje przy kodzie Linuxa, błędy w nim są szybciej znajdowane, co za tym idzie szybciej łatane.