Linux не для идиотов

Содержание
  1. Linux не для идиотов
  2. Linux не для идиотов
  3. Re: Linux не для идиотов
  4. Re: Linux не для идиотов
  5. Re: Linux не для идиотов
  6. Re: Linux не для идиотов
  7. Re: Linux не для идиотов
  8. Re: Linux не для идиотов
  9. Re: Linux не для идиотов
  10. Re: Linux не для идиотов
  11. Re: Linux не для идиотов
  12. Re: Linux не для идиотов
  13. Re: Linux не для идиотов
  14. Re: Linux не для идиотов
  15. Re: Linux не для идиотов
  16. Re: Linux не для идиотов
  17. Re: Linux не для идиотов
  18. Re: Linux не для идиотов
  19. Re: Linux не для идиотов
  20. Re: Linux не для идиотов
  21. Re: Linux не для идиотов
  22. Re: Linux не для идиотов
  23. Linux не для идиотов
  24. Re: Linux не для идиотов
  25. Re: Linux не для идиотов
  26. Re: Linux не для идиотов
  27. Re: Linux не для идиотов
  28. Re: Linux не для идиотов
  29. Re: Linux не для идиотов
  30. Re: Linux не для идиотов
  31. Re: Linux не для идиотов
  32. Linux не для идиотов
  33. Re: Linux не для идиотов
  34. Re: Linux не для идиотов
  35. Re: Linux не для идиотов
  36. Re: Linux не для идиотов
  37. Re: Linux не для идиотов
  38. Re: Linux не для идиотов
  39. Re: Linux не для идиотов
  40. Re: Linux не для идиотов
  41. Re: Linux не для идиотов
  42. Re: Linux не для идиотов
  43. Re: Linux не для идиотов
  44. Re: Linux не для идиотов
  45. Re: Linux не для идиотов
  46. Re: Linux не для идиотов
  47. Re: Linux не для идиотов
  48. Re: Linux не для идиотов
  49. Re: Linux не для идиотов
  50. Re: Linux не для идиотов
  51. Re: Linux не для идиотов
  52. Re: Linux не для идиотов
  53. Re: Linux не для идиотов
  54. Re: Linux не для идиотов
  55. Re: Linux не для идиотов
  56. Re: Linux не для идиотов
  57. Re: Linux не для идиотов
  58. про сетевые интерфейсы и rmmod
  59. Re: Linux не для идиотов
  60. Re: Linux не для идиотов
  61. Re: Linux не для идиотов
  62. Re: Linux не для идиотов
  63. Re: про сетевые интерфейсы и rmmod
  64. Re: Linux не для идиотов
  65. Re: про сетевые интерфейсы и rmmod
  66. Re: Linux не для идиотов
  67. Re: Linux не для идиотов
  68. Re: Linux не для идиотов
  69. Re: про сетевые интерфейсы и rmmod
  70. Re: Linux не для идиотов
  71. Re: Linux не для идиотов
  72. Re: Linux не для идиотов
  73. Re: Linux не для идиотов (? 🙂 )

Linux не для идиотов

Я много лет работал с Linux, и, общаясь со многими единомышленниками, сделал один странный вывод: нам катастрофически не хватает документации. Причем не инструкций вида «сделайте так и вот так» и не справочных руководств, а некоторого «мостика» между новичком, который видел только графическую оболочку подобную GNOME или KDE, и профессионалом, который может скомпилировать необходимый ему драйвер, даже если этот драйвер упорно сопротивляется.

Соответственно, я попытался сделать попытку написать книжку (хотя на книгу этот материал не тянет, скорей на методичку), которая позволила бы сравнительно просто перейти с пользовательского уровня знакомства с Linux на более высокий уровень, не проходя по типичным ошибкам, и за сравнительно короткое время.

Некоторое время я использовал фрагменты этой книги также как часть учебного курса в Челябинском Государственном университете (ЧелГУ) для того, чтобы мои студенты могли ориентироваться в системе несколько лучше, чем на уровне команд ls / ps / exit . Конечно, если честно – как учебное пособие эта маленькая книга непригодна, но, как мне кажется, она неплохо подходит как дополнительная литература.

Если у вас есть пожелания и дополнения – пишите мне почтой на dalt74@gmail.com , я постараюсь учесть ваши замечания в следующей редакции. Большое спасибо всем тем кто участвовал в рецензировании и помогал советами и замечаниями.

Искренне ваш, Артем Капитула (no-dashi, dalth & viking)

Источник

Linux не для идиотов

Собравшись с силами, решил дополнить информацией и повторно выложить небольшую методичку/брошюрку «Linux не для идиотов», которую уже выкладывал в общий доступ больше года назад. Добавлен рассказ про iptables, рассказано немного больше про udev, SATA, DM, fake-RAID.

P.S.: файл уже не бьется, проверил

Re: Linux не для идиотов

>Откуда столько шпаны на ЛОР-е? Каникулы что-ли?

откуда я знаю, когда в твоем ПТУ каникулы?

Re: Linux не для идиотов

> Можно ли использовать части текста для wiki

При условии указания начального авторства — да.

Re: Linux не для идиотов

> Автор, который уже вложил свой труд для начинающих — достоин уважения.

Аффтар, решивший выступить публично — несёт ответственность. Плохой труд хуже чем никакой, он может отвратить людей от линукса, может научить плохому и неправильному, в общем, много разных последствий может быть.

> Оформление — просто один человек не в состоянии сделать так, что бы угодить всем.

Есть СТАНДАРТЫ. latex полиграфическим стандартам качества удовлетворяет, и даже не очень квалифицированный наборщик, плохо знающий стандарты, сможет сделать качественный документ. Для того же, чтобы сделать качественный документ в ворде или оорайтере надо окончить пять курсов в полиграфическом ВУЗе и потом лет пять в хорошем издательстве отработать.

> Я уже узнал за несколько минут гораздо больше, чем за несколько недель.

А ты уверен, что ты узнал то, что надо, и что аффтар тебя не обманывает по простоте душевной?

Re: Linux не для идиотов

> > Он не достоин никакого уважения только из-за того -КАК ОН НАЗВАЛ СВОЮ СТАТЬЮ.

> у тебя какието комплексы?

Да забей ты на него — пусть вянгает. Так даже интересней

Re: Linux не для идиотов

> Вы не поняли. Какой на хрен внятный и полезный контент может быть от аффтара, который считает допустимым использование визифига и не осилил latex? Неужели вы думаете, что такое существо в состоянии написать хоть что-то разумное.

Уважаемый, убейтесь апстену.

Re: Linux не для идиотов

> А полноценные и качественные документы я и так делаю, успокойтесь. Я то вордами всякими не пользуюсь.

Хентаи в аски-арте рисуешь?! 🙂

Re: Linux не для идиотов

> Вы не поняли. Какой на хрен внятный и полезный контент может быть от аффтара, который считает допустимым использование визифига и не осилил latex? Неужели вы думаете, что такое существо в состоянии написать хоть что-то разумное.

Уважаемый, убейтесь апстену. MSH (*) (12.07.2007 14:59:35)

Наверняка, эти сопляки с винфака какого-то сбежали.

Re: Linux не для идиотов

>Кривизна смотрелки от смены K на X не меняется.

этим бредовым заявлением ты даже пожалуй геека переплюнул

>Спасибо — для секса я предпочитаю женщин.

разве что напечатанных на разворотах журналов. ибо знал бы что evince базируется на том же poppler-е

зы: веди себя воспитаннее, не позорь своих родителей

Re: Linux не для идиотов

>А ты уверен, что ты узнал то, что надо, и что аффтар тебя не обманывает по простоте душевной?

Он, хотя бы, не анонимус. (смайлик)

А ворд за пять курсов и пять лет в издательстве — это Вы, так скажем, отожгли, да.

А сколько же тогда надо времени на админство?! (в ужасе забился под кровать)

Re: Linux не для идиотов

>Он, хотя бы, не анонимус. (смайлик)

Добропорядочные ЛОР-ские анонимусы просто возмущены названием статьи и требуют от администрации ЛОР-а забанить пожизненно таких горе-авторов. Никакой пользы, кроме вреда, от таких статей нет. А может это наймиты Билли? Все может быть.

Re: Linux не для идиотов

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

Re: Linux не для идиотов

>может быть бутабельный диск без каких либо разделов

И в каких случаях в MBR сидит загрузчик системы? Только не надо отмазываться что там дескать нет слова MBR. MBRом называют запись хранящуюся в первом секторе винчестера, ее и считывает BIOS.

Re: Linux не для идиотов

>парадоксально, уже какой раз смотрю, как авторов на лоре закидывают говном, это так пойдет — люди вообще перестанут что либо делать.

Другого этот автор не достоин за свое «творение».

Re: Linux не для идиотов

> > может быть бутабельный диск без каких либо разделов

Воткни в комп пустой винт, проинсталируй на него grub в mbr. Будет тебе бутабельный неразмеченый винт.

> И в каких случаях в MBR сидит загрузчик системы?

В MBR сидит минимальная часть загрузчика, которая дочитывает основную часть загрузчика.

Re: Linux не для идиотов

>парадоксально, уже какой раз смотрю, как авторов на лоре закидывают говном

Что самое интересное, они ещё и текста не читали. Чистое и незамутнённое «Пастернака не читал, но осуждаю».

Re: Linux не для идиотов

> > Кривизна смотрелки от смены K на X не меняется.

> этим бредовым заявлением ты даже пожалуй геека переплюнул

Читайте также:  Как включить синий экран windows

Да-да, мы с гееком в одной песочнице сидели, только он честный а я маскироваться и обманывать научился.

Re: Linux не для идиотов

>Что самое интересное, они ещё и текста не читали. Чистое и незамутнённое «Пастернака не читал, но осуждаю».

Это одна из самых лучших традиций ЛОР-ских анонимусов. Есть еще традиция по ссылкам не ходить. (чтоб ерунду всякую не читать)

Re: Linux не для идиотов

> Воткни в комп пустой винт, проинсталируй на него grub в mbr. Будет тебе бутабельный неразмеченый винт.

А, я понял, это у тебя такие шутки. ну-ну

>В MBR сидит минимальная часть загрузчика, которая дочитывает основную часть загрузчика.

Ошибка. В общем случае загрузчик находящийся в MBR не имеет никакого отношения к загрузчику находящемуся в BR.

Re: Linux не для идиотов

OO 2.2 Community build всё открылось.

Re: Linux не для идиотов

Почитал. Неплохо написано. Думаю читать что-то из этого документа на лекциях в КАИ.

Источник

Linux не для идиотов

Собравшись с силами, решил дополнить информацией и повторно выложить небольшую методичку/брошюрку «Linux не для идиотов», которую уже выкладывал в общий доступ больше года назад. Добавлен рассказ про iptables, рассказано немного больше про udev, SATA, DM, fake-RAID.

P.S.: файл уже не бьется, проверил

Re: Linux не для идиотов

Все хорошо, все правильно — статья интересная, но стиль хм. похоже, что автар сильно торопился и не уделил достаточное количество времяни на редактирование.

Re: Linux не для идиотов

>Дададд. Зашифровать еще и выложить ключик на лор-е. :]

И стеганографию ещё никто не отменял, запихнуть этот файл в jpeg скриншот в галереи.

Re: Linux не для идиотов

>> Запрос HTTP послан, ожидание ответа. 200 OK

>> Длина: 77.290 (75K) [text/plain]

>> И вылазит окошко «Файл linuxbook.odt повреждён и не может быть открыт. «

> .odt ну ни фига не text/plain со всеми вытекающими.

Сразу не обратил на это внимания. 🙁 Действительно, веб сервер отдаёт этот файл с указанием Content-Type: text/plain; charset=windows-1251, что естественно не соответствует действительности.

Re: Linux не для идиотов

с документом все нормально. спасибо. а вот моя МАНДривА на команду ifconfig -a сказала, что нет такой команды.

Re: Linux не для идиотов

Re: Linux не для идиотов

Хостер тут не причем, умение красиво писать и хорошо оформлять свой труд — несколько разные вещи

Re: Linux не для идиотов

no-dashi стукни на 2457955, есть предложение, по поводу документа.

Re: Linux не для идиотов

«Маскарадинг подразумевает получение IP адреса от заданного сетевого интерфейса, вместо прямого его указания, как это делается с помощью ключа —to-source в действии SNAT. Действие MASQUERADE имеет хорошее свойство — «забывать» соединения при остановке сетевого интерфейса. В случае же SNAT, в этой ситуации, в таблице трассировщика остаются данные о потерянных соединениях, и эти данные могут сохраняться до суток, поглощая ценную память. Эффект «забывчивости» связан с тем, что при остановке сетевого интерфейса с динамическим IP адресом, есть вероятность на следующем запуске получить другой IP адрес, но в этом случае любые соединения все равно будут потеряны, и было бы глупо хранить трассировочную информацию.

Как вы уже поняли, действие MASQUERADE может быть использовано вместо SNAT, даже если вы имеете постоянный IP адрес, однако, невзирая на положительные черты, маскарадинг не следует считать предпочтительным в этом случае, поскольку он дает большую нагрузку на систему.»

А у вас оно свелось к «Действие SNAT более эффективно, MASQUERADE проще в использовании, но обладает рядом существенных недостатков. «.

Источник

Linux не для идиотов

Собравшись с силами, решил дополнить информацией и повторно выложить небольшую методичку/брошюрку «Linux не для идиотов», которую уже выкладывал в общий доступ больше года назад. Добавлен рассказ про iptables, рассказано немного больше про udev, SATA, DM, fake-RAID.

P.S.: файл уже не бьется, проверил

Re: Linux не для идиотов

> > Наиболее часто используются сетевые файловые системы NCPFS (для доступа к серверам Novell NetWare),

> Наиболее часто используемая? Шухер! Некрофилы в городе!

В свое время использовались часто, да и сейчас тоже. У нас последний сервера нетвари умер год назад, на ЖД до сих пор используется вовсю. Может выгляните из института в реальную жизнь?

> «сервер Windows» — спасибо за 5 минут здорового смеха

Да на здоровье. Могу повторить эту фразу еще десять раз. Кстати именно из-за таких в свое время смеявшихся сейчас во всех крупных компаниях развернуты среди прочего Active Directory и Exchange. Смешинкой не подавились? По спине постучать?

> Параметра «timeout» не существует.

Да, согласен. Мой баг — ХЗ откуда взялся.

Re: Linux не для идиотов

> Собственно говоря, всегда можно выбрать обратно. Могу помочь более-менее быстро перегнать.

Тоже дело. Одно только «но» — поскольку я не собираюсь этим заниматься, то вся работа по правке и поддержанию в корректном состоянии TeX’овской части ляжет на вас.

Re: Linux не для идиотов

> Оооо, либо я чего-то не так понял ранее, либо чего-то я пропустил, но такое ощущение, что кое-кто стал приглядываться к LaTeX? Гхмм, и как впечатление?

Именно что не поняли и пропустили 🙂 В университетские годы LyX + Pybliographer были моей любимой связкой для написания научных работ. Впечатление соответствующее 🙂

Re: Linux не для идиотов

> Одно только «но» — поскольку я не собираюсь этим заниматься, то вся работа по правке и поддержанию в корректном состоянии TeX’овской части ляжет на вас.

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

Re: Linux не для идиотов

>В университетские годы LyX + Pybliographer были моей любимой связкой для написания научных работ. Впечатление соответствующее 🙂

Что ж — это радует. А что такое Pybliographer? Что такое гоогл я знаю, но хотелось бы услышать авторский комментарий. 🙂

Re: Linux не для идиотов

>Сейчас Вас будут бить. Возможно, даже ногами 🙂 P.S. tex\latex читается как тех\латех

Полагаю ногами хочет Вас отпинать Ваш преподователь английского.

Re: Linux не для идиотов

А это такая приблуда, в которую удобно забивать библиографию. Интеграция с LyX ровно такая:

Стоит ли говорить, что ворд и рядом не валялся 🙂

Re: Linux не для идиотов

Предлагаю выпустить книгу «Linux.org.ru не для идиотов», которая заставит таки юных лоровцев.. АСИЛИТЬ ЦИТАТЫ, МАТЬ ВАШУ. Я заипался, заипался, заипался прыгать по ссылкам, только чтобы посмотреть, кто кому отвечает. :((( И эти людишки ещёс мнят себя пупом земли! =О

Re: Linux не для идиотов

>> P.S. tex\latex читается как тех\латех

> Полагаю ногами хочет Вас отпинать Ваш преподователь английского.

А причём здесь английский? Кроме английского есть много других языков, например, греческий.

Re: Linux не для идиотов

Требуется только для LVM1 (ядра 2.4).

> # lvcreate -s -L 10G -n home_snapshot /dev/chimera/home

> # xfs_freeze -u /home

> # dd if=/dev/chimera/home_snapshot of=/dev/st0
> # lvremove /dev/chimera/home_snapshot

Re: Linux не для идиотов

> > «сервер Windows» — спасибо за 5 минут здорового смеха

> Да на здоровье. Могу повторить эту фразу еще десять раз.

Если хорошую шутку повторить несколько раз подряд — она испортится.

> Кстати именно из-за таких в свое время смеявшихся сейчас во всех
> крупных компаниях развернуты среди прочего Active Directory и Exchange.

И словно мухи тут и там, ходят слухи по домам,
И беззубые старухи их разносят по умам.

Во-первых, отучиваемся отвечать за всю сеть (C). Во-вторых — если у
кого-то мало ума и сильно много денег — пускай хоть все отдадут m$.
Не мои же деньги тратят.

Re: Linux не для идиотов

> Модуль может быть выгружен, если число ссылок на него станет равно 0.

Тут есть небольшая заморочка. Некоторые модули (например, драйверы сетевых
карт) вообще не ведут подсчет ссылок. rmmod радостно и беззаботно
выгружет такой модуль, даже если интерфейс поднят и используется. Надо
ли объяснять, что ни к чему хорошему это не приводит?

Re: Linux не для идиотов

> > Собственно говоря, всегда можно выбрать обратно. Могу помочь более-менее
> > быстро перегнать.

> Тоже дело. Одно только «но» — поскольку я не собираюсь этим заниматься,

Пальцы мешают в дверь проходить? Хотите Вы или нет, но большАя часть
документации к GNU/Linux набрана в TeX (texinfo).

Re: Linux не для идиотов

>> «сервер Windows» — спасибо за 5 минут здорового смеха > Да на здоровье

коректнее было бы написать «Windows-сервер»

Re: Linux не для идиотов

> Тут есть небольшая заморочка. Некоторые модули (например, драйверы сетевых карт) вообще не ведут подсчет ссылок

Немного неверно 🙂 Такие драйвера ведут подсчет ссылок — но немного по другому. Когда ты rmmod’ишь драйвер сетевой, ничего страшного не происходит — интерфейс не совсем мягко, но тем не менее корректно шатдаунится.

Читайте также:  Почему не получается переустановить windows 10 с флешки

Re: Linux не для идиотов

> Хотите Вы или нет, но большАя часть документации к GNU/Linux набрана в TeX (texinfo).

Ради бога. Хотите вести в правильном формате — охотно передам вам бразды правления, ведите в чем хотите. Эта штука отнимает немало времени нервов, буду только рад от нее избавиться.

Re: Linux не для идиотов

> Требуется только для LVM1 (ядра 2.4).

Не уверен. Ссылочкой не поделитесь? А то что-то я такого не упомню.

Re: Linux не для идиотов

> > Требуется только для LVM1 (ядра 2.4).

Зато я уверен — в свое стукнулcя об эти грабли.

AFAIK, функциональность подобная xfs_freeze (и VFS lock patch для
LVM1) включена в ядра >= 2.6.9 (для всех ФС). Более того, если Вы
действительно попытаетесь «заморозить» XFS и сделать потом с нее snaphost,
то lvcreate будет «висеть» до тех пор, пока не «разморозят» ФС.

> Ссылочкой не поделитесь? А то что-то я такого не упомню.

Revision 0.15 2005-06-09 Revised by: ajl
Removed references to xfs_freeze — it is no longer needed;

> > > 1) xfs_freeze -f /mnt/test
> > 2) lvcreate -s -L500M —name test-snap /dev/system/test
> > 3) xfs_freeze -u /mnt/test
> >
> > Step 2 hangs indefinitely on my machines
>
> Update — this is not a bug but a feature! Apparently the xfs_freeze
> command is no longer required because the lvcreate snapshot command now
> includes the same functionality. Time to modify those scripts.

Re: Linux не для идиотов

> Такие драйвера ведут подсчет ссылок — но немного по другому. Когда ты
> rmmod’ишь драйвер сетевой, ничего страшного не происходит — интерфейс
> не совсем мягко, но тем не менее корректно шатдаунится.

1. Ну нифига ж себе — «ничего страшного»! В старые добрые времена rmmod
в таких случаях говорил «device or resource is busy», и это было хорошо.

2. В статье этого не указано. Написано, что если счетчик ссылок на
модуль — ноль, то модуль не используется и его можно без зазрения совести
удалять, и _вообще_ ничего не случится. IMHO, следует сказать, что это не
всегда так.

Re: Linux не для идиотов

> Ну нифига ж себе — «ничего страшного»! В старые добрые времена rmmod в таких случаях говорил «device or resource is busy», и это было хорошо.

Оно и сейчас говорить что device busy — но только если он действительно busy. Пример — примонтируйте раздел с SATA-девайса, и попробуйте удалить драйвер контроллера или sd. Сетевой интерфейс под словом «устройство» подразумевает немного другую сущность, потому он и позволяет такое сделать.

Re: Linux не для идиотов

> если Вы действительно попытаетесь «заморозить» XFS и сделать потом с нее snaphost, то lvcreate будет «висеть» до тех пор, пока не «разморозят» ФС.

Точно. На моей памяти такая блокировка действительно была в «ранних» 2.6, но в более поздних ее убрали. Теперь судя по результатам теста снова появилась 🙂

Спасибо что заметили

Re: Linux не для идиотов

> Оно и сейчас говорить что device busy — но только если он действительно
> busy. Пример — примонтируйте раздел с SATA-девайса, и попробуйте удалить
> драйвер контроллера или sd.

Не всегда. Пример. Подымаем интерфейс, монтируем NFS, делаем

rmmod ни слова не говоря выгружает драйвер (даже если / на NFS). Через
некоторое время вся эта красота заканчивается Oops’ом.

> Сетевой интерфейс под словом «устройство» подразумевает немного другую
> сущность, потому он и позволяет такое сделать.

Я считаю, что это баг. Если интерфейс поднят, то по-хорошему

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

Re: Linux не для идиотов

> rmmod ни слова не говоря выгружает драйвер (даже если / на NFS). Через некоторое время вся эта красота заканчивается Oops’ом.

Это фича. NFS живет на сокете, соединение/сокет живет вне интерфейса, и его (интерфейса) падение/восстановление на самом деле соединений не обрушивают, и сами сокеты и соединения интерфейса как активированного экземпляра девайса не используют.

И «заканчивается Oops’ом» оно не из-за отрубания интерфейса, а из-за ошибки на рутовой ФС и умирания init’а с перепугу 🙂

> должен грязно выругаться и завершиться с ошибкой.

С чего бы вдруг? Ведь в действительности интерфейс действительно никем не юзается: сокеты, как единственные постоянные объекты, живут сами по себе (на уровне tcp), а интерфейс как таковой это лишь линия связи, транспорт — и не более.

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

Документировать может и стоит, но называть его «скотским» я бы не стал 🙂 Кстати когда-то давно так и было — пока не «завалишь» все соответствующие интерфейсы, драйвер не выгружался, но валить интерфейсы все равно никто не мог запретить — так что какая разница, валят ли интерфейс через ifconfig . down или путем rmmod?

Re: Linux не для идиотов

> > rmmod ни слова не говоря выгружает драйвер (даже если / на NFS).
> > Через некоторое время вся эта красота заканчивается Oops’ом.

Это в альтернативной ОС такое бл^W поведение сойдет за фичу. А в Linux
такие «фичи» сначала документируют, а потом исправляют. И — если руки
дотянутся — бьют морду тому пи^W представителю меньшинств, который эту
«фичу» напейсал.

> какая разница, валят ли интерфейс через ifconfig . down или путем rmmod?

А какая разница, ФС отмонтировать по umount или rmmod xfs ?

Разница — огромная. ifconfig eth0 down — я сам недвусмысленно попросил
попросил прибить интерфейс, и сам отвечаю за последствия. Хотя было бы
неплохо, чтобы ifconfig вел себя как umount: есть открытые соединения — не
трогать интерфейс, если только не сказали -f (force) или -l (lazy).

> > должен грязно выругаться и завершиться с ошибкой.

> > С чего бы вдруг? Ведь в действительности интерфейс действительно никем не
> > юзается:

> > сокеты, как единственные постоянные объекты, живут сами по себе
> > (на уровне tcp),

В том то и дело, что сами по себе они не живут.

> а интерфейс как таковой это лишь линия связи, транспорт — и не более.

Ага, и отключат интерфейс — TCP пакеты пойдут с помощью отца, сына и
святаго духа 🙂

Re: Linux не для идиотов

> > сокеты, как единственные постоянные объекты, живут сами по себе (на уровне tcp),

> В том то и дело, что сами по себе они не живут.

Предлагаю вам проверить. Откройте соединение на какой-нибудь хост (например по ssh), затем пристрелите интерфейс (ifconfig eth0 down), потом запустите netstat -na, и посмотрите — умерло ли соединение или нет (подсказка — они живее всех живых). Если поднимите интерфейс снова с тем же адресом — то продолжите работать как ни в чем не бывало. Я так делал много раз (не добровольно, а из-за обрыва связи) — если по соединению нет активности, наличие или отсутствие интерфейса роли не играет.

Если мне не верите — посмотрите inet_sock.h, там есть структура inet_sock. Сокет и соединение живут отдельно от интерфейса, поскольку им пофиг через какой интерфейс пакеты будут уходить.

Наличие IP-адреса на интерфейсе на самом деле лишь дань традиции — вы можете навешать свой IP-адрес на lo с маской /32, и указать маршрут на свою локалку через route add . dev eth0, при этом eth0 поднять и адреса не задавать — и все равно ваш комп можно будет пинговать и на него можно будет подключаться. То что вам будет подключиться к кому-то еще не так просто — но это прочто вопрос реализации типичного tcp-клиента, где connect() делается без bind()

> Это в альтернативной ОС такое бл^W поведение сойдет за фичу.

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

Это все к тому, что интерфейс в постоянном режиме реально никто не юзает, и наличие счетчика ссылок = 0 у сетевого адаптера вполне законно.

> неплохо, чтобы ifconfig вел себя как umount

Наоборот — очень неплохо было бы, чтобы umount вел себя как ifconfig: при вызове umount все операции I/O бы замораживались, буферы сбрасывались, ФС синкалась и отмонтировалась, а все у кого есть на ней открытые файлы получали бы I/O error.

> ifconfig eth0 down — я сам недвусмысленно попросил попросил прибить интерфейс

А когда вы драйвер rmmod-ите, вы также недвусмысленно говорите «мне все устройства им обслуживаемые нафиг не нужны». А коли не нужны — какие проблемы? Это как < rm -rf /; >— если вызвали, значит надо.

Читайте также:  Как удалить найденный вирус с windows 10

про сетевые интерфейсы и rmmod

> Предлагаю вам проверить. Откройте соединение на какой-нибудь хост (например
> по ssh), затем пристрелите интерфейс (ifconfig eth0 down), потом запустите
> netstat -na, и посмотрите — умерло ли соединение или нет (подсказка — они
> живее всех живых).

Я знаю, что такой маразм действительно имеет место. Еще хотел узнать — какой
м^Hчудак это придумал, и по заслугам отблагодарить. («Мы бы каждый — кто
чем — выражал благодарность, / Молотилкой колхозник, рабочий ключом, /
Враг народа — киркою, протезом — афганец, / Ну а я б кой-кому засветил
кирпичом.»)

> Если поднимите интерфейс снова с тем же адресом — то продолжите работать
> как ни в чем не бывало.

ЕСЛИ. Но подымать его уже некому будет.

> В альтернативной ОС как раз наоборот, сокет жестко завязан на интерфейс, и
> с обрывом связи (например на выделенной линии) все коннекты которые уходили
> с адреса этого интерфейса тут же рубятся,

И правильно сделано.

> в отличие от топика, в котором можно без проблем переконнектиться и работать
> как ни в чем не бывало,

1. Далеко не всякий протокол, реализованный поверх TCP, так сможет, у него
свое состояние есть. Жизненный пример — сетевые/распределенные ФС.

2. Часто важно время доставки пакета. TCP, конечно, не дает никаких гарантий,
но как правило пакеты ходят за разумное время. Так что можно делать такие вещи:

# tar xf — /mnt | rsbep | dvbackup —verbose —prefix 120 | \
ssh box-with-dv-camera \
‘ionice -c1 dvconnect —send —buffers 512 —device /dev/video1394/0 — -‘

Но если во время этого уронить интерфейс. Толку с того, что якобы «можно
спокойно переконнектиться» — никакого, уже buffer underrun.

> А когда вы драйвер rmmod-ите, вы также недвусмысленно говорите «мне все
> устройства им обслуживаемые нафиг не нужны».

Это rmmod -f — «мне не нужен этот драйвер и все устройства». А rmmod должен
выгружать _неиспользуемые_ модули.

В конце концов, почему rmmod raid1 — ругается, а rmmod tg3 — нет?

Re: Linux не для идиотов

> > неплохо, чтобы ifconfig вел себя как umount

> Наоборот — очень неплохо было бы, чтобы umount вел себя как ifconfig:
> при вызове umount все операции I/O бы замораживались, буферы сбрасывались,
> ФС синкалась и отмонтировалась, а все у кого есть на ней открытые файлы
> получали бы I/O error.

Где гарантия что данные будут в непротиворечивом состоянии? Например,

$ tar xf /mnt/backup.tar.gz -C

Если umount (не приведи Великие Боги) будет себя так вести, получится
вместо backup’а хлам.

Вам не нужны Ваши данные? Есть гораздо более простой способ от них
избавиться (rm -rf).

Re: Linux не для идиотов

> Если мне не верите — посмотрите inet_sock.h, там есть структура inet_sock.
> Сокет и соединение живут отдельно от интерфейса,

> поскольку им пофиг через какой интерфейс пакеты будут уходить.

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

Re: Linux не для идиотов

> Где гарантия что данные будут в непротиворечивом состоянии? Например,

> $ tar xf /mnt/backup.tar.gz -C

> Если umount (не приведи Великие Боги) будет себя так вести, получится вместо backup’а хлам.

А вот фиг. Все будет в порядке — кроме того файла который в это время перезаписывался. Я ведь уже приводил последовательность — сначала заморозка записи, потом сброс буферов, потом отмонтирование и разморозка с I/O error, и это ничем не отличается от той ситуации как если бы вы нажали tar’у Ctrl+C или сделали killall tar.

Re: Linux не для идиотов

Re: про сетевые интерфейсы и rmmod

> Но если во время этого уронить интерфейс. Толку с того, что якобы «можно спокойно переконнектиться» — никакого, уже buffer underrun.

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

> И правильно сделано [в контексте про оффтопик]

Писсееец. А как же вы тогда сможете например заменить сетевую карту без остановки работы сервера.

Re: Linux не для идиотов

Прочитал несколько страниц. Пока немного замечаний. Первое, все-таки следует расшифровывать сокращения хотя бы при первом их употреблении. Иначе на офлайновую книгу не потянет вообще, приходится лезть в google. Далее, в графе о модулях, если упомянул утилиты работы с ними, то дай примеры использования на реальной задаче. Так глядишь, и на книгу насобираешь;-) В графе про организацию памяти я не понял, как это «из них первый гигабайт резервируется для себя ядром», если в системе всего, скажем, 128 мегабайт? Imho, следует писать попроще, как если пишешь для первокла. курсников. В целом, нормально, можно улучшить за счет детализации (почувствуй себя Львом Николаевичем) и переписывания некоторых тёмных мест.

Re: про сетевые интерфейсы и rmmod

> А как же вы тогда сможете например заменить сетевую карту без остановки
> работы сервера.

ifconfig . down — это УЖЕ остановка сервера.

Re: Linux не для идиотов

> Вы что, всерьез уверены что пакеты имеют право уходить только
> через тот интерфейс, на чей IP-адрес был повешен порождающий
> эти пакеты сокет?!

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

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

$ ssh root@natbox
[Вырубаем все интерфейсы]
# ifconfig eth0 down; ifconfig eth1 down

> Получили no route to host? Ну и что. Просто повторяем попытку

Все, приплыли! Повторять попытку уже НЕКОМУ. Остается надеяться,
что heartbeat таки перезапустит машину.

> Ему как раз пофиг на количество и наличие интерфейсов,
^^^^^^^
Осталось только решить — таки как передавать пакеты? С помощью Силы
или святого духа?

Re: Linux не для идиотов

> А вот фиг. Все будет в порядке — кроме того файла который в это время
> перезаписывался.

А этого уже достаточно. Между файлами есть соотношения, знаете ли. Пример:
если хотя бы один файл в

/src/foo/.git/objects/??/ испорчен — то все,
трындец коту Ваське.

Re: Linux не для идиотов

> Наоборот — очень неплохо было бы, чтобы umount вел себя как ifconfig:

Прежде чем покушаться на POSIX семантику ФС, попробуйте поработать с
какой-нибудь существующей не-POSIX (или не совсем POSIX) ФС — NFS
(особенно soft mount), AFS, Coda, etc. Подобные желания быстро пропадут.

Re: про сетевые интерфейсы и rmmod

> ifconfig . down — это УЖЕ остановка сервера.

Сейчас в десктопах часто уже по два интерфейса. down одному, up другому — вполне нормально.

Re: Linux не для идиотов

> [Вырубаем все интерфейсы]

> # ifconfig eth0 down; ifconfig eth1 down

> Повторять попытку уже НЕКОМУ.

Терпеть не могу Sun-ch’а, но таки напомню про дверь, яйца и прищемить.

> Но не через всякий интерфейс есть маршрут к хосту назначения. Например, через lo пакеты точно далеко не уйдут.

А это никого не волнует. Есть таблица маршрутизации, в соответствии с которой пакет и будет (должен быть) отправлен. И будет ли этим интерфейсом lo, vmnet, eth, ppp, tun, slip, hren и что там еще — это уже никому не интересно.

> Осталось только решить — таки как передавать пакеты?

А не сокетовое это собачье дело — решать как пакеты передовать. Пусть хоть на дискеты записывать и на другой комп носить — но это не его, сокета, дело.

Re: Linux не для идиотов

> Между файлами есть соотношения, знаете ли

Ну и что? Давайте тогда еще запретим tar’у прерываться по Ctrl+C,запретим кнопку reset, провода подачи питания приклеим к разъемам суперклеем, кнопку закрытия окна терминала запретим, /bin/kill удалим, удалим из таблицы сигналов SIGKILL и SIGTERM.

А что — это ведь все может обломать работу tar -xf . Это же нельзя делать.

Re: Linux не для идиотов

> попробуйте поработать с какой-нибудь существующей не-POSIX (или не совсем POSIX) ФС — NFS (особенно soft mount)

Всегда монтировал на рабочие станции ресурсы с NFS-серверов в soft-режиме. И по-прежнему хочу иметь возможность отмонтировать ФС тогда когда сочту нужным. Потому как если я как администратор решил, что эта ФС уже не нужна и подлежит отмонтированию — это значит она не нужна и подлежит отмонтированию.

Re: Linux не для идиотов (? 🙂 )

Артем, получилось здорово.

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

Так что я скажу японски: оцень колосо, оцень колосо! 🙂

Источник

Оцените статью