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






















PDF-версия.

P.S. Приглашаем вас принять участие в праздничном квесте, посвящённом 14-летию VDS-хостинга от нашей компании. Если пройдёте квест до конца, то без приза точно не останетесь!
Поделиться с друзьями
-->

Комментарии (30)


  1. maydjin
    23.11.2016 12:27
    +8

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


    «Не папки — а каталоги» — ибо каталогов много, а папка у тебя один. Обычно по слову «папки» детектируют вендузятников и дуалбутчиков, истинные линуксоиды то, что в LC_ALL=C называют «directory», именуют «каталогами», и никогда не преминут случаем исправить невежд. ©


    1. LynXzp
      23.11.2016 13:50
      +11

      Похоже на запрещенные слова в армии или http://lurkmore.to/Крайний. Линуксоиды все равно общаются с виндузятниками, а кто-то даже пишет мультиплатформенный софт. Прямо таки табу.


      1. maydjin
        23.11.2016 13:58

        Скорее на то, что определённые группы лиц более точны в [терминологии](https://en.wikipedia.org/wiki/Directory_(computing)#Folder_metaphor) чем другие.

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


        1. LynXzp
          23.11.2016 14:49
          +3

          Так бы и сказали что если досконально соблюдать терминологию то «папки» это в UI, а «директрии/каталоги» — на файловой системе, не все это знают, и я вот не знал, спасибо. (А не про родителей и виндузятников)


          1. maydjin
            24.11.2016 00:15

            Про родителей и виндузятников это мнемоника, что бы лучше отпечаталось :)


            Но, уловив суть, кое что вы упустили — директория имеет отображение именно в файловой системе и доступна через её интерфейсы. Папка — может быть реализована чисто инструментом на уровень выше. Пример — "последние использованные документы" в nautilus, вы не сможете получить к ней доступ через классический интерфейс fs. Точнее, сможете, но имя будет уже не столь дружелюбно и путь будет другой. Такие вещи как gvfs и fuse призваны сгладить различия, однако не всегда это имеет смысл/возможно.


        1. MacIn
          23.11.2016 16:47
          +2

          В какой-то детской книжке сто лет назад видел аналогию: директория — это ящик, файл — это бутылка, а этикетка — это имя файла и другие параметры.
          Так что фсе ваши директорииикаталогиипапки — пижонство.


    1. DistortNeo
      23.11.2016 21:53

      Из орфоэпических соображений стараюсь не использовать слово «каталог», только «директория».


    1. FatumFL
      24.11.2016 08:19

      А по слову «директория» кого детектируют?


      1. MacIn
        24.11.2016 20:11

        фанатов Керенского.


        1. si1v3r
          24.11.2016 21:16

          и Петлюры.


  1. gyok
    23.11.2016 13:25
    +3

    Спасибо, крутой материал


  1. Saffron
    23.11.2016 13:41
    +1

    stderr — это разве ошибка вывода?

    А ещё файловые дескрипторы можно передавать через unix сокеты. Ну и не забывайте, что select не работает с дескрипторами с номером выше 1024


  1. maydjin
    23.11.2016 13:44

    > что select не работает с дескрипторами с номером выше 1024

    Это вы выдумываете. Один вызов select'a не может обрабатывать более 1024 дескрипторов.


    1. Saffron
      23.11.2016 15:07
      +1

      Нет, это вы придумываете. select использует маски, основанные на целочисленном представлении дескриптора. Один единственный дескриптор, попавший вне области допустимых значений, ломает работу селекта.


      1. DistortNeo
        23.11.2016 22:30

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

        Системый вызов select, вообще говоря, может принять структуру любого размера. Её размер определяется первым параметром nfds. Попробуйте увеличить значение ulimit -n и использовать свой собственный fd_set увеличенного размера (либо переопределите __FD_SETSIZE).

        Утверждается, что это приведёт к желаемому результату (поддержка дескрипторов с номерами больше 1024). Во всяком случае, во FreeBSD. В Linux же, скорее всего, функция отработает неправильно (лень проверять).

        На самом деле, смысла в поддержке >1024 десрипторов нет, т.к. при таких количествах надо использовать epoll.


        1. maydjin
          24.11.2016 00:02

          На самом деле, что бы вызвать бабочек в emacs уже есть команда :)


      1. maydjin
        24.11.2016 00:09

        Да, прошу прощения, с перепутал с pselect.


        Хотя, строго говоря, ни стандарт posix ни реализация как минимум linux не ограничивают select конкретно этим числом, есть только ограничение на то, что максимальный номер дескриптора ограничен константой заданной до вызова select. Но это не отменяет того, что я тут неверной информацией разбрасываюсь.


        1. Saffron
          24.11.2016 12:35

          Конечно, это константу можно поменять, как и большинство других констант. Главный посыл моего сообщения был в том, чтобы на этот факт вообще обратили внимание. Впрочем, большинство программ редко открывают столько дескрипторов одновременно. Так что можно жить спокойно.


  1. Linder666
    23.11.2016 13:48
    +5

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


    1. roscha
      27.11.2016 11:23

      Шрифт нечитаем, остальное норм.


      1. FirstJohn
        27.11.2016 11:23

        Отчасти согласен, но основная проблема в размере картинок в посте. На самом деле они больше, если их открыть в оригинале, и там особых проблем с чтением нет.


  1. AnROm
    23.11.2016 15:00
    +1

    Иллюстрации Джулии Эванс прекрасны!

    Периодически почитываю ее блог.


  1. pmcode
    24.11.2016 08:20

    Хотелось бы более аккуратный, а не «комичный» шрифт. Не нужно приносить удобство в жертву «креатиффности». Я 42 сначала как ч2 прочитал.


    1. AnROm
      24.11.2016 14:21

      Перевод оформлен так же, как и оригинал


  1. SchmeL
    24.11.2016 14:32

    так вот почему был выбран 42…


  1. AlexGore
    27.11.2016 11:23

    А что за «ошибка вывода» в переводе stderr? ))


    1. sashacmc
      29.11.2016 12:30

      Имелось ввиду «вывод ошибок», гугл-транслейт детектед. ))


  1. engine9
    29.11.2016 22:00

    Недавно пытался открыть в консоли (Mint, cinamon) директорию с длинным именем, содержащим кириллицу, терминал глючил. При нажатии «стрелки вверх» выводилась предыдущая команда, но если нажать второй раз то в строку дописывалась еще одна предыдущая, «бэкспейс» не работал.

    У консоли есть какое-то ограничение на длину пути?


    1. Saffron
      30.11.2016 01:22
      +1

      Консоль перекашивает при использовании русского языка, если она не поддерживает юникод. Проблем в том, что юникодные буквы могут кодироваться несколькими байтами, но при этом на экране отображаться одним символом. Если разработчики терминала не учитывали эту особенность, то расчёт переносов, отступов и прочих структурных элементов начинает сбоить, буквы затирают сами себя, и тому подобный глюкодром. Так что это можно назвать огрехами локализации. Читайте руководства по локализации для вашего дистрибутива — и настраивайте вручную, пока оно не перестанет глючить.

      > У консоли есть какое-то ограничение на длину пути?

      Есть ограничения, но не только у консоли, а у линукса в целом, сейчас я их опишу.

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

      Что самое удивительное, это работает, и можно переходить в поддиректории гигантской длины свободно. Но тут вступает в силу другое ограничение. Максимальная возможная длина полного пути — это 4095 байт. Ну как ограничение. С одной стороны никто не мешает построить файловую систему, содержащую хоть мегабайтный путь. Но у всех системных вызовов ограничение на длину пути в 4095 байт. Они просто не могут передать больше и обрезают. Что будет дальше, можете догадаться. Редкий программист занимается проверкой корректности переданного пути, так что многочисленные глюки вам гарантированы — можете поэкспериментировать.

      Это ограничение связано с размером странички виртуальной памяти — для упрощения работы, чтобы не пришлось делить путь по нескольким виртуальным страницам. Не знаю, насколько сильно он прибит гвоздями. Размер виртуальной страницы можно сконфигурировать. Может быть и PATH_MAX тоже.


      1. engine9
        30.11.2016 01:40

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