Показаны сообщения с ярлыком UNIX. Показать все сообщения
Показаны сообщения с ярлыком UNIX. Показать все сообщения

18 ноября, 2008

vi основные команды

vi основные команды

Оригинал: .pdf .odt

Перевод: .pdf .odt


Условия распространения Creative Commons Attribution-ShareAlike 2.5 license
©Copyright 2006-2005, Free Electrons.

15 ноября, 2008

Crosstool - сборка и тестирование Toolchains

Вот такую матрицу-отчет сгенерила crosstool, полная её версия здесь.

Сборка кросс-toolchain'а gcc/glibc для встраеваемых систем есть пэйнфул процесс. Программа (набор скриптов) Crosstool, написанная Dan Kegel, поможет найти рабочие комбинации различных версий gcc, glibc, binutils и заголовочных файлов ядра(см. рисунок выше).
  • Домашняя страница проекта: http://kegel.com/crosstool/
  • Также смотреть: uClibc chaintools http://free-electrons.com/community/tools/uclibc
  • Have fun! http://www.aleph1.co.uk/armlinux/docs/toolchain/toolchHOWTO.pdf

Под ARM:
  • http://www.codesourcery.com/gnu_toolchains/arm/
  • ftp://ftp.handhelds.org/projects/toolchain/
Под MIPS:
  • http://www.linux-mips.org/wiki/Toolchains

Tools list:

  • Crosstool­-ng
  • Buildroot
  • Scratchbox
  • OpenEmbedded
  • PTXdist
  • LTIB
  • Home made tools
  • Firmware Linux
  • Gentoo embedded
  • ELDK
  • другие? коммент.


Спасибо.

02 ноября, 2008

Архитектура ядра UNIX


На диаграмме ниже показаны различные модули ядра и их свзяи. Два главных компонента ядра: файловая подсистема (file subsystem) и подсистема управления процессами (process control subsystem). Также здесь видно три уровня: user, kernel и hardware levels. Интерфейс системных вызовов (system call interface) и библиотеки(libraries) разделяют пользовательский уровень и уровень ядра. Системные вызовы обычно представлены в виде вызовов функций в С программах, библиотеки собирают эти вызовы в примитивы, необходимые для работы ОС.



Блочная диаграмма ядра UNIX

Файловая подсистема управляет файлами, выделяет место под них, управляет свободным пространством, контролирует доступ к файлам, получает данные для пользователей. Процессы взаимодействуют с файловой подсистемой через специфический набор системных вызовов:

  • open открывает файл для чтения и записи
  • close
  • read
  • write
  • stat запрашивает атрибуты файла
  • chown изменяет запись о том, кто владеет файлом
  • chmod управляет доступов к файлу

Файловая подсистема получает доступ к файлам, используя механизм буферизации (buffering mechanism), который устанавливает канал между ядром (kernel) и устройством хранения (storage device). Механизм буферизации взаимодействует с драйвером устройства блочного ввода/вывода (block I/O device) для того, чтобы инициировать перемещение данных в/из ядра. Драйвер устройства - это модуль ядра, который контролирует работу периферийных устройств.
Файловая подсистема также может напрямую взаимодействовать с "сырыми" ("raw") драйверами ввода/вывода без привлечения механизма буферизации. Raw устройства также называют символьными (character). Это все устройства, которые нельзя отнести к блочным.


Подсистема управления процессами


Подсистема управления процессами отвечает за синхронизацию процессов (process synchronization), межпроцессорное взаимодействие (interprocess communication), управление памятью (memory managment) и планировкой процессов (process sheduling). Файловая подсистема и подсистема управления процессами взаимодействуют при загрузке файла в память для его запуска (подсистема процессов прочитывает исполняемый файл в память перед его исполнения).
Некоторые системные вызовы для управления процессами:

  • fork создает новый процесс
  • exec накладывает образ программы на текущий процесс
  • exit заканчивает запущенный процесс
  • wait синхронизирует исполнение процесса с exit предыдущего fork-нутого процесса
  • brk контролирует размер выделенной на процесс памяти
  • signal управляет откликом процесса на экстраординарные события


Модуль управления памятью (memory managment module) управляет выделением памяти. Если системе не хватает физической памяти для всех процессов, ядро перемещает их между основной и вторичной памятью, и так все процессы имеют возможность быть запущенными.

Планировщик (sheduler) выделяет CPU под процессы. Он распределяет запуск процессов пока они добровольно (произвольно) не освободят CPU на/во время ожидания ресурса, либо пока ядро не выгрузит их по истечении кванта времени. После планировщик выбирает процесс с наибольщим приоритетов для его запуска; первичный процесс будет запущен опять тогда, когда он будет являться процессом с наивысшим приоритетом.
Существует несколько видов межпроцессорного взаимодействия, начиная с асинхронной передачи событий (asynchronous signaling of events), заканчивая синхронной передачей сообщений между процессами.


Управление аппаратным обеспечением


И наконец, управление аппаратным обеспечением (hardware control) ответственно за обработку прерываний (handling interrupts) и общения с машиной. Такие устройства как диски или терминалы могут прерывать CPU во время выполнения процесса. В таком случае ядро может продолжить исполнение прерванного процесса после обслуживания прерывания. Прерывания не обслуживаются специальными процессами, а специальными функциями ядра, вызываемыми в контексте текущего запущенного процесса.


Литература:

  • The Design Of the Unix Operating System by Maurice J. Bach, 1986


01 июля, 2008

Стандарты и концепты системного програмирования в UNIX

Определение понятий - это начало ссылок.
Сократ

Ключевые моменты в современном UNIX программировании:
системные вызовы (syscalls), библиотека C (glibc), коллекция компиляторов (gcc), программные интерфейсы (APIs), бинарные интерфейсы (ABIs), ..[добавить нужное]

== стандарты: POSIX, SUS, C ==

UNIX стандарты.

Системное программирование в UNIX - древнее искусство. За 39 лет здесь не обошлось без хаоса и UNIX войн(расхождение линий AT&T и Berkley University в 1979, лишение прав компании Bell в 1984). Чтобы предотвратить хаос, группы выявления стандартов описали системные интерфейсы в официальных стандартах.
POSIX и SUS являются стандартами C API интерфейсов UNIX-подобных ОС.
В 1985 группа IEEE начала работать над стандартизацией интерфейсов системного уровня UNIX систем. Ричард Столлман (RMS) предложил название для даного стандарта: POSIX [произношение pahz-icks, как позитив]. Первый вариант POSIX появился в 1988: IEEE Std 1003.1-1998. (ISO, IEC приняли эти стандарты как ISO/IEC 9945). Версии стандартов описаны здесь.
The Open Group (объединение X/Open и OSF) также принимали участие в разработке стандартов для UNIX. Их главный труд Single UNIX Specification (SUS) (1994). Сегодня SUSv3(UNIX 03, 2002) включен в POSIX (IEEE Std 1003.1-2001).

C стандарты.

История раннего С описана в статье Д. М. Ритчи "The Development of the C Language, 1993".
Опубликованная впервые в 1978 году книга Денниса Ритчи и Брайана Кернигана "The C Programming Language" ("белая книга") стала неформальным стандартом языка, известным как K&R C, или classic C (классический С). В 1983 году ANSI сформировал комитет (X3J11), целью которого была разработка стандарта официальной версии C (хотя реализация С для UNIX скорее становится стандартом де-факто) и включить некоторые особенности из нового языка C++. Процесс был длительным, стандарт был принят в 1989 году. В 1990 ISO приняло стандарт, основанный на ANSI C, с мелкими модификациями (добавлены литеры signed, void). В 1999 году ISO представило новый стандарт на C (ISO C99), в который были добавлены новые возможности: inline функции, типы (_Bool, _Complex, _Imaginary), комментарии в стиле C++, новые библиотеки функций.


== концепты: файлы, процессы, сигналы, IPC ==

Файлы

еще о файлах (начало здесь; ls([2,3]), stat.h)
..прежде чем получить доступ к файлу для чтения, записи, обработки или др. он должен быть открыт. Открытый файл указывается через уникальный дескриптор, соответствующий метаданным, ассоциированным с самим файлом. Этот дескриптор обрабатывается целым числом (тип int в C) называемым дескриптором файла(file descriptor, fd). fd разделены с пространством пользователя (user space), и используются пользовательскими программами напрямую для доступа к файлу.
Длина файлов ограничена (и только) размерами типов C (C types). Однако файловые системы(FS) могут накладывать свои ограничения, например, укрощать максимальную длину.
Один файл может быть открыт не один раз, причем даже тем же процессом. Каждому открытому экземпляру файла присваивается уникальный дескриптор (файловый дескриптор). Процессы могут совместно использовать fd, позволяя единственному дескриптору использоваться более чем одним процессом.
inode (information node) включает в себя метаданные ассоциированные с файлом, включая местоположение данных файла.
C точки зрения безопасности доступ к файлу через inode обременителен, поэтому файлы обычно открывают из пространства пользователя (user space) по имени (не по номеру inode!). Имя (в человеко-читаемой форме) и inode файла образуют пару, называемую ссылкой (link).
Когда ядро обращается к файлу оно проходит каждое вхождение директории (directory entry, dentry), начиная с /, то есть (для /home/va1e/unix.prog.01.st) сначала получает inode директории home, входит сюда, получает inode va1e, входит сюда, и, наконец, получает inode unix.prog.01.st. Эта операция называется развязкой пути (directory resolution). Для хранения результатов развязки (dir resolution) ядро использует кэш вхождений (dentry cache). Это позволяет быстро обращаться к файлам в будущем. Хотя и директории обрабатываются как обычные файлы, они должны управляться специальным набором системных вызовов.
Специальные файлы - это объекты ядра. И они являются файлами в соответствии парадигмы "всё - файл". Специальными файлами могут быть: файлы UNIX устройств (блочных устройств, символьных устройств [каждое устройство имеет свой файл]), именованные каналы (FIFO, механизм межпроцессорного взаимодействия [IPC]), UNIX сокеты (в отличие от IPC, сокеты позволяют взаимодействовать двум различным процессам не только на одной машине). Как и обычные файлы, специальные создаются путем системных вызовов.

Процессы

Следующим за файлами по значимости в UNIX идут процессы.
Процесс - это запущенный объектный код. Пример: запущенная в своем адресном пространстве программа. Процесс начинает свою жизнь с запуска объектного кода в исполняемом формате, который содержит метаданные, куски кода, загружаемые в память(например, инициализированные переменные С) и данные. Процесс также связан с системными ресурсами(аппаратное обеспечение, сетевые соединения, таймеры, сигналы, открытые файлы, механизмы межпроцессорного взаимодействия), которые управляются ядром; процесс работает с ресурсами только через системные вызовы. Ресурсы, их данные, записываются в дескриптор процесса внутри ядра.
Каждый процесс состоит из одной или нескольких нитей (threads), или единицы активности в процессе, которая отвечает за состояние процесса. Нить состоит из стэка (структуры данных), состояния процессора, и текущего размещения в объектном коде.
Каждый процесс обозначется уникальным целым числом - идентификатором процессы (process ID, PID) [ps(1)]. Дерево процессов(process tree) начинается с первого процесса init(8) [man 8 init]. Новый процесс создается системным вызовом fork(), который создает копию вызываемого процесса. Оригинальный процесс называется родительским (parent), новый - наследованным (child).

Сигналы

Сигналы (Signals) - это механизм односторонней передачи асинхронных сообщений. Сигнал может быть послан от ядра к процессу, от одного процесса другому. Обычно сигнал сообщает процессу о событии, например, аварийное завершение, или нажатие пользователем клавиш C-c. Число сигналов ограничено архитектурой. Каждый из них представлен числовой константой и именем. Например, SIGHUP (signal hangup) имеет значение 1 на x86 архитектуре.

IPC

Одной из важнейших работ ОС является возможность обмена информацией между процессами и предупреждение их о различных событиях(IPC). Многие механазмы IPC описаны в UNIX стандартах, указанных выше.


Список литературы:
1. SUSv3 [http://www.unix.org/version3/]
2. Стивен Прата. Язык программирования С. Лекции и упражнения. 2006, Вильямс
3. D. Lewine. POSIX Programmer's Guide: Writing Portable UNIX Programs. 1992, O'Reilly & Associates
4. R. Love. Linux System Pogramming. 2007, O'Reilly.

27 марта, 2008

Особенности файловой системы UNIX (BSD, Linux, Solaris, Mach, Hurd, Plan9)

Все, что ни есть в системе UNIX, - это файл. Файл - это последовательность байтов (1 байт = 8 бит = 1 символ). Магнитные ленты, почтовые сообщения, символы, вводимые с клавиатуры, вывод принтера, поток данных в программном канале - каждый из этих файлов представляет собой последовательность байтов по отношению к системе и ее программам.

  • Что в файле?
  • Каталоги и имена файлов
  • Права доступа
  • Команды
  • Иерархия файловой системы


Что в файле?
Расширение имени файлов не имеет значения для типа файла.
Команда file делает предположение о типе файла.
~$ file /bin /bin/ed /usr/src/cmd/ed.c
/bin: directory
/bin/ed pure executable
/usr/src/cmd/ed.c c program text

file читает несколько сотен байт и ищет в них ключевые последовательности символов
например исполняемая программа начинается с "магического числа" в двоичном представлении. Команда od без параметров выводит дамп файла 16-битными порциями, позволяя увидеть это "магическое число"
~$ od /bin/ed
000000 000410 025000 000462 011444 000000 000000 000000 000001
000020 170011 016600 000002 005060 017776 010600 162706 000004
..

Восьмиричное значение 410 означает обычную исполняемыю программу. Заметим, что 410 не соответствует никакой ASCII-символ.

Каталоги и имена файлов
Все принадлежащие пользователю файлы имеют имена, начинающиеся с /usr/login, где login - имя вашей учетной записи, регистрационный каталог, чтобы просмотреть находящиеся здесь файлы введите cd(перенесет Вас в домашнюю директорию, если Вы еще не там); ls(1)
~$ сd; ls

команда pwd выведет имя текущего каталога
~$ pwd
/usr/login

В именнах файлов важен регистр букв, File и file - разные файлы

Права доступа
Команда ls запущенная с параметром -l, выводит, кроме основного содержания каталога, информацию о правах доступа.
~$ ls -l /etc/passwd
-rw-r--r-- 1 root 5115 Aug 30 10:40 /etc/passwd
~$ ls -lg /etc/passwd
-rw-r--r-- 1 adm 5115 Aug 30 10:40 /etc/passwd

В строке -rw-r--r-- представлены сведения о правах доступа к файлу, если бы это был каталог, то в первой позиции бы находился символ d.
~$ ls -l /
drwxr-xr-x 2 root root 4096 2008-03-25 11:42 bin

Следующие три символа показывают права владельца на чтение, запись и выполнение. rw-r--r-- означает, что пользователь root(владелец файла) из группы adm может читать и писать, но не может выполнять этот файл. У исполняемого файла должен стоять символ x вместо прочерка -. Следующие три симола rw-r--r-- показывают разрешения для группы adm, можно читать файл, но не более того. Последняя группа символов, также rw-r--r-- определяет права доступа для остальных - прочих пользователей системы. Таким образом только root может изменять регистрационную информацию, а всем остальным она доступна только для чтения.
Команда chmod изменяет права доступа к файлу
Восьмиричные значения образуются путем складывания 4 для чтения, 2 для записи, 1 для исполнения.
~$ chmod 666 file
дает право на чтение и запись файла file всем
~$ chmod 700 command
позволит читать, изменять, выполнять command только его владельцу

Отметим, что знак + (плюс) включает право доступа, а знак - (минус) - выключает.
~$ chmod +x command
позволит всем выполнять command
~$ chmod -w file
отменяет право на запись в файл file всех, включая владельца
~$ chmod -w .
запрещает право на запись в каталог, в котором мы находимся


Команды - это программы, которые вызывает пользователь. Основные команды расположены в директории /bin, но также могут быть расположены в
/usr/bin, чтобы не собирать мусор в /bin. Эти директории автоматически просматриваются командным интерпретатором (shell). UNIX имеет файловую систему компонованную в виде иерархии директорий.
При входе в систему вы попадаете в домашнюю директорию. Для того, чтобы обратиться к файлу в другой директорий, например /usr/share/bin/filex, указываем полный путь (начинается с '/', корневая директория всей файловой системы) с поддиректориями (usr, share, bin), то есть посылаем команду /usr/share/bin/filex
Важные команды, которые могут "играть" с файлами: cp(1), mv(1), rm(1), которые копируют, перемещают и удаляют файлы соответственно. Чтобы просмотреть содержание директорий используйте ls(1), создание директории - mkdir(1),
удаление директории - rmdir(1) или rm(1).

hier(7) - иерархия файловой системы

/     корневая директория
/dev/     devices(4)
     console     главная консоль, tty(4)
     tty*     терминалы, tty(4)
     cat     "наборщик снимков" cat(4)
     rp*     диски, rp, hp(4)
     rrp*     "сырые" диски, rp, hp(4)

/bin/     служебные программы, cf /usr/bin (1)
     as     ассемблер, cf /usr/lib/as2
     cc     исполнительный компилятор C, cf /usr/lib/c[012]

/lib/     объектные библиотеки и подобные вещи, cf /usr/lib/
     libc.a     системные вызовы, стандартные ввод/вывод I/O, и т.п.
     libm.a     математические программы
     libplot.a     программы рисования, plot(3)
     libF77.a     поддержка среды исполнения Фортрана
     libI77.a     ввод/вывод Фортрана
     as2     второй "проход" ассемблера as(1)
     c[012]     проходы cc(1)

/etc/     важные данные и полезные средства сопровождения
     passwd     файл с паролями пользователей, passwd(5)
     group     файл с группами пользователей, group(5)
     motd     сообщение дня, login(1)
     mtab     таблица монтируемых устройств, mtab(5)
     ddate     сброс истории, dump(1)
     ttys     параметры терминала, ttys(5)
     getty     часть login, getty(8)
     init     отец всех процессов, init(8)
     rc     shell-программа для загрузки системы
     cron     часовой демон, cron(8)
     mount     mount(1)
     wall     wall(1)

/tmp/     временные файлы, обычно находятся на быстром устройстве, cf /usr/tmp/
     e*     испольуемые ed(1)
     ctm*     .. cc(1)

/usr/     универсальная директория, обычно монтируемая ФС
     adm/     информация администратора
          wtmp     история входов в систему, utmp(5)
          messages     сообщения об ошибках устройств
          tracct     "наборщик снимков" счет , troff(1)
          vpacct     подсчет строк, lpr(1)
     bin/     служебные программы, чтобы не засорять /bin/
     tmp/     временные, чтобы не засорять /tmp/
          stm*     используется для sort(1)
          raster     .. plot(1)
     dict/     список слов, словообразований и т.п.
          words набор основных слов, используются look(1)
          spellhist     история для spell(1)

     games/     игры
          bj     блэкджек
          hangman     виселица
          quiz.k     что знает quiz(6)
               index     оглавление категории
               africa     страны и столицы
               ..
          ..
     include/стандартые #include файлы
          a.out.h     макет объектного файла, a.out(5)
          stdio.h     стандартные ввод/вывод, stdio(3)
          math.h
          ..
          sys/     системные макеты, cf /usr/sys/h
               acct.h     счет процессов, acct(5)
               buf.h     буфферы внутренней системы
               ..
     lib/     объектные библиотеки и т.п., чтобы не засорять /lib/
          lint[12]     подпроцессы lint(1)
          llib-lc          холостое объявление для /lib/libc.a, используемое lint(1)
          llib-lm          .. /lib/libc.m
          atrun     планировщик at(1)
          struct/     пути sruct(1)
          ..
          tmac/     макросы для troff(1)
               tmac.an      макрос для man(7)
               tmac.s          .. ms(7)
               ..
          font/     шрифты для troff(1)
               R     Times Roman
               B     Times Bold
               ..
          uucp/     программы и данные uucp(1)
               L.sys     имена и числа, поступающие удаленно
               uucico     реальная копия программы
               ..
          suftab     таблица суффиксов для автоматического переноса слов, используемый troff(1)
          units      таблицы обмена для units(1)
          eign     лист английских слов, игнорируемых ptx(1)

     man/     первый том руководства, man(1)
          man0/     основное
               intro     вступление к тому1, ms(7) форматирование
               xx     шаблон для страниц руководства(manual pages)
          man1/     раздел 1
               as.1
               mount,1m
               ..
          cat1/     предварительные страницы man1/
               as.1
               mount.1m
          ..
     spool/     замедленно исполняемые файлы
          at/     at(1)
          lpd/     lpr(1)
               lock     присутствует когда построчно-печатающее устройство активно
               cf*     копия распечатываемого файла, если нужно
               df*     файл управления демонами, lpd(8)
               tf*     файл контроля резидетной памяти, пока lpr работает
          uucp/     рабочие фалйы и область обработки для uucp(1)
               LOGFILE     суммарный журнал
               LOG.*     журнал одной транзакции
          mail/     почтовые ящики mail(1)
               $uid     почта пользователя $uid
               $uid.lock     блокировочный файл, пока $uid принимает почту
          $wd     рабочая директория пользователя, обычно по имени логина $wd
               .profile     окружение для sh(1), environ(5)
               calendar     календарь пользователя, calendar(1)
          doc/     статьи, обычно второй раздел руководства, в формате ms(7)
               as/     руководство ассемблера
               c     руководство C
               ..
          sys/     системный код
               dev/     драйверы устройств
                    bio.c      общий код
                    cat.c     cat(4)
               dh.c     DH11, tty(4)
               tty     tty(4)
               ..
          conf/     железо-зависимый код
               mch.s     часть ассемблерного кода
               conf     генератор конфигураций
               ..
          h/     заголовочные(include) файлы
               acct.h     acct(5)
               stat.h     stat(2)
               ..
          sys/
               main.c
               pipe.c
               sysent.c     точки входа системы
               ..

/usr/     src/     исходные коды утилит и прочего
          cmd/     коды команд
          as/     ассемблер
               makefile     способ сборки ассемблера
               as1?.s          код pass1
          ar.c     код ar(1)
          ..
          troff/     код nroff и troff(1)
               nmake     makefile для nroff
               tmake     makefile для troff
               font/     код таблиц шрифтов, /usr/lib/font/
                    ftR.c     Roman
                    ..
               term/     таблицы характеристик терминала, /usr/lib/term/
                    tab300.c     DASI 300
                    ..
               ..
          libc/     код функций в /lib/libc.a
               crt/     C runtime support
                    ldiv.s     division into a long
                    lmul.s     multiplication to produce long
                    ..
               csu/     запуск и "покрытие" программ нужных в каждой С программе
                    crt0.s     обычный запуск
                    mcrt0.s     модифицированный запуск для cc -p
               sys/     системные вызовы
                    access.s
                    alarm.s
                    ..
               stdio/     функции стандартного ввода/вывода I/O
                    fgets.c
                    fopen.c
                    ..
               gen/
                    abs.c
                    atof.c
                    ..
               compall     shell процедура для компиляции libc
               mklib     shell процедура для сборки /lib/libc.a
          libI77/     коды /lib/libI77
          libF77/
          ..
          games/     исходные коды /usr/games/

Также смотрите
ls(1), ncheck(1), find(1), grep(1)


В Linux также можно изучить иерархию каталогов в руководстве hier
~$ man hier


Если Вы начинаете осваивать сисему UNIX возможно Вам понадобится руководство intro(2)
~$ man 2 intro


Литература:
1. UNIX TIME-SHARING SYSTEM, UNIX Programmer's Manual, V7Vol1, January, 1979, Bell Labs Inc., B.W. Kernigan, M.D.
McIlroy
2. UNIX Programming Environment, The First Edition, 1984, B.W. Kernigan

Также смотрите: Unix Toolbox (pdf буклет)

25 февраля, 2008

Система Ведения Журналов LiLaLo


Live Lab Log (дословно: живой лабораторный журнал) — система, предназначенная для автоматического фиксирования и распознавания хода работы с терминалом Unix-системы. Может применяться для автоматизированного документирования процесса работы системного администратора, для записи хода лабоработрных работ во время обучения, для создания заготовок при написании документации, для слежения за ходом работы младших администраторов.

О программе
В ходе работы в консоли Unix/Linux-системы, будь-то непосредственное выполнение задач администрирования, экспериментирование с целью найти и описать решение какой-то задачи или самообучения, демонстрация приёмов работы на живых примерах или что-то другое, часто возникает необходимость зафиксировать происходящий в консоли процесс.

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



Авторские права и лицензия
Права на LiLaLo принадлежат её авторам. Игорь Чубин, Учебный Центр "Сетевые Технологии". Список авторов указан в файле README в корневом каталоге дистрибутива LiLaLo.

Программа распространяется по лицензии BSD. Текст лицензии находится в файле LICENSE в корневом каталоге дистрибутива LiLaLo. С ним также можно ознакомиться в [1] (en) и в [2] (рус).

Смотря в будущее..
Программа находится в состоянии развития. Список изменений, которые должны быть сделаны в ближайшее время здесь: LiLaLo TODO

Литература:
http://xgu.ru/wiki/LiLaLo - страница проекта LiLaLo

09 февраля, 2008

Коллекция Шпаргалок Linux Unix Cheat Sheets - The ultimate collection

Замечательная подборка шпаргалок для *никсоидов, маст хэв..
Здесь..

Linux-Unix cheat sheets - The ultimate collection, must have..
Here..