Как написать драйвер для андроид

Обновлено: 04.07.2024

Здесь, как добавить драйвер в ядро ​​в системе Android.

Требовать: Водитель Queue.C добавляется в ядро.

Программа: Следующее описывает две реализации. Природа двух программ одинаково, и разница является отдельным меню в Menuconfig, а другой не является отдельным новым меню в Menuconfig, но изменяет существующие профили.

Способ, принятый на схеме: не создавайте новое меню конфигурации, напрямую добавьте драйвер в существующий kconfig. Подробные шаги описаны ниже.

1.1 Изменить существующий файл конфигурации

(1) Измените драйвер файла конфигурации / CHAR / KCONFIG, добавьте следующее:

(2) Измените драйвер файла конфигурации / char / makefile, добавьте следующее:

1.2 Добавить «код привода»

Добавьте файл драйвера, путь к файлу привода выглядит следующим образом:

1.3 Добавить дисковод

Выполните make menuconfig открыть интерфейс конфигурации и добавьте драйвер CQueueue.C в ядро.

Как показано на рисунке 01, это вариант перед добавлением CQueue.C:


Как показано на рисунке 02, это опция после добавления CQueue.C:


1.4 Убедитесь, что это успешно

Просмотрите файл .CONFIG, должны быть следующие параметры конфигурации:

Режим III, сделанный метод: New Menu Config Menu, добавьте драйвер на вновь построенный kconfig. Подробные шаги описаны ниже.

2.1 Изменить существующие файлы конфигурации

(1) Измените драйвер файла конфигурации / CHAR / KCONFIG, добавьте следующее:

(2) Измените драйвер файла конфигурации / char / makefile, добавьте следующее:

2.2 Новый «Конфигурация привода»

(1) Новый каталог под драйвером / CHAR, полный путь к новому каталогу выглядит следующим образом:

(2) Новые драйверы / CHAR / SKYWANG / KCONFIG файл, контент выглядит следующим образом:

(3) Новые драйверы / Char / Skywang / Makefile File, контент выглядит следующим образом:

2.3 Добавить «код привода»

Скопируйте файл привода, путь к файлу копирования выглядит следующим образом:

2.4 Добавить дисковод

Выполните make menuconfig открыть интерфейс конфигурации и добавьте драйвер CQueueue.C в ядро.

Как показано на рисунке 03, это опция перед добавлением CQueueue.C:


Как показано на рисунке 04, опция после добавления CQueueue.C:


Как показано на рисунке 05, выбран интерфейс подменю, введенный после того, как выбран «Test Drivers Skywang»:

Все знают, что мобильная разработка на Java — одна из самых популярных отраслей разработки, наравне с веб-разработкой. Будьте в курсе последних новостей о Spring!

spring

Spring: итоги ушедшего года

Spring — очень популярный веб-фреймворк для Java, и прошлый год для него не прошел бесследно, было внесено много изменений, с главными из которых мы предлагаем ознакомиться.

Компиляция Java-кода на ходу

Ну разве не круто иметь возможность компилировать код прямо на лету? Раньше такой возможностью могли похвастаться только динамические языки, но теперь мощь такого подхода доступна и для джавистов.

10 советов по отлову null

Вообще, null — очень противное значение. Сколько ошибок было вызвано его появлением в совсем неожиданных местах, а сколько потом часов было потрачено на отладку этого кода? Чтобы не выискивать потом проблему, ее лучше предотвратить. Как — читайте в данной статье.

Что бы я хотел знать, когда начинал писать реактивные системы

Реактивные системы — системы настолько гибкие, что в любой момент отзываются на ввод, и достигается это с помощью асинхронности. Причем это куда сложнее, чем обычные потоки.

Java недостаточно хороша для энтерпрайза?

Что имеется в виду под «не очень хороша»? Ее типизация. Да, она вроде как строгая статическая, но в некоторых местах она все же дает сбои. В каких — смотрите в статье.

Быстрые параллельные вычисления с использованием стримов

Восьмая версия Java, которая, кстати, вышла довольно давно, принесла много нововведений: лямбды, стримы, лучший интерфейс типов. И вот о практическом использовании одного из них и пойдет речь.

Главные принципы построения приложений

Хорошая статья для начинающих, которая подскажет, как же все-таки нужно организовать взаимодействие компонентов в своем приложении.

Сравнение MVC, MVP и MVVM на примере приложения для Android

Тут ситуация довольно интересная: все об этом что-то слышали, но мало кто знает, что это такое. Ну вот, у вас есть хороший источник, который поможет во всём разобраться.

Небольшие подсказки и хитрости при разработке мобильных приложений. На этот раз про создание градиентов.

Как увеличить скачивание вашего приложения с помощью емодзи

Вы будете удивлены, но добавление всего одного емодзи в описание сильно подняло количество скачиваний приложения.

Пишем свой драйвер для Android

Да, теперь вы можете писать собственные драйвера к устройствам.

PreviewSeekBar — компонент ползунка с предпросмотром.
Toasty — как Toast, только лучше.
AndroidWiFiADB — плагин для Android Studio для отладки по воздуху.

Создание интерфейса в стиле Material с помощью Netbeans и Swing

Material UI завоевывает все больше поклонников и продолжает распространяться не только на мобильных устройствах.

Держите ваш код в чистоте

Сборник советов, которые помогут держать ваш код в чистоте, чтобы с ним всегда было приятно работать.

40 хаков для Spring в JetBrains IDEA

Достаточно объемное видео, которое поможет вам перенести на новый уровень навыки кодинга в IDEA, и не только на Spring.

Нужны исходники ядра. Копируется код драйвера как там нарисано, компилируется. Должен получиться бинарник с расширением ko. Потом этот бинарник копируется на телефон и загружается командой insmod. Чтобы посмотреть действительно ли загрузился - lsmod.
Как то так

Sent from my GT-I9300 using Tapatalk

Sluh Уже с Приветом Posts: 9963 Joined: Sat Mar 22, 2008 2:07 pm Location: GA

Post by Sluh » Sat Nov 02, 2013 7:26 am

в ридми все написано. запускаете shell, становитесь рутом, запускаете команды из ридми. Если не хватает dependencies - ставите их и делаете снова. АццкоМото Уже с Приветом Posts: 15242 Joined: Wed Feb 28, 2007 8:18 pm Location: VVO->ORD->DFW->SFO->DFW->PDX

Post by АццкоМото » Sat Nov 02, 2013 8:00 am

Sluh wrote: в ридми все написано. запускаете shell, становитесь рутом, запускаете команды из ридми. Если не хватает dependencies - ставите их и делаете снова. Вы что, строить драйвер собрались прямо на телефоне? Sluh Уже с Приветом Posts: 9963 Joined: Sat Mar 22, 2008 2:07 pm Location: GA

Post by Sluh » Sat Nov 02, 2013 8:12 am

АццкоМото wrote: Вы что, строить драйвер собрались прямо на телефоне? А что, не потянет? Я вроде на нуке что-то собирал, могу ошибаться. Make вроде точно запускал какой-то. Но мне быстро надоело допиливание напилником. ekriv Уже с Приветом Posts: 5424 Joined: Mon Jan 19, 2004 2:12 pm Location: Florida

Post by ekriv » Sat Nov 02, 2013 8:13 am

Исходников ядра у меня нет.
Это не телефон, а ТВ стик МК808.

Я попробовал записать файлы на устройство в произвольную папку,подключился терминалом и выполнил make, а мне говорит, что такой команды нет.

АццкоМото Уже с Приветом Posts: 15242 Joined: Wed Feb 28, 2007 8:18 pm Location: VVO->ORD->DFW->SFO->DFW->PDX

Post by АццкоМото » Sat Nov 02, 2013 8:47 am

АццкоМото wrote: Вы что, строить драйвер собрались прямо на телефоне? А что, не потянет? Я вроде на нуке что-то собирал, могу ошибаться. Make вроде точно запускал какой-то. Но мне быстро надоело допиливание напилником. Да не то, чтобы не потянет, просто в телефоне как правило нет того, что нужно для отстройки. Но теоретически можно - я даже IDE в телефон ставил и коннектился с контупера иксами, но это нетипичная ситуация АццкоМото Уже с Приветом Posts: 15242 Joined: Wed Feb 28, 2007 8:18 pm Location: VVO->ORD->DFW->SFO->DFW->PDX

Post by АццкоМото » Sat Nov 02, 2013 8:51 am

ekriv wrote: Исходников ядра у меня нет.
Это не телефон, а ТВ стик МК808.

Я попробовал записать файлы на устройство в произвольную папку,подключился терминалом и выполнил make, а мне говорит, что такой команды нет.

Дык качните 3.0.8 хедеры с кернел.орг (не гарантированно, что прокатит, но скорей всего), да отстройте на линукс боксе. Нужно только указать, какими кернел хедерами пользоваться и таргет архтектуру, чтобы оно для х86 не построилось. Как это делать я не помню, но должно гуглиться. Ну а дальше - как olis написал - insmod/lsmod уже на девайсе с получившимся .ko Medium-rare Уже с Приветом Posts: 9155 Joined: Thu Mar 03, 2011 6:04 pm Location: SFBA

Post by Medium-rare » Sat Nov 02, 2013 9:31 am

olis wrote: Нужны исходники ядра. Копируется код драйвера как там нарисано, компилируется. Должен получиться бинарник с расширением ko. Потом этот бинарник копируется на телефон и загружается командой insmod. Чтобы посмотреть действительно ли загрузился - lsmod.
Как то так На моей предыдущей работе буквально любой нативный бинарный файл для Андроида строился в билде всего проекта Android. Для чего с Гугла скачивался на диск линуксового PC Андроид-проект целиком, сначала билдился "чистый", потом туда, в соответствии с иерархией билда, вставлялся наш фолдер с проектом. Естественно, модифицировался make file одним уровнем выше, чтобы новая директория с проектом "взялась" в билд. И, в двух словах, драйвер для одного устройства Андроид совершенно необязательно заработает на другом, даже если на обоих одинаковый ARM процессор. В нашем случае без знания, какой порт за что отвечает в конкретной модели Galaxy ничего не работало. И ещё (!), именно kernel mode (.ko) бинарники на телефон установить, так это зачастую требует весь Андроид-билд поменять. Это только user mode .so библиотечки, как мне кажется, заменялись так просто, как вы пишете. Не очень это для рядового пользователя операция. ekriv Уже с Приветом Posts: 5424 Joined: Mon Jan 19, 2004 2:12 pm Location: Florida

Post by ekriv » Sat Nov 02, 2013 9:56 am

olis wrote: Нужны исходники ядра. Копируется код драйвера как там нарисано, компилируется. Должен получиться бинарник с расширением ko. Потом этот бинарник копируется на телефон и загружается командой insmod. Чтобы посмотреть действительно ли загрузился - lsmod.
Как то так Я как раз и есть рядовой пользователь.
Моя сфера деятельности это PHP и Adobe Flex.
Для общего образование на компе есть 3 виртуалки с Ubuntu, Pear Linux 7, CentOS.
Было бы очень хорошо, если бы кто дал пошаговые инструкции или линк на то, как мне скомпилить драйвер ch9x00.c в модуль. olis Уже с Приветом Posts: 4935 Joined: Sat Mar 02, 2002 1:01 am Location: UK

Post by olis » Sat Nov 02, 2013 4:32 pm

olis wrote: Нужны исходники ядра. Копируется код драйвера как там нарисано, компилируется. Должен получиться бинарник с расширением ko. Потом этот бинарник копируется на телефон и загружается командой insmod. Чтобы посмотреть действительно ли загрузился - lsmod.
Как то так На моей предыдущей работе буквально любой нативный бинарный файл для Андроида строился в билде всего проекта Android. Для чего с Гугла скачивался на диск линуксового PC Андроид-проект целиком, сначала билдился "чистый", потом туда, в соответствии с иерархией билда, вставлялся наш фолдер с проектом. Естественно, модифицировался make file одним уровнем выше, чтобы новая директория с проектом "взялась" в билд. И, в двух словах, драйвер для одного устройства Андроид совершенно необязательно заработает на другом, даже если на обоих одинаковый ARM процессор. В нашем случае без знания, какой порт за что отвечает в конкретной модели Galaxy ничего не работало. И ещё (!), именно kernel mode (.ko) бинарники на телефон установить, так это зачастую требует весь Андроид-билд поменять. Это только user mode .so библиотечки, как мне кажется, заменялись так просто, как вы пишете. Не очень это для рядового пользователя операция. PavelM Уже с Приветом Posts: 13310 Joined: Sun Jun 13, 1999 1:01 am Location: Yekaterinburg -> Montreal

Post by PavelM » Sat Nov 02, 2013 4:33 pm

ekriv wrote: Было бы очень хорошо, если бы кто дал пошаговые инструкции или линк на то, как мне скомпилить драйвер ch9x00.c в модуль. Medium-rare Уже с Приветом Posts: 9155 Joined: Thu Mar 03, 2011 6:04 pm Location: SFBA

Post by Medium-rare » Sat Nov 02, 2013 4:49 pm

ekriv wrote: Было бы очень хорошо, если бы кто дал пошаговые инструкции или линк на то, как мне скомпилить драйвер ch9x00.c в модуль.

Вам этот линк не поможет? Я ничего оттуда исследовать не стал, но какой-то драйвер на вашу целевую платформу для вашего устройства там есть. Ищите на странице по "Android". Заработает ли. Ещё .

P.S. Ну, выше написал немного, но я никогда не делал этого за пределами организации, которой дали пока ещё не вышедший на публику телефон с ограниченным доступом к файловой системе для отладки драйвера, который будет поставляться заказчику.

Ljolja Уже с Приветом Posts: 2924 Joined: Wed Mar 31, 2004 7:22 pm

Post by Ljolja » Sat Nov 02, 2013 5:19 pm

+1 к Medium-rare не надо Вам ничего компилировать, замучаетесь. Ишите уже готовый (скомпилированый) драйвер для Вашего девайса/системы/ядра. То, что будет скомпилировано для иных параметров (девайса/системы/ядра), скорее всего работать не будет Я боюсь, что наступит день, когда технологии превзойдут простое человеческое обшение. И мир получит поколение идиотов (c) olis Уже с Приветом Posts: 4935 Joined: Sat Mar 02, 2002 1:01 am Location: UK

Post by olis » Sat Nov 02, 2013 5:47 pm

Я посмотрел что это за девайс МК808. У него 2 USB порта. Один видимо для подключения девайса к компьютеру, 2-й - USB OTG, который может выполнять функции хоста. Вам нужно подключать свой стик именно ко 2-му порту через специальный кабель. 1-й порт в режиме хоста никогда не будет работать.
Но вообще я очень сомневаюсь что у вас что получится. Мы свое время пытались подключить ТВ-приемник к Galaxy II. Начать с того что у Самсунга был белый список USB client устройств и если вашего нет в этом списке, то не судьба. Потом отлаживали USB аналайзером на уровне пакетов. Оказалось у Самсунга был косяк в драйвере USB -хоста. Помогла только замена ядра.
Ну вообщем удачи ekriv Уже с Приветом Posts: 5424 Joined: Mon Jan 19, 2004 2:12 pm Location: Florida

Post by ekriv » Sat Nov 02, 2013 6:20 pm

ekriv wrote: Было бы очень хорошо, если бы кто дал пошаговые инструкции или линк на то, как мне скомпилить драйвер ch9x00.c в модуль.

Вам этот линк не поможет? Я ничего оттуда исследовать не стал, но какой-то драйвер на вашу целевую платформу для вашего устройства там есть. Ищите на странице по "Android". Заработает ли. Ещё .

P.S на компе у меня Linux Mint 19

P.S2 прошу сильно не пинать это мой первый пост.

Под андроид до выкладывания исходников ядра данной КОНКРЕТНОЙ СБОРКИ под конкретную модель телефона, не то что платформу, ты можешь лишь лососнуть тунца. Linux он такой, абстрактных драйверов не бывает в нём как в винде.

Так возьми на asix, проблем не будет.

Самое главное ты забыл написать- нахрена оно вообще надо?


Еще немного о процессорах нынешних телефонов.

Этот пост к слову о том, что я обычно не просто балаболю, но могу свои слова и пруфами подтвердить, если надо. Как-то между делом написал коммент:

Еще немного о процессорах нынешних телефонов. Бенчмарк, Тест, Длиннопост, Телефон, Android, Linux

В целом, можно заметить, что воодушевленные техническим прогрессом люди подвезли мне плюсов.

Еще немного о процессорах нынешних телефонов. Бенчмарк, Тест, Длиннопост, Телефон, Android, Linux

Но было и несколько персонажей, которые, как один из них выразился, решили меня "осадить" и пояснить мне за базар, что я нуб, ламер, чмо и что я, якобы, меряю разные процессоры частотами.

Сегодня, когда я перебирал старые посты, я вспомнил про это и мне пришла в голову идея устроить моему телефону пвп с компом.

Методика более подробно описана в моем старом посте вот здесь:

Кому лень читать - заставим проц раскукоживать видео 4К H264 без хардварного декодирования и посмотрим на полученный фпс. В таких задачах используется много всякого волшебного матана, а ffmpeg довольно неплохо оптимизирован и умеет как во всякие фичи x86, так и arm. Так что тест, как мне кажется, вполне имеет место быть.

Собсна, у меня Redmi Note 8T - дешманофон с Snapdragon 665 на борту (4x Cortex-A73@2.0GHz + 4x Cortex-A53@1.8GHz). На десктопе AMD Ryzen 5 1600@3.7GHz (PBO).

На компе стоит KDE Neon 20.04, на телефоне - Android c Termux, версии ffmpeg там одинаковы.

Я принудительно выключил хардварный декод и форсировал 4 потока, чтобы уравнять условия. Посмотрим на результат:

frame=19036 fps= 41 q=-0.0 Lsize=N/A time=00:10:34.60 bitrate=N/A speed=1.37x

video:9964kB audio:356706kB subtitle:0kB other streams:0kB global headers:0kB muxing overhead: unknown

bench: utime=1753.866s stime=22.753s rtime=462.637s

frame=19036 fps=149 q=-0.0 Lsize=N/A time=00:10:34.60 bitrate=N/A speed=4.98x

video:9964kB audio:356706kB subtitle:0kB other streams:0kB global headers:0kB muxing overhead: unknown

bench: utime=462.451s stime=1.865s rtime=127.480s

С учетом того, что частота у десктопа почти вдвое больше, разрыв не такой уж и впечатляющий.

А теперь бонус, из моего старого поста:

Еще немного о процессорах нынешних телефонов. Бенчмарк, Тест, Длиннопост, Телефон, Android, Linux

Внизу у Athlon II X4 615e с частотой 2.5 GHz. Проц из весовой категории тех самых Core 2 Quad / Phenom II. Выводы можете сами сделать.

Опять же, я не претендую на истину в последней инстанции, ибо это лишь один из бенчмарков. Есть задачи, с которыми arm-камни справляются хуже, например линпак. Но факт в том, что мои слова почти в точности подствердились первым случайным бенчмарком.


Linux для тебя

Linux для тебя Linux, Windows, Программное обеспечение, Операционная система, Ноутбук, Компьютер, Android, Длиннопост

Дисклеймер: Я никого не призываю переходить на другую операционную систему(ОС), а просто хочу показать, что существуют альтернативные ОС. Выбор всегда за вами.

Начну, пожалуй с истории. Все началось с UNIX систем, которые в конце 60-x годов были разработаны сотрудники компании Bell Labs. Они мало чем были похожи на современные ОС, просто терминал и компилятор под ассемблер. Компания AT&T, которой принадлежала Bell Labs понимала коммерческую ценность UNIX, но из-за запрета наложенного правительством США, компания могла заниматься только телефонными сетями и смежным оборудованием. Для того, чтобы обойти запрет, компания передала исходный код ОС некоторым высшим учебным заведениям. Одним из первых исходный код получил университет Беркли.

В университете Беркли начинается история семейства Berkeley Software Distribution (BSD) систем, которые считаются UNIX подобными ОС. Со временем большая часть кода была переписана сотрудниками университета, что в дальнейшем позволило отделится от AT&T. Про BSD системы обычный пользователь ничего не знает т.к. они не смогли получить большой популярности у обычных пользователей, об этом чуть позже. Но в тоже время компания Apple использовала большую часть кода FreeBSD для создания MacOS, Sony и Nintendo использовали ее для своих приставок, сервера WhatsApp и Netflix тоже работают под управлением ОС семейства BSD. Парадокс - непопулярная ОС используется в популярных продуктах.

В 1991 году Линус Торвальдс студент Хельсинского университета, начал написание ядра Linux. Когда он выложил исходный код, другие разработчики заинтересовались и стали помогать в разработке ядра.

Так почему более зрелая и мощная система BSD не сыскала популярности в open source сообществе в отличии от Linux? Все дело в лицензии под которой распространяется ОС. Лицензия BSD позволяет использовать ее код, а затем сделать его закрытым, так в свое время поступила Apple. С Linux так сделать нельзя, лицензия обязывает после изменения кода выложить его в открытый доступ, поэтому сообществу выгодно писать программное обеспечение (ПО) под лицензией Linux.

Linux для тебя Linux, Windows, Программное обеспечение, Операционная система, Ноутбук, Компьютер, Android, Длиннопост

С того момента было создано огромное количество дистрибутивов на основе ядра Linux. Коммерческие организации также участвуют в разработке ядра и поддерживают open source сообщество.

Linux для тебя Linux, Windows, Программное обеспечение, Операционная система, Ноутбук, Компьютер, Android, Длиннопост

Если посмотреть статистику использования ОС в сегменте персональных компьютеров, около 77% это Windows, 16% это MacOS и какие-то 2% Linux. Дело в том, что Windows и MacOS коммерческие ОС, которые продвигались на рынке ПК, когда Linux использовалась в основном для серверов и маршрутизаторов. На самом деле Linux работает в большем количестве устройств, чем может показаться на первый взгляд: маршрутизаторы, умная техника, смартфоны(Android основан на ядре Linux), супер компьютеры, сервера. Каждый день мы косвенно используем Linux. Ошибочно мнение, что Windows популярная ОС, исторически так сложилось, что большое количество ПО было написано под нее, дает о себе знать и сарафанное радио. Подавляющее большинство с детства пользуется ПК под управлением Windows и когда человек приобретает новый ПК или ноутбук, как правило с предустановленной Windows или устанавливает ее сам - дело привычки.

Теперь хочу рассказать как я познакомился с миром Linux. До университета я был обычным пользователем Windows и только слышал о существовании Linux. Когда мне пришлось по надобности столкнуться с этой ОС, а я ничего особо не знал, то я поставил самый популярный дистрибутив Ubuntu и пользовался им около недели. Он мне не понравился и я стал пробовать другие дистрибутивы. Дольше всего я использовал Fedora от Red Hat и Elementary OS. Сейчас использую Manjaro с рабочим окружением KDE, вообще рабочие окружения это отдельная тема. Существует огромное количество дистрибутивов и такое многообразие может отпугнуть неподготовленного пользователя.

Fedora с окружением Gnome

Linux для тебя Linux, Windows, Программное обеспечение, Операционная система, Ноутбук, Компьютер, Android, Длиннопост

elementary OS

Linux для тебя Linux, Windows, Программное обеспечение, Операционная система, Ноутбук, Компьютер, Android, Длиннопост

Manjaro с окружением KDE Plasma 5

Linux для тебя Linux, Windows, Программное обеспечение, Операционная система, Ноутбук, Компьютер, Android, Длиннопост

В основном, когда человек задумывается о переходе на новую ОС, его останавливает мысль об отсутствии привычных программ. Я провел небольшой опрос среди своих друзей и знакомых, чем они пользуются ежедневно для решения своих задач.

Linux для тебя Linux, Windows, Программное обеспечение, Операционная система, Ноутбук, Компьютер, Android, Длиннопост

В опросе участвовало 25 человек. Для большинства людей необходим браузер, офисный пакет, мессенджер и графический редактор. Большая часть ПО нативно есть под Linux, а остальная имеет достойные альтернативы. Например, пакет MS Office я заменил на Google Docs и Open Office, они прекрасно справляются со своими задачами и имеют обратную совместимость с MS Office. Для работы с фото Krita и Gimp, для видео DaVinci Resolve и Kdenlive, LMMS и Audacity использую для работы с аудио. Дефицита программ нет и они бесплатные.

Установил нескольким друзьям и девушке, пока всем всё нравится

Linux для тебя Linux, Windows, Программное обеспечение, Операционная система, Ноутбук, Компьютер, Android, Длиннопост

В СНГ пользователи персональных ПК не пользуются лицензионным софтом. Все привыкли пиратить все, что можно. За свою жизнь не встречал тех, кто имеет подписку Adobe или MS Office, кроме бизнес сегмента. В СНГ пиратство не наказуемо для пользователя ПК. Но кроме моральных терзаний, есть еще один момент, задумывались ли вы, какая выгода человеку, который взламывает ПО и отдает его в массы, это хорошая пища для размышления.

Что в итоге? Linux дает безопасность, стабильность, полный контроль над ОС и бесплатное ПО. Тем более попробовать Linux всегда можно не отказываясь от Windows - поставить на виртуальную машину или как вторую систему и в дальнейшем снести винду полностью перейти на Linux.

Читайте также: