GNOME development on Linux

Experience in developing programs for Linux or under Linux

 

  1. Proprietary database development for Linux.
  2. Network server and client components for DATABASE using different interprocess communication mechanisms. Multithread network server.
  3. Applications using different inter process communication mechanisms (UNIX domain sockets, System V IPC messages, semaphores, shared memory).
  4. Interfaces to DATABASE from a wide variety of languages.
  5. UNICODE support in DATABASE.
  6. DATABASE JDBC and ODBC drivers.
  7. GUI library (using QT) for GUI utilities creation.
  8. RAD environment for DATABASE.
  9. rpm packages creation.
  10. CGI application development.
  11. PHP- and Perl-based Web application development.
  12. Development using Qtopia for PDA.
  13. Remote Linux loading using PXE protocol.
  14. GTK+ porting to VXWorks-like platform. The development was performed under Linux using cross compiler.

 

We developed a proprietary database for one of our clients. This product has limited resource requirements so it can be used in embedded systems. DATABASE works as a daemon responding to users’ SQL queries.

Interprocess exchange between application programs and DATABASE kernel can be performed using one of the several interprocess exchange mechanisms: unix domain sockets or different System V IPC features (message queues, semaphores, shared memory). Both single-thread and multithread applications can exchange data with DATABASE kernel through these mechanisms.

DATABASE allows storing user data either in single-byte or multibyte encodings (including UNICODE and Japanese codepages). Information can be converted into any codepage into which it is possible to convert this information.

DATABASE is usually distributed either as rpm package or as tar archive including installer written in UNIX shell.

DATABASE network server component working on server side allows remote clients to work with server using TCP/IP protocol.  Usually network server works as a daemon listening TCP/IP port but it also can be run from inetd. Data send and received by network server can be protected by ssl. DATABASE network client component working on client side is also needed for client/server mode work.

SNMP server (daemon) allows controlling kernel an other components execution.

A specific java server was implemented for access to DATABASE data from java applications. Java applications communicate with this server using TCP/IP protocol. Java server is multithread. JDBC driver was also implemented, it communicates with DATABASE kernel through java server.

The interfaces to DATABASE for java, perl, php, python, Kylix, Tcl/Tk were implemented as shared libraries. ODBC driver for DATABASE was also implemented.

Some GUI utilities were implemented for management tasks. All these utilities are based on own GUI library implemented using QT library.

DATABASE has its own rapid application development environment similar to Kylix. There is a specific native programming language for this environment. Source texts in this language are compiled into binary code. After compilation, this binary code can be interpreted by the corresponding run-time module.

All administration utilities and RAD run-time subsystem were ported to PDA linux platform (Zaurus). In order to allow such porting, GUI library was updated to provide support for PDA QT library version (QT Qtopia).

We developed Linux remote loader working through network cards supporting PXE protocol. The product was intended for effective reading and writing of EXT2/EXT3 file systems and effective simultaneous data delivery to several computers by means of TCP/IP or UDP channels. Embedded Linux technologies were used in this project to decrease the size of the image sent through network.

SolovatSoft has strong experience of developing different CGI applications for Linux. Such applications include catalogues maintenance, learning systems, e-newspapers, project maintenance support systems, etc.

We successfully ported GTK+ to vxworks-like real-time operating system used mostly in embedded systems. The development was performed under Linux using cross compiler to create vxworks executable files. GTK+ test system was completely revised during this work.