Основы Linux: процессы и их свойства

Sdílet
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

Komentáře • 50

  • @amalexey
    @amalexey Před 5 lety +42

    Вы мой сенсей! Вы Сократ от IT - знание это высшее Благо и оно должно быть доступно всем! Учился и учусь у Вас

  • @user-hx8lk4jo1h
    @user-hx8lk4jo1h Před 5 lety +14

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

  • @brand_style_moscow
    @brand_style_moscow Před 8 měsíci +7

    Как же долго я искал подобное видео, и вот, наконец-то картинка в моей голове собрана воедино, и я обрел столь желанное понимание! Тысяча благодарностей

    • @DmitryKetov
      @DmitryKetov  Před 8 měsíci +8

      Этим и отличается классическое образование от "инфоцыганских видео" из интерента 😁

    • @ultimate_truth_society
      @ultimate_truth_society Před měsícem

      @@DmitryKetov это прямо душа в душу от души, пятка к пятке, тютелька в тютельку сказано!

  • @sergeywhite8897
    @sergeywhite8897 Před 5 lety +4

    Спасибо вам огромное, такой труд записали!!! Сейчас вспоминаю курс операционных систем из далекого студенчества!

  • @user-qw9ro4ov8b
    @user-qw9ro4ov8b Před 3 lety

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

  • @user-gb3te2iw7j
    @user-gb3te2iw7j Před 4 lety +4

    О, а я этот курс платно проходил в политехе лет пять назад. Тысячу раз уже вспоминал, жалел что нет в открытом доступе. И вот, аллилуйя! Спасибо за шэйр. Курс офигенно составлен. А в конце сдавал курсач Дмитрию. Приятно вспомнить.
    Теперь микросервисы, хайлоад, го, тарантул, но UNICS незыблим =)

  • @ygrigoriev
    @ygrigoriev Před 3 lety +3

    Отличный материал, однозначно в избранное!

  • @fluffyliberta
    @fluffyliberta Před 7 měsíci +1

    Спасибо огромное! Прям камень с души сняли, заполнили кратер в знаниях :D
    Информация очень высокого качества

  • @myhandle370
    @myhandle370 Před 3 lety +1

    Шикарно объяснено про процессы, спасибо

  • @joemash4549
    @joemash4549 Před rokem +1

    Отличная лекция! Спасибо!

  • @Tattoson
    @Tattoson Před 7 měsíci

    Просто супер! Нет слов! Подписка, лайки и дальше буду по мере времени вас смотреть!

  • @user-eo3tl9cd9k
    @user-eo3tl9cd9k Před 5 lety

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

  • @bulba1995
    @bulba1995 Před 2 lety

    Спасибо за полезное видео , я вам признателен.

  • @alexyemelianchikov3068

    очень достойное объяснение

  • @moplpoi
    @moplpoi Před rokem

    Спасибо

  • @dvsidelnikov
    @dvsidelnikov Před 3 lety +4

    Дмитрий Кетов в топе лучших преподавателей. Правда грустно слышать в лекции фразы на подобии "вчера мы с вами проходили", а ты в свою очередь упомянутый материал в предыдущем видео не видел... Дмитрий, подскажите есть где-нибудь ваш онлайн курс (пусть и платный) с где таких обидных камбеков не будет и где есть лабораторные работы, домашние задания?! На Степике каком-нибудь?!

    • @leonidmarkov7725
      @leonidmarkov7725 Před 2 lety +2

      Присоединюсь к вопросу. Это ценнейший материал!

  • @user-bb6qv5vi7l
    @user-bb6qv5vi7l Před 11 měsíci

    Nice

  • @MAS150MD200
    @MAS150MD200 Před 5 lety

    Огромное спасибо за лекции! Не могли бы вы более подробно рассказать что хранится в секции DATA?

    • @DmitryKetov
      @DmitryKetov  Před 5 lety

      Данные программы, например текстовые строки, которые она выводит в процессе работы

    • @Ast4rt3s
      @Ast4rt3s Před 5 lety

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

    • @DmitryKetov
      @DmitryKetov  Před 5 lety

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

    • @DmitryKetov
      @DmitryKetov  Před 4 lety

      ​@@Maksim-nu8hbДа, примерно так - для глобальных переменных и локальных статических, насколько я помню, это верно для большинства C-компиляторов. А вот локальные автоматические переменные - всегда в стэке.

  • @djsosbxbdirndxnkcbebxhxbe

    Видео достаточно длинное, добавьте, пожалуйста, таймкоды, будет в разы удобнее

  • @suhomlinov-vitaliy
    @suhomlinov-vitaliy Před rokem

    Дмитрий, подскажите пожалуйста, а вы сейчас где то преподаете? Возможно даете частные уроки?

    • @DmitryKetov
      @DmitryKetov  Před rokem

      Нет, уже отошел от дел :)

    • @suhomlinov-vitaliy
      @suhomlinov-vitaliy Před rokem

      @@DmitryKetov Понял, спасибо за ответ и за этот материал :)

  • @sonny23ization
    @sonny23ization Před 2 měsíci

    а в 1:12:10 что значит программа устала и решила ее заместить?

  • @danjilov3965
    @danjilov3965 Před 5 lety

    Я правильно понимаю, что терминал, получается, при исполнение команды Х делает:
    1. fork()
    2. exec() - вставляя туда путь до файла Х, аргументы переданные в командной строки и т.д.
    3. wait() - причем делает данный вызов сразу, посколько мы не можем пользоваться терминалом, пока дочерний процесс Х не завершится ?

    • @DmitryKetov
      @DmitryKetov  Před 5 lety +3

      Нет, ни терминал ни его драйвер не делают ничего. Все верно вышеперечисленное делает ваш командный интерпретатор, только если вы ему не скажете "не делать wait()" путем добавления амперсанда в конец команды: X &

  • @user-jt4kj2hn4q
    @user-jt4kj2hn4q Před 11 měsíci

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

    • @DmitryKetov
      @DmitryKetov  Před 6 měsíci

      Можно, но только нештатным образом, что требует некоторых спец. усилий. На практике это решается контейнерами docker или snap.

    • @user-jt4kj2hn4q
      @user-jt4kj2hn4q Před 6 měsíci

      @@DmitryKetov Дмитрий, спасибо за ответ, вы один из самых лучших преподавателей! Даете глубину знаний, потому что сами знаете глубоко.

  • @_RUDE_
    @_RUDE_ Před 3 lety +3

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

  • @david_shiko
    @david_shiko Před 4 lety

    Здесь ошибка на слайде. Насколько я знаю, stack идет ниже heap.

    • @DmitryKetov
      @DmitryKetov  Před 4 lety +3

      Этот слайд в принципе концептуален, ибо кучи как таковой нет уж давно.
      Под ней стоит на текущий момент понимать набор разбросанных в адресном пространстве анонимных сегментов. В т.ч. тот, который создан при загрузке программы в процесс потому что в заголовке ELF файла программы есть секция .bss и в котором работают brk(), sbrk() и malloc().
      Но в одном вы правы, в адресном пространстве он имеет адреса младше, чем стек.

  • @_RUDE_
    @_RUDE_ Před 3 lety +1

    Ubuntu 20.4 все LSB sared object, и ls и date и echo.🤷‍♂️Вот и полусается что учим старый материал.

    • @DmitryKetov
      @DmitryKetov  Před 3 lety +1

      А вы не учите, вы в корень зрите ;) насколько я помню в одном из моих видео (возможно правда не в этом) говорится что между ними (ELF executable и ELF shared) очень тооооонкая разница и показывается что SO можно..... тадам! запускать как программу :)

    • @_RUDE_
      @_RUDE_ Před 3 lety +2

      @@DmitryKetov как я понял sared это библиотека (тоже программа) и запускается она, когда к ней обращается другая программа, которая нуждается в данной библиотеке.
      То есть в моем случае с ls, утилита file немного запуталась?

    • @DmitryKetov
      @DmitryKetov  Před 3 lety +2

      @@_RUDE_ Да, с большой вероятностью file как раз не справилась с этой тонкой разницей. Попробуйте readelf -h :)

  • @maximfinojenok228
    @maximfinojenok228 Před 2 lety

    +

  • @michaeljordan1283
    @michaeljordan1283 Před 3 lety

    Кто ставит дизлайки?!