June 14th, 2013

Бритоголовый и С1-97

Про операционные системы

В ходе обсуждения пользовательских привычек и механизмов их формирования у [info]infowatch плавненько перешли к обсуждению разнообразных принципов, реализованных внутри разных операционных систем. Мне кажется, что для ноосферы в целом будет скорее полезно описать мои взгляды на проблему.

Начнем, разумеется, с азов. Любое взаимодействие человека с компьютером укладывается в простенькую схему – человек вводит в компьютер команду, тот что-то делает и каким-то образом выводит результат. Очень важная для понимания сути происходящего вещь – богатство пространств команд и ответов, сравнимое с таковым у “естественного языка”. Это позволяет, например, применять к взаимодействию человека и компьютера слово “общение” – пусть даже и в переносном смысле.

Приведу сразу кучку примеров. Система “лампочка-выключатель” обладает всеми признаками “интерактивной компьютерной системы” – у нее есть устройство ввода, устройство вывода, и даже – какая-то реакция выхода на вход. Но так как пространства “команд” и “ответов” у нее минимально возможные – то и говорить об “общении” с ней – это адская шизофрения. Формально, шизофрения – это и общение с железным ящиком под столом, но оный ящик хотя бы может производить впечатление живого собеседника. Налицо, кстати, диалектический переход количества в качество :)

Перейдем к более содержательным примерам. Для начала – в духе книжки 1958 года “Автоматические цифровые машины“. Ввод здесь – это записанная на перфокартах последовательность команд, вывод – распечатка с цифрами. В разделе этой брошюры, посвященном описанию процесса программирования, описывается шесть команд некоей вычислительной машины. И уже эти шесть команд, вместе с правилами их записи, называются “языком” – пока в кавычках. В более современной литературе это слово вполне заслуженно пишется без кавычек, а “классические” примеры языков, на которых пользователь общается с компьютером – это “текстовые” языки – командная строка Unix, REPL в Lisp-системах, языки программирования типа C/C++/Java/whatever. Тут комментарии, в общем, не требуются. Скажу лишь только, что эти языки пытались даже исследовать методами лингвистики – и вполне успешно. Что более сложно – так это восприятие в качестве “языка” графического пользовательского интерфейса. Но если задуматься – то это тоже язык, состоящий из простых надписей и пиктограмм.

В принципе, сейчас мы вплотную подошли к одному из фундаментальных свойств операционной системы. Все современные компьютеры (за довольно редким исключением) недалеко ушли в плане “машинного языка” от существовавших в 1958 году. Но “язык”, на котором пользователь общается с машиной изменился до неузнаваемости. Не нужно набирать программу с помощью кучи тумблеров или пробиванием перфокарт. Не нужно, в большинстве случаев, заниматься “программированием”. Более того, программирование распалось на “низко-” и “высокоуровневое”. Можно прекрасно пользоваться современным компьютером, умея лишь тыкать мышкой или даже пальцем в нужные места на “экране”. Можно предположить, что в компьютере живет “что-то”, что принимает ввод на одном языке, переводит его на “машинный”, а затем – проделывает обратный процесс с “ответом”. Это “что-то” и называется “операционной системой”. Вот, скажем, определение из книжки Таненбаума:

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

Замечу, что оговорка о “виртуальной машине” очень важна – в очень многих случаях “языки” ввода и вывода в машине, реализуемой с помощью операционной системы, не являются “расширениями” таковых на аппаратном уровне. При этом о ней иногда попросту забывают – например, заголовок раздела, где приводится это определение, у Таненбаума звучит “Операционная система как расширенная машина”. В этом определении можно дойти до определенного “экстремизма”. Например, Windows с установленной Visual Studio – это отличная от “голой” Windows операционная система. Входной язык ее расширяется с помощью некоторого диалекта C++ – поэтому они и разные :) В принципе, ничему это не мешает – так что не будем заморачиваться.

Попробуем теперь описать “языки”, которые поддерживает, скажем, относительно современный дистрибутив Linux “из коробки”. Оказывается, что таковых – довольно много. Для начала – какое-то подобие машинного языка в исполняемых файлах. Затем – C (и даже C++) с POSIX и еще некоторыми расширениями. Обычно доступен и какой-нибудь “скриптовый” язык – типа Perl, Python – да хоть Emacs Lisp! Нельзя забывать и о языке командной строки, и о языке “коротких надписей и пиктограмм”, реализованном в графическом интерфейсе пользователя.

Но все эти “языки” очень серьезно отличаются своими “базовыми” понятиями – в “машинном” языке речь идет о ячейках памяти, в C – о процедурах, переменных и структурах, в Emacs Lisp – о функциях, в командной строке – о каталогах, файлах и командах, в графическом интерфейсе – о папках и документах (несмотря на то, что рьяные линуксоиды отрицают существование последних двух понятий). Эти вещи поддерживаются в архитектуре операционной системы по-разному. Например, во всех Unix-подобных (читай “современных”) ОС “файловая система” с файлами и каталогами – одна из фундаментальных частей архитектуры. А вот документы и папки из графического интерфейса – они реализованы с помощью файловой системы. Следовательно, применительно к “относительно современному дистрибутиву Linux” абстракцию “файловой системы” следует считать более “фундаментальной”, чем абстракцию “рабочего стола”.

В некотором смысле “наиболее фундаментальные” абстракции современной операционной системы лучше всего описываются с помощью языка, который можно условно назвать “C + POSIX” (Windows API с его понятиями тоже в некоторой степени похож на него). Но, как несложно догадаться, можно объявить “фундаментальным” любой более-менее приличный язык взаимодействия человека с компьютером и его абстракции взять за основу. Вернемся к примеру с “рабочим столом”. В “оригинале” – как его видели в Xerox PARC – графический интерфейс типа “окошечки и значки” довольно сильно отлдичается от современных реализаций. На “рабочем столе” находятся значки, представляющие “папки” и “документы”. При щелчке мышкой на значок либо “документ”, либо содержимое папки показывается целиком, в виде “окна”. Вроде бы все прекрасно? Но ровно до тех пор, пока кто-то не углядит параллелей между папками и документами с одной стороны и каталогами с файлами – с другой.

Разница между каталогом и папкой, может быть, и не так ужасна – благо в развитой ФС вполне можно представить и “виртуальные папки” Windows в виде каталогоа, но вот отличия файла в смысле Unix-подобной файловой системы и документа – просто катастрофические. Например, html-файл – это документ? А является ли он документом без кучки картинок (файлы jpg, gif и т. п.)? А один и тот же текст в Word, PDF и HTML – это один документ или три разных? А кучка html-файлов, представляющих собой страничку Васи Пупкина на narod.ru – это один документ или несколько? Можно дать ответы на эти вопросы в рамках абстракции “рабочего стола” – но тогда потребуется отказаться от кучи вещей, которые существуют в “файловой системе”.

Ужасная катастрофа в области всех теоретических наработок в области операционных систем – это появление и триумф UNIX. Его довольно примитивные, расчитанные прежде всего на простоту реализации, решения стали определяющими во всех современных ОС. Более того, трудно даже помыслить “непохожую” на Unix операционную систему (за исключением разве что каких-то IBMовских динозавров). Например, замечательная концепция “обменивающихся сообщениями объектов” и весь связанный с ней объектно-ориентированный подход (в варианте Smalltalk, а не C++/Java) прекрасно ложатся на техническую реализацию в виде микроядерной ОС. Лямбда-исчисление Лиспа, одинаковое представление “программ” и “данных”, изменчивость и первых, и вторых – это лисп-машины или Emacs. Да-да, последний тоже можно и нужно называть “операционной системой”. Но “микроядро” в современном понимании превратилось в “еще одну реализацию Unix”, лисп-машины – в Emacs, появившийся в Xerox PARC прекрасный пользовательский интерфейс с метафорой “рабочего стола” – в его ужасные подобия в Windows и нынешних Linux. Все более-менее жизнеспособные идеи попросту натягиваются на порой слабо совместимые с ними принципы Unix – а затем все голосят о “дырявых абстракциях”.

Из более-менее современных ОС, предлагающих (да пусть даже и на “пользовательском” уровне) альтернативы Unix-подобной файловой системе можно назвать разве что PalmOS – с ее желанием “запихать все в базы данных”, да Apple iOS – где над “файловой системой” надругались самым беспощадным образом. Но в сравнении с теоретическими разработками начала 80-х – это маленькое изменение.

Короче говоря, восприятие Unix как “единственно правильной” операционной системы остановило всякое “экстенсивное” развитие этой области Computer Science на десятки лет. “Интенсивное” развитие – то есть попытки сделать “еще лучший Unix” продолжается, но есть ли в нем смысл – я сказать затрудняюсь.

Запись опубликована в блоге Шуры Люберецкого. Вы можете оставлять свои комментарии там, используя свое имя пользователя из ЖЖ (вход по OpenID).

Бритоголовый и С1-97

Как нам обустроить Москву, вариант 3…

…или Соединенные Штаты Московии.

Все мы знаем, что Москва это огромная и безумная агломерация. По сути, это много-много маленьких городов, объединённых в один город, и разделённых на административные округа. Вот и надо вместо двенадцати округов Москвы объявить двенадцать Московских Штатов. Соединённые Штаты Московии.

В каждом штате – свой губернатор, в каждом районе – свой шериф. Избираемый. Более того – свои законы. При существующем уровне бюрократии это вполне осуществимо.

http://stani-evileye.livejournal.com/18750.html

В комментариях вносят новые предложения:

ЮЗАО на территории от площади Гагарина до метро “Юго-Западная”- исторический оплот ученых-негуманитариев, а также студентов и преподавателей соответствующих вузов. Марихуана и стволы вещи, конечно, хорошие, но лучше снять все ограничения этического характера на научные опыты в этом штате. Тогда туда устремятся все гики города!

А в Капотне устроим Маленький Техас.

Надо подумать над проблемой рабовладельческих штатов, строительстве невольничьих рынков в Выхино и Перово (с облавами на гастарбайтеров в проходящих поездах) и неминуемого создания Конфедеративных Штатов Московии.

По-моему, заслуживает внимания :)

Запись опубликована в блоге Шуры Люберецкого. Вы можете оставлять свои комментарии там, используя свое имя пользователя из ЖЖ (вход по OpenID).

Бритоголовый и С1-97

Природа не терпит пустоты

[info]yuss вслед за Григорием Тарасевичем удивляется вопросам и ответам на ЕГЭ по обществознанию. Мне кажется, что причина – в вынесенном у [info]yuss в первый абзац утверждении:

по большому счету школа — это не комбинат по производству людей, умеющих ставить галочки в правильном месте теста

К сожалению, оба аналитика “отравлены ядом советской пропаганды”. Может быть, когда-то декларируемые задачи всеобщего образования и отличались от “воспитания грамотного потребителя”, но сегодня – имеем приблизительно вот это. А “грамотный потребитель” просто обязан знать ровно ту идеологию, которая удобна для так называемой “элиты”.

Ровно для формирования этой самой идеологии в школах и введен предмет “обществознание”. Думаю, что если переименовать его в “идеологическую обработку” – то суть не изменится. Собственно, любая идеология – это и есть “странный гибрид социологии, философии, права, экономики и психологии”. И содержание обязательной, школьно-ЕГЭшной идеологии, вполне ясно. Нельзя допускать самой мысли о том, что конфликты – это “движущая сила истории”, тем более – мысли о “единстве и борьбе противоположностей”. Нельзя даже упоминать, что есть точка зрения, альтернативная высказанной в ЕГЭшной методичке.

Интересно, что идеологическая обработка продолжается и в ВУЗах. И занимаются ей не абы кто – а люди, “до революции” бывшие преподавателями всякого там марксизма-ленинизма. Вспоминается, например, курс социологии для естественнонаучных факультетов МГУ. Одна из центральных и важнейших тем в нем – работа Макса Вебера “Протестантская этика и дух капитализма”. Но тщательно пересказывая это труд – лектор ни разу не упоминает, что эта работа – своего рода “ответ” на марксистский исторический материализм. Вообще, существование прямо противоположной точки зрения попросту не затрагивается. Впечатление такое, что расчет идет на “эффект утенка” – первая теория, с которой познакомят студента, и должна сформировать его мировоззрение.

Эта игра называется “младенец и черт”. В роли младенцев – школьники и студенты, в роли чертей – превратившиеся в проводников современной идеологии знатоки марксизма. Не надо говорить, что в конституции есть статья 13 – об идеологическом многообразии. “Обязательная” идеология возникла в вакууме, образовавшемся после своеобразного запрета марксизма-ленинизма – и в полном соответствии с теорией Маркса, обслуживает интересы пресловутых правящих классов.

Запись опубликована в блоге Шуры Люберецкого. Вы можете оставлять свои комментарии там, используя свое имя пользователя из ЖЖ (вход по OpenID).

Бритоголовый и С1-97

Лингвистическое

Сегоднящная запись [info]infowatch заставила вспомнить одну идейку. Всякие лингвисты-идеалисты где-то с середины XIX века активно придумывают “универсальные и международные” языки. Практически все эти языки так или иначе основаны на правилах и словаре “условного европейского языка” – и если для “регионального” языка (типа Словио) это приемлемо, то “международный” язык просто не может быть столь европоцентричным, как, скажем, эсперанто. Внесу свое дилетантское предложение по “универсально понятному всемирному языку” – насколько я знаю, на такое не замахивался ни один лингвист.

Фактически, основная проблема для “правильно устроенного” искуственного языка – это словарь. Вряд ли можно указать набор корней для каких-то основных понятий, который будет равно близок и европейцу, и негру из Африки, и представителю народности мяо-яо. Соответственно, словарь должен быть минимален – и в его качестве идеально подойдут полтора десятка русских “матерных” корней (”матерных” в кавычках, потому что само по себе слово “хуй” ничего, кроме мужского полового члена, не значит – а руганью его сделало лишь определенное ханжество – но это отдельная тема). Добавим несколько русских же суффиксов – и получим язык, которым можно выразить огромное разнообразие понятий – от бытовых диалогов:

— Хуйни хуйни. (Положи каши)
— Хуйня — хуйня. (Каша невкусная)
— Хуйня, хуйни. (Ничего страшного, положи)
— Хуйну, хуйня. (Не волнуйся, уже кладу)
— Хуйня хуйня! (Действительно невкусная!)
— Хуйня? Хуйня! (Невкусная? Да ладно, поешь!)
— Хуйня, хуйну. (Ладно, я не привередливый)
— Хуйни, хуйни. (И то верно, поесть-то надо)

до технических понятий:

weber-carb

Замечу, что этим нехитрым словарем владеет все двухсотпятидесятимиллионное население бывшего СССР, а практика показывает, что его быстро в достаточной степени осваивают носители практически всех языков. По рассказам советских военных специалистов – негры-людоеды в Африке прекрасно осваивали переложенные на мат такие сложные литературные произведения, как наставление к автомату Калашникова или Строевой Устав Вооружённых Сил СССР. Из менее африканско-людоедских примеров – прекрасно иллюстрирует ситуацию нынешний Израиль, где все население ругается между собой исключительно по-русски.

Но легкоусвояемый словарь – это не такое большое преимущество, особенно когда речь заходит о многомиллиардном населении Юго-Восточной Азии. И здесь мы обнаруживаем, что матюги – это типичный “тоновый язык”. Попробуйте прочитать диалог про кашу (можно по ролям). Заметьте, что для того, чтобы не потеряться в “хуйне”, приходится активно изменять интонацию. Но это понятно и европейцу – для которого она означает различные эмоции, и азиату – который привык выражать интонацией значение слов. Из-за практически полного отсутствия словаря слово “Хуйня!”, прочитанное как в шестой строке, означает и вполне определенные эмоции, и что-то типа “да ладно!”.

Кстати, тут видим и неадекватность буквенного письма – иначе не пришлось бы добавлять ремарку “как в шестой строке”. Очевидно, что и графику придется устраивать по азиатскому образцу, с иероглифами.

Короче, лингвисты, ваша очередь.

Запись опубликована в блоге Шуры Люберецкого. Вы можете оставлять свои комментарии там, используя свое имя пользователя из ЖЖ (вход по OpenID).

Бритоголовый и С1-97

Жратва, выборы, стихи Маяковского

В твиттере @golovlev увидел фотографию пачки пельменей с надписью “Голосую за мясо в пельменях!” Ну, сыграли рекламщики на всероссийской выборной истерии, ну, имеют право.

Картинка на пачке показалась знакомой – оказывается, что такую рекламную акцию устроил производитель пельменей под маркой “От Ильиной”, примерно таких:

election-pelmeni

Особенно классно эта фраза про “мясо в пельменях” звучит, если учитывать то, что в последний год это производитель скурвился, и пельмени стали куда хуже. Нет, это еще не “Мириталь”, и не “мясорастительный продукт категории Г” – но тенденция, можно сказать, заметна на вкус. В принципе, хорошая иллюстрация к отечественным голым сованиям.

Но вообще, тема мне понравилась. Например, как вам производитель всяких там бубликов и сушек под названием “Демократическая республика”? Слоган уже готов:

Кому бублик,
  кому дырка от бублика –
Это и есть
  ”Демократическая республика!”

По-моему, вполне ништяк.

Запись опубликована в блоге Шуры Люберецкого. Вы можете оставлять свои комментарии там, используя свое имя пользователя из ЖЖ (вход по OpenID).