# Plurix

Plurix is a Unix-like operating system developed in Brazil in the early 1980s.

## Overview

Plurix was developed in the Federal University of Rio de Janeiro (UFRJ), at the Electronic Computing Center (NCE).
The NCE researchers, after returning from postgraduate courses in the US, attempted to license the UNIX source code from AT&T in the late 1970s without success. In 1982, due to AT&T refusing to license the code, a development team led by Newton Faller decided to initiate the development of an alternative system, called Plurix (**), using as reference UNIX Version 7, the most recent at the time, that they had running on an old Motorola computer system.
In 1985, the Plurix system was up and running on the Pegasus 32-X, a shared-memory, multi-processor computer also designed at NCE. Plurix was licensed to some Brazilian companies in 1988.
Two other Brazilian universities also developed their own UNIX systems: Universidade Federal de Minas Gerais (UFMG) developed the DCC-IX operating system, and University of São Paulo (USP) developed the REAL operating system in 1987.
The NCE/UFRJ also offered technical courses on OS design and implementation to local computer companies, some of which later produced their own proprietary UNIX systems. In fact, these Brazilian companies first created an organization of companies interested in UNIX (called API) and tried to license UNIX from AT&T. Their attempts were frustrated at the end of 1986, when AT&T canceled negotiations with API.
Some of these companies, EDISA, COBRA, and SOFTEC, invested in the development of their own systems, EDIX, SOX and ANALIX, respectively.

## AT&T License

When AT&T finally licensed their code to Brazilian companies, the majority of them decided to drop their local development, use the licensed code, and just "localize" the system for their purposes.
COBRA and NCE/UFRJ kept developing, and tried to convince the Brazilian government to prohibit the further entrance of AT&T UNIX into Brazil, since the operating systems they developed, (COBRA and Plurix), were similar to AT&T's and could do the same things. The Brazilian IT industry in the 80s was a protected market, so a foreign company couldn't sell a product in Brazil if a Brazilian IT company offered similar hardware or software. COBRA had a very strong argument: the similarity of its OS was recognized by X/OPEN.
The government, under North American pressure, delayed the decision. A new president was elected after twenty years of a military dictatorship, and his first act was to terminate the laws that ruled the Brazilian IT market protection for hardware, software, and later everything else. All projects were withdrawn. NCE went "back to the University." COBRA almost went bankrupt, and now is a state-owned company whose major customer is Banco do Brasil.
Certainly none of the national systems had the comprehensiveness of the original UNIX System V, which incorporated software from different origins and was more than fifteen years ahead. However, the evolution of the national systems could have followed a viable and proper way and still preserved the basic characteristics ("Unix philosophy") to assure compatibility with other UNIX systems around the world.

## Related projects

At the NCE, the Plurix Project has evolved into 2 other projects:

### Mulplix

Mulplix is a Unix-like operating system designed to support medium-grain parallelism and to provide an efficient environment for running parallel applications within MULTIPLUS. MULTIPLUS is a distributed shared-memory multiprocessor designed to have a modular architecture, which is able to support up to 1024 processing elements and 32 GB of global memory address space.

### Tropix

Developed by a group of volunteers, (like Linux), Tropix is a fully preemptive real-time Unix-like operating system for PCs.
At the user level, TROPIX bears a reasonable similarity to the UNIX operating system. Processes are created through fork-execs, I/O is always treated as a sequence of bytes and is performed through open-read-write-close primitives, signals can be sent to processes, there is a kernel process zero (swapper/pager), the init process is the common ancestor of all other user processes, etc.
Internally, the TROPIX kernel structure is quite different from UNIX. TROPIX has a fully preemptible kernel and many specialized system calls to manipulate and coordinate the execution of real-time processes. Real-time processes coexist with their time-sharing counterparts, but they can run at higher priorities and have many other privileges. Besides its swapper/pager, TROPIX kernel standard processes include a unique dispatcher process per processor. When running in a multiprocessing environment, this scheme greatly facilitates the implementation of different scheduling strategies to be followed by different processors. Fine-grain parallel processing within executing processes is also possible, since TROPIX implements threads at the supervisor level.