Real-time executives 219
used in all the diﬀerent programs. The imposition of order and consistency
is left to the humans.
An alternative technique launches a single parent program which then
spawns from itself all the concurrent tasks required by the application. This
allows the resulting child tasks to know some of each other’s PIDs, enabling
signals to be employed to a limited extent between tasks. Pipes, named and
anonymous, can be set up between all the tasks.
9.15 Licensing issues
Although this text is clearly prepared for students mainly interested in tech-
nical issues, the ﬁnancial and legal side needs to be contemplated when
considering the acquisition of software from an outside supplier. This is of
particular signiﬁcance in the embedded ﬁeld where an executive or operating
system may need to be modiﬁed in some way. There are several alterna-
tive legal structures which software developers can adopt when deciding to
acquire and reuse software from outside sources.
• Outright source code purchase
• OEM licence agreement
• Open source
• BSD-style open licence
• GNU GPL
Legal/ﬁnancial structures for software development
Richard Stallman states in his introduction to the GNU GPL (General
Public License) that: ‘The licenses for most software are designed to take
away your freedom to share and change it. By contrast, the GNU General
Public License is intended to guarantee your freedom to share and change free
software – to make sure the software is free for all its users.’ GNU/Linux is
distributed under the terms of the GPL licence, making it a strict requirement
that any new additions or amendments to the original code should be made
available in source format.
The conditions of GPL have been adopted by many other free software and
open source developers, and these conditions need to be clearly understood
by those seeking to sell products which include some GPL code.
Although initially some commercial suppliers were worried about the
impact of GPL software on their business, there are now many examples
of GPL-covered commercial programs which have established themselves in
the marketplace. The availability of proprietary software, such as compilers
and databases, does not appear to have suﬀered. This may be due to the
nervous reluctance of professional managers to move away from traditional
‘support’ agreements, or, perhaps, the unchallengeable excellence and value
for money of commercial software.
220 Real-time systems development
Richard Stallman guru of GNU
Interestingly, the Indian and Chinese governments have now openly com-
mitted to using Linux for desktop and server computer facilities within civil
service departments as oﬃcial policy. This may be because of their suspicions
about Microsoft’s motives, or simply for ﬁnancial advantage. But still, the
general uncertainty over the legal position of open source software means
that developers often ﬁnd it hard to convince managers to rely on GPL code
at the core of a new project.
Software is also distributed under similar conditions: Artistic License,
GNU Lesser General Public License, IBM Public License, Mozilla Public
License, Open Software License, Academic Free License, Sun Industry Stan-
dards Source License, W3C Software Notice and License, and the BSD Public
The BSD licence comes after GNU GPL in popularity as free software
licence. The signiﬁcant diﬀerence between the two being that BSD does not
require any altered sections of source code to be made available to purchasers.
For example, Apple has used parts of Mach, FreeBSD, and NetBSD to create
Mac OSX. So large parts of the latest, proprietary Mac operating system are
derived from source software.
The use of GPL software in the embedded marketplace is more diﬃcult
than with desktops or servers. In the latter cases, it is ﬁne to install pro-
prietary applications alongside GPL programmes. There is no infringement
of the GPL conditions if this is done. However, in the embedded situation,
where kernel modules or device drivers are commonly amended when port-
ing the operating system to a new platform, the requirement is to hand
over full source listings to all customers. With the genuine risk of compet-
ing organizations obtaining a free view of precious code, it is not surprising
that managers are cautious to accept the GPL conditions. To get around this
dilemma, some ﬁrms take advantage of the Linux facility to dynamically load
device driver modules, thus hopefully avoiding the GPL strictures. Whether
such an arrangement using loadable, proprietary modules rigorously com-
plies with the letter of GPL is debatable! The worry for managers is that
GPL itself has not yet been tested through a court case, so the report that
Linus Torvalds accepts the validity of loadable proprietary modules within
the Linux community is the best reassurance available.