Вышел GNU/Fiwix 0.3.3 (http://www.fiwix.org/news.html) - проект по созданию ядра для операционной системы UNIX архитектуры, сфокусированное на обеспечении хорошей совместимости с Linux (совместимость системных вызовов и бинарных файлов).
Fiwix ориентирован на студентов изучающих устройство ядра операционной системы и построен по принципу как можно большего упрощения кода.
Текущее состояние ядра позволяет выполнять большую часть стандартных GNU приложений. Из файловых систем поддерживается EXT2. Для работы Fiwix достаточно i386 с 3Мб ОЗУ.
Размер дистрибутива Fiwix (http://www.fiwix.org/downloads.html) составляет 60Мб, присутствует версия для работы с Floppy диска.
URL: http://www.fiwix.org/news.html
Новость: http://www.opennet.me/opennews/art.shtml?num=11612
Блин, где у этой хрени исходники?
Кажись пока (до 1.0) небудут.... :(
если это GNU, как оно может быть без исходников
Это как раз не GNU, а ядро.
а hurd все, не нужен?
HURD - совсем не для обучения :)
и точно не "построен по принципу как можно большего упрощения кода."
http://www.unixlite.org/ есть ещё такое ... что теперь по мимо кучи ненужных дистрибутивов будет куча ненужных ядер, которые совместимы с линуксом?
>http://www.unixlite.org/ есть ещё такое ... что теперь по мимо кучи ненужных дистрибутивов
>будет куча ненужных ядер, которые совместимы с линуксом?велосипедистов хватает...
А смысл?
Типа, мы сделаем свой линукс с блекджеком и шлюхами!
>А смысл?
>Типа, мы сделаем свой линукс с блекджеком и шлюхами!угу
смысл прослеживаеться с трудом :)
вернее вообще не прослеживаеться
Это типа реактос, но ещё более бессмысленное
Развилось блин, для обучения Minix есть
Как понимаю аналог minix, для обучения.
То что сейчас изучать ОС в университете на основе кода ядра Linux тяжело - думаю никто спорить не будет.
Minix для этих целей подходит куда лучше.Зачем писать новое ядро - не совсем ясно - может дипломная работа?
>Как понимаю аналог minix, для обучения.
>То что сейчас изучать ОС в университете на основе кода ядра Linux
>тяжело - думаю никто спорить не будет.еще как будет.
Сырцы пингвина на удивление неплохо документированы и откоментированы.
Но самое главное, что код там БОЕВОЙ, а не учебный.
Человек, учащийся на коде пингвина при остальных равных условиях
будет лучшим спецом, чем обученный на таких вот обучалках.>Зачем писать новое ядро - не совсем ясно - может дипломная работа?
вот тут есть нота смысла. просто работа в универе. Ессьно, что в универе все делаеться
для обучение :)
>Человек, учащийся на коде пингвина при остальных равных условияхбудет лучшим спецом, чем обученный на таких вот обучалках.
ну да... Не знаю, правда или нет, но на одином из форумаов было сказано со ссылкой на Линуса Торвальдса, что нормально ядро знают человек 50 всего в мире.
Да, нас мало :)
>>Человек, учащийся на коде пингвина при остальных равных условиях
>
>будет лучшим спецом, чем обученный на таких вот обучалках.
>
>ну да... Не знаю, правда или нет, но на одином из форумаов
>было сказано со ссылкой на Линуса Торвальдса, что нормально ядро
>знают человек 50 всего в мире."учиться на ядре" и "знать ядро" - дифф в состоянии сгенерить?
...но их будет больше :)
> еще как будет.и очень зря.
> Сырцы пингвина на удивление неплохо документированы и откоментированы.
исходный текст ядра Linux в большинстве своём фактически не содержит комментариев равно как и документации. если конечно же под документацией проекта вы не подразумеваете код проекта как таковой и микровзрыв на макаронной фабрике в Documentation.
> Но самое главное, что код там БОЕВОЙ, а не учебный.
что IMHO совсем не есть плюс. учиться нужно "как правильно", а не "чтобы работало". уже другое дело, что после на практике он все-таки будет плясать от второго, но первому его хотя бы когда-то учили.
> Человек, учащийся на коде пингвина при остальных равных условиях
будет лучшим спецом, чем обученный на таких вот обучалках.
человек, которому выпала "удача" учиться на коде ядра Linux с бОльшей вероятностью откажется связывать свою профессиональную деятельность с системным программированием да и с программированием в целом. менталитет же тех немногих, кто уцелел, будут в корне и скорее всего неисправимо испорчен, равно как их вкус и стиль.
// wbr
>исходный текст ядра Linux в большинстве своём фактически не содержит комментариев равно
>как и документации. если конечно же под документацией проекта вы не
>подразумеваете код проекта как таковой и микровзрыв на макаронной фабрике в
>Documentation.Не замечал. Я, конечно, не весь его излазил. Ковырялся в ФС. Код практически всех файловых систем, кроме, разве что, ext2/3/4, комментирован достаточно, что бы практически с ходу разобраться, как он работает.
Не хочется начинать флэйм, это просто замечание: посмотрите на FreeBSD, вот там код действительно не коментирован. Как пример приведу fsdetect (определяет тип и статистику ФС на заданном разделе без его монтирования): при написании программы разбираться в структурах данных UFS пришлось по коду Linux-драйвера -- в BSD-коде темный лес и никаких комментариев.Можете проверять.
> Не замечал. Я, конечно, не весь его излазил. Ковырялся в ФС. Код практически всех файловых систем, кроме, разве что, ext2/3/4, комментирован достаточно, что бы практически с ходу разобраться, как он работает.а код самого уровня VFS..? одни только пространства имён чего стоят с учётом того, что они всё пухнут и пухнут фичамит от версии к версии...
> Не хочется начинать флэйм, это просто замечание: посмотрите на FreeBSD, вот там код действительно не коментирован. Как пример приведу fsdetect (определяет тип и статистику ФС на заданном разделе без его монтирования): при написании программы разбираться в структурах данных UFS пришлось по коду Linux-драйвера -- в BSD-коде темный лес и никаких комментариев.Можете проверять.
зачем флейм? проверяли, ack. да и отсутствие проектной документации в ядре Linux отнюдь не подразумевает автоматическое её наличие, например, в *BSD :) там то-же хватает своим тараканов...
скорее всего, это общее свойство волонтёрских проектов: пока за спиной разработчика не поставить автоматчика, который бы заставлял его аккуратно оформлять код, писать документацию и пр., сам по себе он это делать скорее всего не будет, так как в большинстве случаев ему лениво/не умеет/не привык/нет времени/да просто пофигу. c'est la vie.
// wbr
Согласен, VFS -- жесть. Вообще весь код, оставшийся со времен Линуса и первых разработчиков комментирован отвратительно. Корпорации предоставляют гораздо более внятный код. Драйвера от IBM (JFS), SGI (XFS) и особенно NameSys (reiserfs и reiser4) приятно почитать. Неприятно выделяется RedHat с ext3/4, но и они программируют несколько более четко, чем core kernel team.
> Не хочется начинать флэйм, это просто замечание: посмотрите на FreeBSD, вот там код действительно не коментирован. Как пример приведу fsdetect (определяет тип и статистику ФС на заданном разделе без его монтирования): при написании программы разбираться в структурах данных UFS пришлось по коду Linux-драйвера -- в BSD-коде темный лес и никаких комментариев.Можете проверять.хотя можно посмотреть на проблему и с другой стороны: чем сложнее и запутаннее код ядра и выше планка, необходимая для вхождения, тем меньше людей, которые действительно в состоянии что-то понять в этом проекте. как следствие, тем больше ценятся их знания и опыт в вечнозелёных и меньше конкурентов. что в принципе то-же есть неплохо на фоне популяризации Linux в массах трудящихся. во всём можно найти и положительные моменты :)
// wbr
>Не хочется начинать флэйм, это просто замечание: посмотрите на FreeBSD, вот там
>код действительно не коментирован. Как пример приведу fsdetect (определяет тип и
>статистику ФС на заданном разделе без его монтирования): при написании
>программы разбираться в структурах данных UFS пришлось по коду Linux-драйвера --
>в BSD-коде темный лес и никаких комментариев.Можете проверять.+5 ")
>Сырцы пингвина на удивление неплохо документированы и откоментированы.Абсолютно не согласен. Коди Линукса очень тяжело читать. Многие вещи вводят в ступор.
Вы можете объяснить, зачем нужны MS_SHARED, MS_SLAVE, MS_PRIVATE в отношении sys_mount? Я этот вопрос задаю здесь постоянно. Ответа ноль.
http://lwn.net/Articles/159077/
>>Сырцы пингвина на удивление неплохо документированы и откоментированы.
>
>Абсолютно не согласен. Коди Линукса очень тяжело читать. Многие вещи вводят в
>ступор.
>
>Вы можете объяснить, зачем нужны MS_SHARED, MS_SLAVE, MS_PRIVATE в отношении sys_mount? Я
>этот вопрос задаю здесь постоянно. Ответа ноль.ну, предусматриваеться, что человек заканчивает хотя бы детский сад перед тем как
полезть в сырцы ;)смотри и четай:
Documentation/sharedsubtree.txt
и вообще, обрати внимание на эту чудную диру Documentation
Читали :) и поболее этого. Флаг вам в руки и терпения разобраться.Допустим MS_BIND это понятно и это работает, не смотря на то, что он не поддерживается файловыми системами (хотя тоже нафиг оно надо?). Всё же, кроме советов чтения документации и бравадных заявлений о боевом ядре, вы сможете сказать зачем нужно этот MS_SHARED, MS_PRIVATE, MS_SLAVE? Какую проблему решают эти флаги?
>Читали :) и поболее этого. Флаг вам в руки и терпения разобраться.
>
>
>Допустим MS_BIND это понятно и это работает, не смотря на то, что
>он не поддерживается файловыми системамисразу видно "знание" линуха...
оно поддерживаеться VFS'ом и этого выше крыши для этого bind'инга.
физические ФС и знать ниче не должны об этом.Тебе уровень абстракции VFS изучить не помешает ;)
>(хотя тоже нафиг оно надо?). Всё
>же, кроме советов чтения документации и бравадных заявлений о боевом ядре,
>вы сможете сказать зачем нужно этот MS_SHARED, MS_PRIVATE, MS_SLAVE? Какую проблему
>решают эти флаги?ну, исзходя из того, что ты не знаешь(??) о существовании и функциях VFS
будет тяжеловато объяснить...
но смотри.
Делаешь ты
mount --bind /a /bпосле этого в /b будет все содержимое /a
НО
что будет в /a когда ты начнешь монтировать что-либо в /b?
в таком конфиге - тоже копия.
Но если монтировать с --private (пока не реализовано в публичной версии util-linux)
то все точки монтирования в /b будут только там и не будут отражены обратно в /aНу и shared, slave - подобные израты.
Причем, как я уже написал, стандартные тулзы этого пока не умеют,
но ядро уже. Причем, в файле, что я указал есть прога для руления этими флагами.Удачи в изучении пингвина :)
>сразу видно "знание" линуха...
>оно поддерживаеться VFS'ом и этого выше крыши для этого bind'инга.
>физические ФС и знать ниче не должны об этом.Ну да, результаты биндинга сохраняются до первой перезагрузки.
Думаю виртуализация была придумана впервую очередь для монтирования различных устройств, разделов с разными фс и прочей хрени. Не вижу смысла в подмене достаточно приличной команде lnПример:
каталог /a монтируем биндим к каталогу /b
если удалить каталог /a, то в зависимости от типа файловой системы каталог /b будет ссылаться на разные каталоги. Например RaiserFS и ext2.Собственно биндинг каталогов не решает ни каких проблем - для жизни он не нужен.
>Ну и shared, slave - подобные израты.согласен, изврат... восхитительно бесполезный изврат
>Удачи в изучении пингвина :)
спасибо, мне её понадобиться очень много...
>Ну да, результаты биндинга сохраняются до первой перезагрузки.а у тя какая-либо иная ФС все также примонтирована после перезагрузки если она не в fstab'e?? %))))
>Не вижу смысла в подмене достаточно приличной команде lnсчастливый.
Я вижу и без биндинга ФС Линуха была бы ужасна. как в венде.
Кое-какие операции стали бы... невозможны или крайне затруднены
Пример: закончилось место на разделе и нужно например /usr/distfiles унести на
другую ФС с миниальными заметными изменениями.
Двигаем диру на другую ФС, --bind его оттуда назад в /usr/distfiles
и запись в fstab - ВСЕ. НИЧЕГО больше в конфиге системы не изменилось
и все работает так как и раньше.
Симлинк говоришь? Может и да для этого случая. А когда заданную диру щупает софтина,
которая по stat() ожидает там увидеть диру, а не линк?
Да и вообще красота пропадает с этими симлинками.
>Пример:
>каталог /a монтируем биндим к каталогу /b
>если удалить каталог /a, то в зависимости от типа файловой системы каталог
>/b будет ссылаться на разные каталоги. Например RaiserFS и ext2.бред.
давай дамп сессии от создания этих ФС до заветного "удалить каталог /a"
для reiser и ext2.
>Собственно биндинг каталогов не решает ни каких проблем - для жизни он
>не нужен.см. выше. Просто либо тебе не понадобилось, либо с фантазией проблемы.
>Да и вообще красота пропадает с этими симлинками.
>Красота наступает, когда надо понять чтоже и куда у нас примонтировано. Вывод cat /proc/mounts и df дают разный результат. С симлинками всё понятнее.
>Красота наступает, когда надо понять чтоже и куда у нас примонтировано. Вывод
>cat /proc/mounts и df дают разный результат.правду говоришь... и хрен бы с ним с df...
само авторити - /proc/mounts - не говорит кто к кому был при'bind'ен.
Но, видимо, это до сих пор особо никому не мешало, т.к. пока что
в mtab'e все прописано (хотя, mtab как явление и устарел уже)
Ну, думаю, как тока это кому-нить (нам?? ;) понадобицо - пачт будет 3 строки :)
>бред.
>давай дамп сессии от создания этих ФС до заветного "удалить каталог /a"
>
>для reiser и ext2.Linux 2.6.18-gentoo
mkdir ./a
mkdir ./b
mount --bind ./a ./b
ls -lt > ./a/test
cat ./b/test выводит всё корректно, как я писал выше оно работает.. но...
rm -R ./a - проходит без ошибок. Это правильно? Ладно фиг с ним...делаем:
mkdir ./a
ls -lt > ./a/test
cat ./b/test не находит файла, это логично
mount --bind ./a ./b
mount: No such file or directoryну хорошо, делаем:
umount ./bпосле этого биндинг проходит. Логично же, что не должен он позволять удалять директорию ./a?
Но если он позволяет удалять, то хоть бы мусор в ядре подчищал... Я не такой умный как все, я не знаю, как узнать о существовании такого мусора.Рекомендую сделать двадцать раз mount --bind ./a ./b и один раз cat /proc/mounts ...
cat /proc/mounts выводит у меня двадцать строчек:
/dev/root /home/stupiduser/b reiserfs rw 0 0Будем думать какую директорию прибиндили к ./b ?
Про перенаправление напишу чуть позже. Надо мне было баг записать :(
ну ты фантазер %)прибинденную диру удалять.
Я и сам не знал до этого шо будет.
Оказываеться вот такая чудная строка в /proc/mounts:/dev/root /test/b\040(deleted) jfs rw,noatime 0 0
В /test/b было прибиндено /test/a, а затем уделено.
Так что, как видишь, все в ядре записано :)
Мусор есть и визуально доступен.# uname -a
Linux gentoo 2.6.21.3-rt9 #2 PREEMPT RT Sat Jun 2 17:41:13 EEST 2007 i686 Intel(R) Celeron(R) CPU 2.40GHz GenuineIntel GNU/Linux
Вспомнил и главное проверил :)mkdir ./a
mkdir ./b
mount --bind ./a ./b
ls -lt > ./a/test
mcИз mc удаляем каталог ./a затем переходим в каталог ./b ... и восхитительно ловко попадаем с корень /
Так можно делать много раз. Особенно это круто, когда путь длинный. Хотя ls -lt ./b показывает пустоту...В общем с этим ни кто не работает, примеров нет. В этой ветке вы конечно объяснили лучше чем написано в доке :) Большое человеческое спасибо :)
Но по доке у меня не получается... Ещё раз... ms_shared проходит только если метить корень, а не отдельный каталог типа /home/a , /home/b и т.д.
>[оверквотинг удален]
>mkdir ./a
>mkdir ./b
>mount --bind ./a ./b
>ls -lt > ./a/test
>mc
>
>Из mc удаляем каталог ./a затем переходим в каталог ./b ... и
>восхитительно ловко попадаем с корень /
>Так можно делать много раз. Особенно это круто, когда путь длинный. Хотя
>ls -lt ./b показывает пустоту...тут все просто.
strace юзаешь ваще? очень полезная вещь для понимания подобных узких мест.
так вот, когда открываеться обычная пустая дира, то по вызову getdents64()
в ней 2 entry: "." и ".." - ну, понятно. Если есть файлик - то 3 и т.д.
Так вот когда открываеться этот полузомби ./b/, то вызов getdents64()
возвращает -1 ENOENT (No such file or directory) :)
а там уж как какая прога будет с ума от этого сходить.
Вот, mc, например в корень убегает в ужасе :)
ls просто пустую диру кажет
>В общем с этим ни кто не работает, примеров нет. В этой
>ветке вы конечно объяснили лучше чем написано в доке :) Большое
>человеческое спасибо :)рад был помочь, а заодно и сам кой-чо вспомнил/подучил ;)
>Но по доке у меня не получается... Ещё раз... ms_shared проходит только
>если метить корень, а не отдельный каталог типа /home/a , /home/b
>и т.д.уже ранее писал.
shared'имая дира должна быть маунтпойнтом :)
попробуй перед smount хотя б tmpfs в /home/a пихнуть.
ну или другую какую-нить диру типа /home/pre_a :)
> Ну да, результаты биндинга сохраняются до первой перезагрузки.Это потому что ты man fstab не читал
> Не вижу смысла в подмене достаточно приличной команде ln
Это потому что ты дурак.
Хинт: процесс, видящий /b, совершенно не обязан видеть /a. Существуют chroot'ы, существуют vserver'ы.
>Причем, в файле, что я указал есть прога для
>руления этими флагами.Спасибо, я в курсе этого :) честь и хвала тому, кто их осилит ;)
Только по доке, если я правильно понял, флагом ms_shared можно пометить любую директорию. В реально жизни почемуто получается удачно пометить можно только раздел примонтированный к корню. Тогда эффекты ms_shared прощупать можно.
Опять же, осознать термин propagation event это хороший способ напрячь мосг :)
Конечно название флага ms_slave выбрано не удачно. Мне до сих пор не понятно, как раздел может быть слейвом и по отношению к кому. ns_shared - кому мы расшариваем раздел? Название флага явно не раскрывает его смысла. Дока тоже мало чем помогает в этом смысле.
Примеров кода с флагами ms_shared (и др.) гугль не даёт, за исключением патчей.
>Спасибо, я в курсе этого :) честь и хвала тому, кто их
>осилит ;)кому надо - тот уже осилил ;)
>Опять же, осознать термин propagation event это хороший способ напрячь мосг :)я ваще люблю Линух за то, что он "хороший способ напрячь мос"Къ :)
>Конечно название флага ms_slave выбрано не удачно.
поржал %)
неудачно - предложи патч мейнтейнеру>Мне до сих пор не
>понятно, как раздел может быть слейвом и по отношению к кому.ну так почитай доку вдумчиво. Или алкоголем уже моск совсем разрушен?
>ns_shared - кому мы расшариваем раздел? Название флага явно не раскрывает
>его смысла. Дока тоже мало чем помогает в этом смысле.пример из доки за нумером "2a":
БЕЗ shared флага
mount --bind /a /b
mount -t somefs /dev/some /b/mnt
в дире /a/mnt НЕ БУДЕТ этой somefs. А если сделать /a shared - то все что примоунчено
в "детку" (то место, КУДА биндим) отразиццо и на "родителе".
Неужели так сложно?
(раньше я мог писать, что обратная передача моунт пойнта происходит и просто так - ну
извини, это детали что и с каким флагом как работает. Я это на ночь не повторяю :)
>Примеров кода с флагами ms_shared (и др.) гугль не даёт, за исключением
>патчей.если тебе мало проги, приведенной в доке - то тебе срочно на венду или бзд.
Вот там порядок и "все" документировано.
>А если сделать /a shared
> - то все что примоунченоЯ тоже наивно верил доке я тоже так пробовал. Вот вы всё делали по доку, у вас получилось - у меня нет. У меня ms_shared более-менее работает (т.е. не очень стабльно), если метить флагом MS_SHARED не /a (или например /home/a), а корень т.е. /
>Я тоже наивно верил доке я тоже так пробовал. Вот вы всё
>делали по доку, у вас получилось - у меня нет.видимо, ты пробовал просто делать shared именно диру,
хотя это же свойство _маунт_пойнтов_.
Т.е. хотя бы tmpfs туда прикрути и тада делай shared.>У меня ms_shared более-менее работает (т.е. не очень стабльно), если метить флагом
>MS_SHARED не /a (или например /home/a), а корень т.е. /Ну тут все просто :)
/ - это ведь точка монтирования, а просто дира /a - нет :)попробуй с точками монтирования
Как ты уже задрал с этими MS_SHARED, MS_PRIVATE, MS_SLAVE. Похоже, что нашёл первое, что до конца не понял, и трындишь, показывая свою неграмотность. Тебе объяснили зачем, что ты ещё хочешь?
Уверяю вас, там ещё много не понятного ;)
>Уверяю вас, там ещё много не понятного ;)даже больше чем ты думаешь.
Но неужели тебе кто-то что-то должен из-за того, что _тебе_ что-то непонятно? :)
Непонятно - читай доки. Все равно непонятно - сырцы. Дальше тока в вытрезвитель...
>Похоже, что нашёл первое, что до конца не понял, и трындишь, показывая свою неграмотность.я не испытываю ни малейщих комплексов по этому поводу
>я не испытываю ни малейщих комплексов по этому поводувот это верно.
Не стыдно не знать. Стыдно гнать пургу, когда думаешь, что знаешь и это не так.
Не надо новое ядро создавать, лучше существующее меньше сделать.
Ситуация как с Wine 0.9.42 . Что бы все преложения работали её создают с теми же
проблемами что и в Windows. Но и иногда получается даже лучше, ноиногда - нет ;)
Не читал кучу левых комментов выше, а потому извиняюсь если повторюсь:У этого велосипеда есть один плюс по сравнению с ядром GNU/Linux - оно под одну платформу. Если дальше будет продолжаться в том же темпе, то у него есть реальные шансы занять соответствующую нишу. А плюсов от отсутствия кроссплатформенности гораздо больше чем минусов.
И вообще - даешь по отдельному тарболу для каждой архитектуры ядра GNU/Linux! Это как ответ на пост выше.