LINUX.ORG.RU

Linux Considered Harmful


0

1

В оригинале писалось мною для https://dis.4chan.org/prog/ посему преводить лень. Но вот что мне лично не понравилось в Linux

Linux's success may indeed be the single strongest argument for my thesis: The excitement generated by a clone of a decades-old operating system demonstrates the void that the systems software research community has failed to fill. — Rob Pike, original developer of Unix and author of The Unix Programming Environment

Everything in Linux sucks. For example, when I close «Nautilus» file manager window, it doesnt terminate program, but puts it in background. Why? To leak more CPU and memory! The xfce4-menu-plug already ate 140 megabytes of memory, and it's just a toolbar! When I try to `kill -s KILL gnome-screensaver`, it blanks whole screen and only reboot helps. Gedit (a simple notepad) takes whooping 60 megabytes to edit a few lines of text and it loads about 10 seconds! Opening a directory in file browser sometimes takes minutes, due to its file type detection feature (it scans and makes thumbnail of every file). Thousands of thumbnails stored inside ~/.thumbnails slow down image viewer startup by about 20 seconds. Invoking `cat` on a binary file damages terminal font and sometimes crashes bash.

Also, file type detection is extremely glitchy and detects unrelated files as PCX files. It also ignores file extension. So if it detects JPEG file as PCX, it will open it as PCX and crash viewer, despite that it has JPG extension.

Command Line interface is horrible at best! Sometimes a simple typo, like «cp *», can easily mess your files. The only way to be safe with Linux is to do backup every few hours.

Regarding bad design decisions in Linux: there is no sandbox and every program you run has access to all files inside you /home folder and can delete/steal them. Moreover every program gets internet access by default, making you machine a potential botnet node. That is a truly bad design decision, which could have been easily avoided by dropping unmanaged memory access or capability based security with array-bound checking protection, similar to one specified in http://www.cs.ucr.edu/~gupta/teaching/260-08/Papers/TR181.pdf

Super user rights can't be managed precisely and every program requiring them has to be given full super-user account (setuid/setgid). No on/off switches, so a program wanting direct access to SVGA frame buffer also gets access to network connection and whole hard drive content.

Unauthorized program should't be able to access filesystem or internet. Every program should be limited in access only to files and directories provided by the user, while internet access is given only to programs installed under apps.interned_allowed directory. There should be a way to reject privileges given to file/directory handles, so accessing them would produce exception. Users shouldn't see outside of their home directory and all file-sharing should be explicit. User password should be too kept under's home directory, so it could be changed without much fuzz with /etc/passwd.

POSIX API is horrible and includes a lot of undefined behavior. A change to memcpy implementation once broke tons of Linux code that depended on undefined behavior. But Worse is Better, of course (http://www.cygwin.com/ml/glibc-bugs/2011-02/msg00090.html). Production Linux code almost completely consists of ugly hack, like following:

__pid_t __cdecl sub_813C7B8()
{
  __pid_t result; // eax@1
  char command; // [sp+18h] [bp-200h]@2

  result = fork();
  if ( !result )
  {
    sprintf(&command, "/bin/bash -c \"sleep 5; kill -9 %d\" &> /dev/null &", PID);
    system(&command);
    sprintf(&command, "/bin/bash -c \"sleep 8; kill -9 %d\" &> /dev/null &", PID);
    system(&command);
    sprintf(&command, "/bin/bash -c \"sleep 10; kill -9 %d\" &> /dev/null &", PID);
    result = system(&command);
  }
  return result;
}

посему преводить лень

linux.org.ru

.ru

Akamanah ★★★★★ ()
Ответ на: комментарий от Akamanah

Не огорчайтесь. Так сложилось, что по английски я пишу лучше чем по-русски, ибо я в школе не учился. Перевести не смогу.

SNV1985 ()

Какая интересная смесь тупняка, нубизма и просто ложной информации...

Deleted ()
Ответ на: комментарий от SNV1985

обоснуйте пожалуйста.

А есть смысл?

Deleted ()
Ответ на: комментарий от SNV1985

Не можете обосновать? Ясно.

Прочто не вижу смысла кормить жирного тролля =).

Deleted ()

Исповедь вендузятника, сидевшего под рутом.

pekmop1024 ★★★★★ ()
Ответ на: комментарий от SNV1985

Не огорчайтесь. Так сложилось, что по английски я пишу лучше чем по-русски, ибо я в школе не учился. Перевести не смогу.

Из Канады штоле?

TowTruck ()
Ответ на: комментарий от Deleted

Прочто не вижу смысла кормить жирного тролля =).

Ну а мне по секрету скажешь? Я уже давненько в линуксе не красноглазил.

TowTruck ()
Ответ на: комментарий от pekmop1024
rm -rf /home/*

и никакого рута ненадо, а вся работа потеряна.

или вы думаете пользователю ценно содержимое /usr/bin?

SNV1985 ()
Ответ на: комментарий от TowTruck

Ну а мне по секрету скажешь? Я уже давненько в линуксе не красноглазил.

Какой конкретный пункт тебя интересует?

Deleted ()

Всё просто решается. Выкинь линукс, поставь венду. И успокойся, наконец.

DeVliegendeHollander ★★ ()
Ответ на: комментарий от Deleted

Например, почему пользователь может видеть за пределы своей home директории, когда каждый Linux дистрибьютив имеет свою уникальную структуру директорий? Как это связано с энакпсуляцией состояния и хорошим дизайном?

SNV1985 ()
Ответ на: комментарий от DeVliegendeHollander

Увы в Windows тот же самый ущербный C/C++ с его segmentation fault. По сути Windows - такой же клон Unix как и Linux.

SNV1985 ()
Ответ на: комментарий от SNV1985

ущербный C/C++ с его segmentation fault

По сути Windows - такой же клон Unix как и Linux.

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

М-да, очевидно, тут больше не о чем разговаривать. «Знания» так и хлещут.

DeVliegendeHollander ★★ ()

Nautilus

xfce4-menu-plug

gnome-screensaver

Казалось бы, причём тут линукс.

По поводу прав — apparmor и подобное.

PolarFox ★★★★★ ()
Ответ на: комментарий от SNV1985

Слушай, а вод в оффтопике в выпадающем меню explorer.exe есть пункт «удалить». Но это еще не всё! Если вместо выпадающего меню нажать shift+delete, файлы удаляются мимо корзины! Трепещи!

pekmop1024 ★★★★★ ()
Ответ на: комментарий от pekmop1024

А я и не защищаю Windows. Однако 1. Linux появился раньше Windows, как Христианство раньше Ислама, но оба течения основаны на Иудаизме; 2. Лицензия GNU лежащая в основе Linux, душит альтернативные проекты. См. дэмпинг.

SNV1985 ()
Ответ на: комментарий от PolarFox

Linux/Unix/C/C++ - это больше чем ядро. Это философия. Философия Worse is Better.

SNV1985 ()
Ответ на: комментарий от Deleted

Какой конкретный пункт тебя интересует?

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

TowTruck ()
Ответ на: комментарий от SNV1985

1. Linux появился раньше Windows
2. Лицензия GNU лежащая в основе Linux, душит альтернативные проекты

Нетленный топик Ваш читаю:
Прозреньем душу одарили.
В каких краях произрастает
Та благодать, что Вы курили?
pekmop1024 ★★★★★ ()
Последнее исправление: pekmop1024 (всего исправлений: 2)
Ответ на: комментарий от TowTruck

Аудит в вендосерверах искаропки вообще-то. Как и в про-версиях.

pekmop1024 ★★★★★ ()
Ответ на: комментарий от pekmop1024

Аудит в вендосерверах искаропки вообще-то. Как и в про-версиях.

Да. Я не очень понятно написал, я хотел сделать типа такого же в линуксе, но не осилил.

TowTruck ()
Ответ на: комментарий от TowTruck

Для десктопов есть всякие приблуды типа StaffCop, если ты про контроль за юзерами.

pekmop1024 ★★★★★ ()
Ответ на: комментарий от pekmop1024

Для десктопов есть всякие приблуды типа StaffCop, если ты про контроль за юзерами.

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

TowTruck ()
Ответ на: комментарий от TowTruck

Я тебя неправильно понял, думал, что для винды и надо :)

pekmop1024 ★★★★★ ()

Все правильно сказано, но вывод о том, что линукс неудавшийся клон Unix неверно. В самом Unix не было никаких предпосылок на изменение/улучшение доступа типа MAC в сторону чего-то более современного. Был бы линукс лучше, если бы писался с нуля? Возможно, только никто не знает что было бы. Тем не менее попытки улучшить ситуацию имеются, в частности selinux, который работает на уровне ядра и т.о. можно считать что прогресс сдвинулся, аля by design.

Что касается прикладного ПО, то по одним приложениям GNOME/KDE/Enligthment и прочим судить неверно. Просто потому, что эти приложения пришли после появления Linux, а не в момент его рождения.

По поводу хаков в ядре и в системе в целом, то с этим никто не спорит. Вопрос в том, как это исправить и не я ли это смогу сделать?

gh0stwizard ★★★★★ ()
Последнее исправление: gh0stwizard (всего исправлений: 1)

писалось мною для https://dis.4chan.org/prog/ посему преводить лень

Ну вот. Такой гениальный писатель, а 4chan ценит больше ЛОРа...

proud_anon ★★★★★ ()
Ответ на: комментарий от SNV1985

Увы в Windows тот же самый ущербный C/C++ с его segmentation fault. По сути Windows - такой же клон Unix как и Linux.

Как хорошо что вы больны, зачем расходовать патроны...

anonymous ()

Everything in Linux sucks. For example, when I close «Nautilus» file manager window, it doesnt terminate program, but puts it in background.

извините, дальше не читал. недостатка пангериков уровня «в этих ваших линуксах блокнот не такой» не испытываю.

понтануться англицким тоже не вышло - от этой же фразы за версту веет обычным англорусским.

mos ★★☆☆☆ ()

Что, троллинг для форчана оказался слишком толстым, поэтому пошел на лор?

__pid_t __cdecl sub_813C7B8()
{
  __pid_t result; // eax@1
  char command; // [sp+18h] [bp-200h]@2

Надеешься выдать код, который ты сгенерировал каким-то виндовым декомпилятором типа Hex-Rays, за «Production Linux» код?

trycatch ★★★ ()

Дата регистрации: 05.07.2013

расходимся, это опять кодер или иже с ним

mos ★★☆☆☆ ()
Ответ на: комментарий от SNV1985

Linux появился раньше Windows,

Лолшто? Сходи в Википедию хотя бы, неуч.

RedEyedMan ()

Заходишь в Google, набираешь xfce in 32Mb и удаляешь кусок своего 4.2

devl547 ★★★★★ ()
Ответ на: комментарий от SNV1985

Монтируй /home с xattr, настрой acl-ы. Все конфигурируемо.

И это только один из способов. Для задротов есть SELinux и grsec - настраивай любые роли с любыми правами.

trupiko ()
Ответ на: комментарий от gh0stwizard

В самом Unix не было никаких предпосылок на изменение/улучшение доступа типа MAC в сторону чего-то более современного

Простите, а что есть, более современное, чем MAC?

Тем не менее попытки улучшить ситуацию имеются, в частности selinux, который работает на уровне ядра

SELinux - это тоже MAC.

tailgunner ★★★★★ ()
Ответ на: комментарий от SNV1985

А в какой ОС нельзя удалить содержимое своей домашней директории?

ps. Покормил

Midael ★★★★★ ()
Ответ на: комментарий от tailgunner

Простите, а что есть, более современное, чем MAC?
SELinux - это тоже MAC.

Во-первых, selinux позволяет работать на трех уровнях DAC, MAC и RBAC. Что уже по себе «современное». Но самое главное достижение selinux это MLS, поддержка которого была добавлена по требованиям правительства США. Модель разграничения доступа MLS существенно отличается от остальных моделей, но пока что не достигает высших уровней надежности (EAL).

gh0stwizard ★★★★★ ()
Ответ на: комментарий от SNV1985

Linux появился раньше Windows

Windows 1 - November 20, 1985 Linux 0.0.1 - 5 October 1991

Ты мне скажи, все твои утверждения содержат ложную информацию или все такичто-то можно почитать?

Dantix ★★ ()
Ответ на: комментарий от gh0stwizard

selinux позволяет работать на трех уровнях DAC, MAC и RBAC

Всё это было в Unix еще до Linux.

самое главное достижение selinux это MLS

MLS - это обобщенное название класса технологий. Которые были еще в Trusted Solaris и Trusted IRIX.

поддержка которого была добавлена по требованиям правительства США

«По требованию правительства США» ее много куда добавили.

tailgunner ★★★★★ ()

Мде. Недолгим был свет звезды форчана %)

tailgunner ★★★★★ ()
Ответ на: комментарий от tailgunner

Всё это было в Unix еще до Linux.

Где и как сейчас реализован RBAC в линуксе?

Которые были еще в Trusted Solaris и Trusted IRIX.

Были, но Solaris is not Unix. Я же говорил про Unix. Таким образом можно сказать, что и солярис неудавшийся клон юникса, ибо SunOS MLS появился позже чем SunOS 1.0. Можешь спорить до бесконечности, просто не забывай что Solaris это законченный коммерческий продукт, такой же как RHEL, но не GNU/Linux, которая славится разнообразием поддерживаемых устройств и специфичных алгоритмов, включаемых и выключаемых по желанию пользователя, а не вендора.

gh0stwizard ★★★★★ ()
Ответ на: комментарий от gh0stwizard

Где и как сейчас реализован RBAC в линуксе?

gh0stwizard> selinux позволяет работать на трех уровнях DAC, MAC и RBAC

http://en.wikipedia.org/wiki/Grsecurity

Solaris is not Unix

Solaris по кодовой базе - это как раз корневой Unix. SVR4, если быть точным.

можно сказать, что и солярис неудавшийся клон юникса

Никто не может запретить нести чушь.

tailgunner ★★★★★ ()
Ответ на: комментарий от tailgunner

Grsecurity

И что? Он включен по дефолту во всех линуксах? Я видел его только в alpine 2.6.1, который вышел не так давно. До этого он был вырублен везде точно также как selinux.

Solaris по кодовой базе - это как раз корневой Unix. SVR4, если быть точным.

Sys V с SunOS 4, SVR4 с SunOS 5. С учетом того, что сертификацию по TCSEC для своего MLS они получили в 90 году, то это всетаки Sys V, ибо пятый SunOS вышел двумя годами позже. Не понимаю, о чем ты споришь?

Никто не может запретить нести чушь.

Пф. Чушь несет автор поста, раз не увидел в своем дистрибутиве selinux или grsecurity.

gh0stwizard ★★★★★ ()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.