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

แชร์
ฝัง
  • เผยแพร่เมื่อ 27 ส.ค. 2024
  • Что такое процесс и как он связан с программами и библиотеками
    * сегменты процесса: 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.r...

ความคิดเห็น • 58

  • @amalexey
    @amalexey 6 ปีที่แล้ว +42

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

  • @brand_style_moscow
    @brand_style_moscow 9 หลายเดือนก่อน +7

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

    • @DmitryKetov
      @DmitryKetov  9 หลายเดือนก่อน +8

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

    • @ultimate_truth_society
      @ultimate_truth_society 3 หลายเดือนก่อน

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

  • @user-hx8lk4jo1h
    @user-hx8lk4jo1h 5 ปีที่แล้ว +14

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

  • @sergeywhite8897
    @sergeywhite8897 5 ปีที่แล้ว +4

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

  • @fluffyliberta
    @fluffyliberta 9 หลายเดือนก่อน +1

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

  • @ygrigoriev
    @ygrigoriev 3 ปีที่แล้ว +3

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

  • @user-gb3te2iw7j
    @user-gb3te2iw7j 4 ปีที่แล้ว +4

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

  • @Tattoson
    @Tattoson 8 หลายเดือนก่อน

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

  • @user-eo3tl9cd9k
    @user-eo3tl9cd9k 5 ปีที่แล้ว

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

  • @joemash4549
    @joemash4549 ปีที่แล้ว +1

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

  • @user-qw9ro4ov8b
    @user-qw9ro4ov8b 3 ปีที่แล้ว

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

  • @myhandle370
    @myhandle370 3 ปีที่แล้ว +1

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

  • @bulba1995
    @bulba1995 2 ปีที่แล้ว

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

  • @dvsidelnikov
    @dvsidelnikov 4 ปีที่แล้ว +4

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

    • @leonidmarkov7725
      @leonidmarkov7725 2 ปีที่แล้ว +2

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

  • @moplpoi
    @moplpoi 2 ปีที่แล้ว

    Спасибо

  • @alexyemelianchikov3068
    @alexyemelianchikov3068 5 ปีที่แล้ว

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

  • @user-bb6qv5vi7l
    @user-bb6qv5vi7l ปีที่แล้ว

    Nice

  • @sonny23ization
    @sonny23ization 3 หลายเดือนก่อน

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

  • @_RUDE_
    @_RUDE_ 3 ปีที่แล้ว +3

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

    • @sashashad
      @sashashad 18 วันที่ผ่านมา

      кто тогда такие админы?)

    • @_RUDE_
      @_RUDE_ 17 วันที่ผ่านมา

      @@sashashad Когда это создавалось админы и были юзерами. Да и сейчас с большенством демонов полноценно могут работать только админы.

    • @sashashad
      @sashashad 17 วันที่ผ่านมา

      @@_RUDE_ Соглашусь, даже программисты до сих пор плохо представляют устройство операционных систем (если они не системные программисты).

  • @djsosbxbdirndxnkcbebxhxbe
    @djsosbxbdirndxnkcbebxhxbe 3 ปีที่แล้ว

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

  • @suhomlinov-vitaliy
    @suhomlinov-vitaliy ปีที่แล้ว

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

    • @DmitryKetov
      @DmitryKetov  ปีที่แล้ว

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

    • @suhomlinov-vitaliy
      @suhomlinov-vitaliy ปีที่แล้ว

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

  • @user-jt4kj2hn4q
    @user-jt4kj2hn4q ปีที่แล้ว

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

    • @DmitryKetov
      @DmitryKetov  8 หลายเดือนก่อน

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

    • @user-jt4kj2hn4q
      @user-jt4kj2hn4q 8 หลายเดือนก่อน

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

    • @sashashad
      @sashashad 18 วันที่ผ่านมา

      ну или использовать виртуальные окружения

  • @MAS150MD200
    @MAS150MD200 6 ปีที่แล้ว

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

    • @DmitryKetov
      @DmitryKetov  6 ปีที่แล้ว

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

    • @Ast4rt3s
      @Ast4rt3s 5 ปีที่แล้ว

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

    • @DmitryKetov
      @DmitryKetov  5 ปีที่แล้ว

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

    • @DmitryKetov
      @DmitryKetov  4 ปีที่แล้ว

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

  • @sashashad
    @sashashad 18 วันที่ผ่านมา

    10:08 - а почему в 64 bit разрядной системе всего возможно выделить памяти 2^48?
    Почему мы её тогда не называем 48 битовой

    • @DmitryKetov
      @DmitryKetov  18 วันที่ผ่านมา

      Потому что процессор оперирует с 64 разрядными числами, АЛУ у него такое и шина данных. А шина адреса имеет "всего" 48бит (что позволяет иметь доступ к 256Тб [теребайт] байт-адресуемой памяти). Можно сделать шину адреса и 64 бит, но зачем усложнять и так непростую и недешевую реализацию, если даже при 48битном адресе используются жалкие проценты от его полного потенциала? Лишние биты это лишние транзисторы и лишнее энергопотребление, нагрев и прочее.

    • @sashashad
      @sashashad 17 วันที่ผ่านมา +1

      @@DmitryKetov Спасибо за развёрнутый ответ! Среди информационного шума сложно быстро найти нужное. Использую вашу книгу в работе.

  • @danjilov3965
    @danjilov3965 5 ปีที่แล้ว

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

    • @DmitryKetov
      @DmitryKetov  5 ปีที่แล้ว +3

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

  • @_RUDE_
    @_RUDE_ 3 ปีที่แล้ว +1

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

    • @DmitryKetov
      @DmitryKetov  3 ปีที่แล้ว +1

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

    • @_RUDE_
      @_RUDE_ 3 ปีที่แล้ว +2

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

    • @DmitryKetov
      @DmitryKetov  3 ปีที่แล้ว +2

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

  • @david_shiko
    @david_shiko 4 ปีที่แล้ว

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

    • @DmitryKetov
      @DmitryKetov  4 ปีที่แล้ว +3

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

  • @maximfinojenok228
    @maximfinojenok228 2 ปีที่แล้ว

    +

  • @michaeljordan1283
    @michaeljordan1283 3 ปีที่แล้ว

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

    • @sashashad
      @sashashad 18 วันที่ผ่านมา

      а они существуют?