LINUX.ORG.RU

Как понять, что все в Linux- это файлы?

 , ,


1

2

Недавно я узнал, что «в Linux файлом является абсолютно все». Понятно, когда речь идет о каком-то статическом файле, картинке или текстовом файле, тут все ясно.

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

Но хотелось бы увидеть воочию такой файл «сетевого соединения» или файл «процесса». Открыть его, посмотреть что внутри.

1. Где найти такие файлы в Ubuntu?

2. Есть ли просмотрщик (консольный), который «рефрешит» этот файл ежесекундно, чтобы убедиться что в таком файле постоянно что-то меняется?

3. А в Windows не все- файл? Те же процессы и сетевые соединения там в виде чего представлены?

Ответ на: комментарий от shkolnik_2019

А чем они являются?

Кто «они»? Сетевые интерфейсы? Физическими (ethernet, wifi, и т. д.) либо виртуальными (bridge, tun, tap и т. д.) устройствами.

dexpl ★★★★★
()
Ответ на: комментарий от shkolnik_2019

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

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

anonymous
()

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

https://www.granneman.com/writing/books/linux-phrasebook

Его даже советуют на Linux.com и Linuxjournal, да и вообще говорят он лучший.

https://www.linux.com/news/linux-phrasebook-lifesaver-murky-waters-cli/

https://www.linuxjournal.com/article/9370

Не помню где читал онлайн, но первая глава называлась:

Chapter 1: Things to Know About Your Command Line

Everything Is a File

И там точно утверждалось, что абсолютно все в Linux является файлом. Сетевые соединения, процессы, дисковые устройства- все файл. А Linux не различает эти файлы и представляет их как поток битов/байтов. Я точно помню что было написано так. Вы хотите сказать, что этот почтенный в технических кругах муж - врет? Врет, смотря в глаза тысячам своих студентов на протяжении десятков лет? И миллионам читателей врет?

Не верю, его бы давно разоблачили... А на деле его книги являются бестселлерами в мире Linux. Нельзя быть знаменитым в ИТ, врать на весь мир и не быть разоблаченным. Кто-то здесь точно гонит...

shkolnik_2019
() автор топика
Ответ на: комментарий от anonymous

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

Именно, электродвигатель почти не изменился, лодки плавают больше полувека, можно поинтересоваться сколько лет авианосцам и всяким B52.

vodz ★★★★★
()
Ответ на: комментарий от qulinxao3

что всё есть обьект эквивалентно всё есть файл с «драйверами» событий открыть создать прочитать и записать - т.е есть возможно взаимно однозначное соответствие между «файловым» vs «обьектным» взглядом

Нет этой эквивалентности. Подход, что всё есть объект это следствие того, что мы не хотим, чтобы интерфейс был прозрачным, мы хотим, чтобы в этой ОС зарабатывали деньги писатели закрытых программ, с предоставлением возможности работы с данными опять же с дерганьем свойств объектов через обратно к этим закрытым программам через всякий там COM/DCOM и попытаемся доказать, что это классно.

vodz ★★★★★
()
Ответ на: комментарий от dexpl

Кто «они»? Сетевые интерфейсы? Физическими (ethernet, wifi, и т. д.) либо виртуальными (bridge, tun, tap и т. д.) устройствами.

И в виде чего они представлены в Linux? Как посмотреть что внутри них?

shkolnik_2019
() автор топика
Ответ на: комментарий от anonymous

Это к психиатру. За мной никто не шпионит.

Уже проверил исходники винды?

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

shkolnik_2019
() автор топика
Ответ на: комментарий от anonymous

Так изменился или нет?

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

vodz ★★★★★
()
Ответ на: комментарий от vodz

конечно нет эквивалентности. и в том числе по указаным вами причинам

а также ровно по тем же причинам по которым в до Unix операционках (т.е включая ещё не выпушыный multix как многие другие os вышедшие календарно позже 1971) было и есть многообразие протоколов к вещам которые в первоюниксах считались(в первое время как минимум) - эквивалентными

в частности - зачем терять эффективность на мало кому нужной архитектурной простоте пользования если можно заморачиваться с индивидуальными особенностями каждой железки каждому отдельному дорогостоящему программисту ( просто посмотрите как в реале упала медиана у чела занятого в софторазработке с усато-бородатых 70ых - при взрывном росте it)

и да у разнообразие интерфейсов по природе тот же генезис что у бюрократического восторга - утилизация ещё не понятно как распределяемого прибавочного продукта в ежепереодическом изменения регламента взаимодействия - паркинсон во все поля - и все сыты и делом важным заняты.

пока очередной лесник ни придёт и не проведёт эволюционый отбор на.

qulinxao3
()
Ответ на: комментарий от anonymous

И характеристики те же остались?

Если вы занимаетесь демагогией, пытаясь доказать, что двигатели за 200 лет не поменялись, то это не ко мне. Я такого не говорил. Я сказал о 130 лет.

vodz ★★★★★
()
Ответ на: комментарий от qulinxao3

в частности - зачем терять эффективность на мало кому нужной архитектурной простоте пользования если можно заморачиваться с индивидуальными особенностями каждой железки каждому отдельному дорогостоящему программисту

Много текста и мало смысла. Именно благодаря идее, что всё есть файл и не надо мудрить с каждой железкой отдельно, можно работать хоть с сетью как с потоком, что и делают серверы и клиенты, не заморачиваясь как оно там через какую сетевушку что-то пересылается. То что, BSD сделало стек сбоку, это проблема тех, кто взял и широко внедрил по сути теоретическую академическую разрабоку ради фана в жизнь. В том же настоящем юниксе сеть это тоже stream, хоть в миниксе (по крайней мере в 2 версии), хоть в солярке.

vodz ★★★★★
()
Ответ на: комментарий от shkolnik_2019

Во-первых, как я понял, это просто краткий самоучитель. Да ещё и типа «написанное простым языком». Не стоит ждать от такого терминологической строгости. Тем более что, кое-что действительно является файлами, те же дисковые разделы. Во-вторых, ты уверен, что правильно всё понял про сетевые соединения и прочее? Дело в том, что много информации, в том числе о сети, доступно через псевдофайловые системы /sys и /proc. Т.е. это не то, чтобы eth0 был файлом, но зато есть «файл», из которого можно прочитать его MAC-адрес.

gremlin_the_red ★★★★★
()
Ответ на: комментарий от anonymous

Я так понимаю, показать отсутствие различий в электродвигателях ты не можешь

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

vodz ★★★★★
()
Ответ на: комментарий от shkolnik_2019

Не даю ни под, ни над, ни просто сказку. Открой свой смартфон и помацай там говноид. Можешь даже не читать лицензию, совершенно бессмысленно. И ни одна сука (культурое слово, даже не мат и не оскорбление) не скулит про телеметрию в нем. Видимо ее там с гарантией нет. Только поверь мне на слово, в говноиде нет ни одного календаря, который бы работал автономно.

anonymous
()
Ответ на: комментарий от shkolnik_2019

И в виде чего они представлены в Linux? Как посмотреть что внутри них?

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

Вот у этого чувака и спроси, где находится файл, соответствующий eth0, и как посмотреть, что внутри него. Приготовься к тому, что он попросит тебя пояснить, что такое по-твоему «внутри».

dexpl ★★★★★
()

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

anonymous
()
Ответ на: комментарий от anonymous

Я не просил много. Но ты не смог

Нет, дядя, это ты не смог ничего ответить, кроме типичного анонимусного детсада. Разбирать, почему тогда не делали какие-нибудь вентильные эд мало того, что офтопик, так и всуе, ибо смысл объяснять детсаду почему тогда нечем это было управлять и прочее почему до сих пор оно не очень то востребовано.

vodz ★★★★★
()
Ответ на: комментарий от vodz

простота для пользователя- программиста - всё есть файл - не обязательно проще по реализации чем всё разнообразие протоколов просто без всякой прослойки-ось даём на использования та же мс-дос где по факту это библиотека функций которую можно было игнорировать и работать с железом на прямую ( что было очень модно в эпоху микро когда …)

успех юникса и сишечки - как шутил один из Отцов был обусловлен что в лабе всем кто спрашивал а насколько накладно использовать вызов функции вместо копипасты -ответ был вызов бысплатен

рад за вас.

qulinxao3
()
Ответ на: комментарий от gremlin_the_red

Почему не работает

Потому что нужны специальные телодвижения. Нынче /dev/dsp обычно отсутствует.

К слову, этот классический пример — классический обман. В том смысле

Он приводится в смысле демонстрации, что так можно. Только шизики будут искать тут скрытые смыслы и рассказывать истории, в духе «если cat будет не cat, а ссылка на rm» и т.п. умничание не по теме. Какое отношение подробности формата wav имеют к принципу «всё есть файл» и тому что можно послать содержимое звукового файла на звуковую карту используя обычные файловые операции?

no-such-file ★★★★★
()
Последнее исправление: no-such-file (всего исправлений: 1)
Ответ на: комментарий от dexpl

Приготовься к тому, что он попросит тебя пояснить, что такое по-твоему «внутри».

Всё ест файл, это интерфейс: open/read/write/ioctl/close. Можно сделать такое над eth? Можно и далают. В Linux даже интереснее, там вообще цирк, вначале это сделали, правда не через /dev/ethX, а через SOCK_DGRAM (офигеть какая связь), потом объявили устаревшим.

vodz ★★★★★
()

Qnx вроде всё есть файл. Те кто программировали под него. Говорили что в некоторых местах очень не удобно программировать было

anonymous
()
Ответ на: комментарий от vodz

На что я должен был ответить? Несколько раз я просил тебя аргументировать твой тезис, но ты вместо ответов выдаёшь пару терминов и море пафоса

anonymous
()
Ответ на: комментарий от infomeh

Да, pwgen хороший, но его на работе нет.

yvv ★★☆
()
Ответ на: комментарий от shkolnik_2019

покажите мне

Открывай тему в jobs, оплата - не менее $500.

anonymous
()
Ответ на: комментарий от gremlin_the_red

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

shkolnik_2019
() автор топика
Ответ на: комментарий от anonymous

Не даю ни под, ни над, ни просто сказку.

Вот и хорошо. Тем более, чтобы давать подсказки, надо обладать базовой информацией.

Открой свой смартфон и помацай там говноид.

Там его нет. Там даже интернета нет, кроме древнего WAP/GPRS, и то нерабочего. Так что до телеметрий мне глубоко пофиг, а по обычным звонкам я ничего сверхсекретного не говорю.

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

А если боишься за андроид, скачай Lineage OS, я слышал оттуда повыпиливали телеметрию по максимуму. И вроде вместо гугла есть F-droid, свой репозиторий. Календарей автономных полно.

shkolnik_2019
() автор топика
Ответ на: комментарий от anonymous

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

Не совсем понимаю...

shkolnik_2019
() автор топика

«в Linux файлом является абсолютно все»

TL;DR

ето ложь

но многие вещи с т.з. IPC доступны как файловый дескриптор

vasily_pupkin ★★★★★
()
Ответ на: комментарий от dexpl

Вот у этого чувака и спроси, где находится файл, соответствующий eth0, и как посмотреть, что внутри него. Приготовься к тому, что он попросит тебя пояснить, что такое по-твоему «внутри».

Мне достаточно первого: «где находится файл, соответствующий eth0» - хотя если существует файл, который где-то находится - логично предположить, что его можно как-то «посмотреть», и что-то должно быть внутри него. «Внутри» - это открыть его текстовым редактором и увидеть поток изменяющихся битов/байтов, ведь через сетевой интерфейс проходят пакеты, значит эти биты/байты должны постоянно меняться. Хочу видеть как они меняются. Но вот здесь говорят, что никакого файла, соответствующего сетевым соединениям - нет.

shkolnik_2019
() автор топика
Ответ на: комментарий от no-such-file

Вроде твое объяснение пока наиболее понятно. Может автор книги и правда все упростил, и несовсем точно обрисовал ситуацию с файлами в Linux.

shkolnik_2019
() автор топика
Ответ на: комментарий от shkolnik_2019

Не совсем понимаю…

В плане взаимодействия с пользователем. Так проще, поэтому такая иерархия в файловой структуре. Например /dev/sda*, это же не файлы по своей сути, но находятся в общем дереве файлов.

anonymous
()
Ответ на: комментарий от shkolnik_2019

Оно мне надо, чтобы лицензию смотреть? Повырубаю все, порежу трафик и все дела.

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

anonymous
()
Ответ на: комментарий от anonymous

Близко нет. Даже не раскатывай губу. И зашифрованное расшифруют, а уж пароль на вход в систему вообще никто не спросит.

anonymous
()
Ответ на: комментарий от anonymous

И зашифрованное расшифруют, а уж пароль на вход в систему вообще никто не спросит.

Магией, через libastral, игнорируя законы физики и математики)

BLOBster ★★★
()
Ответ на: комментарий от anto215

Да только это не будет сокет-файл, это будет сокет, скоммутированный на пайп левой программой, так же как и в случае с неткатом. Вот если бы stdout/stdin были бы /dev/tcp/…, а они были бы файлами, а не башизмом, тогда да.

t184256 ★★★★★
()
Ответ на: комментарий от BLOBster

Тебе уже ничего не поможет.

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

anonymous
()
Ответ на: комментарий от dexpl

но надо сказать, что tun и tap всё таки представлены файлами

sergej ★★★★★
()

Какую-то херню городите.

Файл сокета. Дальше что? Он также существует, как и сейчас содержимое каталога /tmp. Вы же читаете и пишите в /tmp как в обычный каталог, файл, но физически они только в памяти существует. Это область памяти, которая представленная в виде каталога с файлами. Также и с сокетом. Он содержит определенные данные и не для человека, а для машины. Ну давайте еще бинарные файлы начните cat’ом читать. Что оно вам даст? /proc тоже создавался, чтобы человек мог читать его содержимое и записывая туда свое управлять системой. Но /proc тоже содержится только в памяти и с таким рассчетом, чтобы человек понимал что написано. Это как язык программирования. Написать программу можно и битами, понятную процессору, но так никто уже не делает, все пишут программу человекопонятным текстом и другая программа переводит ее в команды понятные процессору.

anonymous
()

все в Linux - это файлы

Я не файл!

DELIRIUM ☆☆☆☆☆
()

Деды делали юникс как систему, где везде можно залезть и подхачить на коленке. Поэтому решили, что «всё файл» - это удобно и красиво.

А потом оказалось, что тупого read/write для всего не хватает. Сделали костыль ioctl, который означает «любая другая операция». А потом и его не хватило, и пришлось вводить каталоги, пайпы, сокеты и симлинки как отдельные сущности. Они файлы только внешне, а влезть в них с echo/cat ты уже не можешь (хотя местами что-то работает, например cat для каталогов в BSD). А потом пришел линукс, где вовсе мало что осталось от той прозрачности.

И это правильно, тащем-то. Впихивать всё многообразие в прокрустово ложе файлов - дурацкая затея. В винде сразу от нее отказались и сделали «всё объект», где у объекта есть актуальный для каждой сущности набор методов. Файл - частный случай. И (теперь) есть powershell, дающий туда доступ из той же консоли.

В план 9 таки допинали файлы, но это уже борьба за идею, толку от которой не наблюдается.

anonymous
()
Ответ на: комментарий от anonymous

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

Читаю, умиляюсь. Сложность начальной задачи высока, но реализация того стоит, увы чтоб понять это надо проектировать много и РАЗНЫХ систем.

Это не затычки на галере строгать

anonymous
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.