Skip to content

Latest commit

 

History

History
69 lines (68 loc) · 6.75 KB

os.md

File metadata and controls

69 lines (68 loc) · 6.75 KB
  1. Оглавление
  2. Общее
    1. SIMD
    2. Виртуальная память с точки зрения ОС
    3. Межпроцессное взаимодействие (IPC)
    4. POSIX
    5. Кольца защиты
    6. Как происходит выделение памяти
  3. Windows
    1. Основные команды консоли
  4. Linux
    1. Основные команды консоли
  • Общее:
    • SIMD: Обработка нескольких ячеек памяти в одной инструкции.
    • Виртуальная память: позволяет выполнять программы, требующие большоий объем памяти, чем имеется. Обеспечивается за счет перемещения частей программы между основной памятью и вторичной.
      • Программа взаимодействует с виртуальной памятью, которая для неё выглядит как непрерывное адресное пространство, вне зависимости наличия у компьютера такого объема памяти.
      • ОС (+ блок управления памятью) занимается трансляцией виртуальной памяти в физическую и перемещением между основной памятью(RAM) и вторичной(HDD, SSD).
    • Межпроцессное взаимодействие (IPC):
      • Сигнал - являются программными прерываниями, которые посылаются процессу, когда случается некоторое событие.
        • Популярные сигналы:
      • Сокет - #TODO
      • Семафор - #TODO
      • Каналы (pipe) -
        • Полудуплексные -
        • Именованные -
      • Очередь сообщений - #TODO
      • Файл -
      • Разделяемая память - самый быстрый способ межпроцессного взаимодействия. Общее адресное пространство, несколько процессов могут работать с ним одновременно, но в этом случае нужно самостоятельно обеспечивать средства синхронизации процессов, например семафорами.
    • POSIX:
    • Кольца защиты:
      • Ring 0-3 -
      • kernel space vs user space - процессы, запущенные в пользовательском пространстве, имеют доступ только к ограниченной части памяти, тогда как ядро имеет доступ ко всей памяти. Процессы, запущенные в пространстве пользователя, также не имеют доступа к пространству ядра. Процессы пользовательского пространства могут получить доступ только к небольшой части ядра через интерфейс, предоставляемый ядром, - системные вызовы. Если процесс выполняет системный вызов, ядру отправляется программное прерывание, которое затем отправляет соответствующий обработчик прерывания и продолжает свою работу после завершения обработчика.
        • user space - адресное пространство, где выполняются обычные пользовательские процессы (то есть все, кроме ядра). Роль ядра состоит в том, чтобы управлять приложениями, работающими в этом пространстве, взаимодействием друг с другом и самим компьютером.
        • kernel space - это пространство памяти, где хранится и выполняется код ядра.
    • UNIX:
    • Как происходит выделение памяти:
    • процессор с памятью как общаются и с кешем:
  • Windows:
    • Основные команды консоли:
  • Linux:
    • Основные команды консоли:
      • grep - поиск текста по шаблону
      • sed
      • awk
      • kill
      • ls - просмотр содержимого каталогов
        • -l - показывает более подробную информацию
        • -a - показывает скрытые файлы
      • mkdir - создание новых каталогов
        • -p - позволяет создать сразу всю структуру подкаталогов
      • file - показывает тип файла
      • cp - копирование файлов и каталогов
        • -r - рекурсивное копирование
        • -a - сохраняет атрибуты файлов, владельца и таймштамп
      • mv - перемещение или переименование файлов и каталогов
      • rm - удаление файлов и каталогов
        • -r - рекурсивное удаление
      • chmod - изменение прав доступа к файлу
      • chown - изменение владельца файла
        • -R - рекурсивное изменение
      • more/less -
      • head/tail - выводит несколько первых/последних строк из файла
        • -n - количество строк
        • -f - утилита будет постоянно выводить изменения на экран
    • Общее устройство линукса:
    • Pluggable Authentication Modules (PAM):
    • Network Security Services (NSS):
    • Апплеты: