Здравствуйте, IID, Вы писали:
IID>Здравствуйте, netch80, Вы писали:
N>>O_PATH — ни к селу ни к городу.
IID>а man утверждает что к селу и к городу
Цитируя что-то, надо ещё и понимать прочитанное. У тебя с этим большие проблемы — из-за отсутствия всё того же реального опыта.
Возможность fstat() на дескриптор с O_PATH позволяет ответить на вопрос "И де я нахожусь?" — в данном случае "что это блин за дескриптор тут затесался?" Ни для чего больше оно не предназначено, и уж тем более для того, чтобы менять stat() на в разы более дорогую цепочку open(,O_PATH)+fstat()+close().
N>>Сисколлы vfs_stat, vfs_lstat не обнаружены. Ты процитировал внутренние функции ядра. IID>Эти внутренние функции ядра и есть реализация сисколлов stat и lstat. Они могли бы быть заменены единым k_stat, принимающим флаг.
Они и заменены. fstatat() при dirfd == AT_FDCWD перекрывает их функциональность. То, что ты видишь — legacy для сохранения ядерного API для старых программ. Жёсткое требование Линуса и Ко — ядерный API пользовательских задач не меняется. Поэтому в сисколлах до сих пор сохраняется всякая идиотская древность типа sys_getgroups16, хотя сейчас фиг найдёшь программу, которая скомпилирована во времена 16-битных gid'ов.
Так как у Linux для каждой платформы свой набор сисколлов, не удивлюсь, если для какой-нибудь следующей железяки сделают такую подстановку и отдельные stat, lstat уберут. Хуже от этого вряд ли будет, но лучше — тоже.
IID> Подозреваю что и fstat тоже, открывая предварительно дексриптор с O_PATH.
И снова три сисколла вместо одного только потому, что некоему IID захотелось обобщить? В сад.
N>>Попробуй ещё чего-нибудь нафантазировать. IID>Попробуй отвечать по-существу.
Так и делаю, в ответ на твои подтасовки. Если бы ты привёл хоть один пример, где можно что-то сделать вообще без похода в ядро, я бы ещё понял. А пока что два примера — в одном ты хочешь вместо одного выполняемого сисколла три(!), в другом свести две точки входа в одну ради грошовой экономии, сломав совместимость. За такие советы бьют по рыжей морде в любой ОС, даже в Windows.
IID>Ясно. Ответа не было ни тогда, ни сейчас.
Это ответ, содержащий реально значимые аргументы. Просто научись читать.
Здравствуйте, netch80, Вы писали:
N>и уж тем более для того, чтобы менять stat() на в разы более дорогую цепочку open(,O_PATH)+fstat()+close().
Экономия на спичках оборачивается мусором в ядерном API. Может лучше механизм сисколлов оптимизировать ? Раз ты сам утверждаешь, что даже их эмуляция внутри Win ухитряется работать шустрее.
Если тебе надо массово получать данные о файлах — может надо их не поштучно state-ить, а сразу содержимое каталога прочитать ?
N>И снова три сисколла вместо одного только потому, что некоему IID захотелось обобщить? В сад.
Не снова, а всё ещё. Я изначально предлагал сузить API ядра.
N>>>Сисколлы vfs_stat, vfs_lstat не обнаружены. Ты процитировал внутренние функции ядра. IID>>Эти внутренние функции ядра и есть реализация сисколлов stat и lstat. Они могли бы быть заменены единым k_stat, принимающим флаг.
N>То, что ты видишь — legacy для сохранения ядерного API для старых программ. Жёсткое требование Линуса и Ко — ядерный API пользовательских задач не меняется.
Бинго! А была бы userland api so — легаси бы застряло в ней. И грузилась бы та её версия, которая требуется приложению.
N>Поэтому в сисколлах до сих пор сохраняется всякая идиотская древность типа sys_getgroups16, хотя сейчас фиг найдёшь программу, которая скомпилирована во времена 16-битных gid'ов.
Неужели!
N>свести две точки входа в одну ради грошовой экономии, сломав совместимость.
Ради порядка, прежде всего. А совместимость ломается by design, потому напрямую в ядро лазают. Типа как в порты лазали 30 лет назад, прикрываясь производительностью, и намертво прибивая софт к железу.
N>За такие советы бьют по рыжей морде в любой ОС, даже в Windows.
В мире Windows есть ntdll.dll, и программы не сисколлят напрямую в ядро. Поэтому у разработчиков архитектурно руки развязаны.
IID>>P.S.: кстати, как защитник традиций CRLF/CR/LF, подскажи, какие небесные силы не дали авторам make возможность парсить пробелы в начале строк ? Почему эти безрукие упыри обязательно требуют TAB ?
N>Уже отвечал. N>Это ответ, содержащий реально значимые аргументы. Просто научись читать.
Давай озвучу их.
"раз в man написано что надо TAB — то ставь TAB и не задавай вопросов. А иначе ламер."
kalsarikännit
Re[27]: а в Линуксе вообще есть какой-то прогресс?
Здравствуйте, IID, Вы писали:
N>>и уж тем более для того, чтобы менять stat() на в разы более дорогую цепочку open(,O_PATH)+fstat()+close().
IID>Экономия на спичках оборачивается мусором в ядерном API. Может лучше механизм сисколлов оптимизировать ? Раз ты сам утверждаешь, что даже их эмуляция внутри Win ухитряется работать шустрее.
Я утверждаю? Пруф, или соврал.
IID>Если тебе надо массово получать данные о файлах — может надо их не поштучно state-ить, а сразу содержимое каталога прочитать ?
На получение каталога есть группа getdents(). Вопрос массового stat() на каталог рассматривался несколько раз в разных кругах и был похерен за малоосмысленностью.
N>>И снова три сисколла вместо одного только потому, что некоему IID захотелось обобщить? В сад. IID>Не снова, а всё ещё. Я изначально предлагал сузить API ядра.
Ну и накойхер то сужение? Операция захватить vnode, аллоцировать под неё дескриптор только затем, чтобы этот дескриптор передать в userland для последующего fstat, и снова сходить чтобы освободить дескриптор и отпустить vnode, по дороге пройдя обязательные синхронизации на работу с fd_set (напоминаю, что SMP сейчас даже в утюге), а в случае сетевой FS ещё и дополнительные циклы get/unget по сети... есть куча более интересных видов секса, тем более в свою пользу, а не постороннего виндовозника.
N>>>>Сисколлы vfs_stat, vfs_lstat не обнаружены. Ты процитировал внутренние функции ядра. IID>>>Эти внутренние функции ядра и есть реализация сисколлов stat и lstat. Они могли бы быть заменены единым k_stat, принимающим флаг.
N>>То, что ты видишь — legacy для сохранения ядерного API для старых программ. Жёсткое требование Линуса и Ко — ядерный API пользовательских задач не меняется. IID>Бинго! А была бы userland api so — легаси бы застряло в ней.
Дав выигрыш в 0.00001% в редком случае. Или ещё меньше.
N>>свести две точки входа в одну ради грошовой экономии, сломав совместимость. IID>Ради порядка, прежде всего.
Порядок нужен только там, где реально нужен.
IID>В мире Windows есть ntdll.dll, и программы не сисколлят напрямую в ядро. Поэтому у разработчиков архитектурно руки развязаны.
А тут 99.99% программ ходят через libc.so с тем же результатом.
Вопрос завязки на статическую компиляцию регулярно поднимается. Можешь нагуглить обсуждения, хотя, опять же, вряд ли ты без реального опыта поймёшь, что там именно надо читать. Но подскажу: рассмотри контексты другие, чем когда система уже загрузилась в штатном режиме и там известно, откуда брать so'шки и как.
IID>Давай озвучу их. IID>"раз в man написано что надо TAB — то ставь TAB и не задавай вопросов. А иначе ламер."
Нет. Верное озвучание так — уже есть межвендорский стандарт и, даже если он кому-то не нравится, польза от нововведения ничтожна, а затраты на переход — существенны.
Впрочем, последняя часть "А иначе ламер" — как раз верна.
C>Постоянно читаю статьи в духе "Линукс сделал огромный прогресс" и т.п. C>В очередной раз поставил Убунту поиграться. И честно говоря, не вижу никакой разницы по сравнению с каким-нибудь Mandrake образца 2003 года. Это с точки зрения пользователя, конечно. Ну, менюшки и кнопки в очередной раз переставили на новое место. C>Драйверов как не хватало, так и не хватает. Клипборд как не работал по человечески, так и не работает. Косяки в интерфейсе как вылезали, так и вылезают. C>Может, я просто чего-то не заметил?
На мня тут дух Линукса прогневалхся походу за злые постинги. Девайсинка с линуксом на борту которая мне музычку играет и еще кое чего обслуживает, работая в железном ящике за стенкой стола 24/7 уже которой год вздумала ребутаться каждые 10 мин. Померял — похоже номиналы элементов в стабилизаторе БП уплылт и не хватало питания. Разобрал, подкрутил, + впаял в плату с ARMом пачку кондеров чтоб питание лучше фильтровало. Собрал — четвертый час полет нормальный. Хороший, хороший Пингвинус (мысленно почесав Пингвинуса за предположительным ухом).
Как много веселых ребят, и все делают велосипед...
Здравствуйте, Васисуалий Пупкиндт, Вы писали:
ВП>Здравствуйте, ononim, Вы писали:
O>>Но в целом я согласен — винда в UI идет в сторону минимизации порога вхождения, что крайне плохо сказывается на функционале.
ВП>До Windows 7 это было так. Но сейчас если взять флагманский Windows 10, то все уже не так однозначно. Кто-то из кришнаитов решил что надо продублировать жизненно важные настройки системы дважды. Одна часть это стандартная контрольная панель, которая выглядит везде почти одинаково. И новая метро-стайл полюбень под названием Параметры. Часть настроек дублируется и там и там, с одинаковым функционалом, но разным внешним видом. Часть есть только в Параметрах (например обновления). Часть только в контрольной панели (программы и их удаление). В других случаях поведение еще более интуитивное. Открываешь Параметры, выбираешь некий пункт — открывается снап-ин из контрольной панели. То есть настройки раздристаны между этими двумя сущностями, которые к тому же сильно отличаются по внешнему виду и поведению интерфейсных элементов.
ВП>Я до сих иногда путаюсь и не могу найти нужный параметр. Что в этом смысле происходит в головах у обычных пользователей без 20 лет опыта с виндовым интерфейсом можно только догадываться. Честно — вообще не представляю как они ориентируются в этом хаосе.
Очень просто — они туда не лазят.
Я уже с win7 понял что проще в командной строке написать ncpa.cpl чем искать куда это теперь спрятали.
Здравствуйте, consign, Вы писали:
C>Может, я просто чего-то не заметил?
Сейчас инсталлил дебиан 8.6.0. На выбор есть установщик, графический установщик и установщик с речевым синтезом (sic!) При этом графический установщик по виду Win3.11. И надписи на кнопках размещены неровно.
Кстати, дебиан ласково предложил пошпионить за мной. Ласково — потому что в отличие от W10 шпионская настройка шага установки выключена, а не включена.
Зато могу смело утверждать, что про пароли у ллео лажа. Дебиан прекрасно сожрал пароль 123 и на рута, и на юзера. Даже не поморщился что слабые.
Здравствуйте, IID, Вы писали:
IID> Зато могу смело утверждать, что про пароли у ллео лажа. Дебиан прекрасно сожрал пароль 123 и на рута, и на юзера. Даже не поморщился что слабые.
На самом деле — в какой версии толи дебьяна, то ли убунто-сервера был такой закидон. Потом его уже убрали.
Здравствуйте, netch80, Вы писали:
N>Пост ниачём. Хотя некомпетентность участников продемонстрирована как для хрестоматии.
Проще надо делать. Делать надо проще. Жрать надо и табы, и пробелы. И cr и lf, и crlf вперемешку. Не переломитесь.
Астериск я бы вообще не стал приводить в пример хорошего софта. Убожество убогое, особенно с этим их tweet.tweet.canary — "ах, не зависли ли мы?". Пц, написали такое, в чем сами разобраться не могут, и подпёрли костылём.
Если бы линуксоидов били дубинками, в мире было бы намного меньше криминала. Было бы меньше уязвимостей в софте, через которые воруют деньги. Потому что линуксоиды писали бы аккуратнее, и не на сишечке своей поганой с мэйком протухшим, а на той же Ada, которая подходит для АЭС, медтехники, микроконтроллеров и самолетов, а вот для уёбсервера с DNS-сервером — видите ли не подходит, потому что у пингвиняток идиосинкразия на begin и end вместо {]<-*(&^%харкптьюфутваюмать.
Здравствуйте, consign, Вы писали:
C>Клипборд как не работал по человечески, так и не работает. Косяки в интерфейсе как вылезали, так и вылезают. C>Может, я просто чего-то не заметил?
Самый свежий из стабильных
Debian 8.6 был выпущен 17 Сентября 2016.
1) почему он не умеет пропускать загрузку с CD ?
но ладно, это мелочи.
2) почему sudo "искаропки" не работает ? Ты ж, гадёныш, спрашивал отдельно юзернейм. Причём дважды. Так почему в /etc/sudoers пусто, а при попытке сделать sudo выдаётся издевательское
test is not in the sudoers file. This incident will be reported.
Ладно, прописал сам, худо бедно работает. По-освету местных логановодов поставил какой-то минималистический ice-чегототам интерфейс. Один хрен я его только через SSH вижу.
Прошло какое-то время. Потребовалось мне в убунту и этот дебиан воткнуть по второй сетевой карте. Чтобы одна наружу смотрела через NAT. А вторая только с реальным хостом работала. Мерзкая убунту новую конфигурацию сожрала без проблем. А божественный дебиан наотрез отказывался подключать вторую сетевую карту. Именно вторую. Независимо от настроек.
3) при двух сетевых картах получаем "debian connection wired connection 1 is already active ..."
Подумал что это из-за того что обе карты Intel. Поставил одну AMD. Нифига. Даже interfaces пытался править. В mc. Исправил, жму сохранить. Выкуси, говорит, прав нету. Да, забыл sudo сделать. Ладно, думаю, щас я в буфер обмена-то его. Оппа! Из mc в mc всяко должно работать. НИ-ФИ-ГА. Хоткеи всевозможные перепробовал, и разные кнопки мыши жал. И даже в модном UI меню активна только кнопка Paste, но никак не Copy:
Решил что ICE этот слишком тупой, и не умеет в два интерфейса. Т.к. виртуалка один фиг тестовая — снёс её, поставил заново. Хитрый план: чтобы сетевые карты сразу присутствовали. Только теперь в качестве интерфейса выбрал KDE. Результат ? ТО ЖЕ САМОЕ Но KDE хотя бы слегка обозначило проблему. Да-да. Он обоим интерфейсам присваивает одинаковое имя и давится этим. И в KDE ректальнейшим образом но можно это имя изменить. (Более нелогичного сетевого UI я даже представить не могу.)
4) вылез зачем-то KWallet, предлагает 2 вида чего-то там засетапить. Есть кнопки Next и Cancel. Только реакция на кнопку "Cancel" превосходная — он тут же перезапускается опять. Почти как голосование в раде.
но ладно, это мелочи.
Здравствуйте, consign, Вы писали:
C>Постоянно читаю статьи в духе "Линукс сделал огромный прогресс" и т.п. C>Может, я просто чего-то не заметил?
Дружище, ты не заметил LXSS от майкрософта. Aka WSL, Windows Subsystem for Linux. (Ваще-т это Linux Subsystem for Windows, но разве этим смутить бравых ребят из Редмонда, хранящих 64 битные файлы в system32, а 32 битные в SysWow64 ?)
Вот где полный кайф. Нету ни возни с драйверами, ни глючащих сетей, ни кривого UI (если сам не захочешь), ни десятка неработающих буферов обмена. Не надо отдавать 1-2гб ОЗУ виртуалке, ядро процессора, и полсотни гигабайт харда. Не надо ждать пока она загрузится. Не надо вручную её тушить, потому что ACPI по-человечески в линуксе не работает.
Зато есть:
— полная интеграция с виндой, включая Linux процессы в Task Manager.
— Из линукса видно все диски, из винды видно ФС линукса. Можно, например, из линукса собирать драйвер, исходники которого лежат на виндовом диске.
— Подключение мновенное, без тормозов. В виртуалке же ждёшь по нескольку секунд на локальное SSH соединение.
— Поиск по линукс-ФС тоже мгновенный, средствами Win, и не надо переключаться в консоль/mc чтобы искать быстрее (на стороне линукса).
— Изначально только ядро и баш. По-умолчанию подключен репозиторий убунты, и с него тянутся все пакеты. Но можно подключить и другой дистрибутив.
— даже mc работает!
— есть сеть
— особые извращенцы ставили на винде X-server, делали export DISPLAY и гоняли UI приложения.
— размер всего мегабайт
— из линукса можно запускать Win процессы и наоборот (требуется пара сторонних утилит от Alex Ionescu, гуглить его и lxss на гитхабе)
Я уже ядро линукса в LXSS собрал. После работы с виртуалками это... это как секс с женщиной после правой руки.
kalsarikännit
Re[17]: а в Линуксе вообще есть какой-то прогресс?
Здравствуйте, Слава, Вы писали:
N>>Пост ниачём. Хотя некомпетентность участников продемонстрирована как для хрестоматии. С>Проще надо делать. Делать надо проще. Жрать надо и табы, и пробелы. И cr и lf, и crlf вперемешку. Не переломитесь.
Смешно такое слышать от сторонника херни, в которой до сих пор com1 в каждом каталоге не файл, system32 для 64 бит, а WOW64 для 32
Причём, в отличие от make, которое средство для разработчика или грамотного автоматизатора (остальные разве что готовую команду вызовут), на первое наткнётся даже простой юзер, если ему не повезёт.
С>Астериск я бы вообще не стал приводить в пример хорошего софта. Убожество убогое, особенно с этим их tweet.tweet.canary — "ах, не зависли ли мы?". Пц, написали такое, в чем сами разобраться не могут, и подпёрли костылём.
А я и не привожу его как пример. Внутри он действительно кошмарен. Когда я в voip работал, мы от него сбежали так быстро, насколько смогли. Но к теме некомпетентности участников это не относится.
С>Если бы линуксоидов били дубинками, в мире было бы намного меньше криминала.
Бить дубинками надо было Гейтса. Лучше — по голове. А то несправедливо — Килдалл получил, а Гейтс — нет, хотя у последнего вина больше.
Хотя, если принять за гипотезу, что это он и выпилил конкурента, всё логично.
С> и не на сишечке своей поганой с мэйком протухшим, а на той же Ada, которая подходит для АЭС, медтехники, микроконтроллеров и самолетов,
И что, написан хоть один значительный кусок винды на Ada? Если да — где почитать? А то я тот же C только и вижу.
В знаменитых утёкших исходниках — C и ассемблер. С теми же {}, ага.
Кстати, Вы пробовали писать на Ada? Я — да. Не всё то золото, что блестит, должен я заметить.
Неспроста, например, в стандарте 95-го года сделали замену идиотским рандеву.
С> а вот для уёбсервера с DNS-сервером — видите ли не подходит, потому что у пингвиняток идиосинкразия на begin и end вместо {]<-*(&^%харкптьюфутваюмать.
C>>Клипборд как не работал по человечески, так и не работает. Косяки в интерфейсе как вылезали, так и вылезают. C>>Может, я просто чего-то не заметил?
И вот что характерно — у каждого линукса — свой уникальный набор багов. Никакой унификации даже тут.
Впрочем нет, баг 12309 вполне себе униифицирован. Вот буквальное недавно наблюдал его — скрипт активно шерстил файлы на sdcard-е, и внезапно завис весь гуй. Вообще-совсем. Смотрел я несколько минут на это непотребство, достал карту (не очень критичная работа там велась) — и все отвисло. Как там в анекдоте было — "погоди сынок, сейчас дискету отформатирую и покажу тебе что такое многозадачность". Только этот анек линуксоиды любили в 2000х рассказывать про винду (услышав его от полуосевиков в 90х), а оказывается он — про линукс.
Как много веселых ребят, и все делают велосипед...
Здравствуйте, ononim, Вы писали:
O>Только этот анек линуксоиды любили в 2000х рассказывать про винду (услышав его от полуосевиков в 90х), а оказывается он — про линукс.
Особенный смак в том, что в то время линукс был "последовательным MS-DOS" по-сути. С отсутствием вытеснения внутри сисколлов. Мне еще жутко доставила черно-белая логика preemt_count, и разрезание обработчиков прерываний на top half и bottom half. Исключительно из-за отсутствия нормальных приоритетов. Глядишь, лет через 10-20 до IRQL дорастут.
Здравствуйте, IID, Вы писали:
IID>Особенный смак в том, что в то время линукс был "последовательным MS-DOS" по-сути. С отсутствием вытеснения внутри сисколлов. Мне еще жутко доставила черно-белая логика preemt_count, и разрезание обработчиков прерываний на top half и bottom half. Исключительно из-за отсутствия нормальных приоритетов. Глядишь, лет через 10-20 до IRQL дорастут.
А причём тут приоритеты? Обработчики прерываний в Линуксе уже много лет как выполняются в обычных потоках, которыми рулит вполне обычный планировщик. Верхняя часть нужна только для того, чтобы запланировать эту работу. Она специально делается минимально сложной для минимизации времени в контексте прерываний.
Альтернатив, собственно, нет. В Винде всё ровно так же с IRQL.
Здравствуйте, Cyberax, Вы писали:
C>Здравствуйте, IID, Вы писали:
IID>>- Подключение мновенное, без тормозов. В виртуалке же ждёшь по нескольку секунд на локальное SSH соединение. C>Открой для себя ControlMaster опцию в SSH ( http://blogs.perl.org/users/smylers/2011/08/ssh-productivity-tips.html )
C>