По вашему запросу ничего не найдено :(
Убедитесь, что запрос написан правильно, или посмотрите другие
наши статьи:
Предположим, у вас есть увесистый дистрибутив софта в формате .iso, гигабайт на 5, например, и вы хотите передать его через сеть партнеру. Вы загружаете его на FTP сервер и даете ссылку партнеру, мол «На, скачивай, дружище!». Ваш партнер скачивает его и работает с ним. Думаете этого достаточно? Нет. Сейчас объясним почему.
p>
Зачем сверять контрольную сумму?
Дело в том, что при загрузке файла из сети файл может прилететь к вам побитым. Да –да, вы не ослышались. Любой .iso это так или иначе, набор блоков данных. И при скачивании, а особенно по нестабильному FTP, он может «крашнуться».
И чтобы избежать этого, используется следующий алгоритм передачи файла. Его последовательность такова:
Владелец файла считает контрольную сумму рабочего файла (по MD5, например);
Загружает файл на публичное хранилище и передает контрольную сумму получателю файла;
Получатель файла скачивает файл, считает его контрольную сумму на своей стороне и сверяет ее с оригинальной, которую посчитал владелец файла;
Получатель и Владелец кидают смешные стикеры в Telegram друг другу из стикерпака про лягушку Пепе.
Как работает контрольная - простым языком
Контрольная сумма - результат некой хэш – функции. Запомнили. Далее, что такое хэш – функция? Это функция, которая получает на вход массив данных, «прокручивает» эти данные по определенному алгоритму и дает на выходе битовую строку, длина которой задана заранее.
Не вдаваясь в подробности сложных алгоритмов, так это и работает:
Массив данных на вход (файл);
Магия внутри;
Контрольная сумма на выходе!
Как рассчитать контрольную сумму?
Будем использовать криптографическую функцию MD5. Скачиваем утилиту WinMD5Sum по ссылке: https://sourceforge.net/projects/winmd5sum/. Установите ее и идем дальше.
Итак, вот мой заветный дистрибутив. Лежит в папке:
Запускаем WinMD5Sum:
Тут все предельно просто. Просто в поле File Name выбираем наш дистрибутив и нажимаем кнопку Calculate.
Зачастую, как только вы выберите файл в поле File Name через кнопку поиску (три точки), то подсчет хэша начнется без нажатия на кнопку Calculate.
Огонь. Копируйте значение из поля MD5 Sum и сохраняйте себе отдельно. Теперь, по легенде, мы берем этот файл и отправляем другу/партнеру/коллеге. Выкладываем файл на FTP, а контрольную сумму передаем ему отдельно – по смс, емаил, в чате. Далее, давайте рассмотрим процесс с точки зрения получателя файла.
Как сверить контрольную сумму?
Мы получили файл и его контрольную сумму. Как ее проверить? Все так же, как и при расчете контрольной суммы! Сначала считаем контрольную сумму скачанного файла:
С одним лишь отличием. Теперь мы берем контрольную сумму которая была посчитана ранее, вставляем ее в поле Compare и нажимаем кнопку Compare:
Вот и все. Наша контрольная сумма совпала, а это значит, что файл во время загрузки поврежден не был. Иначе, мы бы получили вот такое значение:
В Linux скрытые файлы - это файлы, которые не отображаются напрямую при выполнении стандартного списка каталогов ls.
Скрытые файлы, также называемые dotfiles в операционных системах Unix, - это файлы, используемые для выполнения некоторых сценариев или для хранения конфигурации некоторых служб на вашем хосте.Некоторым популярным примером скрытых файлов являются файлы, содержащиеся в домашнем каталоге пользователя: .bashrc, в котором хранятся сценарии инициализации пользователя, или .bash_logout, который выполняется всякий раз, когда вы выходите из сеанса bash.
В некоторых случаях вам необходимо иметь возможность легко находить скрытые файлы для настройки параметров конфигурации по умолчанию. Мы рассмотрим все методы, используемые для отображения скрытых файлов в Linux.
Показать скрытые файлы в Linux с помощью ls
Самый простой способ показать скрытые файлы в Linux - это использовать команду ls с опцией -a, что значит all.
$ ls -a [path]
Например, чтобы показать скрытые файлы в домашнем каталоге пользователя, вы должны выполнить эту команду. Кроме того, вы можете использовать флаг -A для отображения скрытых файлов в Linux. При использовании A подразумеваемые файлы не будут отображаться (например, предыдущая папка также называется .)
$ ls -al ~
total 356
drwxr-xr-x 14 schkn schkn 4096 Oct 26 06:08 . --- Не показано с -A
drwxr-xr-x 3 root root 4096 Jan 5 2019 .. --- Не показано с -A
-rw------- 1 schkn schkn 43436 Oct 26 06:08 .bash_history
-rw-r--r-- 1 schkn schkn 220 Apr 4 2018 .bash_logout
-rw-r--r-- 1 schkn schkn 3771 Apr 4 2018 .bashrc
drwx------ 2 schkn schkn 4096 Jan 5 2019 .cache
$ ls -A ~
total 348
-rw------- 1 schkn schkn 43436 Oct 26 06:08 .bash_history
-rw-r--r-- 1 schkn schkn 220 Apr 4 2018 .bash_logout
-rw-r--r-- 1 schkn schkn 3771 Apr 4 2018 .bashrc
drwx------ 2 schkn schkn 4096 Jan 5 2019 .cache
В этом случае скрытыми файлами являются файлы bash_history, bash_logout, bashrc и файлы кэша.
Показать исключительно скрытые файлы с помощью ls
В некоторых случаях вас могут не интересовать другие файлы, кроме тех которые скрыты. Чтобы показать исключительно скрытые файлы в Linux, используйте команду ls со специальным регулярным выражением.
$ ls -dl .[^.]* [path]
Например, используя пример, который мы описали ранее, мы получили бы следующий результат.
$ ls -dl .[^.]* ~
-rw------- 1 schkn schkn 43436 Oct 26 06:08 .bash_history
-rw-r--r-- 1 schkn schkn 220 Apr 4 2018 .bash_logout
-rw-r--r-- 1 schkn schkn 3771 Apr 4 2018 .bashrc
drwx------ 2 schkn schkn 4096 Jan 5 2019 .cache
drwx------ 5 schkn schkn 4096 Jan 5 2019 .config
Показать скрытые файлы в Linux, используя find
Еще один эффективный способ найти скрытые файлы во всей вашей системе - использовать команду find.
Чтобы показать все скрытые файлы в вашей системе, запустите find с опцией name.
$ find / -name ".*" 2> /dev/null
Обратите внимание, что выходные данные команды перенаправляются в /dev/null, чтобы не отображаться в каталогах, к которым у вас нет доступа.
/dev/null - специальный файл в системах UNIX, представляющий собой так называемое "пустое устройство", в которое всегда успешно происходит запись. Обычно используется для того чтобы туда отправлять ненужный вывод программы.
Чтобы показать скрытые файлы в текущем рабочем каталоге, запустите find с параметром maxdepth.
$ find . -name ".*" -maxdepth 1 2> /dev/null
Показать скрытые каталоги используя find
Чтобы показать скрытые каталоги в текущем рабочем каталоге, без рекурсивного поиска, используйте команду find и укажите тип d.
$ find . -name ".*" -maxdepth 1 -type d 2> /dev/null
Показать скрытые файлы в Linux, используя dir
Команда dir - это команда, близкая к команде ls в Linux: она отображает содержимое каталога в вашей системе.
Подобно команде ls, ее можно использовать для отображения скрытых файлов в каталоге.
Чтобы показать скрытые файлы, выполните команду dir с опцией -a или -A.
$ dir -a [path]
$ dir -A [path]
Например, чтобы показать скрытые файлы в вашем домашнем каталоге, вы должны выполнить:
$ dir -A ~
.bash_history .dbshell .mongorc.js .viminfo scripts
Обратите внимание, что команда dir также показывает скрытые каталоги, которые могут находиться в пути, который вы ищете.
Подобно команде ls, вы можете выбрать отображение скрытых файлов исключительно в папке, чтобы не беспокоиться обо всех остальных файлах.
$ dir -dl .[^.]* [path]
Например, в домашнем каталоге это даст такой вывод:
$ dir -dl .[^.]* ~
-rw------- 1 schkn schkn 43436 Oct 26 06:08 .bash_history
-rw-r--r-- 1 schkn schkn 220 Apr 4 2018 .bash_logout
-rw-r--r-- 1 schkn schkn 3771 Apr 4 2018 .bashrc
drwx------ 2 schkn schkn 4096 Jan 5 2019 .cache
Отображение скрытых файлов в среде рабочего стола GNOME
Наконец, для тех, кто работает в среде рабочего стола GNOME, вы также можете показывать скрытые файлы, когда просматриваете систему с помощью проводника.
Чтобы отобразить скрытые файлы через интерфейс GNOME, нажмите небольшую стрелку вниз, расположенную в верхнем правом углу экрана.
При появлении небольшого выпадающего меню обязательно установите флажок «Показать скрытые файлы» (Show Hidden Files).
Как следствие, скрытые файлы и папки будут видны в проводнике.
Вывод
В этом руководстве вы увидели все способы отображения скрытых файлов в Linux: с помощью команды ls, но у вас также есть команда find и dir. Если вы используете среду рабочего стола GNOME, есть возможность легко их отобразить с помощью небольшой опции.
Каждое семейство операционных систем производит загрузку по-своему. Это связанно с различной архитектурой ядра операционной системы, разными инструкциями по работе с подключенными устройствами. В данной статье попробую разобрать загрузку популярной операционной системы на ядре Linux Ubuntu.
Схематично процесс загрузки можно отобразить следующим образом.
Загружаемся
Итак, Нажимаем кнопку включения компьютера, и центральный процессор переходит на адрес BIOS. BIOS или UEFI, в более современных компьютерах, проводит систему проверок и выбирает носитель информации с которого будет производится загрузка операционной системы. На носителе находится MBR (Master Boot Record) или GPT (Guid Partition table) на новых компьютерах в которых находится загрузчик. А дальше уже в зависимости от настройки. Загрузчик может самостоятельно загружать операционную систему, а может передавать управление следующему загрузчику. Например, если Windows и Linux установлены на одном компьютере и находятся на разных разделах жесткого диска.
В любом случае, если идет речь о Linux у нас есть первая стадия с небольшой частью кода, которая загружает у нас загрузчик. Загрузчик знает где лежит ядро операционной системы, загружает ядро, загружает initial run disk, там находятся необходимые файлы и модули для загрузки ядра. Далее уже ядро берет процесс управления на себя. Происходит инициализация устройств, конфигурирование процессов памяти и так далее. После всех этих процессов ядро запускает процесс init.
Вернемся к вопросу загрузчиков, для каждой операционной системы разработан свой загрузчик, а иногда и несколько. NTLDR - Загрузчик операционной системы Windows, LILO - один из стандартных загрузчиков для Linux и BSD системы. GRUB - загрузчик операционной системы от проекта GNU. Нас интересуют последние два. Данные загрузчики работают в два этапа. На первом этапе у них крошечный код на MBR или GPT, который запускает исполнение кода второго этапа.
Перейдем непосредственно к самой загрузке.
Данное меню мы можем получить при загрузке если зажать клавишу Shift. Как видно на картинке в данном примере загрузчик GRUB версии 2.04. У нас есть несколько вариантов. Загрузка Ubuntu по умолчанию и вариант загрузки с расширенными опциями. В нашем случае расширенные опции не дают многого, а всего лишь позволяют начать загрузку в режиме восстановления recovery mode. Данная опция не является целью стати, и мы ее опустим. Вернемся к первому пункту загрузки. Выбираем, нажимаем "e" получаем следующую картину загрузки.
На данной картинке можно увидеть, что корневой раздел монтируется по uuid, он будет корневым root и непосредственно сам id. ID раздела можно посмотреть после загрузки операционной системы командой blkid. Можно часть параметров отредактировать или большинство. Более подробно можно поискать в интернете. По нажатию F10 осуществляется продолжение загрузки операционной системы.
После загрузки операционной системы, мы можем с помощью команды dmesg посмотреть, сообщения ядра, все что происходило с ядром. Нужно различать сообщения ядра и лог ядра. Который можно посмотреть cat /var/log/dmesg. Данный файл содержи информацию только о загрузке операционной системы. В данном файле содержится информация с самого начала загрузки операционной системы и до конца. Если событие происходит позднее, то в данном файле этой информации вы не найдете.
Система инициализации ОС
Есть такое понятие Init - это первый или родительский процесс, который запускает все последующие процессы. Это может быть проверка и монтирование файловых систем запуск служб и.т.д. Существует 3 варианта работы этого родительского процесса.
Init в стиле SysV - родительский процесс инициализации системы на одном из заданных уровней запуска (runlevel); Т.е. есть несколько уровней загрузки (runlevel) обычно их 7 штук. Один из них - это обычный многопользовательский режим. Другие это выключение компьютера, перезагрузка, режим восстановления и т.д.
Init в стиле systemd - родительский процесс инициализации системы в ускоренном режиме, за счёт параллельного запуска задач; Ускоренный режим достигается за счет использования процессора в частности Intel, который позволяет запускать процессы инициализации параллельно. К этому режиму есть еще куча софта библиотек, которые расширяют функционал.
Init в стиле Upstart - родительский процесс инициализации системы на основе отслеживания событий; Данный режим используется на Ubuntu уже давным - давно, тут не только запускаются скрипты инициализации, но и запускаются скрипты отслеживания событий и реагирования на них. Т.е. это более гибкий процесс инициализации, например, если какая-то служба не запустилась или упала в процессе загрузки то, upstart умеет это отследить и запустить это повторно
В операционной систему Ubuntu можно посмотреть дерево процессов использую команду pstree. В результате ее вывода мы можем увидеть, что родительским процессом являлся процесс systemd. Который запускал уже свои, какие-то дочерние процессы. Перейдем в корневую директорию boot.
Здесь мы можем увидеть директорию загрузчика grub. Ядра линуксовые vmlinuz (ссылка на ядро) и до обновления старое ядро vmlinux.old (ссылка на старое ядро). Соответственно пара initrd* - файлы диска, эти файлы содержат диск, который грузится в оперативную память, данный диск содержит файлы необходимые самому ядру Linux для нормальной загрузки.
Перейдя в директорию grub, мы можем найти конфигурационный файл grub.cfg и несколько вспомогательных, но не менее важных фалов. Соответственно мы можем внести изменения в данный файл на постоянной основе и соответственно данный код будет выполнятся при каждой загрузке операционной системы.