Библиотека сайта rus-linux.net
Переводы и статьи Николая Ромоданова за 2012 год
Название статьи/перевода, краткая аннотация |
29.10.2012 Vivek Shangari, перевод: Н.Ромоданов,
В этой статье автор рассказывает о средствах программирования графического пользовательского интерфейса, имеющихся в языке Lisp. В этой, завершающей статье из серии статей о языке Lisp, автор подводит итог своего изложения свойств и особенностей этого функционально ориентированного языка программирования. |
В этой статье продолжается описание языка Lisp - рассказывается о возможностях объектно-ориентированного создания программ, предлагаемых этим языком. Сравниваются функциональные возможности и объектно-ориентированные возможности языка Lisp. |
В этой статье продолжается рассказ о том, как в среде языка Lisp используются макросредства. В частности рассказывается о возможностях выполнения дейстивий на этапе макроподстановки. |
В данной статье продолжается рассказ об особенностях использования различных методик в среде языка Lisp. В частности, рассказывается о том, как в Lisp следует использовать замыкания, позволяющие управлять обменом данных между отдельными запусками одних и тех же или различных программ. |
Это уже пятая статья в серии статей о языке LISP. В ней рассказывается об использовании макросов. Механизм макросредств, имеющийся в языке Lisp, является мощным и естественным расширением языка. |
В этой главе подробно рассказывается о системе Berkeley DB, которая состоит из набора модулей, каждый из которых воплощает в себе философию Unix «хорошо делать что-то одно». Описывается архитектура системы – как начиналась работа над системой, что разрабатывалось и что получилось и почему. Вкратце рассмотрена эволюция кода длительно существующих программных проектов. Разработка Berkeley DB велась в течение более двух десятилетий, а это неизбежно предполагает, что в ее основе лежал хороший проект. |
Авторы этой главы: Bill Hoffman и Kenneth Martin , перевод сделан Н.Ромодановым, "CMake" |
В этой статье обсуждается использование LISP в конкретных разработках, рекурсия в LISP, поясняются понятия атомов, списков и предикатов, рассматривается функция присваивания. |
Это третья статья в серии, которая посвящена языку Lisp. В ней рассказывается о том, как появился первый интепретатор языка Lisp, а также на примерах показывается, как в этом языке определяются переменные и функции и что вам нужно сделать в случае, когда вам нужны рекурсивные функции. |
Эта вторая статья из серии статей о языке Lisp расказывает о принципах программирования снизу-вверх, применения быстрого прототипирования и знакомит с основами языка. Расказывается об атомах, списках, фукциях и s-выражениях, которые используются в языке Lisp. |
В настоящее время только очень небольшой процент самых элитных программистов пользуются языком Lisp, так что если вы хотите быть в числе избранных, то эта серия статей для вас. В первой статье рассказывается о месте языка Lisp среди других языков программирования, объясняется, как установить и запустить пакет CLISP, и на примере написания простой программы угадывания чисел показывается, что, собственно, может представлять из себя программа на языке Lisp. |
"Архитекторы просматривают тысячи зданий и строений в процессе своей учебы и изучают сотни критических статей об этих постройках, написанных мастерами. В отличие от архитекторов разработчики программного обеспечения хорошо знают не больше дюжины больших программ, причем чаще всего написанных ими самими, и никогда не изучают наилучшие программы, написанные до них. Как результат, они повторяют чужие ошибки, вместо того, чтобы использовать чужие достижения. Наша цель - изменить эту ситуацию. В этих двух книгах авторы четырех дюжин приложений с открытым исходным кодом рассказывают о структуре созданных ими программ и о том, как эти программы создавались. Каковы их основные компоненты? Как они взаимодействуют? И что открыли для себя их создатели в процессе разработки? В ответах на эти вопросы авторы статей, собранных в данных книгах, дают вам уникальную возможность проникнуть в то, как они творят. Если вы начинающий разработчик и хотите понять, как работают ваши более опытные коллеги, эта книга может послужить отличным началом. Если вы уже опытный разработчик и хотите узнать, как мэтры решают сложные проблемы разработки, эта книга может вам помочь." Сегодня мы публикуем перевод одной из глав первого тома книги. Автор этой главы: Chet Ramey, перевод сделан Н.Ромодановым, "Командная оболочка Bourne-Again Shell" |
В статье предложено пять различных способов применения Puppy Linux: в качестве гостевой ОС, для запуска ретро-игр, для восстановления системы после сбоя, в качестве замены SmartTV и для разработки ПО "на лету". |
До недавнего времени в Linux практически не существовало больших крупномасштабных разработок, касающихся социальных медиасредств. Однако по мере того, как у более широкой аудитории рос интерес к использованию Linux на рабочем столе, многие разработчики начали прилагать усилия по созданию более удобных приложений для социальной среды. В данной статье описывается пять лучших современных медиаприложений, которые можно использовать в Linux. |
У каждого пользователя Linux рано или поздно возникает следующий вопрос, задаваемый при администрировании рабочей станции или сервера - "Почему в Linux используется вся оперативная память, хотя никакой большой работы не выполняется?". Есть еще один вопрос, который обычен для многих системных администраторов Linux - "Почему команда free показывает память swap и почему у меня так много свободной оперативной памяти?", так что исследование SwapCached, которое представлено в этой статье, может оказаться полезным, либо, по крайней мере, ознакомит вас с информацией об управлении памятью в системе Linux. |
AppArmor является важным элементом безопасности, который по умолчанию включен умолчанию в Ubuntu начиная с версии Ubuntu 7.10. Тем не менее, AppArmor работает в фоновом режиме, поэтому Вы можете не знать, что это такое и что AppArmor делает. |
Структура файловой системы в Linux и в других UNIX-подобных операционных системах определяется стандартом Filesystem Hierarchy Standard (FHS). Однако в файловых системах Linux также есть некоторые каталоги, которые еще не определены в этом стандарте. В этой статье приводится краткое описание структуры каталогов системы Linux. |
В этой статье, посвященной программированию сокетов, мы рассмотрим протокол Stream Control Transmission Protocol (SCTP). Он похож как на протокол TCP, так и на протокол UDP и в нем есть некоторые черты обоих этих протоколов. Он ориентирован на передачу сообщений и гарантирует надежную последовательную их доставку. Протокол SCTP можно использовать сразу в нескольких сетях, т. е. использовать более одного адреса IP с каждой стороны соединения. |
Протокол UDP, User Datagram Protocol — протокол пользовательских датаграмм, является протоколом без установления соединения. Это означает, что вы перед тем, как начать передачу данных (например, тройного подтверждения для TCP), соединение не устанавливаете; вы просто отправляете данные в виде датаграммы на требуемый адрес. Именно поэтому мы называем этот протокол ненадежным, поскольку мы не знаем или нам все равно, достигла ли датаграмма получателя или нет. |
В этой части серии мы узнаем, как работать с несколькими клиентскими программами, подключенными к серверу. |
Ранее мы создали простой сервер и простую клиентскую программу, в которых использовался интерфейс прикладного программирования Socket API. На этот раз мы сначала начнем с программы, а затем объясним, что было сделано. Итак, запустите свою систему и приготовьтесь углубиться в программировании сокетов. |
В этой серии статей, передназначенных для новичков сетевого программирования (знание языка C является обязательным условием), мы узнаем, как с помощью интерфейса прикладного программирования Socket API системы UNIX создавать сервера и сетевые клиентские программы. Мы начнем с создания простых программ типа "клиент-сервер", а затем попробуем сделать что-нибудь более сложное. Мы также попытаемся понять, как работают различные сервера. |
"Internet Of Things" - это не еще одно умное слово, а новое центральное понятие, обозначающее распространение устройств малой мощности, подключенных к интернету, в которых для общения с нашими компьютерами и серверами используются беспроводные сети. |
OpenRelief - это новый проект, направленный на создание недорогих автоматических планеров, управляемых дистанционно, с помощью которых можно было бы собирать информацию о разрушениях в пострадавших от стихийных бедствий труднодоступных районах. |
Linux и FOSS являются ключевыми игроками в области науки и исследований, и вместе они широко используются в крупнейших научно-исследовательских проектах в мире. В этой заметке описаны четыре проекта, в которых рассказано о четырех различных способах использования Linux в крупномасштабных исследованиях. |
Один из способов автоматического монтирования дисков NTFS является редактирование таблицы fstab, но для начинающих пользователей Linux этот способ может оказаться сложным. Альтернативный способ состоит в использовании графического инструментального средства, называемого ntfs-config. |
Веб-камеры - это круто. Действительно, нет предела тому, что вы можете сделать с веб-камерой. Сейчас камера, может быть, уже не так интересна, как это было раньше, но это, по-прежнему, одно из самых полезных устройств, которые у меня есть. |
В этой статье демонстрируются различные варианты взаимодействия с модулями Linux (динамически загружаемыми и выгружаемыми драйверами), например, с получением доступа к переменным модуля, вызовом функций модуля и передача в модуль параметров. |
В этой статье демонстрируется создание и использование файлов в директории виртуальной файловой системы /proc. |
В этой статье рассматривается методика создания жесткого диска в оперативной памяти и проводятся эксперименты с его разделами, форматированием и другими низкоуровневыми операциями, выполняемыми на жестком диске, изучаются основы драйверов блочных устройств, очереди запросов и их обработка. |
Эта статья познакомит вас с внутренним устройством жесткого диска. |
В этой статье продолжается обсуждение темы предыдущих двух статей, а именно подробно рассматривается последний этап - передача данных в устройство USB и из устройства USB с использованием нашего первого USB драйвера для Linux. |
В этой статье рассматриваются категории источников / приемников данных устройств USB и набор структур, в которые драйвер хост контроллера USB заносит информацию об этом устройстве. |
Для того, чтобы самостоятельно написать драйвер USB, потребуется узнать много всего о протоколе USB: конфигурацию устройства, интерфейсы, конвейеры передачи данных, четыре типа передачи данных, а также многое другое из спецификации устройств USB. Эта статья поможет вам начать писать ваш первый драйвер USB в системе Linux. |
Отладка в пространстве ядра отличается от отладки приложений в пользовательском пространстве, когда у нас в нижнем слое работает операционная система, а над ней есть оболочка или графический интерфейс для запуска отладчика (например, отладчика gdb и отладчика data display debugger - ddd). Но есть интересный способ отладки в пространстве ядра с использованием отладчика kgdb, который, начиная с ядра 2.6.26, является частью ядра. |
Операция ввода/вывода (кратко - ioctl) является общей операцией или системным вызовом, который используется в большинстве драйверов различных категорий. Это один из самых универсальных системных вызовов. В этой статье, которая является частью серии статей о драйверах устройств в Linux, рассказывается о типичной реализации ioctl() и ее использовании в Linux. |
В этой статье продолжается обсуждение доступа к аппаратным средствам в Linux. В отличие от большинства других архитектур, на платформе x86 есть дополнительный механизм доступа к аппаратным средствам - прямое отображение ввода/вывода через так называемые порты. Поскольку это дополнительный механизм доступа, для него есть дополнительный набор инструкций x86 (на ассемблере/в машинном коде). В статье рассказано, как получить доступ к портам и в качестве примера рассмотрено прграммирование мигающего светодиода. |
В этой статье рассмотрены общие архитектурно-прозрачные принципы взаимодействия с аппаратным обеспечением, речь идет о доступе к отображаемым в память устройствам в Linux без учета каких-либо конкретных особенностей устройств. Рассказано, как получить схему отображения памяти (карту памяти), о доступе к видеопамяти в стиле "DOS". |
В этой статье рассказано о том, как производить чтение из файла устройства и запись в этот файл. |
В этой статье рассказано о том, что файлы устройств можно создавать автоматически с помощью демона udev. А также о втором шаге подключения файла устройства к драйверу устройства - связывании операций над файлом устройства с функциями драйвера устройства. |
В этой статье речь идет о различных понятиях, относящихся к символьным драйверам и их реализации, рассматриваются понятия старшего и младшего номера устройства. |
Это статья из серии статей о драйверах устройств для Linux, в ней рассказывается об использовании журнала сообщений ядра и о расширениях компилятора GCC, используемых в ядре. |
В этой статье, которая является частью серии статей о драйверах устройств в Linux, рассказано о концепции динамической загрузки драйверов, перечислены команды, с помощью которых осуществляется управление модулями, и представлен простейший драйвер. Показан процесс сборки драйвера и методика его загрузки. |
Цель этой серии статей о драйверах Linux - рассказать об обычной технической теме так, чтобы она была интересна более широкому кругу читателей. |
В системе Linux очень важно иметь правильное время и дату, поскольку от этого зависит многое. Причем неважно, используете ли вы систему Linux на своем персональном компьютере или у вас Linux-сервер. Серверные и системные часы должны указывать правильное время. |
Yum поставляется в составе большого количества различных дистрибутивов и вы, вероятно, знакомы с этой программой управления программными пакетами. Но в этой утилите есть много такого, что делает Yum интересным. Давайте взглянем на некоторые из достаточно редко используемых функций Yum. |
Основное правило администратора Linux состоит в том, что вы должны работать с графическим интерфейсом на сервере только в случае, когда это вам абсолютно необходимо. Поэтому хотя программа с графическим интерфейсом и может отлично подходить для базовой проверки состояния сервера, если вы хотите знать, что происходит на самом деле, отключите графический интерфейс и воспользуйтесь инструментальными средствами, работающими из командной строки Linux. |
В настоящем разделе приведено описание примеров и программ, используемых в качестве бенчмарков. Даны описания типов памяти, имеющихся в наличии в настоящее время, программы oprofile, которую можно использовать для профилирования программ, использующих в своей работе кэш-строки, а также библиотеки libNUMA, которую можно использовать не только при работе с системами NUMA, но также и при работе с обычными многопоточными и многопроцессорными системами. В конце раздела приведена обширная библиография. Тем самым завершен перевод на русский язык обширной статьи Ульриха Дреппера "Что каждый программист должен знать о памяти" |
В данном разделе статьи, посвященной подробному описанию особенностей компьютерной памяти, рассказывается о некоторых особенностях устройств NUMA, а затем рассматриваются средства поддержки, предлагаемые в ядре Linux для устройств NUMA. |
Вторая часть публикации, посвященной подробному описанию оперативной памяти современных компьютеров. В этой части рассказывается о кэш-памяти, ее видах, о ее использовании при обработке данных различных размеров. Приведены интересные графики, иллюстрирующие загрузку и эффективность использования кэш-памяти различных уровней. |
Если вы проводите много времени за клавиатурой, то, не сомневаюсь, вы много слушаете интернет-радио. Radio Tray является относительно новым Linux приложением, с помощью которого вы легко сможете настроиться на ваши любимые радиостанции. |
Готовитесь к сертификационному экзамену по Linux? Помогаете детям со школьными занятиями? В любом случае пакет Anki может помочь запомнить учебный материал. Гибкая и бесплатная обучающая система базируется на концепции обучающих карточек, но с поддержкой аудио, видео и многого другого, причем программа может адаптироваться к вашему стилю обучения. |
Превратить ваш общедоступный сервер в интернет-радио, которое будет доступно с персонального компьютера, ноутбука или мобильного телефона очень просто, и самыми популярными решениями являются пакеты Ice cast и shoutcast. В данной статье мы расскажем, как вы сможете настроить радиовещание в сети интернет с использованием пакета shoutcast. |
Дополненная реальность (Augmented Reality - AR) является одним из тех туманных компьютерных терминов, которые у двух любых поставщиков могут означать совершенно разные вещи. Давайте посмотрим, что предлагает открытое ПО, чем эти приложения отличаются от проприетарной дополненной реальности и каковы тенденции. |
Задумывались ли вы, как получить доступ к Facebook из терминала? В приложении fbcmd вам будет предоставлен интерфейс командной строки для доступа к Facebook. |
Если вы использовали систему UNIX или какую-либо другую систему, производную от нее, вы, вероятно, задавались вопросом, почему в файловой системе присутствуют директории /bin, /sbin, /usr/bin, /usr/sbin. У вас, возможно, даже есть объяснение существования каждого из этих директориев. Однако, дело в том, что все эти объяснения придумали уже после того, как эти директории были созданы. Оказывается, настоящие причины исключительно просты. |
Еще в 2002 году в MIT решили, что необходимо начать преподавание курса по инженерии операционных систем. В рамках этого курса студенты должны были написать экзоядро (exokernel) для архитектуры x86. |
Как только вы начинаете выполнять пользовательские программы, вам для того, чтобы ограничить используемый набор инструкций, потребуется перейти из режима ядра в пользовательский режим. |
В конце концов, большинство людей хотят, чтобы их ОС исполняла (вроде бы) сразу несколько задач. Это называется многозадачностью, и, на мой взгляд, это одно из последних препятствий перед тем, как вы сможете назвать ваш проект "операционной системой" или "ядром". |
В этой главе мы собираемся приступить к работе над нашей виртуальной файловой системой (VFS). В качестве боевого крещения мы также будем реализовывать диск initial ramdisk с тем, чтобы могли загружать в свое ядро конфигурационные файлы или исполняемые модули. |
Для того, чтобы должным образом реагировать на те ситуации, которые вы не предусмотрели на этапе проектирования, и чтобы сократить размер вашего ядра, вам нужен некоторый механизм динамического выделения памяти. |
В этой главе мы собираемся добавить к системе страничную организацию памяти. Это режим работы с памятью предназначен для двух целей - защите памяти и реализации виртуальной памяти (которые на практике неразрывно взаимосвязаны). |
В этой главе мы собираемся изучить запросы на прерывания (IRQ) и программируемый интервальный таймер (PIT). |
GDT и IDT являются таблицами дескрипторов. Это массивы флагов и однобитовых значений, описывающих работу либо системы сегментации (в случае GDT), либо таблицу векторов прерываний (IDT). |
В этом руководстве показано, как запрограммировать простую UNIX-подобную операционную систему для архитектуры x86. В качестве языка программирования выбран язык C, который дополняется языком ассемблера там, где это требуется. Цель руководства - рассказать вам о разработке и реализации решений, используемых при создании операционной системы, которую мы создаем, монолитную по своей структуре (драйверы загружаются в режиме модулей ядра, а не в пользовательском режиме), поскольку такое решение более простое. |
В этой главе описываются приложения, с помощью которых создаются файлы документов полиграфического качества. |
Переводы и статьи Николая Ромоданова, опубликованные в 2011 году и 2010 году и 2009 году.