Определение и основные аспекты
Kernel general (от англ. «общее ядро») – это концепция и методология, которая позволяет создать универсальное ядро системы, способное обеспечивать базовые функции и возможности для всех компонентов системы.
Основные аспекты Kernel general включают:
- Стандартизацию – в рамках Kernel general осуществляется разработка и установление стандартов для базового функционала системы. Это позволяет упростить процесс разработки и интеграции компонентов системы и обеспечить их взаимную совместимость.
- Модульность – ядро системы, созданное на основе концепции Kernel general, разбивается на модули, каждый из которых отвечает за определенную функцию или возможность. Внедрение новых компонентов или изменение существующих происходит путем добавления, удаления или модификации соответствующих модулей.
- Масштабируемость – использование Kernel general позволяет легко масштабировать систему, добавляя или удаляя компоненты по мере необходимости. Это делает систему гибкой и адаптивной к изменяющимся потребностям и требованиям.
- Универсальность – ядро системы, реализованное с применением концепции Kernel general, предоставляет базовую функциональность и возможности для различных компонентов системы. Это позволяет использовать одно ядро для разных типов систем и приложений, что упрощает разработку и поддержку.
Примеры применения Kernel general:
- Операционные системы, такие как Linux, используют концепцию Kernel general для создания общего ядра, которое обеспечивает базовые функции операционной системы для всех ее компонентов.
- Веб-фреймворки, такие как Ruby on Rails, также используют подход Kernel general, разделяя функциональность на модули и предоставляя их для использования в различных приложениях.
- Языки программирования, такие как Python, также основаны на концепции Kernel general, предоставляя базовый набор функций и возможностей, которые можно использовать для создания различных программ.
Реализация концепции Kernel general позволяет повысить гибкость, универсальность и эффективность системы, упрощает разработку и интеграцию компонентов, а также обеспечивает возможность масштабирования системы в будущем.
Функция ядра
Ядро, ядро системы, отвечает за подключение программного обеспечения к оборудованию.
Таким образом, он устанавливает эффективную связь между ресурсами операционной системы и управляет ее основными функциями.
Ниже приведены основные функции операционной системы, управляемой ядром.
Управление процессом
В операционной системе процесс является запущенной программой.
Управление процессами, выполняемое ядром, решает, какие процессы будут выполняться.
Каждый из запущенных процессов может входить и выходить из процессора несколько раз в одну и ту же секунду, уступая место другому процессу.
Ядро отвечает за решение, какие процессы будут размещены на процессоре.
Поскольку переключение между процессами происходит очень быстро, программа может продолжать работать, даже если она не находится на процессоре.
Режимы доступа
Выполнение процесса может быть выполнено двумя различными способами.
Пользовательский режим : состоит из нескольких подсистем. Одна из них, включая подсистему среды, запускает приложения, разработанные для различных типов операционных систем.
Пользовательский режим считается непривилегированным. Все программное обеспечение в этом режиме должно отправлять запросы в ядро для выполнения привилегированных инструкций, таких как создание процессов.
Режим ядра : считается привилегированным, поскольку имеет доступ ко всему компьютеру. Когда процессор находится в режиме ядра, это означает, что он работает с надежным программным обеспечением и способен выполнять любые инструкции.
Смотрите значение процессора.
Управление памятью
В диспетчере задач часть оперативной памяти (общая память) выделяется ядру.
Во время управления процессами ядро отправляет программы в адресное пространство.
Часть общей памяти, выделенная для ядра, гарантирует, что всегда есть доступная память для процессов ядра, которые будут отправлены в это пространство.
Ядро также имеет функцию определения объема памяти, к которому каждый процесс может обращаться во время своей работы.
Управление устройством
Ядро контролирует периферийные устройства, подключенные к компьютеру.
Всякий раз, когда пользователь подключает устройство (например, перьевой привод, принтер, гарнитуру, мышь и т. Д.), Ядро управляет памятью этого устройства и связывается с программами и оборудованием компьютера.
Каждое устройство имеет диск, предназначенный для работы в определенной операционной системе. Поэтому драйвер, предназначенный для Windows, не работает, например, на MAC.
Драйвер каждого устройства должен выполнять своего рода трансляцию команд, выполняемых между определенным электронным устройством и операционной системой компьютера.
Доступ к службам операционной системы осуществляется через пользовательский интерфейс, называемый оболочкой, что по-английски означает «оболочка». Название связано с тем, что оболочка является самым внешним слоем, вокруг ядра.
Смотрите значение интерфейса.
Системные звонки
Системные вызовы — это специальные функции, которые имеют компьютерные программы, используемые в режиме пользователя. Они используются для вызова ядра операционной системы компьютера, чтобы он выполнял определенные действия.
Эти функции часто являются сложными и используют функции, к которым обычный пользователь не имеет доступа.
Ниже приведены некоторые примеры системных вызовов Windows и соответствующего ядра Linux.
Windows | Linux | Описание продукта |
---|---|---|
CloseHandle |
близко |
Закрыть файл |
CreateFile | открытый | Создать файл |
DeleteFile | разъединить | Удалить файл |
ExitProcess | выход | Завершить процесс и все его сегменты |
GetLocalTime | команда | Получить текущее местоположение, дату и время |
Узнайте больше о Windows.
Проблемы с работой периферийных устройств: как настроить
При использовании операционной системы Microsoft Windows Kernel General могут возникать проблемы с работой периферийных устройств. Эти проблемы могут быть вызваны различными факторами, включая несовместимость драйверов, неправильные настройки или физические повреждения устройств.
Для избежания этих проблем и обеспечения нормальной работы периферийных устройств вам следует принять несколько мер:
1. Обновление драйверов
Проверьте, что у вас установлены последние версии драйверов для всех подключенных периферийных устройств. Устаревшие версии драйверов могут вызывать несовместимость и проблемы при работе устройств. Посетите сайт производителя устройств и загрузите последние драйверы для каждого из них. Установите их вручную или воспользуйтесь функцией автоматического обновления драйверов.
2. Проверка настройки устройств
Убедитесь, что все устройства должны правильно настроены в системе. Проверьте в настройках устройств, что выбраны правильные параметры работы, такие как разрешение, частота обновления или дополнительные функции. Если найдены неправильные настройки, внесите соответствующие изменения, чтобы устройства работали корректно.
3. Замена кабелей и подключений
Иногда проблемы с работой периферийных устройств могут быть связаны с дефектными или неисправными кабелями или подключениями. Проверьте все соединения и кабели, и если обнаружены повреждения или неисправности, замените их на новые. Это может помочь исправить проблемы связанные с отсутствием или неполадками в работе устройств.
4. Проверка обновлений операционной системы
Убедитесь, что ваша операционная система Microsoft Windows Kernel General имеет все последние обновления. Обновления могут включать исправления, связанные с работой периферийных устройств и их совместимостью. Проверьте наличие обновлений и установите их, чтобы обеспечить оптимальную работу устройств.
5. Проверка наличия вирусов и вредоносных программ
Вредоносные программы и вирусы могут вызывать различные проблемы с работой периферийных устройств. Установите антивирусное программное обеспечение и проводите регулярную проверку системы на наличие вредоносных программ. Если обнаружены угрозы, удалите их с помощью антивирусной программы и повторно проверьте работу устройств.
Следуя этим рекомендациям, вы сможете избежать наиболее распространенных проблем с работой периферийных устройств при использовании операционной системы Microsoft Windows Kernel General.
Подготовка
Для подготовки ядра не требуется ни root-аккаунт, ни root-привилегии (например, через sudo).
Рекомендуется создать отдельный каталог для сборки вашего ядра. В этом примере будет использоваться каталог в домашнем каталоге:
$ mkdir ~/kernelbuild
Загрузка исходников
Важно: Для systemd необходимо ядро не старше версии 3.12 (4.2 и выше, если требуется поддержка единой иерархии контрольных групп. Подробнее см
.
Например, так выглядит загрузка ядра версии 4.8.6 в каталог утилитой :
$ cd ~/kernelbuild $ wget https://www.kernel.org/pub/linux/kernel/v4.x/linux-4.8.6.tar.xz
Также стоит проверить корректность загрузки. Скачайте файл подписи, с его помощью добудьте отпечаток (fingerprint) ключа, а с помощью отпечатка получите сам ключ:
$ wget https://www.kernel.org/pub/linux/kernel/v4.x/linux-4.8.6.tar.sign $ gpg --list-packets linux-4.8.6.tar.sign $ gpg --recv-keys <отпечаток_из_предыдущего_шага>
Обратите внимание, что подпись создаётся для tar-архива (суффикс ), а не для сжатого файла , который был загружен. Необходимо выполнить декомпрессию, но без извлечения архива
Для этого потребуется :
$ unxz linux-4.8.6.tar.xz $ gpg --verify linux-4.8.6.tar.sign linux-4.8.6.tar
К последующим шагам нельзя переходить, если вы не получили вывод в виде «Good signature».
Если запускался не из каталога сборки, переместите в него скачанный архив:
$ mv /путь/к/linux-4.8.6.tar.xz ~/kernelbuild/
Распаковка исходников
Распакуйте архив ядра в каталоге сборки:
$ tar -xvf linux-4.8.6.tar
Для завершения приготовлений убедитесь, что дерево файлов ядра абсолютно чистое; не стоит полагаться на то, что что оно будет таковым после распаковки. Перейдите в новый каталог с исходниками и выполните команду :
$ cd linux-4.8.6/ $ make mrproper
Компиляция ядра
Самое сложное в компиляции ядра Linux – это создание конфигурации сборки, поскольку нужно знать, какие компоненты подключать. Хотя использование команд make xconfig, make gconfig, make menuconfig и обеспечивает задание стандартной рабочей конфигурации, с которой система будет работать на большинстве аппаратных платформ и конфигураций. Вопрос лишь в том, чтобы грамотно задать конфигурацию ядра без ненужных и занимающих лишние ресурсы компонентов при его работе.
Итак, для успешного конфигурирования и компиляции ядра нужно выполнить следующие действия:
- перейти в каталог с исходными кодами ядра. Обычно «исходники» для ядра Linux помещаются в каталог /usr/src, либо можно скачать с сайта kernel.org в любое удобное место;
- выполнить команду make xconfig, make gconfig или make menuconfig;
- выполнить команду make dep (можно не выполнять для ядер версии 2.6.x и более поздних);
- выполнить команду make clean (для очистки от всего того, что может помешать успешной сборке);
- выполнить команду make;
- выполнить команду make modules_install;
- скопировать файл /arch/имя_архитектуры/boot/bzImage в /boot/vmlinuz. Здесь каталог /arch находится в каталоге с исходными кодами ядра Linux, имя_архитектуры — каталог, имеющий имя соответствующей архитектуры (указанной на этапе конфигурирования). Имя собранного бинарного образа ядра bzImage может быть другим;
- скопировать файл /arch/имя_архитектуры/boot/System.map в /boot/System.map;
- внести изменения в конфигурационные файлы системных загрузчиков /etc/lilo.conf (для LILO) или /boot/grub/grub.conf — для GRUB, а также добавить в них соответствующие конфигурационные и параметры загрузки для нового ядра.
Далее остаётся протестировать загрузку и работу нового ядра. В случае проблем обычно подбираются нужные параметры для системных загрузчиков.
Монолитное ядро[править | править код]
- Основная статья: Монолитное ядро
Монолитное ядро предоставляет богатый набор абстракций оборудования. Все части монолитного ядра работают в одном адресном пространстве.
Старые монолитные ядра требовали перекомпиляции при любом изменении состава оборудования. Большинство современных ядер позволяют во время работы подгружать модули, выполняющие части функции ядра.
Достоинства: Скорость работы, упрощённая разработка модулей.
Недостатки: Поскольку всё ядро работает в одном адресном пространстве, сбой в одном из компонентов может нарушить работоспособность всей системы.
В этом случае компоненты операционной системы являются не самостоятельными модулями, а составными частями одной большой программы. Такая структура операционной системы называется монолитным ядром (monolithic kernel). Монолитное ядро представляет собой набор процедур, каждая из которых может вызвать каждую. Все процедуры работают в привилегированном режиме.
Таким образом, монолитное ядро – это такая схема операционной системы, при которой все ее компоненты являются составными частями одной программы, используют общие структуры данных и взаимодействуют друг с другом путем непосредственного вызова процедур. Для монолитной операционной системы ядро совпадает со всей системой.
Во многих операционных системах с монолитным ядром сборка ядра, то есть его компиляция, осуществляется отдельно для каждого компьютера, на который устанавливается операционная система. При этом можно выбрать список оборудования и программных протоколов, поддержка которых будет включена в ядро. Так как ядро является единой программой, перекомпиляция – это единственный способ добавить в него новые компоненты или исключить неиспользуемые. Следует отметить, что присутствие в ядре лишних компонентов крайне нежелательно, так как ядро всегда полностью располагается в оперативной памяти. Кроме того, исключение ненужных компонентов повышает надежность операционной системы в целом.
Монолитное ядро – старейший способ организации операционных систем. Примером систем с монолитным ядром является большинство Unix-систем.
В монолитном ядре выделяются вкрапления сервисных процедур, соответствующих системным вызовам. Сервисные процедуры выполняются в привилегированном режиме, тогда как пользовательские программы – в непривилегированном. Для перехода с одного уровня привилегий на другой иногда может использоваться главная сервисная программа, определяющая, какой именно системный вызов был сделан, корректность входных данных для этого вызова и передающая управление соответствующей сервисной процедуре с переходом в привилегированный режим работы.
Если в ОС с таким ядром вылетит какой-либо процесс, то он может быть автоматически перезапущен, а с цельным ядром в случае вылетания процесса, входящего в состав ядра, надо перезапускать всё ядро. Многие владельцы телефонов с Symbian OS, основанной на микроядре, сталкивались с этим: слетает какой-нибудь процесс (на экране появляется сообщение «Прилож. закр.: имя»), а затем этот процесс автоматически перезапускается как ни в чём не бывало.
В частности, монолитное ядро более производительно, чем микроядро, поскольку состоит не из множества разрозненных процессов, «общающихся» между собой, а работает как один большой процесс.
Монолитные же ядра используются еще и в Linux. Они оптимизированы для более высокой производительности с минимальными контекстными переключениями. Такая архитектура упрощает поддержку кода ядра для разработчиков, но требует перекомпиляции ядра при добавлении новых устройств. Следует отметить, что описанные здесь различия являются «классическими», на практике монолитные ядра могут поддерживать модульность (что зачастую и происходит), а микроядра могут требовать перекомпиляции.
Примеры: Традиционные ядра UNIX, такие как BSD и Linux; ядро MS-DOS.
Ошибка Kernel-General под номером 16
Привет, сегодня в «Журнале Windows и служб» заметил много проблем, код которых 16 и источник Kernel-General, пк не перезагружался из-за нее, но в играх тормоза, точнее в кс го, раньше было стабильно 70-100 фпс, а теперь скачки, думаю проблема в Kernel-General, но не уверен. Помогите пж решить проблему Kernel-General под кодом 16, заранее спасибо :3
Лучший ответ
Скорее всего жлезо дефективное — память, диск, кабели с разъемами. Менее вероятно чудит антивирус. Или софт-рейды или обычные рейды с включенным кешем дисков, при этом пк выключают не корректно — тупо из розетки выдергивают (или с ненастроенным ups’ом).
Salem AkbaevЗнаток (377) 1 год назад
у меня ноутбук, но без батареи, иногда из розетки выдергивали, может в этом проблема?Dmitri Мудрец (18139) Salem Akbaev, одна из проблем. чекдиск, sfc /scannow и т.п.Остальные ответы
с такими ошибками может быть неисправна любая часть пкSalem AkbaevЗнаток (377) 1 год назад
память я проверял, все в норме, вот только она плашка ddr3l, а другая ddr3
Dmitri Мудрец (18139) Salem Akbaev, DDR3L перегревается, получая вместо 1.35В, 1.5В. DDR3 не может работать на низком напряжении. Значит на оба слота поступает 1.5В.
Самый спорный и поэтому регулярно вызывающий споры момент — это канал коммуникации с LKC. Он безальтернативно один. Почта. Причём сообщения отправляются по классике через smtp.
Вокруг необходимости делать всё через плейнтекст в почте есть масса споров. Недавно в сети была очередная громкая статья на эту тему. Суть материала: письма — это, конечно, здорово, но пихать туда всё, включая куски кода — это вам (т.е. LKC) популярности не добавляет и даже наоборот, отпугивает новичков. С одной стороны вроде и да, если ты не можешь спокойно и структурировано изложить свои мысли в голом тексте, то в низкоуровневой разработке ловить будет особо нечего. С другой стороны, слать в письмах сорсы патчей — это даже архаизмом назвать уже сложно.
Но, как принято в уютном мирке ядра, Линус хлопнул кулаком по столу — и все пишут письма. Возможно, буквально завтра это изменится, но на момент выхода статьи это письма и только письма.
Но почты недостаточно. Без Git никуда.
Когда нужно собирать новую версию ядра?
В настоящее время ядро Linux развивается очень быстро и бурно. Зачастую производители дистрибутивов не успевают внедрять в свои системы новые версии ядер. Как правило все новомодные «фишки» больше понадобятся любителям экзотики, энтузиастам, обладателям новинок устройств и оборудования и просто любопытствующим — т. е. преимущественно тем, в чьём распоряжении имеется обычный пользовательский компьютер.
Для серверных машин, однако, мода вряд ли имеет какое-то значение, а новые технологии внедряются только после того как на практике доказали свою надёжность и эффективность на тестовых стендах или даже платформах. Каждый опытный системный администратор знает, что гораздо надёжнее один раз настроить то, что может и должно хорошо и безотказно работать, чем пытаться бесконечно модернизировать систему. Ведь для этого необходимы многие часы работы (ведь приходится собирать ядро из исходных кодов, что довольно сложно) и обслуживания, что довольно дорогостоящее занятие, поскольку, вдобавок ко всему прочему требует глубокого резервирования — сервера не должны останавливаться без организации «горячего» (а уж тем более без «холодного») резерва.
Поэтому всегда стоит взвешивать все факторы и оценить, стоит ли вообще обновляться ради несущественных заплат, не влияющих на работу системы или внедрённых новых драйверов для устройств, коих в данный момент в системе нет и нескоро предвидится.
Если же принято решение обновить версию ядра путём его самостоятельной сборки, то нужно выяснить, является ли данная версия стабильной. Раньше система нумерования версий ядра Linux была организована таким образом, что чётные номера версий означали стабильный выпуск, нечётные — ещё «сырой». В настоящее время этот принцип соблюдается далеко не всегда и выяснять этот момент следует из информации на официальном сайте kernel.org.
User mode
It has restricted access to the resources. CPU has restrictions, therefore, it can have only access to limited instructions and memory. Utility applications such as text editor, media player are run in this mode.
When an application or program is executed, its initial state and operation mode are loaded on stack. At this point, CPU starts executing the program in this particular mode. Interrupts and traps are used to signal or flag the CPU to switch back to Kernel mode and do the essential tasks by storing the current state of the user program to the stack again. After completing it, CPU resumes the program from where it left.
Установка нового ядра
После окончания сборки ядра, его необходимо установить. Перед установкой, необходимо выполнить для установки модулей ядра в новый подкаталог /lib/modules. После установки модулей, необходимо выполнить для установки нового ядра и стартового RAM-диска (initial RAM disk) в каталог /boot и обновления конфигурации загрузчика.
Хочу обратить внимание, что в процессе сборки автоматически создается необходимый стартовый RAM-диск (initial RAM disk или initrd). Если у вас возникнет необходимость создать его вручную, это можно сделать при помощи команды
После выполнения должен обновиться конфигурационный файл загрузчика. Но у меня он почему-то обновился после команды.
На этом и закончу. Очень большая статья получилась. В ближайшем будущем постараюсь ее ужать.
Что еще почитать?
1. Gentoo Handbook: http://www.gentoo.org/doc/ru/handbook/handbook-x86.xml?full=1#book_part1_chap7
2. Ставим ядро 2.6, или Ядерная физика для домохозяйки. Версия 2.0: http://linux4u.jinr.ru/docs/add04/kernel-2.6-install-2.0.html
3. The Linux Kernel Module Programming Guide (Программирование ядра Linux): http://linux4u.jinr.ru/docs/add04/lkmpg.html
4. Linux From Scratch: http://linux4u.jinr.ru/docs/add04/LFS-BOOK-5.0-HTML/
Модули ядра
Технология «модули ядра» развивались параллельно вместе с микроядром.
Модуль – нечто среднее между поуровневой архитектурой и микроядром.
Удобно для разработки (каждый может разрабатывать свой модуль без необходимости трогать основную систему).
- Модули находятся в режиме ядра (уменьшаются затраты на взаимодействие модулей между собой)
- Компромисс ради производительности.
- Под разные задачи необходимо выбирать ОС
Если ОС должна быть высоко устойчива к сбоям, тогда выбираем соответствующую ОС этим задачам. Если для нормальных задач, то подойдет и Linux.
Многие ОС реализуют поддержку модульности
Пример – ОС Linux. Классифицируют как монолитное ядро.
- Каждый ключевой компонент – отдельный модуль
- Взаимодействие происходит через определенные интерфейсы
- Загружаются модули по требованию
Можно самому компилировать ядро Linux, выбирать нужные модули, решать какие модули войдут в ядро, а какие нет — т.е. компоновать ядро согласно своих требований, что позволяет получать преимущество – гибкость операционной системы.
Конфигурирование параметров ядра
Конфигурация для будущей сборки ядра Linux хранится в файле .config. Мало кто занимается ручным созданием и редактированием этого файла, поскольку, во-первых: это сложный синтаксис, который далеко не самый «человекопонятный», и во-вторых: существуют способы для автоматической генерации конфигурации сборки ядра с удобным графическим (или псевдографическим) интерфейсом. Список основных команд для конфигурирования сборки ядра:
- make xconfig – рекомендуется, если используется графическая среда KDE. Весьма удобный инструмент;
- make gconfig – лучший вариант для использования в графической среде GNOME;
- make menuconfig – данную утилиту следует использовать в псевдографическом режиме. Она не так удобна, как две предыдущие, однако со своими функциями справляется достойно;
- make config – самый неудобный «консольный» вариант, выводящий запросы на задание значений каждого параметра ядра. Не позволяет изменить уже заданные параметры.
Практически все варианты (за исключением последнего) позволяют получать краткую справку по каждому параметру, производить поиск нужного параметра (или конфигурационного раздела), добавлять в конфигурацию дополнительные компоненты, драйверы, а также показывают, каким образом конкретный компонент может быть сконфигурирован — как компонент, встроенный в ядро или как загружаемый модуль, а также поддерживает ли он вообще вариант компиляции в качестве загружаемого модуля.
Очень полезной может оказаться команда make oldconfig, предназначенная для переноса существующей конфигурации с другой версии (сборки) ядра в новый билд. Эта команда читает конфигурацию из перенесенного из другой сборки файла .config со старой сборкой, определяет, какие новые параметры доступны для актуальной сборки и предлагает их включить или оставить как есть.
Для выполнения конфигурации сборки ядра Linux нужно перейти в каталог с исходными кодами и запустить одну из команд генерации конфигурации.
В результате работы вышеуказанных команд будет сгенерирован файл .conf, фрагмент содержимого из которого может быть следующим:
# # Automatically generated file; DO NOT EDIT. # Linux/x86 4.20.7 Kernel Configuration # # # Compiler: gcc (Ubuntu 7.3.0-27ubuntu1~18.04) 7.3.0 # CONFIG_CC_IS_GCC=y CONFIG_GCC_VERSION=70300 CONFIG_CLANG_VERSION=0 CONFIG_IRQ_WORK=y CONFIG_BUILDTIME_EXTABLE_SORT=y CONFIG_THREAD_INFO_IN_TASK=y # # General setup # CONFIG_INIT_ENV_ARG_LIMIT=32 # CONFIG_COMPILE_TEST is not set CONFIG_LOCALVERSION="" # CONFIG_LOCALVERSION_AUTO is not set CONFIG_BUILD_SALT="" CONFIG_HAVE_KERNEL_GZIP=y CONFIG_HAVE_KERNEL_BZIP2=y CONFIG_HAVE_KERNEL_LZMA=y CONFIG_HAVE_KERNEL_XZ=y CONFIG_HAVE_KERNEL_LZO=y CONFIG_HAVE_KERNEL_LZ4=y CONFIG_KERNEL_GZIP=y # CONFIG_KERNEL_BZIP2 is not set # CONFIG_KERNEL_LZMA is not set # CONFIG_KERNEL_XZ is not set # CONFIG_KERNEL_LZO is not set # CONFIG_KERNEL_LZ4 is not set CONFIG_DEFAULT_HOSTNAME="(none)" CONFIG_SWAP=y CONFIG_SYSVIPC=y CONFIG_SYSVIPC_SYSCTL=y CONFIG_POSIX_MQUEUE=y CONFIG_POSIX_MQUEUE_SYSCTL=y CONFIG_CROSS_MEMORY_ATTACH=y CONFIG_USELIB=y
Как можно видеть, в данном коде нет ничего привлекательного для ручного редактирования, о чём даже упоминает запись комментария в начале файла .config. Символ «y» в конце какой-либо из строк указывает, что соответствующий компонент будет скомпилирован в составе ядра, «m» — как подключаемый модуль. Расшифровки или описания о каждом компоненте или параметре в файле .config не содержится — по этим вопросам следует изучать соответствующую документацию.