Консоль Linux
![]() ![]() Консоль Linux — це внутрішня системна консоль ядра Linux (системна консоль — це пристрій, який отримує всі повідомлення ядра і дозволяє входити в систему в режимі одного користувача). [2] Консоль Linux забезпечує можливість для ядра та інших процесів отримувати дані від користувача та надсилати текстову відповідь. Користувач зазвичай вводить текст за допомогою клавіатури комп'ютера і читає вихідний текст на моніторі комп'ютера . Ядро Linux підтримує віртуальні консолі – консолі, які логічно відокремлені, але мають доступ до однієї фізичної клавіатури та дисплея. [3] Консоль Linux (і віртуальні консолі Linux) реалізовані підсистемою VT ядра Linux і не покладаються на жодне програмне забезпечення з простору користувача. [4] Консоль Linux була однією з перших функцій ядра. Вона була написана Лінусом Торвальдсом у 1991 році [5] (див. історію Linux ). Є дві основні реалізації: кадровий буфер і текстовий режим . Реалізація кадрового буфера є типовою в сучасних дистрибутивах Linux і разом із налаштуванням режиму ядра забезпечує підтримку апаратного забезпечення відображення та функцій, таких як відображення графіки під час завантаження системи, на рівні ядра. [6] Застаріла реалізація текстового режиму використовувалася в ПК-сумісних системах з відеокартами CGA, EGA, MDA і VGA. Архітектури, що не належать до x86, використовували режим кадрового буфера, оскільки їхні відеокарти не могли реалізувати текстовий режим. [6] Консоль використовує растрові зображення та Monospace шрифти фіксованого розміру, за замовчуванням це 8x16 пікселів на символ. [6] Консоль Linux є додатковою функцією ядра, і більшість вбудованих систем Linux її не вмикають. Ці системи зазвичай забезпечують альтернативний користувальницький інтерфейс (наприклад, веборієнтований) або завантажуються в графічний інтерфейс користувача і використовують його, як основний засіб взаємодії з користувачем. Інші реалізації консолі Linux включають консоль Брайля для підтримки оновлюваних дисплеїв Брайля [7] і консоль послідовного порту. [8] МетаКонсоль Linux забезпечує спосіб для ядра та інших процесів виводити текстові повідомлення користувачеві та отримувати текстові дані від користувача. У Linux системною консоллю можна використовувати кілька пристроїв: віртуальний термінал, [9] послідовний порт, [10] послідовний порт USB, [11] VGA в текстовому режимі, [12] кадровий буфер. [13] Деякі сучасні системи на базі Linux заборонили введення та виведення текстового режиму на основі ядра, і замість цього показують графічний логотип або індикатор виконання під час завантаження системи, після чого запускають графічний інтерфейс користувача (наприклад, сервер X.Org на настільні дистрибутиви та SurfaceFlinger на Android). Під час завантаження ядра консоль зазвичай використовується для відображення журналу логів ядра. Журнал логів містить інформацію про виявлене обладнання та стан процесу завантаження. На даний момент, ядро є єдиним запущеним програмним забезпеченням, і, отже, ведення журналу через простір користувача (наприклад, syslog ) неможливе, тому консоль забезпечує зручне місце для виведення цієї інформації. Після того, як ядро завершило завантаження, воно запускає процес ініціалізації (також надсилаючи вихідні дані на консоль), який обробляє завантаження решти системи, включаючи запуск будь-яких фонових демонів . Після завершення процесу початкового завантаження, консоль використовуватиметься для мультиплексування кількох віртуальних терміналів (доступних, натиснувши Ctrl-Alt-F1, Ctrl-Alt-F2 тощо, Ctrl-Alt-LeftArrow, Ctrl-Alt-RightArrow або за допомогою chvt [14] ). На кожному віртуальному терміналі запускається процес Getty, який, у свою чергу, запускає /bin/login для автентифікації користувача. Після автентифікації буде запущена командна оболонка. Віртуальні термінали, як і консоль, підтримуються на рівні ядра Linux. [15] Віртуальні консоліВіртуальні консолі дозволяють зберігати декілька текстових буферів, дозволяючи різним консольним програмам працювати одночасно, але взаємодіяти з користувачем у різних контекстах. З точки зору користувача, це створює ілюзію кількох незалежних консолей. Кожна віртуальна консоль може мати власний набір символів і розкладку клавіатури. У Linux 2.6 з’явилася можливість завантажувати інший шрифт для кожної віртуальної консолі (версії ядра, попередні до 2.6, змінюють шрифт лише на вимогу). Консоль текстового режимуРеалізація текстового режиму використовується в системах на базі ПК із застарілою відеокартою CGA/EGA/MDA/VGA, яка реалізує текстові режими відео. У текстовому режимі ядро надсилає на відеокарту двовимірний масив символів, а відеокарта перетворює символи в пікселі для відображення. Шрифт, набір символів та розкладка клавіатуриТекстовий буфер є частиною пам'яті VGA, яка описує вміст текстового екрана в термінах кодових точок і атрибутів символів. Кодові точки в текстовому буфері та шрифті, як правило, не те саме, що кодування, яке використовується в семантиці текстового терміналу для розміщення символів на екрані. Набір гліфів на екрані визначається поточним шрифтом . Текстовий екран обробляється за допомогою драйверів console.c і consolemap.c. Існує утиліта для зміни шрифтів і термінальних кодувань під назвою consolechars. Ядро Linux (keyboard.c ) майже повністю підтримує введення з клавіатури ( розкладки клавіатури ), але воно залишається дещо непослідовним, оскільки погано взаємодіє з різними наборами символів. Макети завантажуються за допомогою утиліти loadkeys Ці дві утиліти та відповідні файли даних упаковані в Linux Console Tools http://lct.sourceforge.net/, що [Архівовано 18 березня 2022 у Wayback Machine.] , що постачаються з багатьма дистрибутивами Linux . Зусилля з інтернаціоналізації Linux на рівні ядра почалися ще в 1994 році Маркусом Куном і Андрісом Брауером . Текстові режимиКонсоль Linux може підтримувати будь-який текстовий режим у стилі VGA, але саме ядро має дуже обмежені засоби для налаштування цих режимів. SVGATextMode допомагає увімкнути більш складні текстові режими, ніж стандартні EGA та VGA. Він повністю сумісний із Console Tools, але має деякі конфлікти з dosemu, SVGAlib та віконним інтерфейсом . Наразі немає підтримки різних режимів на різних віртуальних консолях. Порівняння з Windows і DOSMicrosoft Windows (будь-якої версії) не має повнофункціональної підтримки консолі. Найбільш наближеною функцією, але лише для прикладного програмного забезпечення, є консоль Win32 . Консоль фреймбуфера LinuxФреймбуфер Linux (fbdev) — це графічний апаратно-незалежний рівень абстракції, який спочатку був реалізований, щоб дозволити ядру Linux емулювати текстову консоль на таких системах, як Apple Macintosh, які не мають відображення текстового режиму. Тепер він пропонує емуляцію текстового режиму простору ядра на будь-якій платформі. Його перевага перед SVGATextMode(на даний момент не підтримується) полягає в надійності та кращій апаратній сумісності. Це також дозволяє подолати всі технічні обмеження текстових режимів VGA . Консоль фреймбуфера Linux відрізняється від консолі VGA лише способом виводу символів. Обробка подій клавіатури та підтримка віртуальних консолей абсолютно однакові. Консоль послідовного порту LinuxПослідовна консоль Linux — це реалізація консолі через послідовний порт, увімкнена опцією CONFIG_SERIAL_CONSOLE у конфігурації ядра. Вона може використовуватися в деяких вбудованих системах і на серверах, де пряма взаємодія з оператором не передбачається. Послідовна консоль забезпечує такий самий режим доступу до системи, але зазвичай на меншій швидкості через малу пропускну здатність RS-232 . Послідовна консоль часто використовується під час розробки програмного забезпечення для вбудованих систем, та іноді залишається доступною через порт налагодження . Керуючі символиКонсоль реагує на ряд керуючих символів : [16]
Для ^[ натисніть клавішу Escape. Консоль також підтримує розширені вихідні послідовності, послідовності режиму ANSI CSI і послідовності приватного режиму DEC. [17] [16] Ці розширені послідовності можуть керувати кольорами, візуальними ефектами, такими як миготіння, підкреслення, інтенсивність та інверсивне відео, частота та тривалість сигналу дзвінка, інтервал гасіння екрана VESA. Крім закриття тексту, немає відомого способу перевести адаптер VGA в режим очікування. Плани на майбутнєПроект Kmscon має на меті створити сучасну заміну простору користувача для консолі Linux. [18] [19] Пріоритети розробки включають підтримку налаштувань кількох моніторів, відтворення шрифтів Unicode з допомогою Pango, керування клавіатурою XKB та прискорення GPU OpenGL. [20] Скарги на поточну реалізацію ядра включають в себе те, що «це користувацький інтерфейс у просторі ядра, код погано обслуговується, погано обробляє сигнали клавіатури, створює погану візуалізацію шрифтів, пропускає налаштування режиму та підтримку кількох головок і має обмежену роботу з гарячим підключенням, обмежену VT102 ». [4] Примітки
|
Portal di Ensiklopedia Dunia