Misplaced Pages

Lucent Public License

Article snapshot taken from Wikipedia with creative commons attribution-sharealike license. Give it a read and then ask your questions in the chat. We can research this topic together.

The Lucent Public License is an open-source license created by Lucent Technologies . It has been released in two versions: Version 1.0 and 1.02.

#112887

66-570: While the Lucent Public License is not one of the more popular open-source licenses, a number of products have been released under it. Notably, the license was the only open source license available to the public for the Plan 9 from Bell Labs operating system until 2014, when the University of California, Berkeley was "authorised by Alcatel-Lucent to release all Plan 9 software previously governed by

132-482: A grid computing platform and as a vehicle for research into ubiquitous computing without middleware . In commerce, Plan 9 underlies Coraid storage systems. However, Plan 9 has never approached Unix in popularity, and has been primarily a research tool: [I]t looks like Plan 9 failed simply because it fell short of being a compelling enough improvement on Unix to displace its ancestor. Compared to Plan 9, Unix creaks and clanks and has obvious rust spots, but it gets

198-461: A plugin to Internet Explorer . Vita Nuova said that plugins for other browsers were under development, but they were never released. Inferno has also been ported to Openmoko , Nintendo DS , SheevaPlug , and Android . Inferno 4th edition was released in early 2005 as free software . Specifically, it was dual-licensed under two structures. Users could either obtain it under a set of free software licenses , or they could obtain it under

264-464: A type-safe language that is compiled to portable byte code, and, more significantly, it includes a virtual operating system that supplies the same interfaces whether Inferno runs natively on hardware or runs as a user program on top of another operating system. A communications protocol called Styx is applied uniformly to access both local and remote resources, which programs use by calling standard file operations, open, read, write, and close. As of

330-511: A Real Operating System Plan 9 is a distributed operating system , designed to make a network of heterogeneous and geographically separated computers function as a single system. In a typical Plan 9 installation, users work at terminals running the window system rio , and they access CPU servers which handle computation-intensive processes. Permanent data storage is provided by additional network hosts acting as file servers and archival storage. Its designers state that, [t]he foundations of

396-583: A complex distributed computing environment by reusing the existing hierarchical name system. As a benefit from the system's design, most tasks in Plan 9 can be accomplished by using ls , cat , grep , cp and rm utilities in combination with the rc shell (the default Plan 9 shell). Factotum is an authentication and key management server for Plan 9. It handles authentication on behalf of other programs such that both secret keys and implementation details need only be known to Factotum. Unlike Unix , Plan 9

462-399: A new window to run some program in, it first sets up a new namespace in which mouse , cons and bitblt are connected to itself, hiding the actual device files to which it itself has access. The window system thus receives all input and output commands from the program and handles these appropriately, by sending output to the actual screen device and giving the currently focused program

528-446: A process' implicit root context is the only way to name a service. Binding a name to an object can only be done by giving an existing name for the object, in the same context as the new name. As such, interface references simply cannot be passed between processes, much less across networks. Instead, communication has to rely on conventions, which are prone to error and do not scale. A later retrospective comparison of Plan 9, Sprite and

594-661: A proprietary license. In the case of the free software license scheme, different parts of the system were covered by different licenses, including the GNU General Public License , the GNU Lesser General Public License , the Lucent Public License , and the MIT License , excluding the fonts, which are sub-licensed from Bigelow and Holmes. In March 2021, all editions were relicensed under mainly

660-538: A set of files—could be successfully implemented in a modern distributed system. Some features from Plan 9, like the UTF-8 character encoding of Unicode, have been implemented in other operating systems. Unix-like operating systems such as Linux have implemented 9P2000, Plan 9's protocol for accessing remote files, and have adopted features of rfork , Plan 9's process creation mechanism. Additionally, in Plan 9 from User Space , several of Plan 9's applications and tools, including

726-548: A standardized protocol and treat its services as part of the namespace. For example, the original window system, called 8½, exploited these possibilities as follows. Plan 9 represents the user interface on a terminal by means of three pseudo-files: mouse , which can be read by a program to get notification of mouse movements and button clicks, cons , which can be used to perform textual input/output, and bitblt , writing to which enacts graphics operations (see bit blit ). The window system multiplexes these devices: when creating

SECTION 10

#1732876611113

792-491: A third contemporary distributed research operating system, Amoeba , found that the environments they [Amoeba and Sprite] build are tightly coupled within the OS, making communication with external services difficult. Such systems suffer from the radical departure from the UNIX model, which also discourages portability of already existing software to the platform (...). The lack of developers,

858-402: A unified protocol, called 9P. Compared to other systems, this reduces the number of custom programming interfaces . 9P is a generic, medium-agnostic, byte-oriented protocol that provides for messages delivered between a server and a client. The protocol is used to refer to and communicate with processes, programs, and data, including both the user interface and the network. With the release of

924-495: A union directory a /net hierarchy from a remote gateway , using secured 9P over the public Internet. A union directory with the /net hierarchy and filters can be used to sandbox an untrusted application or to implement a firewall . In the same manner, a distributed computing network can be composed with a union directory of /proc hierarchies from remote hosts, which allows interacting with them as if they are local. When used together, these features allow for assembling

990-406: A windowing user interface system specific to Plan 9. The bulk of the system is written in a dialect of C ( ANSI C with some extensions and some other features left out). The compilers for this language were custom built with portability in mind; according to their author, they "compile quickly, load slowly, and produce medium quality object code". A concurrent programming language called Alef

1056-497: Is a distributed operating system which originated from the Computing Science Research Center (CSRC) at Bell Labs in the mid-1980s and built on UNIX concepts first developed there in the late 1960s. Since 2000, Plan 9 has been free and open-source . The final official release was in early 2015. Under Plan 9, UNIX's everything is a file metaphor is extended via a pervasive network-centric filesystem , and

1122-604: Is a hybrid of reference counting and a real-time coloring collector that gathers cyclic data. The Inferno kernel contains the virtual machine, on-the-fly compiler, scheduler, devices, protocol stacks, and the name space evaluator for each process' file name space, and the root of the file system hierarchy. The kernel also includes some built-in modules that provide interfaces of the virtual operating system, such as system calls, graphics, security, and math modules. The Bell Labs Technical Journal paper introducing Inferno listed several dimensions of portability and versatility provided by

1188-406: Is controlled by a set of conventional locations for common resources. The second idea (a message-oriented filesystem) means that processes can offer their services to other processes by providing virtual files that appear in the other processes' namespace. The client process's input/output on such a file becomes inter-process communication between the two processes. This way, Plan 9 generalizes

1254-428: Is performed, so if top/subdir exists, the files in bottom/subdir are not accessible through the union. A union directory can be created by using a sequence of bind commands: In the example above, /arm/bin is mounted at /bin , the contents of /arm/bin replacing the previous contents of /bin . Acme 's bin directory is then union mounted after /bin , and Alice's personal bin directory

1320-527: Is too big a job". Some Linux binaries can be used with the help of a "linuxemu" (Linux emulator) application; however, it is still a work in progress. Vice versa, the Vx32 virtual machine allows a slightly modified Plan 9 kernel to run as a user process in Linux, supporting unmodified Plan 9 programs. In 1991, Plan 9's designers compared their system to other early nineties operating systems in terms of size, showing that

1386-445: Is union mounted before. When a file is requested from /bin , it is first looked for in /usr/alice/bin , then in /arm/bin , and then finally in /acme/bin/arm . The separate process namespaces thus usually replace the notion of a search path in the shell. A path environment variable ( $ path ) still exists in the rc shell (the shell mainly used in Plan 9); however, rc's path environment variable conventionally only contains

SECTION 20

#1732876611113

1452-568: The /bin and . directories and modifying the variable is discouraged, instead, adding additional commands should be done by binding several directories together as a single /bin . Unlike in Plan 9, the path environment variable of Unix shells should be set to include the additional directories whose executable files need to be added as commands. Furthermore, the kernel can keep separate mount tables for each process, and can thus provide each process with its own file system namespace . Processes' namespaces can be constructed independently, and

1518-427: The /proc file system. Each process appears as a directory containing information and control files which can be manipulated by the ordinary file IO system calls. The file system approach allows Plan 9 processes to be managed with simple file management tools such as ls and cat ; however, the processes cannot be copied and moved as files. Plan 9 does not have specialised system calls or ioctls for accessing

1584-528: The Berkeley socket interface through the ANSI/POSIX Environment (APE) that implements an interface close to ANSI C and POSIX , with some common extensions (the native Plan 9 C interfaces conform to neither standard). It also includes a POSIX-compatible shell. APE's authors claim to have used it to port the X Window System (X11) to Plan 9, although they do not ship X11 "because supporting it properly

1650-618: The GNU GPL because of its choice of law clause. We recommend that you not use this license for new software that you write, but it is ok to use and improve Plan 9 under this license.” The clause in particular that causes it to be incompatible with the GNU GPL is "This Agreement is governed by the laws of the State of New York and the intellectual property laws of the United States of America." Plan 9 from Bell Labs Plan 9 from Bell Labs

1716-502: The MIT License . Inferno runs on native hardware directly and also as an application providing a virtual operating system which runs on other platforms. Programs can be developed and run on all Inferno platforms without modifying or recompiling. Native ports include these architectures: x86 , MIPS , ARM , PowerPC , SPARC . Hosted or virtual OS ports include: Microsoft Windows , Linux , FreeBSD , Plan 9 , Mac OS X , Solaris , IRIX , UnixWare . Inferno can also be hosted by

1782-541: The cursor-addressed , terminal -based I/O at the heart of UNIX-like operating systems is replaced by a windowing system and graphical user interface without cursor addressing, although rc , the Plan 9 shell , is text-based. The name Plan 9 from Bell Labs is a reference to the Ed Wood 1957 cult science fiction Z-movie Plan 9 from Outer Space . The system continues to be used and developed by operating system researchers and hobbyists. Plan 9 from Bell Labs

1848-424: The typed interfaces of Sun's object-oriented operating system , Spring : Plan 9 constrains everything to look like a file. In most cases the real interface type comprises the protocol of messages that must be written to, and read from, a file descriptor. This is difficult to specify and document, and prohibits any automatic type checking at all, except for file errors at run time. (...) [A] path name relative to

1914-458: The 4th edition, it was modified and renamed 9P2000. Unlike most other operating systems, Plan 9 does not provide special application programming interfaces (such as Berkeley sockets , X resources or ioctl system calls) to access devices. Instead, Plan 9 device drivers implement their control interface as a file system, so that the hardware can be accessed by the ordinary file input/output operations read and write . Consequently, sharing

1980-597: The 9front fork has provided the system Wi-Fi drivers, Audio drivers, USB support and built-in game emulator, along with other features. Other recent Plan 9-inspired operating systems include Harvey OS and Jehanne OS. Plan 9 from Bell Labs is like the Quakers : distinguished by its stress on the 'Inner Light,' noted for simplicity of life, in particular for plainness of speech. Like the Quakers, Plan 9 does not proselytize. —Sape J. Mullender, Pierre G. Jansen. Real Time in

2046-533: The ISOs, Bell Labs also hosts a repository of externally developed applications and tools. As Bell Labs has moved on to later projects in recent years, development of the official Plan 9 system had stopped. On March 23, 2021, development resumed following the transfer of copyright from Bell Labs to the Plan 9 Foundation. Unofficial development for the system also continues on the 9front fork, where active contributors provide monthly builds and new functionality. So far,

Lucent Public License - Misplaced Pages Continue

2112-477: The Kfs, Paq, Cwfs, FAT , and Fossil file systems. The last was designed at Bell Labs specifically for Plan 9 and provides snapshot storage capability. It can be used directly with a hard drive or backed with Venti , an archival file system and permanent data storage system. The distribution package for Plan 9 includes special compiler variants and programming languages, and provides a tailored set of libraries along with

2178-598: The Lucent Public License, Version 1.02 under the GNU General Public License, Version 2." The license has been approved by the Open Source Initiative as a license meeting The Open Source Definition , while the Free Software Foundation considers it a free software license, but suggests to eschew use of the license, stating: “This is a free software license, but it is incompatible with

2244-482: The OS: These design choices were directed to provide standard interfaces that free content and service providers from concern of the details of diverse hardware, software, and networks over which their content is delivered. Inferno programs are portable across a broad mix of hardware, networks, and environments. It defines a virtual machine , known as Dis , that can be implemented on any real machine, provides Limbo ,

2310-421: The Plan 9 project had been "put on the back burner" by AT&T in favor of Inferno , intended to be a rival to Sun Microsystems ' Java platform . In the late 1990s, Bell Labs' new owner Lucent Technologies dropped commercial support for the project and in 2000, a third release was distributed under an open-source license . A fourth release under a new free software license occurred in 2002. In early 2015,

2376-543: The SunOS vnode architecture is limited compared to Plan 9's capabilities in that it does not support remote device access and remote inter-process communication cleanly, even though it could have, had the preexisting UNIX domain sockets (which "can essentially be used to name user-level servers") been integrated with the vnode architecture. One critique of the "everything is a file", communication-by-textual-message design of Plan 9 pointed out limitations of this paradigm compared to

2442-559: The Unix heritage from Bell Labs and the Unix philosophy . Many of the command line tools in Inferno were Plan 9 tools that were translated to Limbo. In the mid-1990s, Plan 9 development was set aside in favor of Inferno. The new system's existence was leaked by Dennis Ritchie in early 1996, after less than a year of development on the system, and publicly presented later that year as a competitor to Java. At

2508-405: The Unix notion of the filesystem as the central point of access to computing resources. It carries over Unix's idea of device files to provide access to peripheral devices ( mice , removable media, etc.) and the possibility to mount filesystems residing on physically distinct filesystems into a hierarchical namespace, but adds the possibility to mount a connection to a server program that speaks

2574-428: The device across the network can be accomplished by mounting the corresponding directory tree to the target machine. Plan 9 allows the user to collect the files (called names ) from different directory trees in a single location. The resulting union directory behaves as the concatenation of the underlying directories (the order of concatenation can be controlled); if the constituent directories contain files having

2640-414: The final official release of Plan 9 occurred. A user and development community, including current and former Bell Labs personnel, produced minor daily releases in the form of ISO images . Bell Labs hosted the development. The development source tree is accessible over the 9P and HTTP protocols and is used to update existing installations. In addition to the official components of the OS included in

2706-466: The fourth edition of Inferno, Styx is identical to Plan 9 's newer version of its hallmark 9P protocol, 9P2000 . Most of the Inferno commands are very similar to Unix commands with the same name. Inferno is a descendant of Plan 9 from Bell Labs , and shares many design concepts and even source code in the kernel, particularly around devices and the Styx/9P2000 protocol. Inferno shares with Plan 9

Lucent Public License - Misplaced Pages Continue

2772-416: The job done well enough to hold its position. There is a lesson here for ambitious system architects: the most dangerous enemy of a better solution is an existing codebase that is just good enough. Inferno (operating system) Inferno is a distributed operating system started at Bell Labs and now developed and maintained by Vita Nuova Holdings as free software under the MIT License . Inferno

2838-471: The keyboard and mouse input. The program does not need to know if it is communicating directly with the operating system's device drivers, or with the window system; it only has to assume that its namespace is set up so that these special files provide the kind of input and accept the kind of messages that it expects. Plan 9's distributed operation relies on the per-process namespaces as well, allowing client and server processes to communicate across machines in

2904-414: The need for switching between code sets. Though interesting on their own, the design concepts of Plan 9 were supposed to be most useful when combined. For example, to implement a network address translation (NAT) server, a union directory can be created, overlaying the router 's /net directory tree with its own /net . Similarly, a virtual private network (VPN) can be implemented by overlaying in

2970-434: The networking stack or networking hardware. Instead, the /net file system is used. Network connections are controlled by reading and writing control messages to control files. Sub-directories such as /net/tcp and /net/udp are used as an interface to their respective protocols. To reduce the complexity of managing character encodings , Plan 9 uses Unicode throughout the system. The initial Unicode implementation

3036-444: The operating system to universities in 1992. Three years later, Plan 9 was made available for commercial parties by AT&T via the book publisher Harcourt Brace . With source licenses costing $ 350, AT&T targeted the embedded systems market rather than the computer market at large. Ritchie commented that the developers did not expect to do "much displacement" given how established other operating systems had become. By early 1996,

3102-575: The operating systems research community, as well as the commercial Unix world, other attempts at achieving distributed computing and remote filesystem access were made concurrently with the Plan 9 design effort. These included the Network File System and the associated vnode architecture developed at Sun Microsystems , and more radical departures from the Unix model such as the Sprite OS from UC Berkeley . Sprite developer Brent Welch points out that

3168-486: The sam and acme editors, have been ported to Unix and Linux systems and have achieved some level of popularity. Several projects seek to replace the GNU operating system programs surrounding the Linux kernel with the Plan 9 operating system programs. The 9wm window manager was inspired by 8½ , the older windowing system of Plan 9; wmii is also heavily influenced by Plan 9. In computer science research, Plan 9 has been used as

3234-435: The same name, a listing of the union directory ( ls or lc ) will simply report duplicate names. Resolution of a single path name is performed top-down: if the directories top and bottom are unioned into u with top first, then u/name denotes top/name if it exists, bottom/name only if it exists and top/name does not exist , and no file if neither exists. No recursive unioning of subdirectories

3300-464: The same time, Bell Labs' parent company AT&T licensed Java technology from Sun Microsystems . In March–April 1997 IEEE Internet Computing included an advertisement for Inferno networking software. It claimed that various devices could communicate over "any network" including the Internet, telecommunications and LANs. The advertisement stated that video games could talk to computers,–a PlayStation

3366-487: The source code for a minimal ("working, albeit not very useful") version was less than one-fifth the size of a Mach microkernel without any device drivers (5899 or 4622 lines of code for Plan 9, depending on metric, vs. 25530 lines). The complete kernel comprised 18000 lines of code. (According to a 2006 count, the kernel was then some 150,000 lines, but this was compared against more than 4.8 million in Linux . ) Within

SECTION 50

#1732876611113

3432-462: The system are built on two ideas: a per-process name space and a simple message-oriented file system protocol. The first idea (a per-process name space) means that, unlike on most operating systems, processes (running programs) each have their own view of the namespace , corresponding to what other operating systems call the file system; a single path name may refer to different resources for different processes. The potential complexity of this setup

3498-590: The user may work simultaneously with programs that have heterogeneous namespaces. Namespaces may be used to create an isolated environment similar to chroot , but in a more secure way. Plan 9's union directory architecture inspired 4.4BSD and Linux union file system implementations, although the developers of the BSD union mounting facility found the non-recursive merging of directories in Plan 9 "too restrictive for general purpose use". Instead of having system calls specifically for process management , Plan 9 provides

3564-460: The very small range of supported hardware and the small, even compared to Plan 9, user base have also significantly slowed the adoption of those systems (...). In retrospect, Plan 9 was the only research distributed OS from that time which managed to attract developers and be used in commercial projects long enough to warrant its survival to this day. Plan 9 demonstrated that an integral concept of Unix—that every system interface could be represented as

3630-495: The way just outlined. For example, the cpu command starts a remote session on a computation server. The command exports part of its local namespace, including the user's terminal's devices ( mouse , cons , bitblt ), to the server, so that remote programs can perform input/output using the terminal's mouse, keyboard and display, combining the effects of remote login and a shared network filesystem. All programs that wish to provide services-as-files to other programs speak

3696-481: The years, many notable developers have contributed to the project, including Brian Kernighan , Tom Duff , Doug McIlroy , Bjarne Stroustrup and Bruce Ellis. Plan 9 replaced Unix as Bell Labs's primary platform for operating systems research. It explored several changes to the original Unix model that facilitate the use and programming of the system, notably in distributed multi-user environments. After several years of development and internal use, Bell Labs shipped

3762-469: Was ISO/IEC 10646-1:1993 . Ken Thompson invented UTF-8, which became the native encoding in Plan 9. The entire system was converted to general use in 1992. UTF-8 preserves backwards compatibility with traditional null-terminated strings , enabling more reliable information processing and the chaining of multilingual string data with Unix pipes between multiple processes. Using a single UTF-8 encoding with characters for all cultures and regions eliminates

3828-697: Was a necessary component of the system. This is the same conclusion of the Oak project that became Java , but arrived at independently. The Dis virtual machine is a register machine intended to closely match the architecture it runs on, in contrast to the stack machine of the Java virtual machine . An advantage of this approach is the relative simplicity of creating a just-in-time compiler for new architectures. The virtual machine provides memory management designed to be efficient on devices with as little as 1 MiB of memory and without memory-mapping hardware. Its garbage collector

3894-447: Was available in the first two editions, but was then dropped for maintenance reasons and replaced by a threading library for C. Though Plan 9 was supposed to be a further development of Unix concepts, compatibility with preexisting Unix software was never the goal for the project. Many command-line utilities of Plan 9 share the names of Unix counterparts, but work differently. Plan 9 can support POSIX applications and can emulate

3960-519: Was based on the experience gained with Plan 9 from Bell Labs , and the further research of Bell Labs into operating systems, languages, on-the-fly compilers, graphics, security, networking and portability. The name of the operating system, many of its associated programs, and that of the current company, were inspired by Dante Alighieri 's Divine Comedy . In Italian, Inferno means " hell ", of which there are nine circles in Dante's Divine Comedy . Inferno

4026-414: Was created in 1995 by members of Bell Labs ' Computer Science Research division to bring ideas derived from their previous operating system, Plan 9 from Bell Labs , to a wider range of devices and networks. Inferno is a distributed operating system based on three basic principles: To handle the diversity of network environments it was intended to be used in, the designers decided a virtual machine (VM)

SECTION 60

#1732876611113

4092-406: Was designed with graphics in mind. After booting, a Plan 9 terminal will run the rio windowing system, in which the user can create new windows displaying rc . Graphical programs invoked from this shell replace it in its window. The plumber provides an inter-process communication mechanism which allows system-wide hyperlinking. Sam and acme are Plan 9's text editors. Plan 9 supports

4158-508: Was heavily marketing its own Java programming language , which was targeting a similar market, with analogous technology, that worked in web browsers and also filled the demand for object-oriented languages popular at that time. Lucent licensed Java from Sun, claiming that all Inferno devices would be made to run Java. A Java byte code to Dis byte code translator was written to facilitate that. However, Inferno still did not find customers. The Inferno Business Unit closed after three years, and

4224-486: Was originally developed, starting in the late 1980s, by members of the Computing Science Research Center at Bell Labs, the same group that originally developed Unix and the C programming language . The Plan 9 team was initially led by Rob Pike , Ken Thompson , Dave Presotto and Phil Winterbottom, with support from Dennis Ritchie as head of the Computing Techniques Research Department. Over

4290-556: Was pictured–cell phones could access email and voice mail was available via TV. Lucent used Inferno in at least two internal products: the Lucent VPN Firewall Brick, and the Lucent Pathstar phone switch. They initially tried to sell source code licenses of Inferno but found few buyers. Lucent did little marketing and missed the importance of the Internet and Inferno's relation to it. During the same time Sun Microsystems

4356-452: Was sold to Vita Nuova Holdings. Vita Nuova continued development and offered commercial licenses to the complete system, and free downloads and licenses (not GPL compatible) for all of the system except the kernel and VM. They ported the software to new hardware and focused on distributed applications. Eventually, Vita Nuova released the 4th edition under more common free software licenses, and in 2021 they relicensed all editions under mainly

#112887