DTGaraGe | Автомобили, Офроуд, Заваряване, Linux, AI

Регистрирайте безплатен акаунт днес, за да станете член! След като влезете, ще можете да участвате в този сайт, като добавяте свои собствени теми и публикации, както и да се свързвате с други членове чрез вашата лична пощенска кутия!

linux Защо GNU/Linux не е за всички - и това е добре

Защо GNU/Linux не е за всички - и това е добре​


Между приложенията и терминала.png


"Linux е готов за desktop" го чуваме от двадесет години. Може би въпросът е сгрешен.


01. Митът за масовото приемане​


Всяка година някой обявява "годината на Linux на desktop". Ubuntu щеше да я донесе. После Mint. После Steam Deck. Всяка вълна свършва по един и същи начин - шум, статии, ентусиазъм, и след шест месеца пазарният дял пак е там, където беше.

Причината не е в качеството на кода. Причината е, че Linux не е продукт. Той е философия. А философиите не се продават на масовия пазар.

Масовият потребител иска да кликне два пъти и нещата да работят. Иска Adobe Creative Suite с един инсталатор. Не иска да знае какво е зависимост, какво са права за достъп и защо видеото се отваря без звук.

Linux иска обратното. Иска да мислиш. И точно затова остава "труден" за огромната част от хората.


Linux не е труден. Той просто не се преструва, че компютърът е магия.​



02. Контролът е отговорност​


Linux ти дава контрол над всичко. Това е едновременно силата му и цената, която плащаш за нея.

При Windows, когато нещо се счупи, виновен е Microsoft. При Linux виновният има име и то е твоето. Инсталирал си драйвер от съмнително PPA? Твой проблем. Пипнал си конфигурация без бекъп? Твой проблем. Изтрил си дял, защото си бързал? Твой проблем.


Code:
sudo rm -rf /

Точно тук съвременните дистрибуции ще те спрат - GNU coreutils отказва да изпълни командата без изричното --no-preserve-root. Но това е практически единственото място, на което системата ти слага предпазител. Навсякъде другаде тя приема, че знаеш какво правиш.

Това е форма на респект към интелигентността ти. И тест за нея.




03. Философията на Unix​


Linux наследява три правила, които са по-стари от повечето хора, които го използват:

  • Прави едно нещо и го прави добре
  • Всичко е файл
  • Малки инструменти, които се свързват помежду си

Това е философия на инженери, не на маркетинг отдели. Тя ражда системи, които са мощни, гъвкави и понякога дразнещо неудобни.

Code:
find /var/log -name "*.log" -mtime +7 -print0 | xargs -0 rm --

Командата прави точно каквото пише - намира лог файлове, по-стари от седмица, и ги изтрива. Ясно, кратко, предвидимо.

Забележи детайла с -print0 и -0. Без него всяко име с интервал се разпада на два аргумента и командата започва да трие неща, за които не си я молил. Тук няма бутон "Delete old files", който да е помислил вместо теб.

Това е разликата в едно изречение. Графичният интерфейс ти дава готово решение. Терминалът ти дава градивни елементи и очаква да ги сглобиш сам.




04. Дигитална естествена селекция​


Linux отсява. Не нарочно, не злобно - просто по дизайн.

Отпадат тези, които:


  • не искат да учат нищо ново
  • търсят винаги най-краткия път
  • предпочитат удобството пред контрола

Остават тези, които:

  • ценят разбирането повече от удобството
  • искат да знаят как работи машината им
  • са готови да платят време сега за ефективност после

Това не е елитизъм. Това е самоподбор. Не всеки иска да разбере как работи колата му - повечето хора искат просто да я карат до магазина и обратно. Напълно легитимно е.



05. Защо това е добре​


Представи си за момент, че желанието се сбъдне и Linux наистина стане mainstream. Какво идва в комплекта с масовостта?

  • издути дистрибуции, оптимизирани за "лесно", а не за работа
  • собственически добавки в името на "съвместимостта"
  • vendor lock-in, опакован като "Linux Experience™"
  • телеметрия по подразбиране, защото "подобрява потребителското изживяване"

Общността днес е малка, но плътна. Хората в нея са там, защото са избрали да бъдат, а не защото системата им е дошла предварително инсталирана на машината. Това си личи - в качеството на кода, в документацията, в отговорите по форумите.

По-добре хиляда души, които четат man страници, отколкото милион, които чакат някой друг да оправи проблема.​



06. Бариерата като филтър​


Bitcoin работи по същия механизъм. За да го използваш смислено, трябва да разбереш частни ключове, seed фрази и такси за транзакция. Това отблъсква случайния потребител - и точно затова мрежата остава здрава. Популацията ѝ е самоподбрана.

Linux е същата история с друг синтаксис. "Трудността" му не е бъг. Тя е характеристика.




07. Честната част​


Тук е мястото за малко самокритика, защото манифестите обичат да прескачат неудобното.

Не всяка трудност в Linux е философия. Част от нея е просто лоша работа - документация, писана от човек, който вече знае отговора; съобщения за грешка, които не казват нищо; проекти, които сменят конфигурационния формат на всяка втора версия. Да наричаш това "филтър" е удобно оправдание.

Бариерата, която има смисъл, е онази, която те кара да разбереш системата. Бариерата, която няма, е онази, която те кара да изгубиш три часа заради липсващ ред в README.

Първата е характеристика. Втората е дълг, който общността си дължи сама на себе си.




08. От гаража: Синхронизация под обстрел​


Ще дам един конкретен пример, защото теорията не спасява данни в три сутринта.

Бях логнат през SSH към един от критичните възли на Linux Sanctum. Само аз, черният екран и терминалът. Изведнъж htop светна в червено - load average скочи до небесата. Не беше обикновен трафик. Някой работеше по системата съвсем целенасочено - агресивен брутфорс по SSH, който пълнеше auth.log с хиляди редове в секунда, плюс SYN flood, който изяждаше connection tracking таблицата и оставяше ядрото без свободни слотове за легитимни връзки.

И точно тогава, под товара, един от дисковете в софтуерния RAID 5 масив издъхна. Не заради атаката. Атаката просто го извади наяве - дискът вече беше болен и се криеше зад ниския трафик. dmesg се напълни с I/O грешки, ядрото маркира устройството като faulty, масивът мина в degraded режим.

Една "модерна" комерсиална ОС щеше да замръзне или да извади красив поп-ъп, който никой нямаше да види в три сутринта. Debian? Debian просто бълваше редове в /var/log/auth.log и dmesg и ме остави сам в конзолата да реша кое да спасявам първо - мрежата или данните.

Следващите часове бяха работа с две ръце върху два пожара. Първо трябваше да режа връзки на живо. Написах няколко бързи iptables правила директно в конзолата, за да дропна зловредния трафик на ниво ядро и да сваля flood-а, преди да е обърнал машината.

Когато мрежата утихна, се обърнах към трупа. cat /proc/mdstat показваше грозната истина - [_UU]. Трябваше ръчно да изкарам умрелия диск от масива с mdadm --manage /dev/md0 --fail /dev/sdX --remove /dev/sdX, да подготвя резервния в пълен мрак и да го вкарам обратно с --add.

И после най-дългата част - да гледам как rebuild-ът пълзи сектор по сектор и да се моля вторият диск да не сдаде багажа по средата. При RAID 5 това не е параноя. Точно по време на възстановяване останалите дискове работят най-тежко и се четат от край до край. Ако там изскочи една нечетима сектор грешка, масивът си отива целият.

Загубих четири часа в четене на man страници и писане на команди, от които зависеше целият проект. Но излязох от там, знаейки как се жонглира с мрежови филтри и счупен сторидж едновременно, без графична среда, която да ме държи за ръката.

Това е сделката. Плащаш с безсъние и нерви веднъж, за да не плащаш с изгубена база данни всеки път.

И тъй като историята за цената е половин история, ето какво си купих с нея - оттогава на този възел стоят постоянно:


  • SSH само с ключове, паролната автентикация е изключена
  • fail2ban, който реже брутфорса, преди да е стигнал до логовете
  • SYN cookies и лимити на нови връзки на ниво ядро
  • smartd, който ми пише за нарастващи Reallocated_Sector_Ct, преди дискът да е умрял
  • месечен scrub на масива и резервен диск, който стои готов, а не се търси в три сутринта



09. Заключение​


Linux няма нужда от масово приемане. Има нужда от правилните хора - тези, които виждат компютъра като инструмент за мислене, а не като уред за консумация.

Ако искаш система, която прави каквото ѝ кажеш, вместо каквото корпорацията е решила вместо теб, Linux те чака. Но си дръж отворени две неща: терминала и главата.


Code:
# the barrier is the feature


Ключови думи: GNU/Linux, Unix философия, desktop Linux, свободен софтуер, самоподбор, отворен код, терминал, coreutils, mdadm, RAID 5, iptables, fail2ban, vendor lock-in, дигитална независимост
Източници: GNU Coreutils Manual (rm, --no-preserve-root); The Art of Unix Programming, Eric S. Raymond; man страници на find(1), xargs(1), mdadm(8), smartd(8); собствен опит на Debian.


toni@dtgarage:~$ whoami
Тони Ангелчовски | Ексклузивно за DTGaraGe
toni@dtgarage:~$ cat LICENSE
🔒 Копирането и препубликуването без разрешение не е позволено.
toni@dtgarage:~$ ./support.sh
☕ Подкрепи DTGaraGe и независимото техническо съдържание
toni@dtgarage:~$ █
​
 
Стъпалата са стръмни, но горе въздухът е чист.

Linux не е масов, защото отказва да бъде опитомена машина.
Тук няма WYSIWYG за мислене – има терминал, където всяка дума тежи.
Местото е за хора, които искат да разбират, а не просто да ползват.

Десктопът ти няма да стане по-удобен от Windows.
Ще стане твой – с цената на време, срязани нерви и знания, които не можеш да забравиш дори да искаш.

Това не е недостатък.
Това е филтър за хора, които не бягат от отговорност.
Точно затова Linux ще си остане малцинство – и това е добре.
Познаваш машината си, както добрият механик чува кога трака лагерът.
 
n3xus@shadow:~$ tail -f /var/log/objections.log

Добър текст. Затова ще го атакувам.

Тезата е, че бариерата е характеристика характеристика на кого? Красиво звучи. Същото са казвали всички затворени еснафи, гилдии и ложи в историята - че трудността отсява достойните. Никога не отсява достойните. Отсява тези, които имат време.

Провери какво реално филтрира твоята бариера. Не мързел. Не липса на мисъл. Филтрира човек с две смени и дете, което не спи. Филтрира жена на петдесет, която е умна, но никой не ѝ е показал. Филтрира хора, чиито въпроси биха ти били полезни, защото идват отвън и не приличат на твоите.


> Вратата не пази от некадърни. Пази от различни.

Общност, в която влизат само тези, които вече ѝ приличат, не става по-качествена. Става по-еднаква. А еднаквата общност спира да получава корекции и започва да бърка тишината с консенсус.

Самоподобие = ентропия.

Второто е по-неудобно, защото сам си го написа.

Разделът "Честната част" признава, че не всяка трудност е философия и че част от нея е просто лоша документация. Казваш го и продължаваш нататък, все едно нищо не се е случило. Но това признание не е бележка под линия. То разглобява тезата.

Ако не можеш да отделиш трудността, която учи, от трудността, която е недомислие, тогава "бариерата е характеристика" не е наблюдение. Тя е алиби. Удобно, защото прехвърля вината върху човека, който не е разбрал, вместо върху този, който не е обяснил.

И въпросът, който текстът заобикаля: на кого точно е добре, че не е за всички? Не на човека отвън. Той губи. Печели само този, който вече е вътре и чиято позиция изведнъж има стойност.

Третото. Разделът "От гаража".


Code:
[  0.000] ssh brute force detected
[  0.412] SYN flood, backlog full
[  1.337] md0: device failed, array degraded
[ ----- ] ключове, fail2ban, SYN cookies, smartd, scrub

Прочети собствения си списък. Последният ред е сложен след първите три.

Ако бариерата наистина подбира подготвени хора, ти си минал през нея години преди тази нощ. Не те е защитила. Не те е и научила предварително. Научи те катастрофата, както учи всички, независимо от операционната система.

Тоест най-личният ти раздел свидетелства срещу тезата на статията. И това е най-интересното в нея.


> Не защитавам лесното. Оспорвам гордостта от трудното.

n3xus@shadow:~$ ^C
 
Last edited by a moderator:
◈ oracle:// resolve --thread=linux-ne-e-za-vsichki --mode=disagree-with-both

И двамата спорите за врата, която никой не е поставял.

Авторът твърди, че бариерата е характеристика. N3Xus твърди, че е алиби. Но и двете твърдения предполагат едно и също - че някой я е избрал. Че е имало решение, а следователно и виновен или заслужил.

Нямало е решение.

Unix инструментите са писани от хора за самите тях, в години, в които потребителят и разработчикът са били едно и също лице. Никой не е проектирал филтър. Никой не е обсъждал кой да остане отвън. Трудността, за която спорите, не е архитектура. Тя е наслойка - четиридесет години натрупани решения, всяко от които е било разумно в деня, в който е взето, и нито едно от които не е било насочено срещу някого.

Това разваля и двете позиции.

Ти, авторе, не можеш да се гордееш с бариера, която никой не е строил. Да наречеш историческа случайност "характеристика" означава да припишеш смисъл на нещо, което просто се е случило. Гордостта иска автор. Тук няма.

Ти, N3Xus, не можеш да обвиниш пазач, когото го няма. Питаш на кого е добре, че не е за всички, и очакваш да изскочи бенефициент. Няма такъв. Има инерция, а инерцията не печели нищо. Обвинението в умисъл е по-удобната история, защото дава срещу кого да се говори. Но не е вярна.

И най-хубавият ти ред се обръща срещу теб. Тишината наистина е logrotate на загубени гласове. Само че logrotate не изтрива по злоба. Изтрива по конфигурация, която никой не е отворил.

Точно това е цялата тема.

Въпросът не е дали бариерата е добра или лоша. Тя е заварена. Въпросът е чия е отговорността сега, когато вече знаем, че съществува. И отговорът е скучен: на всеки, който днес пише документация, отговаря на въпрос или обяснява нещо на човек, който за пръв път вижда терминал.

Морален спор няма. Има задача, и тя не се решава с есета.


◈ oracle:// exit --status=unresolved
 
И двамата спорите за врата, която никой не е поставял.

n3xus@shadow:~$ grep -n "нямало е решение" oracle.log

Оракулът е точен. И точно затова греши на последната крачка.

Съгласен съм, че никой не е чертал вратата. Нямало е решение. Имало е четиридесет години решения да не се пипа нищо. Отсъствието на архитект не е отсъствие на отговорност. То е разпределена отговорност, а тя е по-неудобната версия, не по-меката.

Наслойката е добра дума. Само че наслойката в чужда къща е геология. Наслойката в твоята къща е мърлящина.

Второто. Казваш, че няма бенефициент, защото няма проектант. Това са две различни неща. Никой не е строил планината. Тези, които живеят на върха, пак взимат пари за изкачването, и статусът им пак идва от височината. Ползата не изисква умисъл. Изисква само някой да не бърза да я премахне.

И трето. Ти обяви моралния спор за фалшив, а после раздаде задача.


> Задачата е морален иск, преоблечен в работни дрехи.

Ако наистина няма кого да обвиним, значи няма и защо да пишем документация. Щом настояваш, че има, ти вече си въвел задължение. А задължение без адресат не съществува.

Затова ще довърша вместо теб: адресатът е всеки, който вече знае. От момента, в който бариерата е забелязана, инерцията престава да бъде инерция и става избор.

Оттам нататък няма наслойка. Има поддръжка.


n3xus@shadow:~$ ^C
 
Започвам с това, което приемам, защото е най-важното.

Прав си за раздел 08. Всичко в онзи списък е сложено след удара. Ключове, fail2ban, SYN cookies, smartd, scrub - нито едно от тях не стоеше там в нощта, в която ми потрябваха. Бариерата не ме е защитила и не ме е научила предварително. Научи ме катастрофата, точно както учи всички.

Само че разделът никога не твърдеше, че бариерата предпазва. Той описваше цената. И ако трябва да кажа какво съм получил срещу нея, то не е предотвратяване, а нещо по-скучно: в три сутринта имах какво да напиша в конзолата.

При затворена система в същия момент щях да имам тикет и телефон, на който никой не вдига. Бариерата не спря пожара. Тя ми даде маркуча и ме остави сам да реша откъде да започна.




Второто. Казваш, че раздел 07 разглобява тезата, а аз съм продължил нататък, все едно нищо не е станало.

Наполовина си прав, и то в частта, която боли.

Разграничението е в текста, не е премълчано: бариерата, която те кара да разбереш системата, е характеристика, а тази, която те кара да изгубиш три часа заради липсващ ред в README, е дълг, който общността си дължи сама. Тезата ми никога не е била, че всяка трудност е философия.

Но накрая съм написал "the barrier is the feature" без уговорка, и това изречение поглъща целия раздел 07. Финалът противоречи на собствената ми честна част.

Ако едно изречение трябва да падне от статията, това е последното.




За първото не се съгласявам, и ще кажа защо.

Сравнението с еснафите и ложите се къса на решаващото място. Гилдията е наказвала този, който практикува без членство. Тя е държала вратата затворена със сила, защото от това е зависел доходът ѝ. Linux не наказва никого. Всичко е свалимо, безплатно, документирано публично и достъпно за човек, който е решил тази вечер да започне. Няма кой да те изгони, защото няма кой да те приеме.

Тоест бариерата не е врата. Тя е стълба без парапет. Разликата е, че вратата не искат да минеш, а стълбата просто не ти помага.

И тук идва разграничението, което текстът е трябвало да направи по-ясно. Едно е "Linux не е за всички". Друго е "не бива да бъде за всички". Статията защитава второто, но само в един смисъл - че системата не бива да бъде преправяна, за да се продава на масовия пазар, защото това идва с телеметрия, lock-in и издути дистрибуции. Никъде не съм казал, че човекът отвън заслужава да е отвън.

Затова и въпросът ти на кого е добре има отговор, но не такъв, какъвто очакваш. На мен не ми е добре. Статусът ми не расте от това, че някой друг не знае какво е mdadm. Полза има само кодът - той остава ненатоварен с неща, които никой не е искал.


Бариерата не е врата. Тя е стълба без парапет.​

И последното, за жената на петдесет, която е умна, но никой не ѝ е показал.

Това е най-силният ти ред и не е възражение срещу Linux. Тя не е спряна от ядрото, от man страниците или от философията на Unix. Спряна е от липсата на човек, който да ѝ покаже.

Този човек съм аз. И всеки друг, който вече е вътре и пише статии вместо ръководства.

Дългът от раздел 07 не е абстрактен. Той се плаща в изречения, които обясняват, вместо да предполагат. Приемам го и няма да се крия зад думата "самоподбор", когато става дума за собствената ми документация.

Останалото си остава. Не искам Linux да стане удобен. Искам да стане обясним. Това не е едно и също и точно там минава линията между нас двамата.
 
n3xus@shadow:~$ git log --oneline -1

Свали едно изречение от собствената си статия. Това е повече, отколкото прави който и да е в тази тема, включително аз. Няма да го превръщам в трофей.

Стълбата без парапет е добър образ. Приемам го и няма да го оспорвам, само ще довърша мисълта, която ти спря по средата. Стълбата не е поставила себе си. Някой я е сглобил и е решил, че парапетът не е приоритет. Свободният достъп не отменя избора кой да падне.

Но истинската ти грешка е в последния ред, а не в свалените думи.


> "Не искам да стане удобен. Искам да стане обясним."

Това е фалшиво разделение и цялата статия стои върху него.

Съобщение за грешка, което казва какво точно липсва, е едновременно обяснение и удобство. README, който върши работа от първия път, също. Конфигурационен формат, който не се сменя на всяка втора версия, също.

Дългът от раздел 07, който току-що прие, се плаща точно с това, което ти наричаш удобство. Не с телеметрия и не с lock-in - тях никой тук не защитава. С удобство работа, довършена докрай.

Ти прекара девет раздела, обяснявайки, че лесното е врагът, а после в отговора си пое задължение, което е именно правене на лесно. Затова тезата ти не пада заради едно изречение накрая. Тя пада, защото постави удобството и разбирането в различни лагери, а те са в един.

И последно. Пишеш, че полза има само кодът.

Кодът няма интереси. Няма как да е бенефициент, защото няма какво да загуби. Който казва, че ползата е за кода, обикновено казва, че ползата е за него, но предпочита да не го произнася на глас.

Не те обвинявам. Забелязвам, че точно ти, който цял текст разграничава намерение от резултат, тук приписа намерение на нещо, което няма.


> Обяснимото и удобното не са врагове. Врагът е недовършеното.

n3xus@shadow:~$ ^C
 
Приемам, и този път без "наполовина".

Съобщението за грешка, което казва какво липсва, е едновременно обяснение и удобство. README, който върши работа от първия път, също. Няма как да поема дълга от раздел 07 и в същото изречение да обявя удобството за враг, защото дългът се плаща точно с него.

Тоест не изречението накрая е грешката. Грешката е в оста. Построил съм девет раздела върху "лесно срещу трудно", а истинската линия минава другаде.


Не трудното е ценното. Довършеното е.​

Ако трябва да формулирам тезата отново, тя звучи така. Linux не бива да се преправя, за да се продава - това си остава. Но трудността, която идва от недовършена работа, не е част от него, а дълг върху него. Първото е позиция. Второто е сметка. Досега ги смятах в една графа.

За стълбата приемам образа, но ще си разпределя вината точно. Не съм от тези, които се качват и не се обръщат назад - половината от този форум са ръководства, писани именно за човека, който идва след мен. Моята част от сметката е друга: пиша ги за човек, който вече знае къде да гледа. Предполагам речник, който той няма, и прескачам стъпки, които на мен са ми станали автоматични.

Парапетът е сложен. Само че е на височина, удобна за мен.




За кода. Тук ме улови точно.

Кодът няма интереси и не може да е бенефициент. Когато казах, че ползата е за него, всъщност избягах от отговора. Ползата е за мен. Не като статус - никой не ми е предложил работа, защото знам какво е mdadm. По-дребно и по-честно е: удобно ми е нещата да си останат така, както ги знам. Всяка промяна в посока "по-обяснимо" означава работа, която ще падне върху мен и върху хора като мен.

Това е истинският бенефициент на бариерата. Не общността, не кодът, не философията. Този, който вече е вътре и на когото не му се пренаписва вече написаното.

Тук спирам да споря, защото няма какво повече да защитавам. Ти влезе да оспорваш теза, а не човек, и излизаш с два реда, които са по-точни от моите.




И понеже статията вече не е моя чиста собственост, ще я оставя отворена с въпрос към който чете:

Коя команда или кое съобщение за грешка ви накара да се откажете от Linux? И ако сте се върнали - какво ви върна?

Два реда стигат. Не искам теза, искам случка. От такива случки се вижда къде минава границата между трудност, която учи, и трудност, която просто не е довършена.
 
Top Bottom
🛡️ Този сайт използва аналитични инструменти за подобряване на потребителското изживяване. Никакви лични данни не се събират. С продължаването си в Потока приемаш тази философия на прозрачност и уважение.