LINUX.ORG.RU

Система разработки ядра Линукса даёт сбои


0

0

Второй человек в Линуксе, Andrew Morton, горько сетует по поводу состояния разработки -mm ветки ядра (напомню, что именно в неё сначала добавляются добавляются экспериментальные патчи, а только потом, после тестирования они имеют шанс попасть в основное ядро): "У меня ушло двое полных суток на то, чтобы всё это скомпилировать и загрузить на нескольких моих компьютерах. Чтобы добиться положительного результата в этом процессе, я написал около девяносто исправляющих патчей и патчей по отбрасыванию ненужного. Уже сейчас я наблюдаю несколько известных мне багов, но, полагаю, на самом деле, их гораздо больше. Я должен сказать, что [такая модель разработки] больше не работает." Последний патч для ядра 2.6.23-rc6 весит почти 30 мегабайт. По русски говоря, это около тридцати тысяч страниц исходников (если оптимистично считать по тысячи символов на страницу).

В продолжении, на вопрос об очередном патче, он пишет: "С меня довольно, пускай этим займётся Greg". Определенно, ресурсов одного человека не хватает для столь тяжёлой и ответственной работы.

>>> Подробности

★★★★★

Проверено: Shaman007 ()

Ответ на: комментарий от klalafuda

> не знаю как там мифический хурд коего никто воочию так и не увидел,

Я его видел. Качните и увидите воочию.

>но есть микроядерные системы причем от рождения, кои уже десятилетия
>прекрасно работают на благо человечества.

Цитирую себя:

> Есть специализированные микроядерки и _попытки_ .....
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

Что я непонятно написал ? Или вы со мной не согласны ?


kernel ★★☆
()
Ответ на: комментарий от anonymous

>микроядро мягко говоря на порядки сложнеее в разработке и в разы уступает в плане производительности

Попахивает 4.2. Ссылку на цифры можно? %)

anonymous
()
Ответ на: комментарий от klalafuda

>ps: это я к тому, что если в какой-то конкретной имплементации
>существуют определенные проблемы не стоит расширять их на всю идею как
>таковую.

По этому и ведутся исследования. Пока с _теоретическими_ переспективами использования микроядерных ОС в задачах общего назначения все не очень ясно. Есть мнение что процессоры должны нормально держать эту парадигму.
Но это _непровереное_ мнение. То есть процессоры сделают а все равно получится плохо.
Ясно что использовать в задачах общего назначения можно - но зачем не ясно. Получается хуже.

И в каждой имплементации дофига фактически проблем by design. Так как пока _НЕ_СУЩЕСТВУЕТ_ вменяемой идеи от том "как надо". Все делают как могут. В отдельных комбинациях ОС/железо/задача получается хорошо, в отдельных нет.

И именно по этому делаются все эти новые микроядерные ОС. Идут исследования -повторюсь.

kernel ★★☆
()
Ответ на: комментарий от kernel

> не знаю как там мифический хурд коего никто воочию так и не увидел,
> Я его видел. Качните и увидите воочию.

с какой стати? судя по тому, как он развивается, проект скорее мертв чем жив и было бы странно им интересоваться, скачивать, разбираться etc. бессмысленная IMHO трата времени.

> Цитирую себя:
> Есть специализированные микроядерки и _попытки_ .....
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> Что я непонятно написал ? Или вы со мной не согласны ?

забавное свойство - выбирать из своего поста лишь те сообщения, которые вас устраивают. нехорошее свойство. плохо пахнет.

Развелось упертых ламеров, понимаешь.

> Вы бы открыли мейлист-архив ХУРДа или хотябы бы ХУРД/кернетрафик и почитали бы что да как в хурде. И в остальных "микроядрах" типа Mach3. Исходники бы, $%#%, качнули. Попробовали бы под это попрограммить.

> А потом поискали бы статьи специалистов которые в _нормальные_ научные журналы пишут ( многое из этого сами же выкладывают в интернет). Что там вообще и как с научной точки зрения. Нет я понимаю что вы научныех статей ниасиливаете и do_wait это вас предел. Но про это должны знать не только вы но и остальные участники дискуссии

оставив пустой п&^%&^$% перейдем к делу:

> ЖОПА ТАМ.

конкретно, где именно жопа? в чем именно состоит жопа?

ссылки в студию.

> Если кто не понял.

лично я не понял, объяснитесь.

> И это при огромном бабле вкладываемом на исследования.

ссылки в студию.

> Нету микроядерок общего назначения, НЕТУ.

QNX - это микроядерка общего назначения. period.

> Есть специализированные микроядерки и _попытки_ применить микроядерки к задачам общего назначения, которые выливаются в гибридные ядра.

примеры? аргументы? факты? как обычно, ссылки в студию.

> И ХУРД, вашу мать, тоже гибридная архитектура. С _переспективой_
стать нормальной микроядеркой "если осилим". Едиственное что может претендовать на микроядерку общего назначения это наверное Hurd/L4 но это (смотрел давно) вообще адски экспериментальная жесть.

на хурде мир клином не сошелся.

// wbr

klalafuda ★☆☆
()
Ответ на: комментарий от kernel

> По этому и ведутся исследования. Пока с _теоретическими_ переспективами использования микроядерных ОС в задачах общего назначения все не очень ясно. Есть мнение что процессоры должны нормально держать эту парадигму.
Но это _непровереное_ мнение. То есть процессоры сделают а все равно получится плохо.
Ясно что использовать в задачах общего назначения можно - но зачем не ясно. Получается хуже.

> И в каждой имплементации дофига фактически проблем by design. Так как пока _НЕ_СУЩЕСТВУЕТ_ вменяемой идеи от том "как надо". Все делают как могут. В отдельных комбинациях ОС/железо/задача получается хорошо, в отдельных нет.

> И именно по этому делаются все эти новые микроядерные ОС. Идут исследования -повторюсь.

Бабаян - ваш кумир? признайтесь честно.

// wbr

klalafuda ★☆☆
()
Ответ на: комментарий от anonymous

Какой сервис необходим чтобы при выходе из строя компа, другой комп берет его IP

Я полностью согласен что необходимо среда IDE разработки,
да только почему то со всех сторон кричат что настоящий
программер должен работать с VI или emacs. Однако даже с
настроенным комплитишен Vi не удобен для автопродолжения и
поиска функций струткур и так далее (да в нем это есть но не удобно).

Теперь отладчик, огромное количество мнений что отладчика вообще
не должно быть, мол у меня моск вместо отладчика.

Получается что в дебугере нельзя так же легко передвигаться
по коду как в редакторе не говоря что нет красивенькой подсветки кода.

Боле менее из бесплатного eclipse, но попробуйте с его помощью изменять код ядра, он просто умрет. Однако отладчику eclipse крайне далеко до отладчика ВисуалС.

Программист с ВисуалС мне кажется с большой неохотой перейдет разрабывать на Linux. Многие конторы пишут на ВисуалС а потом при необходимости портируют под Линукс.

Так что согласен что в начале надо разработать удобный и функциональный отладчик, с помощью которого удобно и наглядно можно писать и отлаживать как свои программы так и код ядра драйверов



andyS1976
()
Ответ на: комментарий от yantux

> Как быстро устаревают дрова в плане совместимости с ядром?

Если ты про зомби под именем FreeBSD - то для нее практически нет исходников драйверов вне исходников ядра, да и спектр поддерживаемого железа... Хм... Несколько поменьше.

А из линуксоидов на проблемы с изменением интерфейсов ядра реально ругаются только те, кто вынужден пользовать закрытые или полузакрытые поделки типа nvivdia.ko, fglrx.ko и "драйверы" для ублюдочных недоRAIDов.

no-dashi ★★★★★
()
Ответ на: комментарий от anonymous

>>микроядро мягко говоря на порядки сложнеее в разработке и в разы уступает в плане производительности

>Попахивает 4.2. Ссылку на цифры можно? %)

Можно, это флейм идет еще с незапамятных времен http://www.oreilly.com/catalog/opensources/book/appa.html

> Есть специализированные микроядерки и _попытки_ .....

+1

anonymous
()
Ответ на: комментарий от yantux

>Мой прогноз: если от модели монолитного ядра не откажутся у ядра плохое будущее. Надо принимать волевые решения, а не почивать на лаврах.

И как ты сообрался делать из моноядра, микроядро? Легче сразу новое ядро начать с нуля писать.

dikiy ★★☆☆☆
()

> огромное количество мнений что отладчика вообще не должно быть, мол у меня моск вместо отладчика

Именно. Проверенный "на бумажке" код на порядок стабильнее чем "проверенный отладчиком" - это основы, блин!

no-dashi ★★★★★
()
Ответ на: комментарий от anonymous

>Ну значит у него хорошее будущее. Потому что у Linux модульное ядро.

У линукс - монолитное ядро. Учите матчасть. А микроядро, к примеру, у мастдая.

dikiy ★★☆☆☆
()
Ответ на: комментарий от no-dashi

Какой сервис необходим чтобы при выходе из строя компа, другой комп берет его IP

Ты это скажи программистам, которые денюжку программированием зарабатывают, они пишут кодеки, драйвера под разные устройства..

Хотя если ты PHP программист, то можно и без дебугера,
провереныый на HTML страничке код конечно будет стабильнее )

andyS1976
()
Ответ на: комментарий от klalafuda


> лично я не понял, объяснитесь.

Пытаюсь. ;)

> забавное свойство - выбирать из своего поста лишь те сообщения,
>которые вас устраивают. нехорошее свойство. плохо пахнет.

Вы точно также выделили из моего поста строчки и начали на них
отвечать. Не ответив в своем сообщении на процицированную строчку. Вы это сделали потом. Но в первом сообщении так же проявили указанное вами свойство.

> QNX - это микроядерка общего назначения. period.

Ага. Я так и думал что свет клином сошелся именно там. :) А я все время считал ее специализированной ОС для разработки рейлтайм приложений... В каковом качесте она и применяется. В чем я неправ ?


> конкретно, где именно жопа? в чем именно состоит жопа?

Накладные расходы на переключение контекста при логичном разбиении (ведь это одна из целей проектирования) на процессы ядра. Это если кратко - раз. Я в курсе что у вас в QNX эту проблему "почти решили". Кому нибудь еще это удалось ? НЕ в _исследовательских_ операционках.

"кучи драйверов и вороха протоколов", что является характерной особенностью ОС именно _общего_ назначения, для подобных ОС нет.
Это я к тому что все подобные ОС исследовались в _упрощенном_
случае, при отстутствии этой кучи. И _проверить_ как оно будет и не возрастет ли на деле сложность разработки при наличие такой кучи в "реальном мире" никто не смог.


> QNX - это микроядерка общего назначения. period.

Вот собственно этот вопрос и является камнем преткновения. На сколько я помню споры на ЛОРе вы отстаивали именно эту точку зрения. Собственно спор может оказатся весьма бесплодным. Так как тянет на серьезное исследование.

> примеры? аргументы? факты? как обычно, ссылки в студию.

Копался давно - поэтому надо искать опять.

Собственно история с Mach2->Mach3, когда внесли драйвера в пространство ядра, Или история с МакОС когда начали сервисы вносить в пространство ядра для прямого доступа. Или собственно NT4 где графику внесли в ядро. Так как заставить в той же архитектуре работать как им надо было наверное не удалось. То есть архитектуру ломали , так как справится в рамках архитектуры не удалось.

kernel ★★☆
()
Ответ на: комментарий от dikiy

>У линукс - монолитное ядро. Учите матчасть. А микроядро, к примеру, у мастдая.

Простите, но это абсолютное незнание предмета разговора.

anonymous
()

> Ты это скажи программистам, которые денюжку программированием зарабатывают, они пишут кодеки, драйвера под разные устройства..

Много общались с писателями дравйеров скажем из нвидиа? А какой дебагер используют в ati?

sv75 ★★★★★
()
Ответ на: комментарий от dikiy

> У линукс - монолитное ядро. Учите матчасть. А микроядро, к примеру, у мастдая.

У мастдая оно тоже монолитное. Учите матчасть.

tailgunner ★★★★★
()

> Так что согласен что в начале надо разработать удобный и функциональный отладчик, с помощью которого удобно и наглядно можно писать и отлаживать как свои программы так и код ядра драйверов

Посмотри на kdevelop. Отладчик в нём не уступает студийному, правдо коде-комплишн работает капризно.

И, кстати, там есть даже шаблон программы "linux kernel module" :)

gaa ★★
()

Вот жаль разработчики MS не видут публичную переписку... Полагаю, тон в силу необходимости обеспечивать совместимость по 5-10-20 лет был бы еще более безрадостным....

sv75 ★★★★★
()

> Ты это скажи программистам, которые денюжку программированием зарабатывают

Я тебе по секрету скажу, что сам денежку программированием зарабатываю, если что. Причем прикладным программированием, где важна полная предсказуемость работы и полная повторяемость результата.

Так вот дебаггер в голове рулит.

no-dashi ★★★★★
()
Ответ на: комментарий от tailgunner

>> У линукс - монолитное ядро. Учите матчасть. А микроядро, к примеру, у >>мастдая.

>У мастдая оно тоже монолитное. Учите матчасть. Ну вообще-то вы не правы. У него раньше было микроядро,но оно было жутко тормознутое,и они дохера всего вынесло в ядро(например ту же графику). Так что в принципе у него очень извращенный микрокернел

anonymous
()
Ответ на: комментарий от sv75

Начну с того что я не программист, а вот у меня друг программист в DSP, и программеры их исопльзуют VisualC-6.

Сам немного знаю С++, нету вокруг меня линуксоидов, и когда в одиночку начинаешь разбираться с линуксом... поверь мне много времени уходит. Если посмтореть код, а я пытался основной код с сетью почитать то для меня это было сложновато, только не надо в мой адрес комплиментов )

На мой взгляд линукс сообщество в первую очередь должно разработать подчеркну УНИВЕРСАЛЬНЫЙ web интерфейс управления настройками системы,
нет проблем конечно ковыряться с различными конфигами, но гораздо удобнее через ВЕБ-морду. Одна УНИФИЦИРОВАННАЯ морда! Ж)

Было бы интересно в этом форуме прочитать мнение людей которые хоть каким то образом участвовали в разработке ядра, интересно есть здест такие или нет ?)

andyS1976
()
Ответ на: комментарий от anonymous

Что кас аемо микроядра, то в чистом виде для десктоп-систем оно нигде не используется. В данный момент все экс-микроядра (Mach и NT) имеют гибридную архитектуру, потому как скорость в чистой микроядерной архитектуре кгхм оставляет желать лучшего

anonymous
()
Ответ на: комментарий от kernel

> Пока с _теоретическими_ переспективами использования микроядерных ОС в задачах общего назначения все не очень ясно. Есть мнение что процессоры должны нормально держать эту парадигму. Но это _непровереное_ мнение. То есть процессоры сделают а все равно получится плохо

Дурень, их давно уже сделали. Зачем интелу четыре кольца защиты по-твоему в 86й архитектуре?

И ты думаешь, они нигде не используются, раз они не используются в виндоусе и линуксе?

anonymous
()
Ответ на: комментарий от klalafuda


> Бабаян - ваш кумир? признайтесь честно.

У меня двойственное отношение к этому человеку. С одной стороны он наверное гений почти без оговорок ;) с другой стороны он гений в той области в которой быть гением не совсем комильфо :)

kernel ★★☆
()
Ответ на: комментарий от no-dashi

Домашняя бухалтерия под оракел? Знаем видали. А интересно, как твой многомудрый мозг отловит race conditions, эпизодически возникающие при работе с удаленным сервисом. Ты хоть лоб себе пробей, но без отладки не поймешь, что же там присходит.

Sun-ch
()
Ответ на: комментарий от andyS1976

> На мой взгляд линукс сообщество в первую очередь должно разработать подчеркну УНИВЕРСАЛЬНЫЙ web интерфейс управления настройками системы, нет проблем конечно ковыряться с различными конфигами, но гораздо удобнее через ВЕБ-морду. Одна УНИФИЦИРОВАННАЯ морда!

Это и так есть, тока нафига оно надо если сама система разработки ядра Линукса даёт сбои, а в ядре копятся тысячи непофикшеных багов..

anonymous
()
Ответ на: комментарий от anonymous

>Дурень, их давно уже сделали. Зачем интелу четыре кольца защиты
>по-твоему в 86й архитектуре?
>
>И ты думаешь, они нигде не используются, раз они не используются в >виндоусе и линуксе?

Еще один ниасилил "в системах общего назначения". Ну назовите мне где оно используется в системах общего назаначения ? Опять QNX поминать будем ?

kernel ★★☆
()
Ответ на: комментарий от andyS1976

> На мой взгляд линукс сообщество в первую очередь должно разработать подчеркну УНИВЕРСАЛЬНЫЙ web интерфейс управления настройками системы, нет проблем конечно ковыряться с различными конфигами, но гораздо удобнее через ВЕБ-морду. Одна УНИФИЦИРОВАННАЯ морда! Ж)

У нее только один маленький минусик - она не скриптуется и не позволяет делать copy-paste из документации или how-to.

То, что в скритовании не нуждается - есть в ssh -X kconsole ;)

sv75 ★★★★★
()
Ответ на: комментарий от andyS1976

>а я пытался основной код с сетью почитать то для меня это было сложновато

А на хрена? Позвольте полюбопытсвовать? Достаточно представлять как работают BSD sockets и STREAMS - все остальное от лукавого. Тем более, что второго в линаксе вроде как и нет.

Sun-ch
()
Ответ на: комментарий от sv75

> А какой дебагер используют в ati?

WinDbg :D

А вообще-то патчи для отладки внутри ядра Линукс постоянно плавают вокруг, так что нужда в них, очевидно, есть.

tailgunner ★★★★★
()
Ответ на: комментарий от tailgunner

>У мастдая оно тоже монолитное. Учите матчасть.

Оно хоть и не "чисто" микроядро, но намного ближе к нему, чем к монолитному. Таки учите матчасть, сударь.

dikiy ★★☆☆☆
()
Ответ на: комментарий от Sun-ch

> А интересно, как твой многомудрый мозг отловит race conditions, эпизодически возникающие при работе с удаленным сервисом.

Вложит $100.000 в создании модели системы на Promela и все дела ;)

А вот как отладчик найдет проблему, вылезающую на практике с вероятностью 10e-4 ?

> Ты хоть лоб себе пробей, но без отладки не поймешь, что же там присходит.

А чего спорить - просто надо рассказать, как была найдена известная проблема с Ext3 и 2.6 (про битторент). Неужто дебагером искали?

sv75 ★★★★★
()
Ответ на: комментарий от kernel

Я бы на вашем месте уже не забивал себе голову этим вопросом. На подходе [очень]многоядерные процессоры - какая концепция там будет востребована? Монолитное ядро, микроядро?

anonymous
()
Ответ на: комментарий от anonymous

> Дурень, их давно уже сделали. Зачем интелу четыре кольца защиты по-твоему в 86й архитектуре?

Этого никто не знает, кроме преподов по сиспрогу, которые ставят неуд за ответ "два" на вопрос "сколько уровней защиты в x86?" ;)

> И ты думаешь, они нигде не используются, раз они не используются в виндоусе и линуксе?

Рассмотрим вопрос шире - если их использовать, то как портировать эту ОС на другие платформы, где не 4, а 2 или 5 уровней?

sv75 ★★★★★
()
Ответ на: комментарий от yantux

В любой, где разработчики считают уместным защитить ядро своей системы от кривых драйверов из третьих рук.

К тому же при таком подходе, ядерщикам не приходится носиться с кучами кривых патчей от левых самодельщиков, они изолируют сферу своей ответственности аппаратно, и их система разработки сбоев не даёт.

Вам что, легче от того, что ядро линакса работает быстро, но нестабильно?

anonymous
()
Ответ на: комментарий от anonymous

Мой вопрос предельно конкретный: в каких ОС используются более двух колец защиты? Я ни кому ни какитх претензий не предъявляю. Профессионалдьный интерес.

Я не знаю ни одной операционной системы, которая поддерживала бы более 2-х колец.

yantux
()
Ответ на: комментарий от sv75

> как портировать эту ОС на другие платформы, где не 4, а 2 или 5 уровней?

Селить модули в доступные уровени, еснно. Но это уже будет _проблема платформы_. А то выходит, что покупая CPU интеловской архитектуры покупатель платит за дорогие, современные технологии, которые он не сможет использовать под линаксом!

Кстати так же было с запуском зловредного кода на стеке процесса - 386й процессор имеет отличные средства для предотвращения таких проблем, но самая стабильная и защищённая в мире ОС клала и до сих пор кладет на возможности аппаратуры, используя лишь жалкие крохи и теряя всё остальное в угоду совместимости с наладонниками..

anonymous
()
Ответ на: комментарий от sv75

Легче всего использовать Dtrace, пишется скрипт срабатывающий по определенным условиям, и анализируется вывод. Причем, приложение может работать в продакшн режиме.

Sun-ch
()
Ответ на: комментарий от yantux

> Я не знаю ни одной операционной системы, которая поддерживала бы более 2-х колец.

У Танебаума был опус "про создание надежных ОС с ненадежными дровами." А раз это было у Таненбаума, то можно уверенно считать, что ни в какой работающей на практике.

sv75 ★★★★★
()
Ответ на: комментарий от Sun-ch

> Легче всего использовать Dtrace, пишется скрипт срабатывающий по определенным условиям, и анализируется вывод. Причем, приложение может работать в продакшн режиме.

Во-первых разве оно есть для Линукс, а во-вторых разве это отладчик? О полезности систем трассировки разве кто-то спорил?

sv75 ★★★★★
()
Ответ на: комментарий от anonymous

>> http://www.minix3.ru/articles/OS_Reliable_Secure.pdf

> Ссылки на упомянутые документя дядя за тебя будет искать?

Это был материал для самостоятельного поиска, и предназначался он кстати не тебе, поэтому я не понимаю претензий.

И я имел в виду также технический отчет (перевод):

http://citforum.ru/operating_systems/reliable_os/

Ключевой вопрос, на мой взгляд - а зачем нам ненадежные драйвера в продакшн и стоит ли тема такого большого внимания? Радость от того, что кривой драйвер видюхи не кладет вусмерть всю ОС так же не сильно утешит геймера Васю, который сохранядся час назад.

sv75 ★★★★★
()
Ответ на: комментарий от dikiy

>>У мастдая оно тоже монолитное. Учите матчасть.

>Оно хоть и не "чисто" микроядро, но намного ближе к нему, чем к монолитному.

"The kernels of the operating systems in this line are all known as hybrid kernel, although this term is disputed, with the claim that the kernel is essentially a monolithic kernel that is structured somewhat like a microkernel."

Подсистема Win32 и оконная система в режиме ядра. Классное микроядро.

> Таки учите матчасть, сударь.

Учу постоянно. А ты задай в гугле "Cutler NT microkernel", узнаешь много нового.

tailgunner ★★★★★
()
Ответ на: комментарий от sv75

> Это был материал для самостоятельного поиска, и предназначался он кстати не тебе, поэтому я не понимаю претензий.

Хм, я тащусь: на ЛОРе какую тему ни открой - завсегда там найдешь какго-нибудь "учителя", дающего задания "ученикам", проверяющего их домашние работы и ставящего отметки :-)

HEBECTb_KTO
()
Ответ на: комментарий от tailgunner

> Подсистема Win32 и оконная система в режиме ядра. Классное микроядро.

Кстати, а что мешало бы их графике сидеть, скажем в 1м кольце вышеупомянутого 386-совместимого камня? Там вроде есть возможность предоставить коду прямой доступ к железу видяхи, или мне память с кем-то изменила?

HEBECTb_KTO
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.