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

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 буклет)

22 марта, 2008

Accounting Software, ПО для Учета Торговли и Склада

В этой статье рассмотрены два самых популярных решения учета. Это Compiere и Ананас. Вниманию приведено только! Свободное ПО.
Читатель должен быть знаком с такими понятиями как ERP [en], CRM [en], POS [en] only, SaaS [en]

Compiere - ERP, CRM, POS бизнес решение для малых и средних предприятий, позиционирующих себя в сфере дистрибьюции и обслуживания.
Исходные коды и сам пакет распространяются по свободной лицензии GNU GPL2.

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

Модули:
  • закупки (Quote-to-Cash)
  • продажи (Requisition-to-Pay)
  • управление отношениями с клиентами (Customer relationship management)
  • управление отношениями с партнерами (Partner Relations Management)
  • управление цепями поставок (Supply Chain Management)
  • анализ работы (Performance Analysis)
  • веб магазин (Web Store)
  • склад (Warehouse)
  • бухгалтерия (Double-entry book-keeping)
  • управление проектами (Project management)
  • управление трудозатратами (Work-flow-management)
  • Маркетинг (Marketing)
Модуль «Производство» (Manufacturing, — Resource Planning, Prod. Plan & DM, MPS, MRP, CRP, Manufacturing Orders & Repetitive) находится в разработке в рамках независимого проекта CMPCS


Стуруктура - J2EE (Веб) (Demo tour)
СУБД - PostgreSQL, MySQL, Oracle, Sybase
Язык программирования - Java

<WWW сайт>



Ананас - платформа новая, но весьма удобная и стабильная (не все возможности еще реализованы, но те что работают - действительно работают)

Ананас является программной платформой автоматизации учета. Приложения, разработанные на платформе Ананас, позволяют автоматизировать:
  • ведение ежедневно необходимого учета: покупка, продажа, платежи через банк, кассовые операции;
  • получение управленческой информации: по товарным запасам в суммовом и количественном выражении, по расчетам с партнерами;
  • расчет остатков;
  • создание отчетов и печать документов;
  • создание документов на основании уже существующих;
  • управление торговым оборудованием.
Ананас доступен для пользователей Linux бесплатно без поддержки для установки на любое количество рабочих мест.

Структура - Автономное (Stand alone)
СУБД - MySQL, PostgreSQL
Языки программирования - JavaScript, C++

В проекте используется кросплатформенная библиотека QT.
Для написания бизнес-схем (приложений) используется скриптовый язык стандарта ECMA-Script (он же JavaScript)

Приложения платформы Ананас

"Оперативный учет"
  • ведение ежедневно необходимого учета: покупка, продажа, платежи через банк, кассовые операции;
  • получение управленческой информации: по товарным запасам в суммовом и количественном выражении, по расчетам с партнерами;
  • автоматический расчет остатков;
  • генерация отчетов и печать документов;
  • создание документов на основании уже существующих.
Руководство пользователя приложения "Оперативный учет" на форуме

"Учет транспортных услуг (логистика)"
"Учет транспортных услуг" является приложением платформы Ананас. Автор - Дмитрий Кругликов. Приложение позволяет вести учет поступления заявок и реализации услуг, получать данные о состоянии заявок на любую дату.
Просматривать движение услуг в требуемые промежутки времени,в разрезе требуемых контрагентов.
Руководство пользователя приложения "Учет транспортных услуг" на форуме

"Бухгалтерский учет"
Приложение находится в стадии разработки.
Раздел по бизнес схеме "Бухгалтерский учет"

Спутник. Учет заявок

Приложение предназначено для учета заявок на подключение спутникового оборудования и пополнения баланса учетных записей спутникового интернета.
Руководство пользователя приложения "Спутник. Учет заявок" на форуме

<WWW сайт>


Также стоит посмотреть следующие пакеты:


Веб (Web Based)
Adempiere
Тип: ERP, CRM, POS
Язык программирования: Java (J2EE, JBoss)
СУБД: Oracle, PostgreSQL
ERP5
Тип: ERP, CRM, SaaS
Язык программирования: Python
СУБД: ZODB (any with ODBC interface)
LedgerSMB
Язык программирования: Perl
СУБД: PostgreSQL 8.x
PhpOrganisation
Тип: Low-end
Язык программирования: PHP
WebERP
Язык программирования: PHP
СУБД: mySQL - innodb
TinyERP
Тип: ERP, CRM, POS
Язык программирования: Python, XML
СУБД: PostgreSQL

Автономные (Stand alone)
Quasar
Тип: Accounting
TinyERP
Тип: ERP, CRM, POS
Язык программирования: Python, XML
СУБД: PostgreSQL
Сайт русской поддержки, форум

________
Related:
Compiere
Ananas
wiki

Записки дебианщика: Бухгалтерия в Линукс, здесь дается обзор iceB, 1L, E/AS, R2D2

P.S. выступил-таки с двухдневным докладом + мастер-классом в академии, выложил пару фотографий на Пикасу

22 февраля, 2008

Nokia Internet Tablet. Взгляд Изнутри.

  • Прошивка Nokia IT
  • maemo SDK
  • О платформе..


Не так давно я стал владельцем таблетки (Internet Tablet) Nokia N770. Почему N770, а не N800, N810, ведь на дворе начало 2008 года :) такой аппарат уже вряд ли где можно купить.

Прошивка Nokia IT
Для доступа к репозиториям необходимого ПО сразу же перепрошил её, залил туда OS2007. Процедура не сложная. Вот и мини-HowTo:
1. Для начала Вам потребуется скачать утилиту прошивки flasher и непосредственно прошивку {N770 (OS2007"hack"), N800, N810};
2. Выключаем таблетку, биндим usb-кабель;
3. Даем в терминал комманду:
~# chmod +x ./flasher-3.0;./flasher-3.0 -F SU-18_2007HACKER_4.2008.7-1_PR_F5_MR0_ARM.bin -f
где 3.0 - версия утилиты прошивки, SU-18_2007HACKER_4.2008.7-1_PR_F5_MR0_ARM.bin - прошивка

4. Включаем таблетку и наблюдаем процесс перепрошивки с терминала.


maemo SDK
maemo предоставляет открытую платформу для разработки Nokia Internet Tablet и других мобильных Linux-based устройств.
maemo SDK содержит инструменты (toolchain, IDE) для разработки приложений. Вам будет удобно работать с ней, если Вы знакомы с технологиями GNOME/GTK+ и Debian tools (dpkg, deb, etc..). В SDK доступны среды разработки для языков программирования C, C++, python, Ruby, Mono, Java (JaliMo).

На сегодняшний день существуют три стабильных "песочницы", SDK:
для Nokia 770 разработчиков: maemo 2.2 "Gregale"
OS2007 для N800 разработчиков: maemo 3.x "Bora"
OS2008 для N800 и N810 разработчиков: maemo 4.0 "Chinook"
Кодовые имена будущих SDK: maemo 4.1 "Diablo", maemo 4.2 "Elephanta"
SDK могут быть установленны только на ОС Linux, но для работы в Windows доступен WMWare образ.

SDK хорошо документирована и для того, чтобы быстро понять сущность платформы и начать разработку предлагаю ознакомиться с maemo Quick Start Guide, справкой по API, а также учебным материалом.


О платформе..
Устройство работает под управлением Internet Tablet OS, модифицированной ARM EABI Debian GNU/Linux (ядро 2.6)
Поверх x-window-system (пользовательский интерфейс?) Hildon - разработанный Nokia каркасс на основе GNOME/GTK+


Фигура выше иллюстрирует основные пересекающиеся компоненты, с которыми сталкивается разработчик Hildon


Системные службы:
- maemo включает мощный каркасс GnomeVFS, который позволяет использовать некоторое число протоколов доступа в файлам: локальная файловая система, HTTP, FTP, OBEX через Bluetooth, etc..
- Для динамичного API межпроцессорного взаимодействия (IPC) maemo положился на D-BUS. В качестве вспомогающей обертки для D-BUS связей maemo использует специфичную библиотеку libosso.

..
В заключении надо сказать, что проект maemo предоставляет хостинг для разработчиков приложений - maemo garage, что представляет собой некую форму комьюнити; к разработке может присоединиться каждый желающий ;)

06 апреля, 2007

DP.ru У России есть все шансы занять лидирующие позиции в сфере разработки ПО

В секции РИФ-2007 с докладами выступили: Антон Носик (СУП ФАБРИК), Павел Фролов (Мезон.Ру), Виктор Федосеев (LinuxFormat) и другие.
В настоящее время, по словам Павла Фролова, на мировом рынке ПО сложилась уникальная ситуация – США более не является монополистом в области передовых программных разработок. Все больше программных проектов, как коммерческих, так и свободных, создается и развивается за пределами США. Linux был рожден в Финляндии, GNOME – Бразилия, KDE и SAP – Германия, Compiere ERP + CRM – Франция. Большинство разработок делаются с привлечением специалистов из самых разных стран мира. В России огромный потенциал разработчиков. В большинстве международных проектов по разработке свободного ПО участвуют российские разработчики.

Использование свободного ПО – наиболее быстрый и эффективный путь внедрения в общемировой рынок ПО, считает Павел Фролов. Индустрия развития информационных технологий – на данный момент наиболее быстро развивающийся сектор мировой экономики. Состояние рынка в этой области меняется очень быстро, и у России есть реальный шанс занять в нем одну из лидирующих позиций, особенно в сфере разработки ПО.
Крайне важным для развития индустрии является правильный выбор политики
государства в области поддержки открытых стандартов. Уже сейчас в стране
существует ряд достаточно успешно работающих фирм-разработчиков программного
обеспечения, создающих собственные программные продукты. К сожалению,
большинство из них в качестве базового программного уровня используют закрытые
коммерческие системы иностранного производства (например, Microsoft Windows).
Это не способствует повышению экономической безопасности страны, ставя ее в
прямую зависимость от интересов фирм производителей и государственной
политики тех стран, откуда производится экспорт таких систем,
- сообщил Павел Фролов.
Возможные пути развития новых технологий, считает Фролов: корпоративные разработки, государственное финансирование (гранты, вузы, специализированные институты), деятельность независимых разработчиков.