Сам в Linux не эксперт, но для начала советую поставить Lubuntu. Дистрибутив легковесный, ставится в два клика. Попробуйте для начала просто «поиграться» с системой, подстроить все под себя (ведь Linux этим и прельщает!). Ознакомьтесь с Unix-философией, научитесь выходить из Vim, поставьте и настройте Conky. Думаю, вы уже поняли, что настройка Linux — вечный кайф 🙂
12 июн 2018 в 12:10
Не стоит изучать линукс с его ядра, вы скорее всего не изучали виндовз с ядра. Для начала поставьте в виртуалку такой дистрибутив, которым владеет ваш ближайший линукс-«гуру». И начинайте изучать линукс, используя такую штуку как bash — это более приблизит вас к самой ОС, чем использование GUI. Найдите на просторах инторнета какую-нибудь книжку по линуксу для начинающих и вперед. А ядром займетесь когда-нибудь в следующий раз.
12 июн 2018 в 12:29
4 ответа 4
Сортировка: Сброс на вариант по умолчанию
Правильно ли я понимаю, что есть одно единственное и неповторимое ядро Linux, на базе которого разработаны все эти многочисленные дистрибутивы (Ubuntu, Debian, Mint и т. д).
Компиляция и установка программ из исходников в Linux. htop, make, configure
Не совсем. Едина только база (изначальный исходный код). То есть разработчики дистрибутивов скачивают исходные коды нужной им версии Linux-а, вносят в них какие-то свои исправления (патчи), задают параметры сборки для включения нужных и исключения ненужных возможностей и компилируют ядро. Иными словами, дистрибутивы отличаются не только репозиториями и прикладными программами, но и вариациями ядра.
. и при этом можно установить именно это самое чистое ядро, а не какой-то из дистрибутивов?
Можно. Но так как ядро распространяется в исходных кодах, вам придётся скомпилировать из них свой вариант, заточенный конкретно под ваш компьютер и, возможно, потребности — штатный конфигуратор make menuconfig богат на опции:
Главное окно графического конфигуратора параметров сборки Linux. Источник: Википедия
Однако, получение даже минимальной рабочей системы — довольно длительный и многоэтапный процесс, требующий достаточных познаний в принципах работы Linux-а.
Правильно ли я понимаю, что само по себе ядро это уже по сути ОС, только без графического интерфейса (что-то вроде DOS) а сам GUI-интерфейс можно уже установить отдельно?
И снова не совсем. Ядро — это всего лишь прослойка между программами и железом. В случае Linux-а там в комплекте ещё идут драйвера.
Чтобы получить что-то, похожее на DOS, вам дополнительно потребуются как минимум GNU Coreutils — набор программ, определяющих пользовательское окружение ( ls , cat , su и т. д.), и загрузчик (например, grub , lilo ), который будет загружать ядро при включении компьютера.
Кстати, именно из-за симбиоза ядра Linux и пакета программ GNU Coreutils операционную систему и называют GNU/Linux.
Компиляция кода на Си с помощью gcc на Linux Mint
Слышал много раз о том, что ядро в начале обычно нужно скомпилировать, а затем установить. Есть ли возможность получить уже скомпилированное ядро, распространяется ли оно в таком виде?
Распространение в исходных кодах — это своего рода политика разработчиков ядра, а потому скомпилированное ядро можно только выдрать из какого-то имеющегося дистрибутива.
Хорошая ли идея — пытаться скомпилировать это самое ядро Linux на Windows, и насколько это вообще возможно?
Для сборки Linux вам потребуются компилятор GCC и компоновщик LD. Теоретически, при сборке под Cygwin проблем быть не должно (если именно компилировать ядро), но есть информация о трудностях с регистрозависимыми имёнами файлов, которые Windows считает одинаковыми.
Слышал много раз о всяких менеджерах пакетов, при помощи которых осуществляется установка различного софта в системах на базе Linux, при этом у каждой такой ОС (Ubuntu, Debian, Mint и т.д) свои собственные менеджеры пакетов. А как быть с чистым ядром? Каким образом на него что-то ставится?
Компиляцией из исходников. То есть в случае чистого ядра у вас под рукой всегда должен быть компилятор.
Каким вообще образом распространяется софт для Linux? Только в open source, с последующей компиляцией? А такие штуки как установочные файлы, .exe-шники и прочее — обычно не используется?
Сборка из исходников является обязательной только для компонентов ядра, таких как драйвера. Прикладные же программы можно ставить и в виде двоичных файлов. Идёте на сайт разработчика, скачиваете какой-нибудь пакет. Затем, зная что любой пакет — это всего лишь архив одного из распространённых форматов, распаковываете его и раскидываете содержащиеся внутри файлы на подобающие им места в системе. И наконец удостоверяетесь, что у вас есть все библиотеки, нужные для запуска этой программы.
Если есть только один ПК без установленной ОС, как обычно на него устанавливается ядро Linux?
Для сборки Linux нужна другая копия Linux. Поэтому вам надо хотя бы раздобыть live cd какого-нибудь дистрибутива.
Отслеживать
ответ дан 12 июн 2018 в 12:45
Arhadthedev Arhadthedev
11.5k 8 8 золотых знаков 42 42 серебряных знака 69 69 бронзовых знаков
вводные сведения
что такое Linux и с чем его едят.
linux — это программа (библиотека, если угодно), выполняющая функции ядра в ряде операционных систем.
наиболее известные операционные системы, использующие эту программу:
- gnu/linux
- android (фактически: dalvik/linux, с недавних пор — art/linux)
операционная система gnu способна использовать и другие программы в качестве ядра. наиболее известны:
дистрибутив — это операционная система плюс набор пользовательских программ и библиотек.
ответы на некоторые из вопросов
Правильно ли я понимаю, что есть одно единственное и неповторимое ядро Linux, на базе которого разработаны все эти многочисленные дистрибутивы?
как понятно из вводных сведений, далеко не все дистрибутивы, которые в просторечии принято называть «linux-дистрибутивами», построены на основе того варианта операционной системы gnu, который используюет программу linux в качестве ядра.
Правильно ли я понимаю, что само по себе ядро это уже по сути ОС, только без графического интерфейса (что-то вроде DOS) а сам GUI-интерфейс можно уже установить отдельно?
нет, сама по себе программа linux для пользователя абсолютно бесполезна: во-первых, она не умеет загружать себя: требуется дополнительная программа-загрузчик (наиболее известные: gnu/grub, lilo, syslinux), во-вторых, даже будучи загруженной в память и запущенной, всё, что она может сделать, это выдать на экран надпись: «kernel panic. no init found» (шутка, в которой присутствует лишь доля шутки).
Слышал много раз о том, что ядро в начале обычно нужно скомпилировать, а затем установить.
абсолютно подавляющее большинство пользователей дистрибутивов операционной системы gnu этого не делают, а просто пользуются уже собранными для дистрибутива программами.
Слышал много раз о всяких менеджерах пакетов, при помощи которых осуществляется установка различного софта в системах на базе Linux, при этом у каждой такой ОС (Ubuntu, Debian, Mint и т.д) свои собственные менеджеры пакетов.
все три перечисленных вами дистрибутива (ни разу не операционные системы, прошу заметить) используют один и тот же менеждер пакетов — apt.
гораздо более существенным является не пакетный менеджер, а тот факт, что разными дистрибутивами (и разными версиями одного и того же дистрибутива) используются разные репозитории, т.е. разные сборки программ/библиотек.
Если есть только один ПК без установленной ОС, как обычно на него устанавливается ядро Linux?
саму программу linux «ставить» не имеет ни малейшего смысла. нужен ещё как минимум загрузчик и собственно операционная система. а как максимум нужны и пользовательские программы/библиотеки (чтобы можно было сделать хоть что-то полезное).
для энтузиастов, желающих собрать себе систему «по кирпичику», есть весьма известное пособие: linux from scrtatch.
Отслеживать
ответ дан 13 июн 2018 в 16:58
aleksandr barakin aleksandr barakin
67.8k 210 210 золотых знаков 76 76 серебряных знаков 218 218 бронзовых знаков
Да, есть одно единственное и неповторимое ядро линукс. Но это не значит, что в него не могут вносить изменения другие, поэтому дистрибутивы могут иметь различия. Исходный код можно достать с гитхаба: https://github.com/torvalds/linux и так же там есть всякие мануалы.
Чистое ядро можно установить, но вы получите базовый набор (что-то вроде DOS) и все остальное придется собирать из исходных кодов, если таковые найдутся. Если охото этим позаниматься, то можете обратиться к Gentoo и попробовать собрать его, у них как раз есть многостраничные Gentoo Handbook (вот одна к примеру) как это сделать.
Можно ли собрать Gentoo под Windows? Скорее всего можно, обеспечив компилятор всем необходимым, но это тот еще квест. В общем-то никто не мешает воспользоваться виртуальной машиной.
Менеждеры пакетов обращаются к FTP в интернете и скачивают оттуда уже заранее скомпилированный исходный код в пакете. При этом в самом Linux предусмотрена возможность этот список пополнять и изменять. Хотя из-за определенных отличий в системе не все их них могут корректно встать под другую систему, даже в пределах разных версий одного дистрибутива. Ну на чистом думаю понятно — компилировать вручную.
На пятый вопрос опять же есть Handbook от Gentoo из которого можно подчерпнуть эти знания.
P.S. Как правило никто не изучает Linux с ядра, если вы не разработчик ОС, а изучение проходит через изучение терминала, bash, заведение пользователей, изучение каталогов, встроенных инструментов, попытки настройки сети, поднятие сервера с простеньким сайтом и прочее администрирование. А если вы разработчик ОС, то опять же этим никто не занимается с самого начала, так как есть книги Тоненбаума (одна из которых о Minix и вдохновила Линуса написать свою ОС).
Источник: ru.stackoverflow.com
Компиляция программ Linux
Все программы для компьютера представляют собой набор команд процессора, которые состоят из определенного набора бит. Этих команд несколько сотен и с помощью них выполняются все действия на вашем компьютере. Но писать программы непосредственно с помощью этих команд сложно. Поэтому были придуманы различные языки программирования, которые проще для восприятия человеку.
Для подготовки программы к выполнению, специальная программа собирает ее из исходного кода на языке программирования в машинный код — команды процессора. Этот процесс называется компиляция. Linux — это свободное программное обеспечение, а поэтому исходные коды программ доступны всем желающим. Если программы нет в репозитории или вы хотите сделать что-то нестандартное, то вы можете выполнить компиляцию программы.
В этой статье мы рассмотрим, как выполняется компиляция программ Linux, как происходит процесс компиляции, а также рассмотрим насколько гибко вы сможете все настроить.
Подготовка системы
Как компилировать linux?
3 ноября 2014 г.
Просмотров: 679
Флагманом движения Open Source, принимающего все большие масштабы, безусловно, является операционная система Linux. В последнее время Linux вышла из разряда операционных систем преимущественно серверного класса, прочно обосновавшись на десктопах и существенно потеснив Windows. Современные дистрибутивы Linux «из коробки» практически не требуют от пользователя специфических навыков, позволяя начать работу сразу после установки. Однако знание того, как компилировать linux программы, все-таки будет не лишним.
Вам понадобится
- — данные учетной записи для авторизации в linux;
- — пароль от учетной записи root (если потребуется установка дополнительных пакетов);
- — возможно, подключение к интернету.
Источник: imguru.ru