vitus_wagner: My photo 2005 (Default)
[personal profile] vitus_wagner
В недавнем интервью Столлман сказал It doesn't matter how popular GNU/Linux gets, if it fails to give you freedom.

Собственно, в этой одной фразе сконцентрировано всё содержание моих двух предыдущих постов про интерфейсы (1, 2

Современные DE (и не только DE, Office suites и даже браузеры туда же) именно что fail to give me freedom.

Свобод, согласно тому же Столлману - 4:
0. To run the program as you wish.
1. To study the source code and change it so the program does what you wish.
2. To redistribute exact copies when you wish, either giving them away or selling them.
3. To distribute copies of your modified versions when you wish.

Речь идет, естественно, о свободе N 1 - изучать и модифицировать код. В реальной жизни у меня есть не более чем сколько-то времени, которое я могу потратить на устранение мелких неудобств или повышение своей квалификации.

В традиционном Unix этого времени более чем хватает, чтобы понимать что оно делает и как его исправить (или обернуть в обертку). Потому что система аккуратно разбита на компоненты, которые можно изучать по отдельности. Способы взаимодействия этих компонентов (пайпы, environment, коды завершения) просты и понятны, а также неплохо документированы.

А сколько времени надо потратить на изучение, скажем XUL, чтобы исправлять поведение браузера? Куда больше, чем на изучение shell.

Date: 2007-09-12 02:08 pm (UTC)
ext_659502: (Default)
From: [identity profile] some41.livejournal.com
процесс - более узкое понятие. компонента может быть реализована процессом, а может, например, динамической библиотекой или чем-то еще более мелким (функцией шелла, например). для работающей с ней стороны это должно быть прозрачно.

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

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

Date: 2007-09-12 02:28 pm (UTC)
ext_659502: (Default)
From: [identity profile] some41.livejournal.com
выделять на каждый чих отдельное пространство памяти только из-за того, что программа написана так, что может написать в чужую память, это все равно, что селить каждого человека в отдельном городе, чтобы один человек не мог другого заразить ветрянкой. лучше законодательно запретить язык С и архитектуры без возможности модульной защиты.

протокол, требующий подтверждения, это отнюдь не примитивный протокол. примитивный протокол - это http 1.0 - послал запрос, получил ответ.

Date: 2007-09-12 02:48 pm (UTC)
ext_659502: (Default)
From: [identity profile] some41.livejournal.com
У нас процессоры сорок лет развивались исходя из того что будет исполняться код на языке C.
и ничего хорошего в этом нет. ну ничего, думаю мультикоровость и вообще рост параллельности С таки добьет.

Date: 2007-09-13 12:26 pm (UTC)
From: (Anonymous)
> У нас процессоры сорок лет развивались исходя из того что будет исполняться код на языке C.

Один вопрос. Почему ты считаешь, что массовое переписывание существующей codebase - проще, чем создание нового процессора (пусть даже с учетом усилий на распространение и портирование).

Date: 2007-09-13 12:46 pm (UTC)
From: [identity profile] cmike.livejournal.com
Поясню. Аппаратные решения, позволяющие защищать пространство отдельного модуля, давно отработаны и их использование позволяет не менять ни одной строчки кода в приложении. Их, правда, тоже не используют. Спроса нет (как в советском анекдоте про черную икру).

Такие задачи, как несогласованность интерфейса, аппаратно не решаются. Но это другие задачи. Здесь сдерживает отсутствие идей ИМХО.


Date: 2007-09-13 12:28 pm (UTC)
From: [identity profile] cmike.livejournal.com
У нас процессоры сорок лет развивались исходя из того что будет исполняться код на языке C.

Один вопрос. Почему ты считаешь, что смена парадигмы программирования (вместе с переписыванием всего, что придется переписывать) проще, чем сменить процессор.

Date: 2007-09-13 01:00 pm (UTC)
From: [identity profile] cmike.livejournal.com
> "Система должна быть построена исходя из предположения что любой кусок кода в ней - untrusted."

Я эту фразу воспринял как предложение вообще отказаться от shared library в существующем виде. А в этом случае overhead будет больше.

А вот твоего оппонента я читал не очень внимательно.

Date: 2007-09-13 01:21 pm (UTC)
From: [identity profile] cmike.livejournal.com
Со всем согласен. С тем добавлением, что для плагинов задача решается заменой dlopen на fork/exec/dlopen + передача данных. Последнее - самое сложное и нестандартное, но должно писать не каждый раз для нового плагина, а все же один раз для каждого типа плагина, что все же не очень трудоемко.

Это не процесс, это фича. :)

... И слава Богу ...

Date: 2007-09-16 11:19 am (UTC)
netch: (Default)
From: [personal profile] netch
Вот когда ты решишь, например, задачу передачи по пайпу 10 мегабайт данных (одно изображение) и обратно несколько раз в секунду без существенных затрат процессора - тогда, может, что-то и получится.
А так как сейчас - фигушки.

Вот когда появится разумное API вида "передать сообщение" в котором можно будет аттачить куски данных (хотя бы размером кратным странице) и чтобы они шарились между процессами - может, что-то и получится. Только не надо предлагать mmap.

Profile

vitus_wagner: My photo 2005 (Default)
vitus_wagner

May 2025

S M T W T F S
    1 2 3
4 56 7 8 9 10
11 12 131415 1617
1819202122 2324
252627 282930 31

Most Popular Tags

Style Credit

Expand Cut Tags

No cut tags
Page generated May. 31st, 2025 02:42 pm
Powered by Dreamwidth Studios