|
Титла: Не само разработчиците на Линукс ядрото са идиоти Публикувано от: 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
Всъщност съм прекалено малък, за да се занимавам толкова усилено с информатика, но ще ми кажеш ли кое ти звучи нелогично ? |