Top Banner
Операционные системы GNU/Linux Чинков Михаил CodeInside
31

Операционные системы GNU/Linux

Jan 10, 2017

Download

Technology

Mikhail Chinkov
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: Операционные системы GNU/Linux

Операционные системы GNU/Linux

Чинков МихаилCodeInside

Page 2: Операционные системы GNU/Linux

Понятие операционной системы

Page 3: Операционные системы GNU/Linux

Абстракции операционной системы● Процессы● Потоки● Адресное пространство● Файлы (файловая система)

Page 4: Операционные системы GNU/Linux

Linux GNU/Linux

Page 5: Операционные системы GNU/Linux

История

1970-е гг. - операционная система UNIX

https://github.com/dspinellis/unix-history-repo

Page 6: Операционные системы GNU/Linux

История

1983 г - GNU Project

Page 7: Операционные системы GNU/Linux

История

1987 г - MINIX OS

Page 8: Операционные системы GNU/Linux

История

● 17.09.1991 г. - первый релиз ядра Linux

● 1992 г. - первый дистрибутив Linux (Slackware)

● 14.03.1994 г. - Linux 1.0● Текущая версия ядра

(vanilla) - 4.6.4

Page 9: Операционные системы GNU/Linux

Архитектура

Page 10: Операционные системы GNU/Linux

Системные вызовы● open, close, read, write, lseek● fork+execve, exit● mkdir, rmdir, link, unlink● kill● fsync

Page 11: Операционные системы GNU/Linux

Дистрибутивы Linux

Дистрибутив - операционная система, включающая в себя ядро (Linux), пользовательские приложения, библиотеки, компиляторы, утилиты, а также установщик системы.

● Библиотеки/компиляторы/интерпретаторы● Версия ядра● Пакеты/пакетный менеджер● Графическая среда пользователя (DE)● Разработчики (community/enterprise)

Page 12: Операционные системы GNU/Linux

Дистрибутивы Linux

Пакет - набор файлов, необходимый программе для установки, запуска и выполнения: исполняемые файлы, библиотеки, конфигурационные файлы, документация.

Пакетный менеджер - инструмент, следящий за конфликтами и зависимостями между пакетами.

Page 13: Операционные системы GNU/Linux

Дистрибутивы Linux

distrowatch.com

Page 14: Операционные системы GNU/Linux

Русские народные дистрибутивы

Page 15: Операционные системы GNU/Linux

Производные (оно повсюду!!!)

● Embedded Linux● Android● Mac OS X

Page 16: Операционные системы GNU/Linux

Почему Linux нужен

● Open source community● Удобное окружение/ПО для

разработки● Мощная командная строка● Продуктивность● Удобство в установке и поддержке ПО● Не требует финансовых затрат● Кастомизация 1000%

… и тысячи других причин

Page 17: Операционные системы GNU/Linux

Почему Linux не нужен

● Игры● Прикладное ПО (Photoshop, Компас)● Проект на .NET● Нужен Active Directory● “Мы закупили лицензию Windows на

10 лет, чо мы как лохи будем (с).”

Page 18: Операционные системы GNU/Linux

Bash

● Автоматизация рутинных операций● Понимание принципов работы утилит● Повеселиться от души

Page 19: Операционные системы GNU/Linux

ЦПУ

● strace/ltrace● ps aux● kill -9● pidstat● uptime● cat /proc/cpuinfo

Page 20: Операционные системы GNU/Linux

Память

● cat /proc/meminfo● vmstat● free -m● sar -r● top

Page 21: Операционные системы GNU/Linux

Файлы

● ext4● Btrfs● XFS

● ZFS● F2FS● ReiserFS

Page 22: Операционные системы GNU/Linux

Файлы

● find, locate● rm -rf /*● tar, gzip/guizip, bzip/bunzip● iostat

Page 23: Операционные системы GNU/Linux

Сеть

● ssh● ip add/ifconfig● netstat● tcpdump● wireshark

Page 24: Операционные системы GNU/Linux

Другие команды

● работа с текстом (grep/sed/awk)● pipe (UNIX-way)● cron● vi/emacs/nano● curl/wget● screen/tmux● watch● screenfetch

Page 25: Операционные системы GNU/Linux

Безопасность

● rwx-биты доступа● ACL● sudo● getty + login● SELinux

Page 26: Операционные системы GNU/Linux

DevOps-инструменты

● Системы управления конфигурациями (Ansible/Chef/Puppet/Saltstack)

● Виртуализация (Vagrant/Packer)● Git● Continuous Integration

(Jenkins/TeamCity/TravisCI)● Docker

Page 27: Операционные системы GNU/Linux

Советы (ИМХО)

● Не меряйтесь дистрибутивами● Не заходите на хост с root-а● Не бойтесь● Не промывайте людям мозги своим Linux-ом● Не злоупотребляйте howto-шничеством (курите маны)● Сохраняйте спокойствие, если что-то сломалось (бэкапы)● Вырубите свап (sysctl -w vm.swappiness=0)● Минимальные привилегии для запуска системных команд из приложения● Соблюдайте в системе UNIX-way композицию (микросервисы)● Делитесь трудами и знаниями (open source)

Page 28: Операционные системы GNU/Linux

Источники

● Э. Таненбаум “Современные операционные системы” (4-е издание)● Роберт Лав "Linux. Системное программирование" (2-е издание)● Mendel Cooper “Advanced Bash-Scripting Guide”

Page 29: Операционные системы GNU/Linux

Источники

● https://kernel.org/● http://www.thegeekstuff.com/● http://stackshare.io/● http://explainshell.com/● https://github.com/jnv/lists (MUST SAVE)

Page 30: Операционные системы GNU/Linux

Самопиарhttps://myopsblog.wordpress.com/

Page 31: Операционные системы GNU/Linux

Всем спасибо

Вопросы?