Найм на работу в IT (часть 2)
Больше всего я не понимаю, когда на техническом собеседовании спрашивают о технологиях, которые компания не использует. Это частая практика - задавать очень сложные вопросы не по теме, чтобы кандидат не прошел. Почему они так делают? Может, не понравился кандидат или запах от него плохой, не знаю. Но практикуют это часто. А потом ты как-то с горем пополам устраиваешься к ним, со слезами и соплями (через полгодика или через другого интервьюера), и узнаешь, что эту технологию/инструмент никто не использует из инженеров в компании, а столько шума было...
Вообще часто возникает ситуация (ожидание / реальность), когда на собеседовании рассказывают о "технологическом прорыве компании", как они круто развиваются, растет количество сотрудников и клиентов, какие они современные и умные. Но потом все меняется, когда я получаю доступ к внутреннему GitLab компании (коду, проектам, скриптам). Вещи, которые я видел, просто не передать словами ... один legacy и костыли, 0 автоматизации, 0 современных подходов, 0 документации (лучше иди спроси у Васи). Компаний, работающих по такому принципу, очень много в РФ (как в других странах - не знаю). Будьте осторожны, друзья, никакие деньги не оправдают подобной головной боли.
Я не говорю, что все IT-компании в РФ плохие (нет), но большинство из них - это мусор. Задача соискателя - найти в этом мусоре что-то адекватное.
Я встречал довольно мало приятных технических интервьюеров, которые не выпендриваются своими знаниями. Большинство из них высокомерные и токсичные, думают, что они умные, и зачем-то принижают кандидата (видимо, чтобы сбить его рыночную стоимость, скомпрометировать). Мне нравится, как технические интервьюеры меняются в лице, когда начинаешь собеседовать их и спрашивать что-то отдельное от их списка вопросов. Да-да, они сыпятся как маленькие девочки .. и к чему весь этот цирк? Мне непонятно. С таких собеседований я ухожу довольно быстро.
Вернемся к HR: Павел Дуров рассказал в интервью Такеру Карлсону, что у него в Telegram нет HR. Чтобы отобрать самых лучших специалистов, Дуров регулярно проводит на отдельной платформе конкурсы для разработчиков. Это называется современный подход, вызывает уважение. Берите пример, что ли...
#thoughts
Больше всего я не понимаю, когда на техническом собеседовании спрашивают о технологиях, которые компания не использует. Это частая практика - задавать очень сложные вопросы не по теме, чтобы кандидат не прошел. Почему они так делают? Может, не понравился кандидат или запах от него плохой, не знаю. Но практикуют это часто. А потом ты как-то с горем пополам устраиваешься к ним, со слезами и соплями (через полгодика или через другого интервьюера), и узнаешь, что эту технологию/инструмент никто не использует из инженеров в компании, а столько шума было...
Вообще часто возникает ситуация (ожидание / реальность), когда на собеседовании рассказывают о "технологическом прорыве компании", как они круто развиваются, растет количество сотрудников и клиентов, какие они современные и умные. Но потом все меняется, когда я получаю доступ к внутреннему GitLab компании (коду, проектам, скриптам). Вещи, которые я видел, просто не передать словами ... один legacy и костыли, 0 автоматизации, 0 современных подходов, 0 документации (лучше иди спроси у Васи). Компаний, работающих по такому принципу, очень много в РФ (как в других странах - не знаю). Будьте осторожны, друзья, никакие деньги не оправдают подобной головной боли.
Я не говорю, что все IT-компании в РФ плохие (нет), но большинство из них - это мусор. Задача соискателя - найти в этом мусоре что-то адекватное.
Я встречал довольно мало приятных технических интервьюеров, которые не выпендриваются своими знаниями. Большинство из них высокомерные и токсичные, думают, что они умные, и зачем-то принижают кандидата (видимо, чтобы сбить его рыночную стоимость, скомпрометировать). Мне нравится, как технические интервьюеры меняются в лице, когда начинаешь собеседовать их и спрашивать что-то отдельное от их списка вопросов. Да-да, они сыпятся как маленькие девочки .. и к чему весь этот цирк? Мне непонятно. С таких собеседований я ухожу довольно быстро.
Вернемся к HR: Павел Дуров рассказал в интервью Такеру Карлсону, что у него в Telegram нет HR. Чтобы отобрать самых лучших специалистов, Дуров регулярно проводит на отдельной платформе конкурсы для разработчиков. Это называется современный подход, вызывает уважение. Берите пример, что ли...
#thoughts
👍9❤🔥2☃2🆒2
Удаление директории
Для примера создать скелет:
Удаление директории со всеми ее файлами:
Удаление директории:
rmdir: failed to remove 'dir/': Directory not empty
Приглушить вывод ошибки:
Директория по прежнему не будет удалена, так как она не пустая. Эта опция позволяет скрипту продолжить выполнение без остановки и вывода ошибки, если наличие файлов в директории ожидаемо или не критично для дальнейшей работы скрипта.
Иногда в скриптах полезно использовать
#shell #utils
Для примера создать скелет:
$ mkdir dir/
$ dd if=/dev/zero of=dir/{a,b} bs=8000 count=1
Удаление директории со всеми ее файлами:
$ rm -r dir/
Удаление директории:
$ rmdir dir/
rmdir: failed to remove 'dir/': Directory not empty
Приглушить вывод ошибки:
$ rmdir --ignore-fail-on-non-empty dir/
Директория по прежнему не будет удалена, так как она не пустая. Эта опция позволяет скрипту продолжить выполнение без остановки и вывода ошибки, если наличие файлов в директории ожидаемо или не критично для дальнейшей работы скрипта.
Иногда в скриптах полезно использовать
rmdir, эта утилита удаляет только пустые директории.#shell #utils
👍9✍2
Теоретический минимум Computer Science-1.pdf
6 MB
Книга по Computer Science (часть 1)
Мне понравилась эта книга, простенько и со вкусом, некоторые главы я пропускал, ибо было не интересно. Но вот базу они очень хорошо расписали, особенно про память компьютера и как она работает. Действительно теоретический минимум.
#books #theory
Мне понравилась эта книга, простенько и со вкусом, некоторые главы я пропускал, ибо было не интересно. Но вот базу они очень хорошо расписали, особенно про память компьютера и как она работает. Действительно теоретический минимум.
#books #theory
👍15⚡3❤2
Теоретический минимум Computer Science-2.pdf
12.5 MB
Книга по Computer Science (часть 2)
А здесь неплохо описана база сетевой теории в первых главах.
#books #theory
А здесь неплохо описана база сетевой теории в первых главах.
#books #theory
✍5🏆2
Замена системных вызовов с помощью модулей ядра
Из книги https://tldp.org/LDP/lkmpg/2.6/lkmpg.pdf:
You can even write modules to replace the kernel's system calls, which we'll do shortly. Crackers often make use of this sort of thing for backdoors or trojans, but you can write your own modules to do more benign things, like have the kernel write Tee hee, that tickles! everytime someone tries to delete a file on your system.
Другими словами: существует возможность создания модулей для ядра операционной системы, которые могут заменять системные вызовы. Это может использоваться как злоумышленниками для создания бэкдоров и троянов, так и для более безобидных задач, таких как добавление пользовательского сообщения при попытке удаления файла.
#kernel #books
Из книги https://tldp.org/LDP/lkmpg/2.6/lkmpg.pdf:
You can even write modules to replace the kernel's system calls, which we'll do shortly. Crackers often make use of this sort of thing for backdoors or trojans, but you can write your own modules to do more benign things, like have the kernel write Tee hee, that tickles! everytime someone tries to delete a file on your system.
Другими словами: существует возможность создания модулей для ядра операционной системы, которые могут заменять системные вызовы. Это может использоваться как злоумышленниками для создания бэкдоров и троянов, так и для более безобидных задач, таких как добавление пользовательского сообщения при попытке удаления файла.
#kernel #books
👨💻1
Debian LTS (Debian Long Term Support)
Это программа поддержки для стабильных версий операционной системы Debian, которая предоставляет обновления безопасности и исправления ошибок для устаревших версий Debian в течение длительного времени после того, как они перестают получать поддержку от проекта Debian. Debian LTS обеспечивает дополнительное время для пользователей, которые не могут или не хотят обновляться до более новых версий Debian.
Таблицу LTS поддержки можно увидеть здесь: https://wiki.debian.org/LTS
#debian
Это программа поддержки для стабильных версий операционной системы Debian, которая предоставляет обновления безопасности и исправления ошибок для устаревших версий Debian в течение длительного времени после того, как они перестают получать поддержку от проекта Debian. Debian LTS обеспечивает дополнительное время для пользователей, которые не могут или не хотят обновляться до более новых версий Debian.
Таблицу LTS поддержки можно увидеть здесь: https://wiki.debian.org/LTS
#debian
✍4👍1
Вы только посмотрите, какая красота стала! Теперь вывод
В Debian Sid (unstable) утилита
Вывод стал более организованным, с четким разделением этапов установки, таких как загрузка пакетов, разрешение зависимостей, установка и удаление.
#debian #software #utils
apt можно разглядеть =)В Debian Sid (unstable) утилита
apt получила улучшенный интерфейс вывода информации при работе с пакетами. Эти изменения направлены на то, чтобы сделать процесс более прозрачным и удобным для пользователей. Вывод стал более организованным, с четким разделением этапов установки, таких как загрузка пакетов, разрешение зависимостей, установка и удаление.
#debian #software #utils
🔥23❤3👍3⚡1
Реклама
Я ненавижу рекламу, особенно в Телеграм-каналах, именно поэтому я не подписываюсь и не читаю чужие каналы или другие социальные сети. Сейчас время информационного мусора, и очень сложно найти в этом что-то полезное.
Например, недавно у меня появилась потребность почитать про различные DevOps инструменты. Мой знакомый коллега порекомендовал мне некоторые DevOps-каналы. Что я там увидел? Реклама, реклама, реклама, мемы, курсы, реклама и еще раз реклама. Про DevOps я так ничего и не узнал (либо очень поверхностно). В этом во всем очень сложно найти что-то ценное, и меня это раздражает. Такие каналы забирают кучу времени и сил, а взамен ничего не дают. Поэтому я не хочу, чтобы мой канал превратился в похожую помойку.
С другой стороны, если бы не реклама, вы бы не узнали об этом канале. Забавно, не правда ли?
#thoughts
Я ненавижу рекламу, особенно в Телеграм-каналах, именно поэтому я не подписываюсь и не читаю чужие каналы или другие социальные сети. Сейчас время информационного мусора, и очень сложно найти в этом что-то полезное.
Например, недавно у меня появилась потребность почитать про различные DevOps инструменты. Мой знакомый коллега порекомендовал мне некоторые DevOps-каналы. Что я там увидел? Реклама, реклама, реклама, мемы, курсы, реклама и еще раз реклама. Про DevOps я так ничего и не узнал (либо очень поверхностно). В этом во всем очень сложно найти что-то ценное, и меня это раздражает. Такие каналы забирают кучу времени и сил, а взамен ничего не дают. Поэтому я не хочу, чтобы мой канал превратился в похожую помойку.
С другой стороны, если бы не реклама, вы бы не узнали об этом канале. Забавно, не правда ли?
#thoughts
🔥18👍12❤5
Знаете ли вы, что GitLab Debian, salsa.debian.org, имеет около 15500 пользователей, 79000 проектов, 750 групп, 31000 форков, 14600 задач и 64000 запросов на слияние? Мы активно работаем!
https://micronews.debian.org/2024/1724368366.html
#debian
https://micronews.debian.org/2024/1724368366.html
#debian
👍12
ChatGPT
Самый бесподобный инструмент для изучения чего-либо! Это лучшее, что я видел за всю свою карьеру в IT. Вы можете задать самые глупые вопросы, и он ответит! Вау. Описать в ярких красках нудную документацию из ядра? Запросто. Перевести какой-то абзац? Легко. Он может очень многое. На самом деле, изначально я не доверял ChatGPT, потому что было время, когда он дезинформировал или писал чушь, но потом стало всё лучше и лучше. Сейчас же он ошибается в редких случаях. Я использую в работе https://news.1rj.ru/str/chatgpt_elite_bot и вам советую.
Например, я не люблю регулярные выражения и sed, ну не могу я их запомнить/выучить... хотя использую в работе довольно часто =)
- Мне нужно убрать первый символ в файле, как это сделать? (sed, ответь коротко)
- ChatGPT
Это же прекрасно! А раньше приходилось втыкать в мануал или искать в интернете, как же изменилось время.
Ещё очень яркий пример, когда мне помог ChatGPT: я писал программный модуль на Си для Linux Capabilities (было их расширение), и чтобы понять логику, мне нужно было изучить их работу, что было непросто, потому что man 7 capabilities написан довольно поверхностно (описание привилегий короткое). И тут ChatGPT меня спас! Он рассказал мне всё в красках и с подробностями, это было круто. А без него я бы облысел тогда.
#thoughts
Самый бесподобный инструмент для изучения чего-либо! Это лучшее, что я видел за всю свою карьеру в IT. Вы можете задать самые глупые вопросы, и он ответит! Вау. Описать в ярких красках нудную документацию из ядра? Запросто. Перевести какой-то абзац? Легко. Он может очень многое. На самом деле, изначально я не доверял ChatGPT, потому что было время, когда он дезинформировал или писал чушь, но потом стало всё лучше и лучше. Сейчас же он ошибается в редких случаях. Я использую в работе https://news.1rj.ru/str/chatgpt_elite_bot и вам советую.
Например, я не люблю регулярные выражения и sed, ну не могу я их запомнить/выучить... хотя использую в работе довольно часто =)
- Мне нужно убрать первый символ в файле, как это сделать? (sed, ответь коротко)
- ChatGPT
$ sed -i '1s/^.//' <file>
Это же прекрасно! А раньше приходилось втыкать в мануал или искать в интернете, как же изменилось время.
Ещё очень яркий пример, когда мне помог ChatGPT: я писал программный модуль на Си для Linux Capabilities (было их расширение), и чтобы понять логику, мне нужно было изучить их работу, что было непросто, потому что man 7 capabilities написан довольно поверхностно (описание привилегий короткое). И тут ChatGPT меня спас! Он рассказал мне всё в красках и с подробностями, это было круто. А без него я бы облысел тогда.
#thoughts
⚡6🤡6🔥3👍1🌚1
Найм на работу в IT (часть 3)
Однажды я разговаривал с одной HR около 10 минут о зарплатной вилке. Она до последнего не хотела говорить, сколько я буду получать, а я не хотел говорить, сколько мне действительно нужно. Я вообще не понимаю, почему я должен что-то говорить как соискатель. Ведь все равно я буду получать столько, сколько даст компания, не больше и не меньше, и плевать они хотели на мои зарплатные ожидания. HR должны сообщать, сколько компания может/будет платить и не делать мозги.
Расскажу, как происходит процесс поиска инженеров. Допустим, есть директор департамента разработки, он говорит HR: "Нам нужно еще 2-3 инженера, начинай поиски, на каждую позицию выделено по 200 тысяч рублей." HR начинает искать. Все легко и просто.
В чем проблема сразу сказать об этом соискателю? У нас на данную позицию до 200 тысяч рублей зарплата, вам подходит такое? Но такого они не говорят. В 99% случаев начинаются торги: кто первый назвал цифру, тот и проиграл. Я ненавижу эти игры... просто ненавижу. Все это занимает много сил и времени.
Просто я не понимаю, на что они надеются. Что я назову цифру в 150 тысяч рублей? (хотя на самом деле они могут платить 200). Потом всё равно узнается реальная вилка через будущих коллег. И что будет? Сильное разочарование и просьба повысить зарплату до 200 и выше, потому что у коллег столько, а они ничем не лучше. Все равно их попытка сэкономить провалится, и вот опять же, для чего весь этот HR цирк?
Как-то недавно мне позвонила HR и сказала прямо (без лишних слов), что в нашей компании Junior инженеры получают до 150 тысяч, Middle - до 250 тысяч, а Senior - до 400 и выше. Я был готов ее расцеловать, потому что она сэкономила мне нервы и время. Мне не пришлось вытягивать информацию, торговаться и участвовать в этих фальшивых играх, переговариваться, спорить.
#thoughts
Однажды я разговаривал с одной HR около 10 минут о зарплатной вилке. Она до последнего не хотела говорить, сколько я буду получать, а я не хотел говорить, сколько мне действительно нужно. Я вообще не понимаю, почему я должен что-то говорить как соискатель. Ведь все равно я буду получать столько, сколько даст компания, не больше и не меньше, и плевать они хотели на мои зарплатные ожидания. HR должны сообщать, сколько компания может/будет платить и не делать мозги.
Расскажу, как происходит процесс поиска инженеров. Допустим, есть директор департамента разработки, он говорит HR: "Нам нужно еще 2-3 инженера, начинай поиски, на каждую позицию выделено по 200 тысяч рублей." HR начинает искать. Все легко и просто.
В чем проблема сразу сказать об этом соискателю? У нас на данную позицию до 200 тысяч рублей зарплата, вам подходит такое? Но такого они не говорят. В 99% случаев начинаются торги: кто первый назвал цифру, тот и проиграл. Я ненавижу эти игры... просто ненавижу. Все это занимает много сил и времени.
Просто я не понимаю, на что они надеются. Что я назову цифру в 150 тысяч рублей? (хотя на самом деле они могут платить 200). Потом всё равно узнается реальная вилка через будущих коллег. И что будет? Сильное разочарование и просьба повысить зарплату до 200 и выше, потому что у коллег столько, а они ничем не лучше. Все равно их попытка сэкономить провалится, и вот опять же, для чего весь этот HR цирк?
Как-то недавно мне позвонила HR и сказала прямо (без лишних слов), что в нашей компании Junior инженеры получают до 150 тысяч, Middle - до 250 тысяч, а Senior - до 400 и выше. Я был готов ее расцеловать, потому что она сэкономила мне нервы и время. Мне не пришлось вытягивать информацию, торговаться и участвовать в этих фальшивых играх, переговариваться, спорить.
#thoughts
⚡17🔥3❤🔥2👍1💯1
Бизнес и Open Source
Я часто испытываю неприязнь к своему делу на официальной работе. Я менял множество компаний и отделов, но неприязнь остается. Это связано с тем, что бизнес уничтожает в программисте/инженере творческое начало, которое может создавать, улучшать, видоизменять, планировать, учиться и вдохновляться. Ты выполняешь заказы, повышаешь прибыль своей компании и всё - ничего более. Ты становишься тупым инструментом в руках бизнеса.
Коммерческие компании никоим образом не нацелены на улучшение или создание качественного продукта. Их мотивация - получение прибыли, им плевать на пользователя, на качество и на будущее. Главное - выкатить релиз, получить прибыль и убежать скорее праздновать. По крайней мере, это то, что я наблюдаю на рынке в РФ уже около пяти лет (в сфере разработки Linux-дистрибутивов и импортозамещения операционных систем). Это часто вызывало у меня грусть. Решением всех моих проблем стало уход в Open Source, не бросая при этом работу.
Мир Open Source - это прекрасный мир замотивированных инженеров, которые хотят улучшить ПО, проявить себя, сделать что-то полезное и продемонстрировать всему миру свои патчи, оставив после себя то, чем действительно будут пользоваться. Мотивация этих инженеров гораздо сильнее, чем у бизнес-инвалидов.
Я выбрал дистрибутив Debian и активно вношу вклад в пакетирование, документацию, переводы и тестирование. Я отправляю свои патчи сопровождающим пакетов или в upstream и надеюсь, что когда-то получу роль DM в проекте.
Итого:
- Бизнес: Основная цель коммерческих компаний - получение прибыли. Они разрабатывают программное обеспечение, чтобы продавать лицензии, подписки или услуги, связанные с использованием их продуктов.
- Open Source: Цель open source проектов - создание и распространение программного обеспечения, доступного для всех. Мотивы могут включать желание улучшить технологию, сотрудничество и обмен знаниями.
#thoughts
Я часто испытываю неприязнь к своему делу на официальной работе. Я менял множество компаний и отделов, но неприязнь остается. Это связано с тем, что бизнес уничтожает в программисте/инженере творческое начало, которое может создавать, улучшать, видоизменять, планировать, учиться и вдохновляться. Ты выполняешь заказы, повышаешь прибыль своей компании и всё - ничего более. Ты становишься тупым инструментом в руках бизнеса.
Коммерческие компании никоим образом не нацелены на улучшение или создание качественного продукта. Их мотивация - получение прибыли, им плевать на пользователя, на качество и на будущее. Главное - выкатить релиз, получить прибыль и убежать скорее праздновать. По крайней мере, это то, что я наблюдаю на рынке в РФ уже около пяти лет (в сфере разработки Linux-дистрибутивов и импортозамещения операционных систем). Это часто вызывало у меня грусть. Решением всех моих проблем стало уход в Open Source, не бросая при этом работу.
Мир Open Source - это прекрасный мир замотивированных инженеров, которые хотят улучшить ПО, проявить себя, сделать что-то полезное и продемонстрировать всему миру свои патчи, оставив после себя то, чем действительно будут пользоваться. Мотивация этих инженеров гораздо сильнее, чем у бизнес-инвалидов.
Я выбрал дистрибутив Debian и активно вношу вклад в пакетирование, документацию, переводы и тестирование. Я отправляю свои патчи сопровождающим пакетов или в upstream и надеюсь, что когда-то получу роль DM в проекте.
Итого:
- Бизнес: Основная цель коммерческих компаний - получение прибыли. Они разрабатывают программное обеспечение, чтобы продавать лицензии, подписки или услуги, связанные с использованием их продуктов.
- Open Source: Цель open source проектов - создание и распространение программного обеспечения, доступного для всех. Мотивы могут включать желание улучшить технологию, сотрудничество и обмен знаниями.
#thoughts
🔥23👍5👎3❤2🤔2🤷♂1
pkg-config
Большинство библиотек используют утилиту
Выводит список всех установленных пакетов/библиотек и их метаданных:
Все чаще библиотеки поставляются с файлами
Возьмем для примера библиотеку
Версия библиотеки:
...
Показывает флаги компоновщика данной библиотеки:
-lncurses -ltinfo
Показывает флаги препроцессора и компилятора:
-D_DEFAULT_SOURCE -D_XOPEN_SOURCE=600
Это флаги, которые нужно использовать при компиляции и компоновки нашей программы, чтобы правильно подключить библиотеку
#utils #build
Большинство библиотек используют утилиту
pkg-config не только для указания местоположения своих файлов и библиотек, но и для задания точных флагов, необходимых для компиляции и компоновки программы.Выводит список всех установленных пакетов/библиотек и их метаданных:
$ pkg-config --list-all
Все чаще библиотеки поставляются с файлами
.pc, которые обычно находятся в директории /usr/lib/x86_64-linux-gnu/pkgconfig/* (может различаться в зависимости от системы). Эти файлы позволяют с помощью утилиты pkg-config получить информацию о необходимых флагах компилятора и компоновщика для использования библиотеки.Возьмем для примера библиотеку
ncurses.Версия библиотеки:
$ pkg-config ncurses --modversion
...
Показывает флаги компоновщика данной библиотеки:
$ pkg-config ncurses --libs
-lncurses -ltinfo
Показывает флаги препроцессора и компилятора:
$ pkg-config ncurses --cflags
-D_DEFAULT_SOURCE -D_XOPEN_SOURCE=600
Это флаги, которые нужно использовать при компиляции и компоновки нашей программы, чтобы правильно подключить библиотеку
ncurses. Простой пример:$ gcc my.c $(pkg-config ncurses --libs)
#utils #build
✍7👍3
Debian и Ubuntu, в чем разница?
Это две популярные операционные системы на основе Linux, но у них есть некоторые различия и особенности.
1. Происхождение и разработка:
- Debian: Это проект, ориентированный на сообщество, который существует с 1993 года. Debian известен своей стабильностью и строгим циклом выпуска обновлений, что делает его подходящим для серверов и критически важных систем.
- Ubuntu: Это дистрибутив, основанный на Debian, созданный компанией Canonical в 2004 году. Ubuntu имеет более частые выпуски и ориентирован на удобство использования как для настольных компьютеров, так и для серверов. Ubuntu является проектом с открытым исходным кодом.
2. Цикл выпуска:
- Debian: Имеет три основных ветки: стабильная (stable), тестируемая (testing), и нестабильная (unstable). Стабильная версия обновляется реже, но считается более надежной.
- Ubuntu: Выпускает новые версии каждые шесть месяцев. Также есть версии с долгосрочной поддержкой (LTS), которые обновляются каждые два года и поддерживаются в течение пяти лет.
3. Поддержка и сообщество:
- Debian: Полностью управляется сообществом, с акцентом на свободу и открытость кода.
- Ubuntu: Поддерживается Canonical, которая предлагает профессиональную поддержку и услуги. Сообщество Ubuntu также активно и предоставляет много ресурсов для пользователей.
4. Пакетный менеджмент:
- Оба дистрибутива используют пакетный менеджер APT и формат пакетов .deb, но в Ubuntu могут быть включены более новые версии программ из-за более быстрого цикла разработки.
5. Целевые пользователи:
- Debian: Часто выбирается пользователями и администраторами, которые ценят стабильность и безопасность.
- Ubuntu: Популярен среди новичков и тех, кто ищет более удобный и дружественный интерфейс с активной поддержкой и документацией.
Хотя Canonical, компания, стоящая за Ubuntu, предоставляет коммерческую поддержку и предлагает некоторые платные сервисы, сама операционная система остается свободной и открытой. Что за сервисы?
1. Ubuntu Advantage: Подписка на корпоративную поддержку, которая включает техническую поддержку, управление патчами и обновлениями, а также доступ к инструментам для управления инфраструктурой.
2. Landscape: Инструмент для управления и мониторинга большого количества серверов и рабочих станций на базе Ubuntu, доступный как часть Ubuntu Advantage.
3. Livepatch Service: Сервис, позволяющий применять критические обновления ядра Linux без перезагрузки системы, что важно для серверов и критически важных систем.
Эти сервисы предназначены для организаций и предприятий, которым требуется высокая надежность и поддержка.
#debian
Это две популярные операционные системы на основе Linux, но у них есть некоторые различия и особенности.
1. Происхождение и разработка:
- Debian: Это проект, ориентированный на сообщество, который существует с 1993 года. Debian известен своей стабильностью и строгим циклом выпуска обновлений, что делает его подходящим для серверов и критически важных систем.
- Ubuntu: Это дистрибутив, основанный на Debian, созданный компанией Canonical в 2004 году. Ubuntu имеет более частые выпуски и ориентирован на удобство использования как для настольных компьютеров, так и для серверов. Ubuntu является проектом с открытым исходным кодом.
2. Цикл выпуска:
- Debian: Имеет три основных ветки: стабильная (stable), тестируемая (testing), и нестабильная (unstable). Стабильная версия обновляется реже, но считается более надежной.
- Ubuntu: Выпускает новые версии каждые шесть месяцев. Также есть версии с долгосрочной поддержкой (LTS), которые обновляются каждые два года и поддерживаются в течение пяти лет.
3. Поддержка и сообщество:
- Debian: Полностью управляется сообществом, с акцентом на свободу и открытость кода.
- Ubuntu: Поддерживается Canonical, которая предлагает профессиональную поддержку и услуги. Сообщество Ubuntu также активно и предоставляет много ресурсов для пользователей.
4. Пакетный менеджмент:
- Оба дистрибутива используют пакетный менеджер APT и формат пакетов .deb, но в Ubuntu могут быть включены более новые версии программ из-за более быстрого цикла разработки.
5. Целевые пользователи:
- Debian: Часто выбирается пользователями и администраторами, которые ценят стабильность и безопасность.
- Ubuntu: Популярен среди новичков и тех, кто ищет более удобный и дружественный интерфейс с активной поддержкой и документацией.
Хотя Canonical, компания, стоящая за Ubuntu, предоставляет коммерческую поддержку и предлагает некоторые платные сервисы, сама операционная система остается свободной и открытой. Что за сервисы?
1. Ubuntu Advantage: Подписка на корпоративную поддержку, которая включает техническую поддержку, управление патчами и обновлениями, а также доступ к инструментам для управления инфраструктурой.
2. Landscape: Инструмент для управления и мониторинга большого количества серверов и рабочих станций на базе Ubuntu, доступный как часть Ubuntu Advantage.
3. Livepatch Service: Сервис, позволяющий применять критические обновления ядра Linux без перезагрузки системы, что важно для серверов и критически важных систем.
Эти сервисы предназначены для организаций и предприятий, которым требуется высокая надежность и поддержка.
#debian
👍11🔥6✍2👎1
Что такое Secure Boot?
Технология Secure Boot нацелена на предотвращение исполнения недоверенного кода при загрузке операционной системы. Устройства с Secure Boot содержат в энергонезависимой памяти базу данных открытых ключей, которыми проверяются подписи загружаемых UEFI-приложений вроде загрузчиков ОС и драйверов. Приложения, подписанные доверенным ключом и с правильной контрольной суммой, допускаются к загрузке, остальные блокируются. Если подписанное приложение предоставляет возможность недобросовестного использования напрямую или путём загрузки других приложений, оно становится угрозой безопасности всех пользователей, доверяющих этому приложению.
Убедитесь, что ваша система поддерживает Secure Boot. Это можно сделать в настройках UEFI/BIOS.
Пакеты, которые обеспечивают поддержку Secure Boot в Debian:
Более подробно: https://habr.com/ru/articles/308032/
#security #theory
Технология Secure Boot нацелена на предотвращение исполнения недоверенного кода при загрузке операционной системы. Устройства с Secure Boot содержат в энергонезависимой памяти базу данных открытых ключей, которыми проверяются подписи загружаемых UEFI-приложений вроде загрузчиков ОС и драйверов. Приложения, подписанные доверенным ключом и с правильной контрольной суммой, допускаются к загрузке, остальные блокируются. Если подписанное приложение предоставляет возможность недобросовестного использования напрямую или путём загрузки других приложений, оно становится угрозой безопасности всех пользователей, доверяющих этому приложению.
Убедитесь, что ваша система поддерживает Secure Boot. Это можно сделать в настройках UEFI/BIOS.
Пакеты, которые обеспечивают поддержку Secure Boot в Debian:
shim-signed, grub-efi-amd64-signed, и mokutil.Более подробно: https://habr.com/ru/articles/308032/
#security #theory
👍7❤🔥3
Что такое GRUB?
GRUB (GRand Unified Bootloader) в основном предназначен для загрузки операционной системы. Он управляет процессом загрузки, позволяя пользователю выбрать операционную систему или ядро, которое он хочет загрузить, и затем передает управление этому выбранному ядру.
Основная функция загрузчика Linux включает в себя возможность выполнять следующие задачи:
* выбирать одно из нескольких ядер;
* переключаться между наборами параметров ядра;
* разрешить пользователю вручную переопределять и редактировать имена и параметры образов ядра;
* обеспечить поддержку загрузки других операционных систем;
Файл конфигурации GRUB, который отображается при нажатии кнопки
2. Процесс выключения (или перезагрузки) управляется самим операционным ядром (kernel) и операционной системой, которые выполняют последовательность действий для корректного завершения всех процессов, демонтирования файловых систем и отключения питания.
Таким образом, когда вы выключаете систему, GRUB не играет никакой роли. Его задача завершается после того, как операционная система была успешно загружена.
#kernel #theory
GRUB (GRand Unified Bootloader) в основном предназначен для загрузки операционной системы. Он управляет процессом загрузки, позволяя пользователю выбрать операционную систему или ядро, которое он хочет загрузить, и затем передает управление этому выбранному ядру.
Основная функция загрузчика Linux включает в себя возможность выполнять следующие задачи:
* выбирать одно из нескольких ядер;
* переключаться между наборами параметров ядра;
* разрешить пользователю вручную переопределять и редактировать имена и параметры образов ядра;
* обеспечить поддержку загрузки других операционных систем;
Файл конфигурации GRUB, который отображается при нажатии кнопки
e в меню GRUB, можно прочитать в файле /boot/grub/grub.cfg на диске. Однако, не рекомендуется редактировать этот файл напрямую, так как он обычно генерируется автоматически с помощью команды update-grub, которая использует шаблоны и настройки из /etc/default/grub и скриптов в /etc/grub.d/
1. GRUB не участвует в процессе выключения. Его роль ограничивается начальной фазой загрузки системы.2. Процесс выключения (или перезагрузки) управляется самим операционным ядром (kernel) и операционной системой, которые выполняют последовательность действий для корректного завершения всех процессов, демонтирования файловых систем и отключения питания.
Таким образом, когда вы выключаете систему, GRUB не играет никакой роли. Его задача завершается после того, как операционная система была успешно загружена.
#kernel #theory
✍11❤🔥3👍2
Debian Gnu/Linux installer menu (BIOS mode) - это меню, которое появляется при запуске установочного образа Debian на компьютере с BIOS (или в режиме совместимости с BIOS, если используется UEFI). Это меню позволяет пользователю выбрать различные опции установки и запуска.
Установщик находится на самом установочном ISO-образе Debian. Когда вы создаете загрузочный носитель (например, USB накопитель или DVD) с этим образом, установщик становится доступным для запуска на компьютере. Установщик включает в себя все необходимые компоненты и программы для выполнения установки операционной системы на ваш диск.
Установщик включается в установочный ISO-образ разработчиками и поддерживающими проект сообществом Debian.
Установщик обеспечивает распаковку и установку пакетов, настройку системы, создание учетных записей, настройку загрузчика (включая GRUB), разметку диска, настройку сети и другие критически важные шаги для успешной установки операционной системы.
#debian
Установщик находится на самом установочном ISO-образе Debian. Когда вы создаете загрузочный носитель (например, USB накопитель или DVD) с этим образом, установщик становится доступным для запуска на компьютере. Установщик включает в себя все необходимые компоненты и программы для выполнения установки операционной системы на ваш диск.
Установщик включается в установочный ISO-образ разработчиками и поддерживающими проект сообществом Debian.
Установщик обеспечивает распаковку и установку пакетов, настройку системы, создание учетных записей, настройку загрузчика (включая GRUB), разметку диска, настройку сети и другие критически важные шаги для успешной установки операционной системы.
#debian
⚡8❤2
UEFI vs Legacy BIOS (режимы загрузки)
UEFI новый BIOS, а Legacy старый (синий экран).
UEFI:
* быстрее загружается
* есть функция безопасности Secure Boot
* драйвера грузятся в UEFI и передаются затем ОС
* имеет современный GUI
* формат загрузки дисков GPT
Legacy BIOS:
* драйвера загружаются во время запуска ОС, после загрузки BIOS
* синий привычный экран, старый интерфейс
* формат загрузки дисков MBR
#theory
UEFI новый BIOS, а Legacy старый (синий экран).
UEFI:
* быстрее загружается
* есть функция безопасности Secure Boot
* драйвера грузятся в UEFI и передаются затем ОС
* имеет современный GUI
* формат загрузки дисков GPT
Legacy BIOS:
* драйвера загружаются во время запуска ОС, после загрузки BIOS
* синий привычный экран, старый интерфейс
* формат загрузки дисков MBR
#theory
⚡11👍3❤1
Что такое Аудит и для чего он нужен?
Нужен для отслеживания критичных с точки зрения безопасности системных событий:
* запуск и завершение работы системы;
* чтение, запись и изменение прав доступа к файлам;
* инициация сетевых соединений;
* попытки неудачной авторизации в системе;
* изменение сетевых настроек;
* изменение информации о пользователях и группах;
* запуск и остановка приложений;
* выполнение системных вызовов;
Ни одно из названных событий не может произойти без использования системных вызовов ядра. Чтобы их отслеживать, достаточно просто перехватывать соответствующие системные вызовы. Именно это и делает подсистема аудита. Когда я работал системным программистом, то часто приходилось взаимодействовать с аудитом (для отладки).
Конфигурация:
После
События 1000 пользователя:
Поиск событий по коду выхода:
Искать события open:
Номера всех системных вызовов:
#kernel #security #utils
Нужен для отслеживания критичных с точки зрения безопасности системных событий:
* запуск и завершение работы системы;
* чтение, запись и изменение прав доступа к файлам;
* инициация сетевых соединений;
* попытки неудачной авторизации в системе;
* изменение сетевых настроек;
* изменение информации о пользователях и группах;
* запуск и остановка приложений;
* выполнение системных вызовов;
Ни одно из названных событий не может произойти без использования системных вызовов ядра. Чтобы их отслеживать, достаточно просто перехватывать соответствующие системные вызовы. Именно это и делает подсистема аудита. Когда я работал системным программистом, то часто приходилось взаимодействовать с аудитом (для отладки).
$ apt-get install -y auditd
$ systemctl status auditd
Конфигурация:
/etc/audit/auditd.conf
Выполнить программу и отследить ее события (работает наподобие strace):$ autrace <path-to-program>
После
autrace:$ ausearch -i -p <pid>
События 1000 пользователя:
$ ausearch -ui 1000
Поиск событий по коду выхода:
$ ausearch -i -e -13
Искать события open:
$ ausearch -ui 1000 -sc open
Номера всех системных вызовов:
$ ausyscall --dump
#kernel #security #utils
✍7👍1