Основы Linux: процессы и их свойства
Vložit
- čas přidán 5. 09. 2018
- Что такое процесс и как он связан с программами и библиотеками
* сегменты процесса: text, data, stack, heap
* загрузка программ и библиотек в виртуальную память процесса
* ELF секции и права доступа сегментов памяти
* динамическая и статическая линковка
* виртуальная, резидентная и разделяемая память процесса
Атрибуты процесса
* wd, umask, environment
* pid, ppid, tty, sid, pgid, tpgid
* nice, pri
* ruid, euid, rgid, egid и их связь с SUID и SGID
Порождение процессов и запуск программ
* системные вызовы fork() и exec()
* системные вызовы wait() и exit()
* процессы-зомби и прародитель процессов
* параллельные программы
Об этом и о многом другом см. books.google.ru/books?isbn=59... - Věda a technologie
Вы мой сенсей! Вы Сократ от IT - знание это высшее Благо и оно должно быть доступно всем! Учился и учусь у Вас
Я вообще в шоке от того что так мало просмотров, мне друг подкинул . Я удивляюсь как этот человек все чуть ли не до атомов раскладывает и при этом еще понятно и даже что-то запоминается.
Как же долго я искал подобное видео, и вот, наконец-то картинка в моей голове собрана воедино, и я обрел столь желанное понимание! Тысяча благодарностей
Этим и отличается классическое образование от "инфоцыганских видео" из интерента 😁
@@DmitryKetov это прямо душа в душу от души, пятка к пятке, тютелька в тютельку сказано!
Спасибо вам огромное, такой труд записали!!! Сейчас вспоминаю курс операционных систем из далекого студенчества!
Уважаемый, лекция - огонь. Спасибо вам за труд.
О, а я этот курс платно проходил в политехе лет пять назад. Тысячу раз уже вспоминал, жалел что нет в открытом доступе. И вот, аллилуйя! Спасибо за шэйр. Курс офигенно составлен. А в конце сдавал курсач Дмитрию. Приятно вспомнить.
Теперь микросервисы, хайлоад, го, тарантул, но UNICS незыблим =)
unix
@@dmitrii.zhiliaev а что значит этот X ?)
Отличный материал, однозначно в избранное!
Спасибо огромное! Прям камень с души сняли, заполнили кратер в знаниях :D
Информация очень высокого качества
😁
Шикарно объяснено про процессы, спасибо
Отличная лекция! Спасибо!
Просто супер! Нет слов! Подписка, лайки и дальше буду по мере времени вас смотреть!
параллельно пытаюсь изучать питон после просмотра этого видео стало понятно как он работает автору спасибо смотрел видео о питоне на других каналах ничего не понял здесь видео о процессах на линукс и всё стало ясно это удивительно , большое спасибо
Спасибо за полезное видео , я вам признателен.
очень достойное объяснение
Спасибо
Дмитрий Кетов в топе лучших преподавателей. Правда грустно слышать в лекции фразы на подобии "вчера мы с вами проходили", а ты в свою очередь упомянутый материал в предыдущем видео не видел... Дмитрий, подскажите есть где-нибудь ваш онлайн курс (пусть и платный) с где таких обидных камбеков не будет и где есть лабораторные работы, домашние задания?! На Степике каком-нибудь?!
Присоединюсь к вопросу. Это ценнейший материал!
Nice
Огромное спасибо за лекции! Не могли бы вы более подробно рассказать что хранится в секции DATA?
Данные программы, например текстовые строки, которые она выводит в процессе работы
Еще уточнил бы что это глобальные или статические переменные, которые не меняются в контексте функций программы, т.к. размер этого сегмента фиксированный
Могут и меняться, никто им не запрещает. Просто их начальные значения известны на момент запуска программы.
@@Maksim-nu8hbДа, примерно так - для глобальных переменных и локальных статических, насколько я помню, это верно для большинства C-компиляторов. А вот локальные автоматические переменные - всегда в стэке.
Видео достаточно длинное, добавьте, пожалуйста, таймкоды, будет в разы удобнее
Дмитрий, подскажите пожалуйста, а вы сейчас где то преподаете? Возможно даете частные уроки?
Нет, уже отошел от дел :)
@@DmitryKetov Понял, спасибо за ответ и за этот материал :)
а в 1:12:10 что значит программа устала и решила ее заместить?
Я правильно понимаю, что терминал, получается, при исполнение команды Х делает:
1. fork()
2. exec() - вставляя туда путь до файла Х, аргументы переданные в командной строки и т.д.
3. wait() - причем делает данный вызов сразу, посколько мы не можем пользоваться терминалом, пока дочерний процесс Х не завершится ?
Нет, ни терминал ни его драйвер не делают ничего. Все верно вышеперечисленное делает ваш командный интерпретатор, только если вы ему не скажете "не делать wait()" путем добавления амперсанда в конец команды: X &
Очень хорошо рассказано о библиотеках и о возможности иметь в мистеме несколько версий библиотек. Однако на практике остается проблема неудовлетаоренных зависимостей, когда при установке какой либо программы она ругается на отсутствие необходимых библиотек, а когда пробуешь их в свою очередь установить, возникает проблема, что есть новые зависимости или что существующая версия библиотеки не подходит и в итоге уже нисего установить невозможно, тупик.
Можно ли устанавливать несколько программ, использующих разные версии библиотек, притом, что программы используют линки, указывающие на расположение библиотеки?
Можно, но только нештатным образом, что требует некоторых спец. усилий. На практике это решается контейнерами docker или snap.
@@DmitryKetov Дмитрий, спасибо за ответ, вы один из самых лучших преподавателей! Даете глубину знаний, потому что сами знаете глубоко.
Демоны в греческой мифологии это низшин божества, помошники богов.
Отсюда и название служб, которые служат на благо юзера)
Например cron от греческого кронос (время)
Здесь ошибка на слайде. Насколько я знаю, stack идет ниже heap.
Этот слайд в принципе концептуален, ибо кучи как таковой нет уж давно.
Под ней стоит на текущий момент понимать набор разбросанных в адресном пространстве анонимных сегментов. В т.ч. тот, который создан при загрузке программы в процесс потому что в заголовке ELF файла программы есть секция .bss и в котором работают brk(), sbrk() и malloc().
Но в одном вы правы, в адресном пространстве он имеет адреса младше, чем стек.
Ubuntu 20.4 все LSB sared object, и ls и date и echo.🤷♂️Вот и полусается что учим старый материал.
А вы не учите, вы в корень зрите ;) насколько я помню в одном из моих видео (возможно правда не в этом) говорится что между ними (ELF executable и ELF shared) очень тооооонкая разница и показывается что SO можно..... тадам! запускать как программу :)
@@DmitryKetov как я понял sared это библиотека (тоже программа) и запускается она, когда к ней обращается другая программа, которая нуждается в данной библиотеке.
То есть в моем случае с ls, утилита file немного запуталась?
@@_RUDE_ Да, с большой вероятностью file как раз не справилась с этой тонкой разницей. Попробуйте readelf -h :)
+
Кто ставит дизлайки?!