thedeemon: (Default)
[personal profile] thedeemon
Внезапно всплывший перевод интервью двухлетней давности с кернел-разработчиком, который пытался улучшить поведение декстопного Линукса, но не мог толком эти улучшения продемонстрировать, вызвал очередные дискуссии про перспективы Линукса на десктопе.

Да нет у него никаких перспектив.

Основная его проблема - мало нужного, качественного и удобного софта. И главная ее причина, на мой взгляд, - отсутствие бинарной совместимости. Когда есть куча плохо совместимых дистрибутивов, в них куча несовместимых версий, единственный более-менее работающий способ распространения софта - в исходниках, со сборкой на месте. Кому это подходит?

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

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

Типичные слова линуксоеда: "Если бы люди умели пользоваться vim, grep, sed, awk, то миллионы программных продуктов так никогда и не были бы созданы (C) кто-то умный". В том-то и беда. Именно так теряется 95% аудитории - основная масса юзеров не будет тратить по полгода на изучение этих ваших vim, grep, sed, awk, perl и bash. Им нужна программа с красивым окошком и кнопкой "сделать п%$дато", а не набирать в консоли "ps aux | grep dmz | awk '{ print $3, " ", $2 }' | sort | tail -n 5 | awk '{ print $2 }' | xargs kill -9". Нужен простой и удобный в использовании софт, решающий конкретные задачи рядовых и не очень пользователей. Такие программы будут только там, где будут коммерческие разработчики, которые смогут их продавать за доступные хоум-юзерам деньги. А для такого софта дистрибуция в исходниках никак не годится.

Вот есть, например, Маки. Там дистрибуция и установка программ в бинарной форме была отточена отлично, оттого куча удобного, приятного и радующего пользователей софта, за который те с радостью платят деньги. Есть винда, где я компилю в Win7 бинарник с минимумом зависимостей, и он прекрасно работает и в Висте, и в ХР, и даже в Win98. В нем я могу реализовать какую-то пусть не идеальную, но работающую защиту от взлома, и спокойно его продавать. А вот понадобилось мне недавно простейшую консольную прогу запустить на хостинге с этим вашим линупсом, так нет - нужного компилятора там не стоит и прав нет поставить, просто собранный бинарник не работает из-за другой версии GLIBC, а статически собранный - не работает, потому что ядро, дескать, слишком старое, хотя и там и там 2.6.чего-то. При таком подходе я буду продолжать делать шаровары для винды и мака, а линуксоеды пусть дальше довольствуются своими поделками.

Re: подсказка

Date: 2009-09-20 08:45 pm (UTC)
From: [identity profile] nealar.livejournal.com
Странно это. Например, вот таким моментом: обычная JVM работает под шедулером ОС, и он гарантирует, что время, отданное задачам (ява-задачм и обычным тоже) уложится в какие-то рамки и не нарушит правильной работы оборудования. Например, прилетевшее от диска прерывание: переключит контекст с текущей задачи на ядро, запустит код драйвера, поработает с регистрами диска, создаст/освободит буфера в памяти, отметит код, который ждёт данных с диска как разрешённый к выполнению, вернёт управление шедулеру ОС, переключит контекст на следующую задачу(например, ну ту, которая выполнялась до того, как диск попросил внимания). JVM всем этим не занимается и ничего про это не знает. Шедулинг своих, внутриJVMных потоков она может выполнять исходя из своих соображений, например, делать так, чтоб время процессора делилось между потоками пропорционально их приоритетам. Мне, почему-то, кажется, что разделение времени внутри подзадач ядра сложней. И разница есть.

Re: подсказка

Date: 2009-09-20 08:51 pm (UTC)
From: [identity profile] stepancheg.livejournal.com
В "операционной системе будущего" шедулер будет примерно такой же, как и сейчас.

В современных JVM все "внутриJVMные" потоки — это потоки операционной системы, и шедулингом JVM не занимается (кроме каких-то специфичных случаев).

Re: подсказка

Date: 2009-09-20 09:05 pm (UTC)
From: [identity profile] nealar.livejournal.com
Но тогда, получается, что на каждый "внутриJVMный" поток создаётся свой контекст ОС, в котором запущена JVM.

Re: подсказка

Date: 2009-09-20 09:17 pm (UTC)
From: [identity profile] stepancheg.livejournal.com
Какой-то контекст есть на каждый поток. Но он лёгкий, по сравнению с контекстом, например, процесса в Linux.

Re: подсказка

Date: 2009-09-20 09:56 pm (UTC)
From: [identity profile] nealar.livejournal.com
Размер контекста определяется тем, что у потоков разное. Если только продолжение, то он будет сверхлёгкий. У процессов разное: пространство памяти, открытые файлы, окружение и т.д.

Profile

thedeemon: (Default)
Dmitry Popov

December 2025

S M T W T F S
 12 3456
789101112 13
14151617181920
21222324252627
28293031   

Most Popular Tags

Style Credit

Expand Cut Tags

No cut tags
Page generated Jan. 28th, 2026 10:37 am
Powered by Dreamwidth Studios