Я активно сейчас курю книгу Linux Kernel Development, и чем глубже копаю — тем грустнее становится. То, что я раньше считал красивым и шустрым ядром, оказалось ужасным нагромождением тупых и малопонятных макросов, запутанных конструкций и прочей членотени. Шелдуер реализован красиво имхо, мне очень понравилось. А остальное вызывает лишь сочуствие. В общем блин, что-то я разочаровалчся в ядре линуха :) Знакомый kernel developer (ковырял сырцы ядер NT, linux, freebsd итд), говорит что в NT все красивее, но хрен ты что серьезное напишешь без сырцов ядра, а из unix систем самое красивое ядро у DragonflyBSD, правда проект почти заглох.
В общем воть, буду рад если вы меня убедите в том, что я неправ :) А то на фоне злого понедельник, больной головы, температуры +15 в офисе и мокрого снега на улице — настроение совсем в жопе :(
Последние комментарии
- OlegL, 17 декабря в 15:00 → Перекличка 21
- REDkiy, 8 июня 2023 года в 9:09 → Как «замокать» файл для юниттеста в Python? 2
- fhunter, 29 ноября 2022 года в 2:09 → Проблема с NO_PUBKEY: как получить GPG-ключ и добавить его в базу apt? 6
- Иванн, 9 апреля 2022 года в 8:31 → Ассоциация РАСПО провела первое учредительное собрание 1
- Kiri11.ADV1, 7 марта 2021 года в 12:01 → Логи catalina.out в TomCat 9 в формате JSON 1
ну что тут скажешь. ты сам все сказал
Дело не в ядре )))
Простому юзеру чхать на ядро, лишь бы все работало
Zlin, LONGOBARD спрашивал про мнение не обчных пользователей, которые и не должны ничего знать о структуре ядра и его особенностях, а о мнении программиста, кто хоть что-то писал и понимает в этом. ведь так, LONGOBARD?
курить вредно!
ЗЫ: лучше вари в молоке! ;)
Я читал LKD тоже. Ну что я могу сказать… Может это и не самое красивое ядро, но модель разработки Linux (worse is better) + огромное (для ядра) количество разработчиков напрямую влияют на «красивость» этого самого кода. Предполагается, что с течением времеии оно всё «отполируется».
С другой стороны, разработка проходит очень быстро, и поддерживается большое количество железа. Может и не на высшем уровне, но хоть как-то.
Ага :)
myst что-то я сомневаюсь что оно «Отполируется» ;)
А что за модель worse is better?
http://en.wikipedia.org/wiki/Worse_is_better
LONGOBARD, привинти hurd ;)
Ой, а пробовал не курить её, а почитать? ;)
О какой ветке ядра идёт речь?
Т.е. пока ты не видел исходников, оно было «красивым» и «шустрым», а как только взглянул на код — «оказалось ужасным"? ;) Ты туда больше не заглядывай — крепче спать будешь ;)
Надо бы приводить куски кода, которые тебя смущают, чтобы мы все тут посмотрели, что именно там такого грустного. А-то, вон, материнская плата моего компьютера тоже нагромождена кучей малопонятных мне элементов электрических цепей. Она говно? ;)
Легко тебя разочаровать ;) А какже гентушная натура — разобраться во внутренностях самому? А-то сегодня ядро линукса говно, завтра ещё один товарищ расскажет, что ядро виндовса говно. Так и будешь слоняться между мнениями товарищей ;).
«Красивее» — забавный аргумент ;). И чем именно «красивее», твой товарищ, конечно же, рассказал? ;)
Да ладно тебе так расстраиваться-то. Ядро ОС — это всего лишь ядро ос =). Если оное по каким-то причинам не устраивает, бери другое (читай: меняй ОС) или исправляй имеющееся (если хватит сил, конечно же ;)). Делов-то ;)
Ты по сути ничего не сказал, в чём убеждать-то?
Почему же? Ты отслеживаешь тенденции развития ядра? Как сильно изменилась его разработка в сторону ухудшения? В какой ветке? Каких компонентов?
Ты это… поаккуратнее… настроение в голове обычно. ;)
3е издание, ветка 2.6, в частности ядро 2.6.10
Угу, меньше знаешь — легче дышишь :)
Красота — понятие сурбьективное. Лично мне режет глаз обилие дурацких макрософ.
В том, что я полено :)
Да, читаю LKML и рассылку Con-а Kolivas-а. И там четко прослеживается мысль «давайте вводить новые фичи, и хрен с ним со старым кодом, работает — не трогай». Да и сам подход к кернел девелопменту надо менять имхо. Вот МС с Signularity пошли верным путем имхо, развивая идею SIPов. А юних как жил идеологией «в ядре все разрешено, в ядре ведь ковыряюцца только умные папки, так что все там замечательно». А результат такого раздолбайства я ощутил недавно, когда помирающая сетевуха поставила попой кверху свой драйвер (e100pro вроде), и из-за сбоя этого драйвера встала раком вся система (она просто повисла, без всяких oops-ов или panic-ов, просто перестала отзываться на какие-либо события, никакие сервисы не работали, в логах запись «блаблабла Hadrware error» от драйвера сетевухи, а потом тишинааа… Тишина до момента когда я пришел домой и нажал кнопку reboot.). Вот вам и ниибацца стабильное ядро. А все потому, что подход к разработке ядра фактически не менялся с момента зарождения линукса, когда его писала небольшая группка человек.
да, видимо, только тебе и режет. сколько людей — столько мнений ;)
предполагаю, что твое ядро имеет имя что-то типа preview1 или alpha0,5…
Нету у меня никакого ядра, но слив защитан. Я говорю про сравнение ядер Win и Lin. В Win нету такой порнографии с макросами, посмотри сорцы хоть NT хоть 2000. Сорцы NT есть в инете целиком спижженные, из них можно полностью систему собрать. Так что эта, вперед.
Кстати, а до какой версии дошло твое ядро? А?
Т.е. по существу всё-таки сказать нечего? ;)
Ух ты! Т.е. виндового BSOD ты не видел? И то, что кривой драйвер — одна из самых распространнёных причин «голубого окна смерти», значит ты тоже не знаешь =/. А, ну тогда да, надо срочно начинать работать в виндовс — пропустишь легендарное явление (кто его знает, вдруг в следующих версиях NT ядро действительно ничем не опрокинешь).
А, любитель считать «сливы» =/. Ты ничего «ужасны» так и не привёл. Единственный твой аргумент был: «Красота — понятие сурбьективное. Лично мне режет глаз обилие дурацких макрософ». Т.е. «слив»-таки засчитан, и именно тебе? ;)
Ты чего к макросам-то прицепился? Если они тебе непонятны — это ещё ничего не значит ;).
Эта, а в NT ядре нет порнографии чтоли?
Ч-чего?! Это из тех самых «спиженных» исходников? Когда протрезвеешь — попробуй сам ;). Как соберёшь, приходи обратно. Надеюсь, лет через 15 nixp всё так же будет полна весельчаков, типа тебя ;)
BSOD — аналог oops/panic.
Порнография есть везде!
Во-первых не надо оскорблений, во вторых это действительно так. Скриптов для сборки там вроде нету, но набор исходников полный. Напомню речь идет про NT, а не про жалкую кроху сырцов 2k.
Суть не в определении термина, а в том, что кривой драйвер может уронить NT с той же вероятность, что и линукс.
А, в NT-ядре она «красивее» ;).
Не хотел я тебя оскарблять. Сорри. Лишь пытался отметить твоё чувство юмора ;). Ну так чего, возьмёшься за сборку или опять «слив» засчитан? ;)
За сборку не возьмусь :) Но в этот раз слив не защитан.
drevil@drevil:~> uname -r
2.6.13-15-default
Linux ставил на десятки машин, где использовался модуль, который повесил твою систему, но ни разу не видел такого. правда, все дистрибутивы были не дженту
Ага, да, конечно, в генту ядро особенное ;)
Для справки: ядро у меня самое обычное. А не видел ты потому что Intel EtherExpress у тебя не помирала, и не срала в лог Hardware Error-ами. Попробуй ее отверточкой ковырни (гы-гы) :)
P.S.: вашумать где же decvar
Мдя… развели флеймууу… а зачем? То что ядро написано неряшливо (макросы и т.д.) не означает, что с алгоритмической точки зрения там то же самое. Хотя и вызывает подозрения. Ну не все же Томпсоны, Ричи и Пайки!
P.S. Кстати, Plan9 написан очень «красиво» :)
В твоей генту ядро ванильное, да? Ещё и 2.6? Ну да, это отличительная особенность дистрибутивов типа Генты и Слаки ;). А ещё удивляется нестабильной работе…
Ой, парой постов назад ты утверждал, что нету у тебя никакого ядра ;).
Так это у тебя было кривое железо на гентушном ядре? В каком-то странном сочетании ты пытался найти «красоту» линуксового ядра ;).
Дык, в аську ему постучи ;))
Бард, посмотри в сторону FreeBSD. там все более логично и понятно.
Я ядро не из портов ставлю, а скачиванием с kernel.org и распаковкой сырцоф. Так что опять мимо кассы.
Еще утром постучал. Пожаловались друг другу на жуткий бодун и пошли дальше работать.
Ну вот. Ты всё-таки используешь «ванильное» ядро. Так вот, от него ожидать стабильности не стоит. По крайней мере, пока не стоит. Кто-то из девелоперов ядра (вроде бы из них. Хотя утверждать не буду, т.к. ссылку предоставить не смогу) говорил буквально то, что допиливать и доводить ядро до стабильного состояния должны разработчики дистрибутивов. Поэтому не стоит удивляться «сетевухе, поставившей попой кверху свой драйвер», а писать баг-репорт команде Торвальдса. Если же устройство и вовсе полуработающее (как это в ситуации с тобой), то его надо заменить — ведь не известно, как она себя поведёт завтра. И в ОС Windows, кстати, тоже.
А я что, багрепорт писал?
Просто сам тот факт, что едрёному модулю можно делать все, в том числе и систему вешать — это не есть гут. Потому что это расчитано на утопичный случай «все писатели драйверов очень крутые программеры и не делают ошибок».
Возвращаемся к нашим баранам и сетевухе: ошибка хардарного повреждения сетевухи обнаружена в драйвере, о чем выводится соответствующее сообщение в лог:
А дальше что? Дальше система вешается наглухо. Мегастабильная мегаось. Кривой драйвер у нас вешает систему. Заебизь. Я понимаю что kernel space и все такое, но нельзя же считать каждого влезшего в kernel programming человеком, не делающим ошибок.
Ладно тебе. Тема-то изначально провакационная ;). Соскучились мы тут уже по флейму =).
То, что некоторые части ядра (именно «части», а не «ядро») написаны «неряшливо» означает, что в ядро ветки 2.6 вносится огромное количество изменений/добавлений и при этом мало времени отводится на их отладку. Уверен, если бы LONGOBARD показал хоть один участок кода, который по его мнению «неряшлив», мы бы, скорее всего, увидели кусок драйвера какой-нибудь новой железки или фичи, на которые просто не хватило девелоперам времени обратить пристальное внимание.
Я опять мимо кассы, Бард? ;)
Ессно мимо кассы. На работу прийду, LKD у меня там валяетса, и тыкну тебе в нужные страницы и файлы ;)
Вот именно, что нет. Сразу начал сопли разводить.
Мнэээ… Значит пациент считает, что в NT дела обстоят иначе =/. Хм, так и запишем — не в теме.
Ага, давать пользователю делать со своей машиной всё, что он хочет (грубо говоря, права рута на машине) тоже расчитано на утопичный случай…
А кто тебе обещал, что на поломанном железе система будет работать стабильно?! Давай мы ещё пару кондёров на видео-карте выдернем, а мудаками назовём собравших её китайцев.
Я тебе уже намекал в этой теме про BSOD. Но раз намёк не прошёл, то скажу прямо: кривой драйвер вешает не только линукс-систему, но и, внимание, виндовс. Вот такой вот «заебизь».
А знаешь почему так происходит? Потому что на неисправном железе ОС ничего поделать не может. По определению. Какой бы архитектуры она ни была. На самом деле не догадываешься почему?
Т.е. ты всё-таки действительно не в теме. Ладно, повторю отрывок из резюме уже состоявшегося флейма на этом форуме: драйверы устройств в NT тоже работают в kernel space! Однако этот факт тебя нисколько не смущает.
Ок, договорились. Только давай не так, как это было в случае с decvar’ом — пообещал рассказать про загрузку NT без графики и до сих пор молчит ;).
Я так не считаю. В NT будет BSOD. Я не говорю что вин идеальная ось. Я уже вобще абстрактно говорю :)
Не путай теплое с мягким.
А что по твоему, неполадки сетевухи или видяхи это причина упасть для оси, которая позиционируется как надежная? Я ж не предлагаю с проца кусочек высверлить :)
Не спорю.
Потому что тестит работу системы при неисправной периферии и платах расширения всем лень, и еще потому что ситуацию реальной неисправности создать тяжело. Банально резануть дорожку — скорее всего плата просто не определится. Надо исхитрится, всем это делать лень. Потому и тестится все на работающем железе.
Да, но в signulatiry обещают сделать по другому. Там драйвера уже не смогут вызвать сбой системы, чтд. Подробности читай в RSDN одном из последних, цитату дать не могу, журнальчик я отдал другу почитать :) И про идеологию SIP-ов в Signularity почитай. Ось еще не вышла, а я уже в нее влюбилсо :)
P.S.: спокойной ночи fly4life :)
Ну вот, получается, что обе эти ОС работают с кривыми драйверами с одинаковой степенью «красивости» ;). Тут-то твои сомнения развеялись? ;)
Ну почему же. Вместо «писателей» берём «пользователей», вместо «программеров» — админов/рута, и получаем, что «все пользователи очень крутые админы и не делают ошибок» — тоже достаточно утопичный случай. Однако ж в реальной жизни рута в собственной системе у тебя никто не заберёт. Так и с kernel-девелоперами — если через модуль не возможно будет опрокинуть ядро, то найдут другой способ ;). В правах-то, на самом деле, они не ограничены ;).
Да. Неполадки любого оборудования — вполне себе причина упасть для ОСи.
Лень — это черта студента ;). Производители ОС не знают такого слова — им надо конкуренцию выдерживать и бабки зарабатывать (ну ты понял, что я не только про линукс). Однако избежать падения ОС из-за неисправной железки не так просто, потому как, что там происходит в электрических цепях сбойной платы, даже физикам нелегко предсказать.
Ага, спокойной =).
А-то вставать уже скоро…
LONGOBARD, компьютер — это, можно скать, живой организм, в котором все составляющие части должны работать. В наших с тобой организмах, если, не дай Бог, что-то выйдет из строя, то мы будем нормально существовать? Или представь автомобиль, в котором прохудился бензобак. Бензин вытек, и ты не можешь двигаться. Вроде и не важно для остальных составляющих, а ехать не возможно.
ты попробуй убить какой-нибудь более или менее важный модуль ядра командой
с одной стороны, возможно, ничего не произойдет, а с другой — может все упасть. получишь kernel panic.
ядра для Linux, как и родителей :), не выбирают;). есть у нас такое ядро, и оно нам нравится, ага? (правда, к тебе это относилось до тех пор, пока ты не уидел его сорцы ;))
Evil, если так прибить драйвер сетевухи, даю гарнтию 100% — не упадёт. Тогда почему, если драйвер определяет наличие неисправностей в сетевухе, он просто не отрубает сетевуху?
unhandeled exception…
Эээ… стоп. Драйвер в логи пишет? Пишет. Значит всё handled.
ты попробуй убить, а потом давай гарантии ;)
я говорил, что, возможно, завалит систему. у меня один раз так получилось завалить систему, убив один измодулей.
кто знает, что хотела сетевуха получить от системы, а ситема от сетевухи, когда у LONGOBARDа это все произошло. Тем более, что у него, думаю, это не всегда происходит.
Во-Во.
Попробуй QNX.
Макроядра, сэр.
а я не понял чем вдруг линух не прёт. NT, возможно, круче линуха — линух весь из себя макроядро, а NT, как я слышал, вперемешку, то есть макроядро с «элементами» микроядра. Стоит думать, что взято лучшее от макро- и микро-. Но это ладно, устравать спор макро vs микро оставим богам, Танненбауму с Линусом, может Гейтс ещё подтянется, обосновывая своё решение :).
А линух такой, какой он есть, весь из себя макро. Не нравится, так действительно, поставь себе hurd.
А что ещё?
- макросы? примеры «тупых и малопонятных» макросов в студию. Я ковырялся в ядре, разбираясь как работают терминалы, флоповод, fork и каким образом грузиться elf. Может мало ковырялся, но «переиспользования» макросов не заметил. Более того, взял на вооружение отдельные приёмы.
В C++ перегружаем операторы/функции? Поведение программы менее понятно на первый взгляд? Да, но никто не плачет. Есть отдельные воинствующие персонажи, но большинство считает, что так и надо. Так и здесь, если лень нажать M-. и посмотреть на определение макроса, почитать комменты/весь хедер вообще и подумать нафига оно надо, то просто не надо писать модули, хто ж заставляет.
- Кривой драйвер? Ну раз уж пошла такая пьянка, и мы говорим про ядро не с точки зрения пользователя десктопа, то что помешало Лонгбарду исправить багу в драйвере?
Дык, кривой оказалась сетевуха ;). Барду не понравилось, что драйвер не смог заблокировать железку (а может и вовсе ликвидировать поломку), по которой он [Бард] предварительно прошёлся отвёрткой, и со слов товарища сделал вывод, что в NT ситуация кардинально иная, всмысле «красивее» ;).
Если и говорить не с точки зрения пользователя десктопа, то надо не заглядывать в исходники, а сразу браться за паяльник — чинить сетевую карту ;).
Ты что, отвертками обкурился? :) Где я писал что я предвариельно прошелся отверткой по сетевухе?
Ты еще скажи что я насрал ей в душу :)
Пожалуйста. Твой ответ (за номером #21) в данной теме:
«А не видел ты потому что Intel EtherExpress у тебя не помирала, и не срала в лог Hardware Error-ами. Попробуй ее отверточкой ковырни (гы-гы) :)»
А, ну да. Это её у тебя кто-то другой поломал ;). Ну ладно, пусть так.
Кстати, вполне возможно, что ты и в душу ей поднасрал, только нам не признался ;).
То ли у меня плохо с логикой, но из фразы «А не видел ты потому что Intel EtherExpress у тебя не помирала, и не срала в лог Hardware Error-ами. Попробуй ее отверточкой ковырни (гы-гы) :)» не следует, что ее кто-то ковырял отверточкой. Никто ее не трогал :)
А из какой тогда логики следует твой совет Эвилу «ковырнуть отвёрткой» его работающую сетевую карту?
Ну как же?! Чтобы вызвать в ней hardware error(s).
Т.е. Бард сам «ковырять» <font size=«-2»>(и, как выяснилось, никто ему в этом не помогал тоже)</font> не пробовал, но при этом всё равно предложил результата, подобного в его логах, добиться инструментом плотника? Нда, зная Лонгобарда, это действительно было бы логичнее предположить.
Гм… а что тут преступного?
Конечно, ты разве не знал что я всегда хожу с отверткой? Как прийду в комп. магаз — сразу отверткой вжжик по плате, и «ой, а она у вас поцарапана, дайте другую» :)))
P.S.: на самом деле сетевуху зохаваль decvar
В чём именно?
=). Хм, когда я тебя назвал весельчаком, ты почему-то обиделся…
«Нда, зная Лонгобарда, это действительно было бы логичнее предположить.» — было к тому, что ты порой выдаёшь фантастические предложения, при этом сам не попробовав и даже не предполагая, что получится в результате. Вот как в случае с отвёрткой.
А теперь считаешь, что выводы о твоих действиях сделаны нелогично. Откуда ж взяться логике, когда ты сам отвечаешь совершенно хаотично?
То «Нету у меня никакого ядра», а через пару сообщений уже: «Для справки: ядро у меня самое обычное».
Потом тебе говорят, что с подобными проблемами на том же железе (но на другом ядре) не сталкивались, а ты в ответ предлагаешь «ковырнуть отвёрткой». Нафига (?!) если (как выяснилось дальше по тексту) ты сам этого не делал?
И всё в таком духе. Создаётся впечатление, что отвечаешь по типу «лишь бы отмахаться, а смысл пускай сами сочиняют. Если не угадают — назову обкуренными, а сам всё равно останусь в белом фраке».
Ладно, надоела эта полемика и клоунада. Давай хоть что-нибудь по делу. Показал бы уже что обещал.
В разделе Flame? По делу? Ни-за-что!
Блестящий ответ!
Ясно. Слив-таки засчитан.
P.S. Что самое интересное, ты сам завёл эту тему. Просил развеять какие-то сомнения. Зачем? Тлетворное влияние броуновского движения мыслей в голове?
Я вам все зохаваю! Бойтесь!
PS
NT рулит, никого не слушай. и ниибет.
На самом деле тему я затеял просто так, и ее содержимое меня вполне удовлетворило :) Спасибо за участие!
Специально попробовал. Как и следовало ожидать — ни чего не произошло. Сетевуха отрубилась и всего-то…
А где же следующий вопрос, вытекающий по логике? Я имею в виду вопрос «а как её теперь обратно починить?». Это правда больше по части Совы, но как-то без этого вопроса топик остаётся незавершённым.
Загрузить модуль — вот и вся починка. Есть модуль — есть сетевуха, нет модуля — нет сетевухи. Вопрос был изначально не об этом, вообще-то…
охх. я подумал ты попробовал обработать сетевуху отвёткой. :)