diff --git a/readme.md b/readme.md index 18ed869..1aedd47 100644 --- a/readme.md +++ b/readme.md @@ -11,3 +11,4 @@ * [2.4 Ветвления в Git](/src/homework/2.4) * [3.1 Работа в терминале, лекция 1](/src/homework/3.1) * [3.2 Работа в терминале, лекция 2](/src/homework/3.2) +* [3.3. Операционные системы, лекция 1](/src/homework/3.3) diff --git a/src/homework/1.1/readme.md b/src/homework/1.1/readme.md index 394407e..c95ebe0 100644 --- a/src/homework/1.1/readme.md +++ b/src/homework/1.1/readme.md @@ -1 +1,2 @@ -Выполнение [домашнего задания](https://github.com/netology-code/sysadm-homeworks/blob/devsys10/01-intro-01/README.md) по теме "Введение в DevOps". +Выполнение [домашнего задания](https://github.com/netology-code/sysadm-homeworks/blob/devsys10/01-intro-01/README.md) +по теме "Введение в DevOps". diff --git a/src/homework/2.1/readme.md b/src/homework/2.1/readme.md index dd3e07c..e0f4158 100644 --- a/src/homework/2.1/readme.md +++ b/src/homework/2.1/readme.md @@ -1 +1,2 @@ -Выполнение [домашнего задания](https://github.com/netology-code/sysadm-homeworks/blob/devsys10/02-git-01-vcs/README.md) по теме "Системы контроля версий". +Выполнение [домашнего задания](https://github.com/netology-code/sysadm-homeworks/blob/devsys10/02-git-01-vcs/README.md) +по теме "Системы контроля версий". diff --git a/src/homework/2.2/readme.md b/src/homework/2.2/readme.md index adab1ac..a30675f 100644 --- a/src/homework/2.2/readme.md +++ b/src/homework/2.2/readme.md @@ -1,4 +1,5 @@ -Выполнение [домашнего задания](https://github.com/netology-code/sysadm-homeworks/blob/devsys10/02-git-02-base/README.md) по теме "Основы Git". +Выполнение [домашнего задания](https://github.com/netology-code/sysadm-homeworks/blob/devsys10/02-git-02-base/README.md) +по теме "Основы Git". ### Other repos diff --git a/src/homework/2.3/readme.md b/src/homework/2.3/readme.md index e45230e..873968d 100644 --- a/src/homework/2.3/readme.md +++ b/src/homework/2.3/readme.md @@ -1 +1,2 @@ -Выполнение [домашнего задания](https://github.com/netology-code/sysadm-homeworks/blob/devsys10/02-git-03-branching/README.md) по теме "Ветвления в Git". +Выполнение [домашнего задания](https://github.com/netology-code/sysadm-homeworks/blob/devsys10/02-git-03-branching/README.md) +по теме "Ветвления в Git". diff --git a/src/homework/2.4/readme.md b/src/homework/2.4/readme.md index 2f2dc05..e47b5d2 100644 --- a/src/homework/2.4/readme.md +++ b/src/homework/2.4/readme.md @@ -1,4 +1,5 @@ -Выполнение [домашнего задания](https://github.com/netology-code/sysadm-homeworks/blob/devsys10/02-git-04-tools/README.md) по теме "Инструменты Git". +Выполнение [домашнего задания](https://github.com/netology-code/sysadm-homeworks/blob/devsys10/02-git-04-tools/README.md) +по теме "Инструменты Git". ## Git search diff --git a/src/homework/3.1/readme.md b/src/homework/3.1/readme.md index 259f538..978b640 100644 --- a/src/homework/3.1/readme.md +++ b/src/homework/3.1/readme.md @@ -1,4 +1,5 @@ -Выполнение [домашнего задания](https://github.com/netology-code/sysadm-homeworks/blob/devsys10/03-sysadmin-01-terminal/README.md) по теме "Работа в терминале, лекция 1". +Выполнение [домашнего задания](https://github.com/netology-code/sysadm-homeworks/blob/devsys10/03-sysadmin-01-terminal/README.md) +по теме "Работа в терминале, лекция 1". ## Q/A diff --git a/src/homework/3.2/readme.md b/src/homework/3.2/readme.md index be9298b..0ffd6c2 100644 --- a/src/homework/3.2/readme.md +++ b/src/homework/3.2/readme.md @@ -1,4 +1,5 @@ -Выполнение [домашнего задания](https://github.com/netology-code/sysadm-homeworks/blob/devsys10/03-sysadmin-02-terminal/README.md) по теме "Работа в терминале, лекция 2". +Выполнение [домашнего задания](https://github.com/netology-code/sysadm-homeworks/blob/devsys10/03-sysadmin-02-terminal/README.md) +по теме "Работа в терминале, лекция 2". ## Q/A diff --git a/src/homework/3.3/readme.md b/src/homework/3.3/readme.md new file mode 100644 index 0000000..1912d0a --- /dev/null +++ b/src/homework/3.3/readme.md @@ -0,0 +1,49 @@ +Выполнение [домашнего задания](https://github.com/netology-code/sysadm-homeworks/blob/devsys10/03-sysadmin-03-os/README.md) +по теме "3.3. Операционные системы, лекция 1". + +## Q/A + +1. Какой системный вызов делает команда `cd`? + +Для удобства поиска перенаправим вывод команды `strace` в утилиту `less` + +```shell +strace /bin/bash -c 'cd /tmp' 2>&1 | less +``` + +Далее, найдём в трейсе упоминание директории `tmp`, указанной в команде. Таким образом, обнаружим, что команда `cd` +делает системный вызов `chdir("/tmp")`. + +2. Используя `strace` выясните, где находится база данных `file` на основании которой она делает свои догадки. + +При использовании команды `file` на любом файле, `strace` выведет такую строку: + +``` +openat(AT_FDCWD, "/usr/share/misc/magic.mgc", O_RDONLY) = 3 +``` + +Предположительно, `/usr/share/misc/magic.mgc` - это и есть база данных для команды `file`. + +3. Предложите способ обнуления открытого удаленного файла (чтобы освободить место на файловой системе) + +Зная PID процесса и то, что каждый процесс пишет свои потоки в файлы в директории `/proc//fd`. +Таким образом, можно найти конкретный поток, который пишет в файл, вызвав команду + +```shell +ls -la /proc/1988/fd/ + +total 0 +dr-x------ 2 vagrant vagrant 0 Feb 16 03:25 . +dr-xr-xr-x 9 vagrant vagrant 0 Feb 16 03:25 .. +lrwx------ 1 vagrant vagrant 64 Feb 16 03:25 0 -> /dev/pts/0 +lrwx------ 1 vagrant vagrant 64 Feb 16 03:25 1 -> /dev/pts/0 +lrwx------ 1 vagrant vagrant 64 Feb 16 03:25 2 -> /dev/pts/0 +lr-x------ 1 vagrant vagrant 64 Feb 16 03:25 3 -> /tmp/do_not_delete_me +``` + +В данном случае, поток под номером 3 держит соединение с искомым файлом. Таким образом, чтобы обнулить данный файл, +достаточно направить пустую строку в данный поток: + +```shell +echo "" > /proc/1988/fd/3 +```