LINUX.ORG.RU

Linux 33 года

 

Linux 33 года

1

2

Создавать монолитное ядро в 1991 году — фундаментальная ошибка. Скажите спасибо, что вы не мой студент: за такой дизайн я бы не поставил высокой оценки.
Профессор Эндрю Таненбаум.

Оригинальное сообщение в почтовой рассылке:
I’ve currently ported bash(1.08) and gcc(1.40), and things seem to work. This implies that I’ll get something practical within a few months, and I’d like to know what features most people would want. Any suggestions are welcome, but I won’t promise I’ll implement them :-)



Проверено: hobbit ()
Последнее исправление: hobbit (всего исправлений: 1)
Ответ на: комментарий от Vilicus

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

Знавал я SMM-щицу, которая значительную часть работы делала со смартфона. Сам я в транспорте читал с телефона гуглдоксы, с которыми нужно было ознакомиться для работы. Думаю, что если бы моя работа включала бы больше ресерча, я бы активнее пользовался возможностями смартфона.

Многие блогеры, думаю, ограничиваются редактированием своих материалов на смартфоне. Чем не работа, если человек этим зарабатывает?

Но ты прав, что на смартфоне неудобно набирать текст. Даже планшеты с обложкой-клавиатурой менее удобны, чем ноутбуки и десктопы.

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

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

Smacker ★★★★★
()

Скажите спасибо, что вы не мой студент

всегда думал, что Линус был студентом Таненбаума.

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

на смартфоне неудобно набирать текст

На смартфоне неудобно форматировать текст, а не набирать. Давно уже очень быстро со времён блекберри набирают целые тома в электронной почте за пару минут, эти же люди на пк клавиатуре куда медленнее работают

One ★★★★★
()
Последнее исправление: One (всего исправлений: 1)

Когда читаешь ЛОР время от времени наступает ОТОРОПЬ. Диву даешся такие опытные образованные собеседники, узнаешь новое. Потом с криком А-а-а-а-а залетает некто, рядом с ником длинная череда звёзд, и этот комментатор не знает каких-то базовых вещей. Все равно, что в сообщество географов забежит плоскоземельщик.

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

Ага. Только для этого надо разрешить одному процессу обследвать адресное пространство другого процесса.

Что на практике эквивалентно всем процессам, запущенным от одного пользователя. А как мы знаем, даже на больших компах в linux куча сервисов стартует из-под какого-нибудь стандартного daemon.

И используется для отладки.

А это уже не факт. Как использовать инструмент, решает человек, а не инструмент. И не всегда этот человек - легальный пользователь данной системы.

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

Вы из какой вселенной вещаете? В моей такого Дейкстры нет.

Так Вы перебирайтесь в нашу, а то в Вашей поди и алгоритма Дейкстры нету.

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

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

Э.. А причем тут Дейкстра?

The semaphore concept was invented by Dutch computer scientist Edsger Dijkstra in 1962 or 1963

https://en.wikipedia.org/wiki/Semaphore_(programming)

Практически все, что вы ему приписываете - самоочевидные вещи. Их даже разрабатывать не надо, достаточно возникнуть необходимости в них.

А в Вашей вселенной и компьютеры никто не разрабатывал и они самозародились, как только «возникнуть необходимости в них»?

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

А почему бы и нет? Мавр сделал своё дело, Мавр может уходить.

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

Что на практике эквивалентно всем процессам, запущенным от одного пользователя.

Вряд ли.

In Linux systems where POSIX capabilities are used, the ability to ptrace is further limited by the CAP_SYS_PTRACE capability …

https://en.wikipedia.org/wiki/Ptrace#Uses

Linux also gives processes the ability to prevent other processes from attaching to them. Processes can call the prctl syscall and clear their PR_SET_DUMPABLE flag; in later kernels this prevents non-root processes from ptracing the calling process;

https://en.wikipedia.org/wiki/Ptrace#Linux

CAP_SYS_PTRACE
...
transfer data to or from the memory of arbitrary processes using process_vm_readv(2) and process_vm_writev(2);

https://www.man7.org/linux/man-pages/man7/capabilities.7.html

Наличие ptrace не отметяет наличия виртуального адресного пространства для процессов.

lbvf50txt
()
Последнее исправление: lbvf50txt (всего исправлений: 1)
Ответ на: комментарий от I-Love-Microsoft

Вот между модулями ядра и должно быть это более эффективное IPC

Понятно.

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

…и одним взмахом словца продемонстрирует вопиющие незнание «каких-то базовых вещей» географами. Знаем, плавали.

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

Больше похоже на банальное бескультурье и необразованность.

Если бы мне в универе кто-то подсказал читать Таненбаума, мне бы не пришлось столько стен пробить головой. И столько блуждать в 3х соснах. Но такого человека не оказалось.

Дети читайте Таненбаума, по 25 раз каждый абзац в слух, на английском. Тогда будет толк.

lbvf50txt
()
Последнее исправление: lbvf50txt (всего исправлений: 1)
Ответ на: комментарий от One

блекберри

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

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

В каких практически работающих вещах в реальном мире проявляется толк от прочтения Таненбаума? Списком, пожалуйста.

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

Вряд ли.

Факт. Межпроцессное взаимодействие в рамках пользователя ограничивается отдельной подсистемой ядра. При этом никто не мешает собрать ядро без неё.

https://en.wikipedia.org/wiki/Ptrace#Uses

Ну вот и почитайте ровно там же: As the ability to inspect and alter another process is very powerful, ptrace can attach only to processes that the owner can send signals to (typically only their own processes).

Наличие ptrace не отметяет наличия виртуального адресного пространства для процессов.

В очередной раз: ну и что? Разговор был про монолит против микроядра в плане изоляции процессов. Вот монолит - процессы, запущенные от имени одного пользователя, могут положить на все IPC и лазить друг другу в память. Вот микроядро - это невозможно by design. Так что в плане изоляции процессов лучше?

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

В каких практически работающих вещах в реальном мире проявляется толк от прочтения Таненбаума?

Это один из основых учебников по созданию программ запускаемых в ОС и администрированию ОС.

P.S. Лично вам читать не советую, не тратье время зря. Занимайтесь практически работающими вещами в реальном мире.

lbvf50txt
()
Последнее исправление: lbvf50txt (всего исправлений: 1)
Ответ на: комментарий от sepada

Факт. Межпроцессное взаимодействие в рамках пользователя ограничивается отдельной подсистемой ядра. При этом никто не мешает собрать ядро без неё.

Хорошо. Можно открутить определенную подсистему, но зачем?

Вот монолит - процессы, запущенные от имени одного пользователя, могут положить на все IPC и лазить друг другу в память.

Теоретически могут. На практике не могут.

Вот микроядро - это невозможно by design.

Сильно сомневаюсь, что наличие трех системных вызовов является определяющим критерием микроядра. По сути микроядро это же перенос ряда функций ядра на программы запущенные в user mode.

И при микроядре надо запускать отладчики, следовательно надо как-то заглядывать в память процесса. Значит должна быть система похожая на ptrace/process_vm_readv/process_vm_writev.

lbvf50txt
()
Последнее исправление: lbvf50txt (всего исправлений: 1)
Ответ на: комментарий от x86_64

Не передёргивайте. Considered harmful был написан а контексте типичных для того времени практик спагетти-программирования и совершенно по делу. Всё остальное — это новодел религиозных экстремистов от программирования, воспринимающих статью как сакральный текст.

thunar ★★★★★
()
Последнее исправление: thunar (всего исправлений: 4)
Ответ на: комментарий от x86_64

Дейсктра - это тот, кто проповедовал отказ от «goto»? Без которого код ядра linux или был бы замусорен или тормозил?

Тем не менее, в ядре RAII есть. Так что Дейкстра был прав

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

Ну вот стоит дома планшет на андроиде с клавиатурой. Мессагу там написать в почтовике, в браузере полазить, ссш запустить, заревьювить код в гитлабе, кинцо посмотреть. Нормальный такой. Вполне себе портабельный десктоп.

no-dashi-v2 ★★★
()
Ответ на: комментарий от lbvf50txt

Можно открутить определенную подсистему, но зачем?

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

Теоретически могут. На практике не могут.

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

По сути микроядро это же перенос ряда функций ядра на программы запущенные в user mode.

Не только. Точно также, как RISC это не просто обрезанный по набору инструкций CISC.

И при микроядре надо запускать отладчики, следовательно надо как-то заглядывать в память процесса. Значит должна быть система похожая на ptrace/process_vm_readv/process_vm_writev.

Да и пусть будет на здоровье. Вроде книжки Таненбаума читали, разницу в политиках «разрешено всё, кроме того, что явно заперещено» и «запрещено всё, кроме того, что явно разрешено» должны понимать, а пишите так, как будто нет.

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

Проституток имеют все, а королеву только король.

Кажись последнюю британскую королеву имел простой дюк.

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

Проституток имеют все, а королеву только король

с этого можно только покекать. Так себе аналогия.

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

Только в результате на линуксе крутится весь мир, а Таненбаума мы знаем только как героя песни «O Tannenbaum, o tannenbaum, wie grün sind deine Blätter...»

Именно.

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

должны понимать, а пишите так, как будто нет.

Потому что я считаю, что герметичность адресного пространства пользовательского процесса для других пользовательских процессов не зависит от архитектуры ядра.

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

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

-20 ТС за отсутствие даты в первом сообщении

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

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

Ну почему же, он может, например, свою ОС написать :)

Да хватит уже - и с творением одного студента разгрестись не можем вот уже сколько лет, а ты сверху еще одно ядрышко нахлабучить предлагаешь… )))

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

Все равно, что в сообщество географов забежит плоскоземельщик.

Я на одном форуме регулярно таких наблюдаю. С пеной у рта доказывают как именно не могли долететь американцы до Луны.

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

Потому что я считаю, что герметичность адресного пространства пользовательского процесса для других пользовательских процессов не зависит от архитектуры ядра.

Логично, одинаковый результат можно получить как исходя из «разрешено всё, кроме того, что явно запрещено», так и из «запрещено всё, кроме того, что явно разрешено». Вопрос только в усилиях, которые необходимо для этого приложить.

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

Ровно наоборот. Это простейший и доступный by design способ организации межпроцессного взаимодействия в рамках монолитного ядра. А «хаком для запуска отладчика» он становится как раз с усложнением механизмов межпроцессного взаимодействия в целях повышения изоляции процессов.

sepada
()

Очень полезный тред. Культурная революция. Вот уже и Таненбаума, и Дейкстру разоблачили как бездельников, не сделавших ничего полезного. И, кажется, Вирта обещали… А, нет, это будет в треде про lazarus.

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

Вот уже и Таненбаума, и Дейкстру разоблачили как бездельников, не сделавших ничего полезного.

Факт. Следующими, видимо, будут Томпсон и Страуструп. :D

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

доступный by design способ организации межпроцессного взаимодействия

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

lbvf50txt
()
Последнее исправление: lbvf50txt (всего исправлений: 1)
Ответ на: комментарий от XOXO

До фига микроядерных операционнок.Но 98% из них узкоспециализированные.Есть даже которые 160 КБ занимают, допустим микро коммутатор Палм работал на микроядре,урезанном по лицензионному договору (о чем потом жалели ).Не было многозадачности.
Даже системы DRM (защита от копирования ) работают на микроядерных операционках,напрямую на железе- есть серия ARM ядер .

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

С чего это вы взяли?

Из концепции монолитного ядра как таковой и наличия соответствующих системных вызовов в ОС с монолитными ядрами.

Вся ваша аргументация строится на нескольких системных вызовах для запуска отладчика, как будто основной способ взаимодействия процессов в Linux это использование process_vm_readv, что естесвено не так

А Вы точно Таненбаума читали? Где я утверждал хоть что-то похожее на «основной способ взаимодействия процессов в Linux это использование process_vm_readv»?

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

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

Казалось бы, при чем тут столяров

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

В общем это все беганье по кругу. Сейчас я открыл Modern Operation Systems (c) Andrew Tanenbaum, страница 62-73 раздел 1.7 OPERATION SYSTEM STRUCTURE. Там как раз 1.7.1 Монолит, 1.7.3 Микроядро. Седалю дела, почитаю. Отвечу еще раз.


Старый комментарий:

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

наличия соответствующих системных вызовов в ОС с монолитными ядрами.

Прекрасно. Есть вызовы для работы отладчика. Но они не являются способом взаимодействия процессов между собой, user mode процессы при обоих типах ядет использут сигналы, каналы, шины и шаред мемори c мьютексами.

Где я утверждал хоть что-то похожее

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

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

lbvf50txt
()
Последнее исправление: lbvf50txt (всего исправлений: 5)
Ответ на: комментарий от Smacker

почему имеющийся проект «ядра как следует» не привлёк никого, кроме полутора упёртых землекопов, при тех же — если даже не более респектабельных, GNU всё-таки — стартовых позициях. Почему разработчики захотели разрабатывать линукс, и плевать хотели

Потому что микроядро GNU Mach было практически готово, когда разработчики захотели разрабатывать линукс. Неидеальное, но зато «it exists»

https://www.gnu.org/software/hurd/microkernel/mach/gnumach.html

А в линуксе и на линуксе ещё многое не работало. В том и fun. Дописывать, тестировать и исправлять драйвера, а на абстрактное ядро, как бы оно не называлось.

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

Казалось бы, при чем тут столяров

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

Сколько всяких безымянных обложеных титулами, неумеющими и 1% от Столярова сидят по разным местам.

P.S. И что важно Столяров выложил свои работы бесплатно, не требует по 1млн рублей в год.

lbvf50txt
()
Последнее исправление: lbvf50txt (всего исправлений: 1)
Ответ на: комментарий от lbvf50txt

Столяров феноменально неоднозначный

По-моему, всё вполне однозначно. Столяров - типичный клоун с регалиями, который не умеет, но учит. Он имеет очень посредственные представления о том, как надо писать софт, и тем более, как этому надо учить.

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

liksys ★★★★
()
Последнее исправление: liksys (всего исправлений: 1)
Ответ на: комментарий от liksys

Другие еще хуже. У Столярова его задвиг на «КулХацкерстве» и технологиях 80ых легко читается и поправку ввести не сложно. Вот в его видосе про арест Дурова, он констатировал, что без Телеграма он ощущает себя отключеным от Балканского русскоязычного сообщества, потом просил его поддержать для написания overlay network.

Что говорит то и делает. Напыщенности, цепляния за кресло, недоступности у Столярова нет. Но достается ему больше всех. А какому либо типу в наглаженой рубашечке и брючках с редикюлем всё окей, потому, что он тихо сидит на кафедре и ходит с важным видом - претензий ноль. Хотя этот тип использует свои регалии на 150%, а в программировани понимает еще в 10 раз хуже чем Столяров, и не способен ничего объяснять. Столяров же отличный препод в рамках технологий 80ых.

lbvf50txt
()
Последнее исправление: lbvf50txt (всего исправлений: 2)
Ответ на: комментарий от One

Бывает, что страшненькая и кривая девочка (Linux) куда успешнее чем симпатичная отличница (Hurd), да ещё и последняя умерла от передоза

Плохое сравнение. В линуксе тысячи людей вкладываются в рефакторинг и полировку кода. А у хурда, если даже архитектура и красивее, то внутри-то там обычный говнокод. Хотя бы просто по тому, что реализовать микроядерную архитектуру на С намного сложнее. А где сложности, там люди всегда «срезают углы». Да и потом, вы код glibc видели? Макрос на макросе, и функции по нескольку тысяч строк (спагетти-код). Код большинства ГНУшных проектов примерно такого же уровня, и вряд ли хурд лучше.

anonmyous ★★
()

Создавать монолитное ядро в 1991 году — фундаментальная ошибка. Скажите спасибо, что вы не мой студент: за такой дизайн я бы не поставил высокой оценки. Профессор Эндрю Таненбаум.

Хорошо что Таненбаум жив. Иначе бы ему каждый раз приходилось в гробу переворачиваться от очередного пинка за сказанную более 30 лет назад фразу. :) Отстаньте уже от него.

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

Нука-нука, и что, хоть что-то хорошее, годное и относительно широко применяемое кроме QNX сейчас на микроядре есть? Где все эти чудесные микроядерные ОС?

В лаборатории Касперского сидят (КасперскийОС). Правда, дата их выхода из лаборатории на вольные хлеба - не определена. :)

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