Перейти к содержимому
Калькуляторы

Почему я презираю большинство FreeBSD-шников

Проще родную tcsh ставить, что я обычно и делаю на линуксах, но настройки всё равно приходится тянуть.

какие плюсы от этого шелла?

Я сталкиваюсь с ним на соляркеи HP-UX - неудобен.

Что я делаю не так, посоветуйте?

(это не шутка вопрос совершенно серьезен, после баша другие шеллы неудобны, zsh - не пробовал)

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

1. Почему Вы все сравниваете ОС и ядро?

2. Каждой задаче - своя ОС, точка!

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

В линуксе всё так плохо с модулями ядра, что их нельзя распространять отдельно?

Зачем?

1)На ядерный уровень есть смысл лезть только если не хватает производительности. У меня Core 2 Duo 1.6 Ghz спокойно прогонял около 100 Мбит, на нормальном железе и того больше.

2)API модулей от системы к системе меняется, надо писать костыли (куча ifdef-ов), особенно если фичу надо поднять на древнем RHEL, а здесь все просто и универсально.

3)Отладка модулей занимает больше времени, а у меня задача стояла не только в EoIP, а еще в нескольких типах туннелей, где вероятность проблем велика.

 

В таком случае неплохо бы сделать run-time опцию

Mikrotik снял этот релиз с сайтов, для себя я собрал временный костыльный демон, и тем у кого возникли грабли, сказал, что менять. А добавлять для такой мелочи лишний conditional branch (хотя это и мизерная потеря, по сравнению с теми же context switch) - не хочется.

Так же как я мог бы не городить корявый buffer, а использовать скажем readv/writev.

задача на тот момент была слепить _побыстрее_ eoip, c вышеуказанными условиями. Кстати причина была достаточно экзотическая, на тот момент на одной стороне туннеля стояли только солнечные батареи, и единственное, что там "выживало" - Mikrotik-овская платка, а на другой стороне хостинг. Микротик в виртуалке с задачей справлялся скверно.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

По dummynet'у. Действительно, во фряхе он управляется на миллион порядков лучше, чем tc. Он на ней есть, а tc нет. На линухе у извините, но ваши костыли хромают и будут продолжать хромать в виду родовой травмы.
успокойтесь, никто не использует думминет на линуксе. да, порт есть, но готового пакаджа как-то в том же arch'е я не нашел, ну или плохо искал. да и не вижу смысла его использовать на линуксе, чо не поставить фряху тогда и не париться ? единственно на каком openwrt наверно нет выбора, потому что ембед фряха пока не очень ок.
Я предлагал pfexec замутить для bash'а или, там, для zsh автодополнение, раз ему так нужно. Да как-то он без энтузизизма отреагировал. Видать настолько ему надо.
я так то живу на zsh вполне успешно и на bsd, и на solaris'е, и даже на линагзе. разница только в том что везде кроме соляриса его надо ставить отдельно и комплишены тоже. ну ладно, кто-то будет вонять на тему шелла, дескать zsh это не true way для true линуксойда, но и для баша, который _всегда_ в коробке с линуксом, тоже нет комплишенов. не понятно почему уже вместе с башем не распространять комплишены. зачем надо придерживаться обязательно идеологии конструктора.
Кстати, за автодополнением можете сходить в гости к RouterOS, оно там есть :)
это некротик ? нет, спасибо. более убого cli я, наверно, не видел.
Что захотели, то и забекпортили. Минус BSD. Скорее всего, чтоб не допиливать постоянно мейнстрим, чем из благих намерений.
в этом вся суть линуксойдов. если не вернули в проект ничего, значит они враги и проприаритарщики, не делятся с сообществом, а лицензия бсд плохая по этой причине. а если вернули, то вот ведь скоты, цель то у них не благая, а какая-то другая и всё равно они враги и проприаритащики, потому что лицензия бсд. лол, что еще сказать. :'(

вы для начала найдите у своей циско, чтобы она что-то вернула в этот линукс, который использует в ios-xe. хехе.

Не тешьте себя. В младших SRX многоядерный Octeon, на одном ядре control plane, а на других soft-роутер, и скорее всего инструкции и часть данных пришпилены вручную в L2 кеш, хотя судя по производительности, только инструкции. Ибо Cisco с NPE-400, где MIPS в 400 Mhz занимается - 400 Kpps, а SRX 240, где 750 Mhz и поновее - 200 Kpps.
тащем-то я вкурсе Ж) но это не меняет того факта что форвардинг на младших srx _софтовый_. в J-series фряха как фряха, с вкусностями junos'а, ага. форвардинг тоже софтовый. вы, действительно, только что сказали что циско нпе400 будет быстрее srx240 ? :D возможно, вам стоит рассказать/напомнить о том что цифры публикуемые cisco и juniper не одно и тоже и сравнивать их некорректно. 420кппс у нпе400 - это идеальный вакуум "пустого" форвардинга, начните на него навешивать функционал и производительность быстро начнет падать.
А пацаны (MySQL к примеру) - не в курсе. И закрытый GPL энтерпрайз тоже. Просто важно держать (в т.ч. выкупать) полные права авторства на продукт, и можно его дополнять и продавать закрытым. А вот украсть уже нельзя.
я очень рад что вы привели в пример именно mysql. потому что это хороший пример как с gpl можно "кинуть". напомню вам, что mysql был куплен sun'ом, а тот oracle'ом. так вот, монти сначала взял бабла за "продажу", потом "форкнулся" в мариадб (или как ее там) и сейчас всех призывает использовать/покупать её. вот вам и gpl. да, очень хорошая лицензия.
А новый продукт только полный маразматик будет строить на стагнирующей ОС. Если бы у Juniper не было long-term линейки устоявшихся продуктов, и общей идеологии думаю и они бы перешли. И кстати не исключаю, что им в какой-то момент станет проще портироваться, чем каждый раз запиливать все "вручную". Тем более наврядли они особо юзают сетевые фичи FreeBSD.
если бы да кабы. не надо теоритизировать, но просто посмотреть. есть erx-series, которая на junose и который они так же переводят на junos. хотя возможно оно отомрет раньше, чем перевод закончится. не надо думать, что везде так же как в рамблере - один ебанько (простите) имитирует деятельность, а остальные хлопают в ладоши. .)

о стагнирующей ОС. вы наверно живете в мире иллюзий. за последние пару-тройку лет FreeBSD гораздо быстрее развивается вашего линукса: избавление от блокировок, нетграф, геом, zfs, fib'ы, виртуализация стэка, ресурс менеджмент в jail'ах, грядущий Xen Dom0. Linux'у на этом фоне нечем похвастать, кроме дежурного добавления драйверов. я не постесняюсь сказать что даже пинаемая всеми windows от xp до 7 революционировала ок, а linux всё там же, всё такой же. вы правы что ОС стагнирующая, только ОС не FreeBSD или другая *BSD, а это GNU/Linux. :)

я вам привел примеры продуктов Juniper где форвардингом трафика занимается FreeBSD, а вы мне про "не использует сетевые возможности". ну я не знаю что вам сказать.

У FreeBSD все преимущества очень спорны и сомнительны, чтобы безусловно ставить ее в продакшн (netgraph к примеру удобен лишь тем, кто хорошо знаком с ним, так уж если на то пошло, sfstudio может к примеру черта лысого в Линуксе сделать).
преимущества FreeBSD - адекватность коммунити, простота конфигурации, логичность, гибкость и цельность системы. недостаток собственно один, некоторая черезмерная консервативность core team, впрочем это в каком-то смысле тоже достоинство. у Linux'а есть свои преимущества, вроде некоторого превосходства в некоторой функциональности, а так же стопицот пакетных менеджеров, но это всё не очень значительно как определяющий фактор. про линагз-коммунити я лучше промолчу. описать Linux можно одной фразой: it's just for fun. ну да, так оно и есть. :)
Учитывая ЧСВ и без того экзотических специалистов по *BSD, использование такой ОС скорее даже минус.
спицалист в этом вашем опенсорсе - уже сам по себе экзотика, только в *бсд почему-то % спицалистов больше. видимо это следствие популярности. на о причинах чсв можно слегка подумать и понять, что тысячи неспицалистов, но линуксойдов, таки формируют мнение о сообществе-линуксойдов. как на этом фоне не потешить свое ЧСВ о них ? Ж)
(это не шутка вопрос совершенно серьезен, после баша другие шеллы неудобны, zsh - не пробовал)
в чем удобство баша ? ну кроме силы привычки.
2)API модулей от системы к системе меняется, надо писать костыли (куча ifdef-ов), особенно если фичу надо поднять на древнем RHEL, а здесь все просто и универсально.
да, вы напомнили, что у линагза еще API ломают от релиза к релизу и говорят "не нужен стабильный API". да, это аргумент для "just for fun"
Изменено пользователем pfexec

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Проще родную tcsh ставить, что я обычно и делаю на линуксах, но настройки всё равно приходится тянуть.

какие плюсы от этого шелла?

Я сталкиваюсь с ним на соляркеи HP-UX - неудобен.

Что я делаю не так, посоветуйте?

(это не шутка вопрос совершенно серьезен, после баша другие шеллы неудобны, zsh - не пробовал)

Попробуйте с такими настройками поюзать. (ориг имя ".cshrc")

 

Мне нравится что вводишь первые буквы, стрелки вверх-вниз поиск по истории сразу выдают команды которые начинаются с этих букв. Думаю баш тоже тюнится на такое поведение.

cshrc.txt

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

2)API модулей от системы к системе меняется, надо писать костыли (куча ifdef-ов), особенно если фичу надо поднять на древнем RHEL, а здесь все просто и универсально. 3)Отладка модулей занимает больше времени, а у меня задача стояла не только в EoIP, а еще в нескольких типах туннелей, где вероятность проблем велика.

 

2 - сомнительное достижение.

 

3 - kldunload module_name, make clean, make install, kldload module_name...ngctl... - у меня это в скрипте сразу. Как только модуль перестаёт отправлять систему в корку, дальнейшая отладка не отличается от юзерленда.

 

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

задача на тот момент была слепить _побыстрее_ eoip, c вышеуказанными условиями.

Ну так чего вы тогда обижаетесь когда я говорю, что код — говно?

Изменено пользователем gelraen

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Ну так чего вы тогда обижаетесь на то, что код получился как говно?

Разжую подробнее суть первого сообщения, и нескольких последующих:

Код свою задачу выполняет(и не глючит, там собственно нечему глючить), и другим понятен. Кому было надо, те и под фрю портировали, или спросили, если что-то непонятно. Другие просто пользуются, кто-то говорит спасибо, кто-то нет, это неважно. Важно, что помогло.

 

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Код свою задачу выполняет(и не глючит, там собственно нечему глючить)

Очень ВНЕЗАПНО, но даже работающий код может быть говном. Тысячи поделий на PHP тому подтверждение.

А кто-то не может разобраться в тридах

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

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

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

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

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

2 - сомнительное достижение.

 

3 - kldunload module_name, make clean, make install, kldload module_name...ngctl... - у меня это в скрипте сразу. Как только модуль перестаёт отправлять систему в корку, дальнейшая отладка не отличается от юзерленда.

2 - нормальное явление, ядерный API во многих аспектах на динамически развивающейся системе меняется. Можно конечно изучить dkms, и сделать это все, изменения обычно тривиальны. но снова встает вопрос - зачем?

3 - хорошо, если он отправляет систему в корку локально, а если это система которую в корку отправлять ни при каких обстоятельствах вообще нельзя? Или это вообще embedded, где пересборка ядра, нетривиальна.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

2 - нормальное явление, ядерный API во многих аспектах на динамически развивающейся системе меняется.

подмена понятий... Это так... типично...

Изменено пользователем gelraen

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Ещё по поводу сравнения файерволов было бы замечательно увидеть, сколько строк займёт аналог такого PF'ного NAT'a в пул адресов:

nat on $ext_if from <allow-nat> to any -> $nat_network static-port sticky-address

Столько же (ровно 1 строчку).

 

iptables/ipset:

iptables -t nat -A POSTROUTING -o $extif -m set --set allow_nat src -j DNAT --to-destination $natnetwork --persistent

Причём будет плюшка: сет адресов для трансляции allow_nat можно будет менять "на лету", без перезагрузки правил файрвола.

Изменено пользователем Alex/AT

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Думаю баш тоже тюнится на такое поведение.

Да, конечно:

 

~ $ cat .inputrc 
# history search by up/down
"\e[A": history-search-backward
"\e[b": history-search-forward

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Alex/AT, спасибо за вариант, посмотрю. Где-то с полгода назад пробовал эти варианты, и что-то у меня не получалось.

 

Сеть адресов для трансляции в pf, кстати, тожно можно менять без перезагрузки правил.

 

 

 

 

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Mikrotik снял этот релиз с сайтов

К чему тогда вообще было вот это:

3)Эти куски в определенной мере связаны с тем, что Микротик от релиза к релизу может лажанутся с byte order в этих полях, что и произошло недавно (v5.9), в текущем виде это очень удобно менять.

?

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

 

И да, поменять le16toh на ntohs или наоборот - это очень нетривиальная задача.

 

Работа кода под BE не планировалась, ну и кроме того le16toh и прочее добавили в uclibc лишь в январе, т.е. сборка под старые *wrt будет исключена и прийдется лепить костыль.

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

Кроме того, достаточно просто делается "костыль" примерно такого вида:

#ifndef le16toh
#if _BYTE_ORDER == _LITTLE_ENDIAN
#define le16toh(x)      ((uint16_t)(x))
#else /* _BYTE_ORDER != _LITTLE_ENDIAN */
#define le16toh(x)      bswap16((x))
#endif
#endif

И это очень позитивно сказывается на качестве и читаемости кода.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Поясните мне, кстати, почему Микротик свою RouterOS делает явно пользуясь линуксовыми приблудами (видны уши iptables и tc, как минимум), но сырцов для них на сайте нет?

 

И ещё один луч ненависти и поноса за их TheDude, к которому они до сих пор не могут прикрутить поддержку русского языка (и шире, unicode) и 10Гбитных интерфейсов.

 

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Проще родную tcsh ставить, что я обычно и делаю на линуксах, но настройки всё равно приходится тянуть.

какие плюсы от этого шелла?

Я сталкиваюсь с ним на соляркеи HP-UX - неудобен.

Что я делаю не так, посоветуйте?

(это не шутка вопрос совершенно серьезен, после баша другие шеллы неудобны, zsh - не пробовал)

Попробуйте с такими настройками поюзать. (ориг имя ".cshrc")

 

Мне нравится что вводишь первые буквы, стрелки вверх-вниз поиск по истории сразу выдают команды которые начинаются с этих букв. Думаю баш тоже тюнится на такое поведение.

Cпасибо, попробую

в tcsh мне не понравилось что сходу не заработала конструкция:

 

$ for FILE in `ls -1 FILENAME_*`; do <что то сделать >; done

 

Возражение что для этого есть xargs я принимаю, но привычка...

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Просмотр сообщенияtaf_321 (Сегодня, 01:19) писал:

Я предлагал pfexec замутить для bash'а или, там, для zsh автодополнение, раз ему так нужно. Да как-то он без энтузизизма отреагировал. Видать настолько ему надо.

я так то живу на zsh вполне успешно и на bsd, и на solaris'е, и даже на линагзе. разница только в том что везде кроме соляриса его надо ставить отдельно и комплишены тоже. ну ладно, кто-то будет вонять на тему шелла, дескать zsh это не true way для true линуксойда, но и для баша, который _всегда_ в коробке с линуксом, тоже нет комплишенов. не понятно почему уже вместе с башем не распространять комплишены. зачем надо придерживаться обязательно идеологии конструктора.

 

Так напишите под тот шелл, который используете Вы - [оть tcsh, хоть busybox.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Поясните мне, кстати, почему Микротик свою RouterOS делает явно пользуясь линуксовыми приблудами (видны уши iptables и tc, как минимум), но сырцов для них на сайте нет?

 

И ещё один луч ненависти и поноса за их TheDude, к которому они до сих пор не могут прикрутить поддержку русского языка (и шире, unicode) и 10Гбитных интерфейсов.

Если послать запрос в соответствии с GPL compliance - присылают. И на базе этого создали ветки для их Routerboard (двух моделей кажется) в *WRT.

На сайте их никто не обязан выкладывать.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

о стагнирующей ОС. вы наверно живете в мире иллюзий. за последние пару-тройку лет FreeBSD гораздо быстрее развивается вашего линукса: избавление от блокировок, нетграф, геом, zfs, fib'ы, виртуализация стэка, ресурс менеджмент в jail'ах, грядущий Xen Dom0. Linux'у на этом фоне нечем похвастать, кроме дежурного добавления драйверов. я не постесняюсь сказать что даже пинаемая всеми windows от xp до 7 революционировала ок, а linux всё там же, всё такой же. вы правы что ОС стагнирующая, только ОС не FreeBSD или другая *BSD, а это GNU/Linux. :)

 

Умиляют рассказы про появление в системе единственной на данный момент юзабельной журналируемой ФС, цуко, это во втором десятилетии 21-го века. В ту же кучку рассказы про jail и только _грядущий_ Xen Dom0. Ребята, вы когда из анабиоза вышли? Фряха стала нишевой платформой, интересной для личеров от энтерпрайза и гиков, которых еще не выперли с рабочих мест за диверсионную деятельность.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Умиляют рассказы про появление в системе единственной на данный момент юзабельной журналируемой ФС, цуко, это во втором десятилетии 21-го века. В ту же кучку рассказы про jail и только _грядущий_ Xen Dom0. Ребята, вы когда из анабиоза вышли? Фряха стала нишевой платформой, интересной для личеров от энтерпрайза и гиков, которых еще не выперли с рабочих мест за диверсионную деятельность.

 

Дружище, ты сам-то работать пробовал? Давно ли перестала ext4 разваливаться? Есть ли снапшоты рабочие под лялих? Когда можно будет с рейд5 грузиться?

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

?

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

 

И да, поменять le16toh на ntohs или наоборот - это очень нетривиальная задача.

На тот момент протокол разбирался по каждому байтику, потому и такие странные "побайтовые" конструкции.

Можно переписать, но см. ниже.

 

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

Кроме того, достаточно просто делается "костыль" примерно такого вида:

#ifndef le16toh
#if _BYTE_ORDER == _LITTLE_ENDIAN
#define le16toh(x)      ((uint16_t)(x))
#else /* _BYTE_ORDER != _LITTLE_ENDIAN */
#define le16toh(x)      bswap16((x))
#endif
#endif

И это очень позитивно сказывается на качестве и читаемости кода.

Сегодня постараюсь сделать, спасибо за совет.

 

Проект изначально "мертвый", т.к. заточен под проприетарщину, развивать его смысла нет.

Если пишут багрепорты - я исправляю (попросили к примеру сделать все через automake и т.п.), присылают патчи - коммичу. А вылизывать код ради чувства прекрасного? Да я лучше поеду пошабашу, и заработаю несколько сотен баксов, чем буду маловостребованному коду "марафет" наводить :)

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

2 - нормальное явление, ядерный API во многих аспектах на динамически развивающейся системе меняется. Можно конечно изучить dkms, и сделать это все, изменения обычно тривиальны. но снова встает вопрос - зачем?

Как то сильно часто меняется, зачем?)

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

3 - хорошо, если он отправляет систему в корку локально, а если это система которую в корку отправлять ни при каких обстоятельствах вообще нельзя? Или это вообще embedded, где пересборка ядра, нетривиальна.

 

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

Ни разу не собирал линуксовых прошивок с исходников :)

Во фре пересборка под другую архитектуру ядра без модулей занимает около минуты на моём E8400, /usr/obj при этом в памяти, чтобы на SSD дыры не протирались. Обычный make -j4 -s buildkernel KERNCONF=kernell_conf_file_name

Предварительно собирается ОДИН раз окружение и инструменты для сборки/кросскомпиляции. Минут 5 или 10 собирается, вообщем долго.

Если сырцы нормальные и конфиг актуальный то сборка под эмбед ничем не отличается от сборки обычного генерик, кроме предварительной сборки окружения. Аналогично собирается "мир".

При отладке поднимается на той же машине TFTP, в его рут ложится симлинк на кернел, который где то в /usr/obj/.. появляется после сборки. Передёрнул питание, железка забирает сама новое ядро по TFTP, смотришь через ком консоль вывод, дальше мир уже с флешки или ещё откуда грузится.

Это не цельный образ прошивки, но после сборки с исходников бинарники уже просто собрать в образ скриптом.

 

 

 

Да, конечно:

Спасибо, помогло :)

 

 

в tcsh мне не понравилось что сходу не заработала конструкция

Я с неё начинал, на баше без поиска по истории оч неудобно. Такие сложные конструкции не использую, поэтому для меня всё различие между оболочками может быть нивелировано их настройкой :)

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Гость
Ответить в тему...

×   Вставлено в виде отформатированного текста.   Вставить в виде обычного текста

  Разрешено не более 75 смайлов.

×   Ваша ссылка была автоматически встроена.   Отобразить как ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставить изображения напрямую. Загрузите или вставьте изображения по ссылке.