WARNING! сначала это был план курса,
потом - прототип промо-сайта,
а теперь - просто страница проекта /2020-03-06/
.

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

(Console,Unix,Networks и язык программирования C)

Принцип 50/50 - 50% теории, 50% практики

Объем - 3 дня, 24 астрономических часа

Проблема - программисты, которые приходят к нам на работу или на стажировку, не знают то, что излагается в этом курсе. А ДОЛЖНЫ!

С 25 января 2020 мы начинаем читать этот курс, посвященный минимуму технических знаний, необходимых для работы любому программисту или системному администратору UNIX(R)/Linux/BSD.

Аттестация - "по Гамбургскому счету", с применением 8-ми бальной шкалы NETMandala

День 1 (вторник или пятница)

Ведение в UNIX(R)-like системы и сети.

Теория

25 О курсе и предпосылках к его созданию

45 Unix - краткая история, принципы (все есть файл, дерево каталогов, пользователи, процессы, fork/exec, tty, sh, /bin/*, /etc/*)

45 Console - shell (sh,csh,ash,bash), переменные окружения (PATH, TERM, EDITOR, PAGER, MM_CHARSET, LANG), stdin, stdout, stderr, конвееры (pipes), команды: pwd, ls, cp, mv, cat, man, vi

45 Networks - Модели OSI и DoD, IPv4 - адрес, маска сети, ICMP, UDP, TCP, заголовок пакета IP, Ethernet, ARP, команды: ifconfig, ping, arp, traceroute, telnet, route, netstat -r, nslookup (dig,host) файлы: /etc/hosts, /etc/resolv.conf, /etc/protocols подсматривание трафика через /dev/bpf: tcpdump, tcpflow, trafshow

30 C - список конструкций языка (if, while, ...), базовые типы (char, int, short, long), функция main(..), аргументы командной строки, работа с файлами (open, read, write, close), работа с процессами (fork/exec/kill/exit) компиляция и запуск (cc hello.c -o hello)

Практика

  • Почему BSD? (действительно, эту практику можно делать на любом Linux или *BSD, minix, Solaris [добавить по вкусу преподавателя])
  • Установка FreeBSD в виртуальную машину (разбиение дисков, загрузка в singleuser mode, fsck, mount, замена пароля root при потере)
  • Добавление и удаление пользователей и групп, vipw (и работа с редактором vi), /etc/passwd, /etc/group и т.п.
  • Дерево исходных текстов (где и что лежит)
  • Дерево портов и установка пакетов (где, что и как)
  • Изменение, перекомпиляция и установка какой-нибудь утилиты, например /usr/src/bin/echo
  • Пересборка ядра и мира (buildkernel, buildworld)
  • Файлы, hard∧soft links, crunch и директория /rescue
  • Права доступа к файлу, ugo+rwx, stickybit,chmod, chown, простейший скрипт на sh
  • Параметры загрузки /etc/rc.conf, скрипты /etc/rc.d
  • Базовая настройка сети, ifconfig, route, netstat, /etc/hosts, /etc/resolv.conf, ping, telnet, traceroute, nslookup (host, dig)

День 2 (среда или суббота)

Введение в написание скриптов (sh, awk, @Hello World! на С), системы управления версиями (rcs, cvs, git). Автоматизация сборки - make (немного про ant и maven). Настройка оборудования через serial port, VLAN и сети - сложнее, чем одноранговые. Важные сетевые протоколы. Работа с файлами и сетями.

Теория

45 Unix - файлы, устройства (блочные и символьный), сокеты, вызовы ядра.

45 Console - Еще раз о конвеерах (pipes); more (less), tail (head), grep, tr, sed, awk, xargs; expr и bc (dc); Регулярные выражения. Инструменты разработчика diff, patch, rcs, cvs, mercurial/git, make (ant, maven) find, sort, uniq, wc; tar, gzip; почему не надо пользоваться cp -r и как надо делать (tar -cf - srcdir/ | tar -pxf - -C /path/to/dstdir/; dos2unix, iconv - проблемы с кодировками, KOI7, KOI-8R, cp866, cp1251, UTF-8 и UTF-16. chroot ∧ jail

45 Networks - Ethernet - VLAN, 802.1q, Q-in-Q, STP; BOOTP ∧ DHCP; чуть-чуть о динамической маршрутизации (BGP, OSPF, RIP); Проблемы протокола TCP, когда он перестает быть адекватным задаче. Классические протоколы первого поколения (telnet, FTP, TFTP, DNS, SMTP, POP) Концепция RPC Протоколы HTTP и SIP/RTP (как устроены и почему я их рассматриваю вместе) Протокол CGI - Великий и Ужасный прародитель современного WEB SSL, SSH, HTTPS, QUIC - настоящее и будущее Internet tcpdump (tcpflow, trafshow, /dev/bpf) - как инструмент, обязательный для разработчика

45 C - массивы, указатели строки, организация памяти (stack, heap), переполнение буфера (стека). Демоны, работа от имени root и privsep. Работа с сокетами.

Практика

  • Написание и изучение разнообразных скриптов на sh/awk
  • Инструменты разработчка diff, patch, rcs, cvs, mercurial/git, make - в действии
  • Установка и настройка WEB-сервера, написание простейшего CGI, применение SSI
  • Изучение работы сетевых протоколов посредством tcpdump на примере HTTP,SMTP и POP3
  • Разнообразные побочные эффекты и ошибки при программировании на C,
  • изучение ассемблерного листинга простейшей программы на C
  • Написание "дырявого" сетевого демона на C
  • Написание скрипта для его запуска и остановки через /usr/local/etc/rc.d

День 3 (четверг или воскресенье)

Unix как основа Internet, Internet - как основа всех современных приложений. Взаимопроникновение сетевых технологий и программирования. Финальная аттестация.

Теория

45 Unix - типовые сервисы NTP, DNS, MAIL (SMTP, POP3), FTP, WEB (Apache, Tomcat, NGINX) Системы мониторинга - NAGIOS и другие Unix как маршрутизатор, firewall, NAT

45 Console - терминалы, реальные и виртуальные, /etc/tercmcap, stty, screen (tmux) протокол RS232 (COM-порт), модемы и AT-команды протоколы slip и PPP - туннельные сетевые интерфейсы проброс портов через ssh и прочие приемы

45 Networks - Как устроен Internet (Краткий обзор-выжимка из курса NETMandala2018) Неочевидные зависимости современных приложений от связанности в Internet. Классы сетей IPv4 (которых больше нет) и классовая маршрутизация Специальные IPv4 адреса по RFC1918 и RFC6598 (и другие) PROXY и NAT - как это работает, проблема-концепция-решение-проблема-... VPN и туннелирование (GRE, IP2IP, PPTP, PPP over UDP, OpenVPN) Концепция LookingGlass, как полигон для PET-проектов программиста

45 С - повторение всех перечисленных тем для их закрепления, задачи, которые можно решать на C, которые нужно решать на C, и которые лучше на нем не решать. Синхронизация в многопоточных приложениях (по доступу к файлу, семафоры, мутексы, критические секции)

Практика

  • Построение маршрутизируемой сети из компьютеров учебного класса и всего, что окажется

    под рукой.

  • Реализация на каждом узле сети LookingGlass, сделанного на ходу из того, что есть под рукой в FreeBSD.
  • Работа с firewall (ipfw) и реализация NAT
  • Опционально - реализация LookingGlass демона на C с элементами групповой разработки через mercurial/git,

    если суммарной квалификации участников для этого окажется достаточно, а также это будет укладываться в отведенное время (что маловероятно).

Экзамен (30 минут)

По "Гамбургскому счету", с применением 7-бальной оценочной шкалы NETMandala2018

Цена

Сотрудники EustroSoft (действующие и потенциальные) получают этот курс бесплатно и в обязательном порядке.

Прежде всего, он создается для них, для быстрого введения новых сотрудников в ту базовую среду и спектр технологий, на которых функционируют системы, которые мы разрабатываем. Мы не включаем в список рассматриваемых тем наш основной технологический стек, Java, Java Servlet/JSP, JDBC, PostgreSQL, TIS-SQL, HTML/CSS и JavaScript, а также множество других более специфичных продуктов и технологий, но лишь то, что является общим койне, связывающим все эти компоненты. И этим койне должен владеть каждый программист, дабы решать на нем некоторые повседневные задачи быстро, между делом, за 1-2 часа, а не за 1-2 месяца.

Купить курс можно будет купить по базовой цене 20 EUD (26214 руб 40 копеек) у наших партнеров, специализирующихся на дополнительном профессиональном образовании (ДПО). Курс рассчитан на специалистов возраста 24+, если Вам меньше - Вам полагается скидка, при наличии такой возможности, наличие которой определяется организацией ДПО, организующей конкретное мероприятие. Размер скидки - по 20% за каждый недостающий год, но не более 80%. Аналогичные скидки предусмотрены для пенсионеров, после 60 лет.

Если Вы хотите купить этот курс именно у нас, и именно сейчас, и Вас не смущает то, что мы не сможем дать к нему никакого сертификата о повышении квалификации, кроме филькиной грамоты нашего образца, c 25 по 27 февраля мы проведем это курс для специалистов, которые не планируют у нас работать, но которые считают, что им это нужно и для них этот практикум стоит потраченных денег.

Если Вам это нужно - следуйте на промо-сайт нашего предыдущего курса, NETMandala2018, и регистрируйтесь по инструкции на нем. Или звоните tel:+74950123457 во второй половине дня, до 22:00. Количество мест в группе ограничено.

P.S. Да, скорее всего мы сможем предложить Вам пройти этот курс по пост-оплате, т.е. сначала учитесь, потом оплачиваете. Уточняйте этот вопрос при телефонном разговоре.