Kip Macy сообщил в freebsd-current, что порт системы на T1
достиг уровня стабильности, позволяющего выполнить "make buildworld" целиком на этой платформе.
> Уж извините, но это вообще ужоснах. У меня например монитор не резиновый. Монитор он не только по ширине не резиновый, но и по высоте.
> описание IMO нужно в первую очередь для того, чтобы зафиксировать высокоуровневый поток мыслей разработчика aka что же именно он хотел сделать своим действием. а сам код уже вторичен. В однострочных макросах достаточно редко бывает "высокоуровневый поток мыслей разработчика" :)
>>Вы тут спорите, а рядом стоит фря 4.10 и Инет раздаёт.
>>Свет мигает, она перегружается и дальше раздаёт... ;-)
>
>UPS купи, а то дораздается, что винт крякнется.
UPS стоит дороже, чем этот комп целиком. Так что не куплю. :-)
> Ну да ладно... Вот мой аргумент: виртуальная память существует уже 50 лет. И до сих пор размер страницы больше 8 (или 16) Кбайт ни в одной широко распространенной архитектуре не используется. Поддерживается - но не используется.
Используется, но только для весьма специфических вещей. Например для линуксовской hugetlbfs.
> А Linux - перенесен и работает. По-моему, это весомый довод в пользу "достаточно высокого" качества его исходного кода.
оценка качества продукта просто по факту, что его кто-то потребляет? мы же не будем оценивать качество кода MS Windows из-за ее широкой распространенности? подобное сравнение будет явно не в пользу Linux и всех BSD вместе взятых с хорошом множетелем..
> А вы не пробовали _сравнить_ код Linux с кодом, например, NetBSD?
вы наверное не поверите, но в том числе это мне приходится делать это буквально каждый божий день. работа такая :-/
> Ну да ладно... Вот мой аргумент: виртуальная память существует уже 50 лет. И до сих пор размер страницы больше 8 (или 16) Кбайт ни в одной широко распространенной архитектуре не используется. Поддерживается - но не используется.
...и это, несомненно, очень весомый повод задавать размер блока с опциями монтирования через PAGE_SIZE. ведь она все равно обычно достаточно больщая? ну да, как правило большая. пара кило как минимум, зуб даю. и наврятли кому придет в голову передавать в mount такие большие опции. ну а кто передал - ССЗБ. ну а то, что собственно с размером аппаратной страницы размер блока с опциями монтирования не имеет ровным счетом ничего общего - да и хрен с ним. глнавное, что цифры то почти совпадают и как-то да работает. равно как и тонны других локальных буферов. ну ипстить! работают же..
> P.S. kalafuda, вы кто по профессии? Я - программист, rtc - тоже наврняка программист, мы вам объясняем программистским языком.
вообще то я химик.
> А вы то ли не понимаете, то ли просто троллите. В последнем случае дискуссию пора сворачивать, в первом - скажите, может, мы сможем более понятно объяснить?
я, вне всяких сомнений, за последний случай. да и обедать уже давно пора :-/
> А то ваше мнение о MAX_PATH так смахивает на рассуждения о сферическом коне в вакууме...
именно, ибо от результата этого трола ровным счетом ничего не изменится :)
>> А Linux - перенесен и работает. По-моему, это весомый довод в пользу "достаточно высокого" качества его исходного кода. > оценка качества продукта просто по факту, что его кто-то потребляет?
Кто и что в данном случае потребляет ?
Вы тут много говорили по поводу "платформозависимого кода", а когда вам указали на архитектуры на которых никаких других unix-подобных ОС и в заводе не было, выдали вышеприведенную ересь. Замечательно. Такая вот странная платформозависимость :-E
начиналось все с качества кода, вы заявили что в NetBSD он по крайней мере на таком же уровне, что является мякго говоря преувеличением,
большинство кода в kern каталоге по крайней мере является кучей малой.
>> Ну да ладно... Вот мой аргумент: виртуальная память существует уже 50 лет. И до сих пор размер страницы больше 8 (или 16) Кбайт ни в одной широко распространенной архитектуре не используется. Поддерживается - но не используется.
> Используется, но только для весьма специфических вещей. Например для линуксовской hugetlbfs.
Я говорил о VM - paging/page protection. 4МБайт страницы используются в Linux не для этого (а для оптимизации использования процессорного кэша или TLB, IIRC).
>> А Linux - перенесен и работает. По-моему, это весомый довод в пользу "достаточно высокого" качества его исходного кода.
> оценка качества продукта просто по факту, что его кто-то потребляет. мы же не будем оценивать качество кода MS Windows из-за ее широкой распространенности?
А что, исходный код Windows широко распространен? Не знал. А оценивать по тому, на скольких _разнообразных_ платформах ОС работает - неплохая метрика, ИМХО.
>> Ну да ладно... Вот мой аргумент: виртуальная память существует уже 50 лет. И до сих пор размер страницы больше 8 (или 16) Кбайт ни в одной широко распространенной архитектуре не используется. Поддерживается - но не используется.
Здесь я протормозил, сорри. ;( Это был ответ на вашу фразу "как это будет работать для систем с PAGE_SIZE в несколько мегабайт".
>>В последнем случае дискуссию пора сворачивать, в первом - скажите, может, мы сможем более понятно объяснить?
>я, вне всяких сомнений, за последний случай. да и обедать уже давно пора :-/
ОК. "Война войной, а обед - по расписанию". 8)
>> А то ваше мнение о MAX_PATH так смахивает на рассуждения о сферическом коне в вакууме...
>именно, ибо от результата этого трола ровным счетом ничего не изменится :)
Может, это и к лучшему. А то я плохо себе представляю получение имени файла, если оно может быть любой длины.
> большинство кода в kern каталоге по крайней мере является кучей малой.
тогда по каким критериям будем оценивать кучу малу?
мне вот, допустим, кажется, что <linux/fs.h> - это яркий пример той самой кучи. тут вам и inode с операциями и file и super_block и символьное/блочное устройства и тесная связка со всеми файловыми системами из дерева и еще бог знает чего - все в одной пачке.
чем-то по стилю очень напоминает <windows.h> a'la "all included!". слава богу, что AFAIK не существует аналогичного fs.c. хотя может быть когда-то давно так они и было, но вовремя разнесли.
--- cut ---
The <dirent.h> header shall define the following type:
...
It shall also define the structure dirent which shall include the following members:
ino_t d_ino File serial number.
char d_name[] Name of entry.
...
The name of an array of char of an unspecified size should not be used as an lvalue. Use of:
sizeof(d_name)
is incorrect; use:
strlen(d_name)
instead.
The array of char d_name is not a fixed size. Implementations may need to declare struct dirent with an array size for d_name of 1, but the actual number of characters provided matches (or only slightly exceeds) the length of the filename.
--- cut ---
>все-таки, PATH_MAX - это искуственное органичение, явным образом внесенное самими разработчиками ПО в свою систему. в то время как размер страницы PAGE_SIZE - это одно из свойств конкретной процессорной архитектуры, заданное извне производителем конкретного железа.
>совершенно серьезно. по крайней мере, лично я не вижу никакой действительно серьезной идеологической причины ограничивать название файла или полный путь к файлу каким-то лимитом свыше a'la NAME_MAX или PATH_MAX. естественно за исключением чисто технических трудностей, вызванных изначальной кривизной дизайна системы.
А позвольте заметить, на какое ограничение влияет PATH_MAX?
Создается впечатление, что вы не знаете, что ограничивает эта константа.
Полный путь может быть любой длины, только ограничение на имя файла/директории. И что с того?
Как например будет работать система, если в новой ФС (например подключен новый жесткий диск) есть имя файла длиной 1gb, а памяти только 100Mb?
Так что дизайн новых ОС у вас пока не очень получается...
>как пример на вскидку: copy_process(), sys_init_module() & so on - явно нарущают первые два правила.
> Вторая функция занимает 60 строк, что там непонятного?
мы играем по нами же заданными правилами? сказано было - "две экрана"..
у меня она в 2.4.24 почему-то занимает аж шесть при высоте экрана 45 строк. сюда же можно в принципе добавить do_adjtimex() или do_generic_file_read().
>>как пример на вскидку: copy_process(), sys_init_module() & so on - явно нарущают первые два правила. > Вторая функция занимает 60 строк, что там непонятного?
>мы играем по нами же заданными правилами? сказано было - "две экрана".. у меня она в 2.4.24 почему-то занимает аж шесть при высоте экрана 45 строк. сюда же можно в принципе добавить do_adjtimex() или do_generic_file_read().
Можно было бы раскидать инициализацию в init_parameters_0_20(), init_parameters_21_40(), init_parameters_41_60() и т.п.?
Да, есть большие функции, но на читаемость и понимаемость это не влияет.
Так же есть большие функции, использующие конечный автомат или switch-программирование, там могут расползтись на несколько сотен строк.
Если вы считаете, что это неудобно и т.п. - сделайте патч, и если окажется, что это корректный подход, его с удовольствием примут.
> :) И как тогда стартует система, если у нее в корне такой файл? scandir/readdir и т.п. перестанут работать и машина с вашей ОС вообще не загрузится.
- доктор, когда я делаю вот так [чешет правой пяткой левое ухо] у меня почему-то спина болит.
- а вы пробовали так не делать?
ясен пень, что практически в любой системе можно создать весьма трудноразрешимые ситуации. наверное, можно, и образ ядра забабахать на 2xRAM [если сильно постараться, не знаю как]. может, ну его тогда вообще нафик такое ядро..?
ps: примерно так сделали в свое время в QNX4 - вручную в силу тех. причин или же банальной лени в загрузчике системы ограничили размер загрузочного образа до что-то порядка 512kb. чем естественно создали весьма ощутимые проблемы народу, который по каким-то причинам хотел создать образ несколько больше. матов выло предостаточно.
> То есть предлагается использовать динамическое размещение? И сколько памяти размещать (если имя может быть любой длины) ?
выделять столько, сколько оно действительно занимает? если оно занимает 500 символов - значит, так действительно необходимо. скорее всего с возможностью ограничения максимального имени файла со стороны администратора на конкретной точке монтирования.
>> :) И как тогда стартует система, если у нее в корне такой файл? scandir/readdir и т.п. перестанут работать и машина с вашей ОС вообще не загрузится.
>- доктор, когда я делаю вот так [чешет правой пяткой левое ухо] у меня почему-то спина болит. >- а вы пробовали так не делать?
>ясен пень, что практически в любой системе можно создать весьма трудноразрешимые ситуации. наверное, можно, и образ ядра забабахать на 2xRAM [если сильно постараться, не знаю как]. может, ну его тогда вообще нафик такое ядро..?
В том и весь вопрос, а зачем имя файла должно быть неограниченным, когда это создает столько проблем и ни одного плюса? Зачем делать плохо, когда можно не делать так? И вы предлагаете создать механизм, который может привести к тому, что система перестанет загружаться...
> То есть - какие-то ограничения всё же накладываются?
скорее, как возможность и не на уровне сборки системы а отдавая это на откуп пользователю. если ему требуется установить NAME_MAX в 10k - и бога ради. он умный, он знает, что делает.
> 500 символов - это разумно. Только вот PATH_MAX == 4096. Ну и за что боремся?
> То есть - какие-то ограничения всё же накладываются? 500 символов - это разумно. Только вот PATH_MAX == 4096. Ну и за что боремся?
впрочем, с практической точки зрения, спор скорее бессмысленный бо подавляющее большинство файловых систем имеют жесткое ограничение на длину имени файла и тем не менее народ счастлив. и ладно.
> скорее, как возможность и не на уровне сборки системы а отдавая это на откуп пользователю. если ему требуется установить NAME_MAX в 10k - и бога ради. он умный, он знает, что делает.
Каков практический смысл этого ? Вы знаете много людей которые спят и видят как бы им на своем компа имена файлов по 10К забабахать (желательно различиющиеся начиная с 10го кбайта) ?
> Каков практический смысл этого ? Вы знаете много людей которые спят и видят как бы им на своем компа имена файлов по 10К забабахать (желательно различиющиеся начиная с 10го кбайта) ?
khm.. ну в принципе да, видел пару-тройку кому ограничение в 255 символов было явно маловато :)) нет, немного.
> Бздуны, а хули во фре до сих пор Backspase и скроллинг в консоли не работает ? Ставил недавно 6.0 - до сих пор драйвер териминала убогий.
> Бздя юникс, бздя юникс.....
> Стыдно вам должно быть.
> anonymous (*) (22.05.2006 18:24:28)
Хм... странно... Может я чего то не понимаю, но у меня с FreeBSD 4.какой-то там дремучей это работало. Сейчас вот 6.1 стоит. И что характерно - никаких танцев с бубнами :) и хороводов вокруг системника. Так как он очень далеко :)
> вариант linux:
[snip]
> вполне хватило lor ограничений на длину коментария и главное практически все понятно, в отличие от...
...само-собой, если не брать в рассчет таких мелочей, как open_exec(), sched_exec() etc и забавного факта, что в варианте NetBSD порядка 1/3 кода - это комментарии. подробные. в то время как в варианте Linux их попросту нет. как класса.
что, впрочем, не означает, что мне сильно нравится текущая реализация kern_exec() в NetBSD и все-таки с точки зрения компоновки кода это явно весьма так себе.
ps: нет, я конечно же понимаю, "все и так понятно so &*%^$ там коментировать?! да и ващще настоящие хакеры не пользуются документацией и коментариями!" and so on :) такие вот они аскеты - эти настоящие хакеры..
>что, впрочем, не означает, что мне сильно нравится текущая реализация >kern_exec() в NetBSD и все-таки с точки зрения компоновки кода это явно >весьма так себе.
К сожалению "exec" это не едиственный пример, весь "kern" каталог наполнен кодом такого качества.
>ps: нет, я конечно же понимаю, "все и так понятно so &*%^$ там >коментировать?!
Именно, странно почему приходится объяснять такие очевидные вещи не junior разработчику: коментарии должны стоять только там где они действительно необходимы, коментарии типа
/*а здесь мы складываем a и b */
i = a + b;
только затрудняют чтение.
Здесь насколько я вижу и те и те разработчики соблюдают это правило,
только вот в коде Linux нету места где они необходимы, а вот в коде NetBSD их куча.
В реализации запутанных алгоритмов, ну напрмер в коде ext3 вы найдете кучу коментариев.
Маме своей сказки рассказывай... на серверах поиска повально стоит FreeBSD, а Debian они только как пол-года назад начали активно использовать (в каких целях не известно)
>Нормальные люди русифицируют ВСЁ ВСЕГДА и ПОД ЛЮБОЙ СИСТЕМОЙ через РУСИФИКАЦИЮ ИКСОВ!!! Вали в ФАК если ты этого ещё не знал, уважаемый!!! После ЧЕЛОВЕЧАЧЕЙ русификации у тебя работает кириллица, везде, как в кде, так и в любом приложении, где есть кириллические шрифты, а также в любом оконном менеджере. И кде здесь как было не при чём, так и осталось.
Начнем с простого - херли ты разорался, балаболка?
Не работала стандартная руссификация иксов. Если бы только у меня - проблем бы не было. Но не работала она и у других. Методом шаманства я припомнил как я это делал еще в 8-й мандряке и просто перебил таблицу раскладок. Тогда оно заработало. Причем именно в KDE. Почему-то остальные менеджеры работали с русификацией.
Что сделали BSD-шники с KDE в 5.1 - хз.
И при чем тут шрифты, когда не работало человеческое переключение клавиатуры? Шрифты и локаль - это одно. Поддержка доп.раскладок - это другое.
Что касается фака - я один из них писал, чудило. И проверил все варианты.
>как тебе это ни странно покажется, во всех UNIX-like одни и те же
Да ты еще и ламо воинствующее. А ты в курсе различий прописывания раскладок между xfree 4.2.0 и xfree 4.3.0? Думаю, что нет.
>"Сразу", имеется в виду когда хочу какой - тот и запускаю.
Гм. А я сидел всегда в одном каком-то менеджере, пока не перешел через два с половиной года на KDE.
>Флакбокс поддерживает большую функциональность, но не стабилен как блэкбокс
Валится? Никогда такого не видел. Просидел под ним полгода.
>и не поддерживает такие хоткейсы как новейший bbkeys. Либо поддерживает, но у меня ещё ни разу они не заработали.
Что же ты не валишь в фак? Воспользуйся своим советом.
>А ты не знал, что у фрибсд все порты - свои, как и пакеты? Типа, они сами своё кде с нуля пишут, свои боксы и т.д.и т.п.?
Вот поэтому переключение клавы и не заработало в KDE через иксы сразу и прямо.
>сложнее чем поднять сервер
Ну если настроить таблицы роутинга и файрволл написать - это поднять сервер, то извините. Уровень понятен.
Я уж не знаю кто эти "все", на которых ты постоянно ссылаешься. Наверно тоже ламерье. Лично у меня и остальных присутствующих порядок. Есть определенная структура и всегда понятно где какой конфиг.
>Сомневаюсь, что многие дистрибы линукса это позволяют пользователю выбрать.
Их можно поменять после установки. Или ты сразу лезешь со свежей машины куда-то?
> Именно, странно почему приходится объяснять такие очевидные вещи не junior разработчику: коментарии должны стоять только там где они действительно необходимы,
теоретически, чисто теоретически. и понятие "там, где действительно нужны" более чем субъективно. при наличии качественной документации на систему - вполне возможно. при ее отсутствии - как минимум 50% кода есть комментарии, чтобы осталось хоть что-то осталось последователям.
но это лишь мое личное мнение. если у вас оно отлично от моего - нет проблем, "каждый человек сам творец своих проблем" (c) FIDO.
> коментарии типа /*а здесь мы складываем a и b */ i = a + b; только затрудняют чтение.
не утрируйте
> Здесь насколько я вижу и те и те разработчики соблюдают это правило,
только вот в коде Linux нету места где они необходимы, а вот в коде NetBSD их куча.
может быть, может быть. у меня не стояло цели кого-то в чем-то переубедить. это был обычный забавный флуд при наличии желания на тот момент времени. каждый остался при своем мнении и это нормально. иначе в сущьности и быть не могло [IMHO даже теоретически].
> В реализации запутанных алгоритмов, ну напрмер в коде ext3 вы найдете кучу коментариев.
в другой раз, господа, как-нибудь в другой раз :)
the flame is over, работать пора. cu.