Титла: Не само разработчиците на Линукс ядрото са идиоти Публикувано от: tarator в Dec 19, 2007, 18:11 Всеки който е разглеждал кода на разни драйвери в ядрото знае, че качеството им не е кой знае колко добро (меко казано). Въпреки, че пиша предимно за Линукс, когато трябва да портвам драйвер за друга операционна система, обикновено използвам някой от *BSD драйверите (ако има такъв) и само сверявам с кода от Линукс драйверите. Та, израза че Линукс разработчиците са идиоти си е частна шега между хората с които работим заедно.
Това е имейла, който изпратих вчера до някои от тях (преведен на български): От atheros драйвера в OpenBSDs, sys/dev/ic/ar5xxx.h:
Макросът се използва в цикли, които записват стойности в регистри, нещо като:
Възможностите са две: 1. Разработчиците на OpenBSD са идиоти защото си правят труда да "икономисат" една микросекунда за всеки 64 записа/микросекунди. 2. Разработчиците на OpenBSD са идиоти защото не знаят как да използват оператора %. (т.е. искат да направят пауза от 1 микросекунда на всеки 64 записа, но са оплескали условието в if-a). Коя от двете възможности избирате? ![]() П.П. Предимствата на отворения софтуер се виждат ясно в този случай -- драйверът за Линукс има същия бъг ![]() Титла: Не само разработчиците на Линукс ядрото са идиоти Публикувано от: gat3way в Dec 19, 2007, 18:43 Вероятно целта им е била веднъж на 64 пъти да не правят пауза
![]() Титла: Не само разработчиците на Линукс ядрото са идиоти Публикувано от: tarator в Dec 19, 2007, 18:44 Това автоматично ги прави идиоти, вж. 1
![]() Титла: Не само разработчиците на Линукс ядрото са идиоти Публикувано от: gat3way в Dec 19, 2007, 18:45 Е глей ся не знам какво прави AR5K_DELAY(1), затова просто предполагам. Може и да прави нещо друго, освен да дреме
![]() Титла: Не само разработчиците на Линукс ядрото са идиоти Публикувано от: tarator в Dec 19, 2007, 18:47 Прави една микросекунда пауза.
Титла: Не само разработчиците на Линукс ядрото са идиоти Публикувано от: gat3way в Dec 19, 2007, 18:48 Хм, сигурно Тео the Rat има пръст в тази работа
![]() ![]() Титла: Не само разработчиците на Линукс ядрото са идиоти Публикувано от: tarator в Dec 19, 2007, 18:59 Основната причина да пусна коментара е, че пример много добре показва, че предимството "много очи, малко бъгове" не работи, очите първо трябва да могат да виждат.
Обзалагам се, че и след 1 година този бъг все още ще си е там (защото аз нямам намерение да съобщавам за него). Титла: Не само разработчиците на Линукс ядрото са идиоти Публикувано от: gat3way в Dec 19, 2007, 19:08 Ами добре, само че аз не вярвам, че ако очите са по-малко и има една пасмина слабоумни QAs с големи претенции и заплати, нещата ще са по-добре. Мисля, че една друга операционна система го доказва достатъчно нагледно
![]() Апропо, OBSD хората имат претенции че пишат перфектен код от едва ли не академично-доказани разработчици и тем подобни глупости, имат си едни хак-а-тони, на които пишат и дебъгват. Отделно дето Тео е един абсолютен трол, който постоянно плюе по линукс community-то. А съм сигурен, че този драйвер е порт-нат от обсд. Така че не знам.. Титла: Не само разработчиците на Линукс ядрото са идиоти Публикувано от: tarator в Dec 19, 2007, 19:17 Като стана дума за една друга операционна система, ето какво видях днес:
Optimization, the Microsoft way This was found in the 2004 leaked Windows sources __inline BOOL SearchOneDirectory( IN LPSTR Directory, IN LPSTR FileToFind, IN LPSTR SourceFullName, IN LPSTR SourceFilePart, OUT PBOOL FoundInTree ) { // // This was way too slow. Just say we didn't find the file. // *FoundInTree = FALSE; return(TRUE); } Титла: Не само разработчиците на Линукс ядрото са идиоти Публикувано от: gat3way в Dec 19, 2007, 20:00 Знаех си, че ако стана някога програмист, моят бъдещ работодател ще е Майкрософт
![]() Титла: Не само разработчиците на Линукс ядрото са идиоти Публикувано от: Nikolavp в Dec 19, 2007, 20:14 Определено мисля, че това е бъг и са искали да постигнат второто, но не са съобразили, че трябва да има един ! преди израза
![]() ![]() П.С. Тва с функцията от прозореца май е шега ![]() Титла: Не само разработчиците на Линукс ядрото са идиоти Публикувано от: Lord Bad в Dec 19, 2007, 21:14 Обикновено драйверите ги пишат хардуерни инженери, които нямат кой знае какъв опит в програмирането и затова се получава така. И аз сега работя по едно драйверче и като гледам в кода на разни подобни драйвери има и там разни неразчетени изпълнения. Но нещата винаги се компенсират - аз като видя някоя по сложна принципна схема или pcb почти нищо не мога да вдяна от тях. Никой не може да знае всичко.
Титла: Не само разработчиците на Линукс ядрото са идиоти Публикувано от: tarator в Dec 19, 2007, 21:40 Специално atheros драйвера не е писан от хардуеристи, а е reverse engineered от някой.
Титла: Не само разработчиците на Линукс ядрото са идиоти Публикувано от: gat3way в Dec 19, 2007, 21:57 Абе сега се присетих...имаше някакви големи драми свързани с този драйвер навремето на LKML доколкото имам спомени...ама нещо ми се губят нещата. Нещо сходно с драйверите на АТИ беше, фирменият драйвер беше някакъв "blob" май и някакви такива работи, техни политически там.
Честно казано слабо ме интересуват такива неща де. Нямам много против драйвери, които не са с отворен код. Стига да работят и да има подръжка като хората, а не като си сменя ядрото да нямам начин да си подкарам джаджата.. Титла: Не само разработчиците на Линукс ядрото са идиоти Публикувано от: edmon в Dec 19, 2007, 23:43 хах сигурно искат да чака .. щото като правиш записи може и да е проблем... ама явно и така си работи
![]() а иначе що му фащаш край си длъжен да им кажеш че има бъг ![]() по мое скромноо мнение де! ![]() Титла: Не само разработчиците на Линукс ядрото са идиоти Публикувано от: ray в Dec 20, 2007, 09:32 Здравейте,
Нима има някой безгрешен, или винаги да е във форма, и това че греши прави ли го идиот ? Без лоши чувства. Румен Титла: Не само разработчиците на Линукс ядрото са идиоти Публикувано от: console в Dec 20, 2007, 12:09
//offtopic Мойте съболезнования ![]() Титла: Не само разработчиците на Линукс ядрото са идиоти Публикувано от: tarator в Dec 20, 2007, 16:12 ray,
Когато някой направи такава елементарна грешка, той е идиот. Когато аз направя такава елементарна грешка, аз си признавам че съм идиот. Титла: Не само разработчиците на Линукс ядрото са идиоти Публикувано от: console в Dec 20, 2007, 16:14
Ами ако за него това не е грешка тогава какво означава?? Сигурно ,че е пълен идиот? ![]() Титла: Не само разработчиците на Линукс ядрото са идиоти Публикувано от: tarator в Dec 20, 2007, 16:19 console,
Философствам за различията във възприятието на света от различни индивиди само в понеделник, първо число от месеца, от 17:30 до 17:40 ![]() Титла: Не само разработчиците на Линукс ядрото са идиоти Публикувано от: nov_chovek в Dec 20, 2007, 21:43 tarator,
ти пък като си мислиш, че е бъг, що не съобщиш? Може да излезе, че си има причина за това "приспиване". Титла: Не само разработчиците на Линукс ядрото са идиоти Публикувано от: ray в Dec 21, 2007, 11:15
&tarator, Съгласен съм, лично аз препочитам да не давам оценки (освен за себе си:-) Дори не мислех да пиша, но се сетих нещо което ми се случи преди много време - ~1997. Наложи ми се да 'импортирам' ~1500 реда в база данни, но процеса винаги спираше но на различни места с код за грешка (да е на едно място ясно, обаче така). След доста мислене предположих че ще да е от разликата в бързодействието между процесора и дисковата подсистема. Това ми реши проблема (вмъкнах празен цикъл), и всичко се 'импортира'. Сега ако някой погледне кода (това е чисто хипотетично, тъй като дори аз вече го нямам - то и един код ;-) едва ли ще разбере защо аджиба е този цикъл :-) Когато писах първия си коментар 'това' го нямах предвид едва сега се сетих. Поздрави. Румен Титла: Не само разработчиците на Линукс ядрото са идиоти Публикувано от: Nikolavp в Dec 21, 2007, 14:50
&tarator, Съгласен съм, лично аз препочитам да не давам оценки (освен за себе си:-) Дори не мислех да пиша, но се сетих нещо което ми се случи преди много време - ~1997. Наложи ми се да 'импортирам' ~1500 реда в база данни, но процеса винаги спираше но на различни места с код за грешка (да е на едно място ясно, обаче така). След доста мислене предположих че ще да е от разликата в бързодействието между процесора и дисковата подсистема. Това ми реши проблема (вмъкнах празен цикъл), и всичко се 'импортира'. Сега ако някой погледне кода (това е чисто хипотетично, тъй като дори аз вече го нямам - то и един код ;-) едва ли ще разбере защо аджиба е този цикъл :-) Когато писах първия си коментар 'това' го нямах предвид едва сега се сетих. Поздрави. Румен Той няма нищо против празният сикъл ![]() ![]() ![]() п.с. Понеже ми стана интересно има ли спецификация за тая простотия ![]() ![]() Титла: Не само разработчиците на Линукс ядрото са идиоти Публикувано от: Stratovarius в Dec 21, 2007, 15:31 Nikolavp,
прочети си коментара и ще видиш колко е безмислен, личи си че не се занимаваш с информатика ![]() Титла: Не само разработчиците на Линукс ядрото са идиоти Публикувано от: tarator в Dec 21, 2007, 16:46 Nikolavp,
Спецификация има, в документацията на Интел и АМД пише колко процесорни цикъла е всяка инструкция. След това трябва да вземеш предвид каква е вероятността няколко инструкции да се изпълнят едновременно (заради суперскаларността), каква е вероятността данните да не се четат от паметта, а от някой от кешовете, каква е вероятността да направиш TLB miss и т.н. Сметките изобщо не са прости и почти никой не ги прави ![]() Титла: Не само разработчиците на Линукс ядрото са идиоти Публикувано от: gat3way в Dec 21, 2007, 17:13 Абе сега тръгнах да търся такъв драйвер в source tree-то и нещо нямам успех. Как точно се казва тва нещо в linux? grep-вах AR5K, theros, etc, нямам успех. Съжалявам за глупавия въпрос
![]() Титла: Не само разработчиците на Линукс ядрото са идиоти Публикувано от: Nikolavp в Dec 21, 2007, 17:19
Всъщност съм прекалено малък, за да се занимавам толкова усилено с информатика, но ще ми кажеш ли кое ти звучи нелогично ? |