X Window System
The X Window System is a windowing system for bitmap displays, common on Unix-like operating systems. X provides the basic framework for a GUI environment: drawing and moving windows on the display device and interacting with a mouse and keyboard. X does not mandate the user interface – this is handled by individual programs; as such, the visual styling of X-based environments varies greatly. X originated at the Massachusetts Institute of Technology in 1984; the X protocol has been version 11 since September 1987. The X. Org Foundation leads the X project, with the current reference implementation, X. Org Server, available as free and open source software under the MIT License and similar permissive licenses. X is an architecture-independent system for remote graphical user interfaces and input device capabilities; each person using a networked terminal has the ability to interact with the display with any type of user input device. In its standard distribution it is a complete, albeit simple and interface solution which delivers a standard toolkit and protocol stack for building graphical user interfaces on most Unix-like operating systems and OpenVMS, has been ported to many other contemporary general purpose operating systems.
X provides the basic framework, or primitives, for building such GUI environments: drawing and moving windows on the display and interacting with a mouse, keyboard or touchscreen. X does not mandate the user interface. Programs may use X's graphical abilities with no user interface; as such, the visual styling of X-based environments varies greatly. Unlike most earlier display protocols, X was designed to be used over network connections rather than on an integral or attached display device. X features network transparency, which means an X program running on a computer somewhere on a network can display its user interface on an X server running on some other computer on the network; the X server is the provider of graphics resources and keyboard/mouse events to X clients, meaning that the X server is running on the computer in front of a human user, while the X client applications run anywhere on the network and communicate with the user's computer to request the rendering of graphics content and receive events from input devices including keyboards and mice.
The fact that the term "server" is applied to the software in front of the user is surprising to users accustomed to their programs being clients to services on remote computers. Here, rather than a remote database being the resource for a local app, the user's graphic display and input devices become resources made available by the local X server to both local and remotely hosted X client programs who need to share the user's graphics and input devices to communicate with the user. X's network protocol is based on X command primitives; this approach allows both 2D and 3D operations by an X client application which might be running on a different computer to still be accelerated on the X server's display. For example, in classic OpenGL, display lists containing large numbers of objects could be constructed and stored in the X server by a remote X client program, each rendered by sending a single glCallList across the network. X provides no native support for audio. X uses a client–server model: an X server communicates with various client programs.
The server sends back user input. The server may function as: an application displaying to a window of another display system a system program controlling the video output of a PC a dedicated piece of hardwareThis client–server terminology – the user's terminal being the server and the applications being the clients – confuses new X users, because the terms appear reversed, but X takes the perspective of the application, rather than that of the end-user: X provides display and I/O services to applications, so it is a server. The communication protocol between server and client operates network-transparently: the client and server may run on the same machine or on different ones with different architectures and operating systems. A client and server can communicate securely over the Internet by tunneling the connection over an encrypted network session. An X client itself may emulate an X server by providing display services to other clients; this is known as "X nesting". Open-source clients such as Xnest and Xephyr support such X nesting.
To use an X client application on a remote machine, the user may do the following: on the local machine, open a terminal window use ssh with the X forwarding argument to connect to the remote machine request local display/input service The remote X client application will make a connection to the user's local X server, providing display and input to the user. Alternatively, the local machine may run a small program that connects to the remote machine and starts the client application. Practical examples of remote clients include: administering a remote machine graphically using a client application to join with large numbers of other terminal users in collaborative workgroups running a computationally intensive simulation on a remote machine and displaying the results on
Free and open-source software
Free and open-source software is software that can be classified as both free software and open-source software. That is, anyone is licensed to use, copy and change the software in any way, the source code is shared so that people are encouraged to voluntarily improve the design of the software; this is in contrast to proprietary software, where the software is under restrictive copyright licensing and the source code is hidden from the users. FOSS maintains the software user's civil liberty rights. Other benefits of using FOSS can include decreased software costs, increased security and stability, protecting privacy and giving users more control over their own hardware. Free and open-source operating systems such as Linux and descendants of BSD are utilized today, powering millions of servers, desktops and other devices. Free-software licenses and open-source licenses are used by many software packages; the free-software movement and the open-source software movement are online social movements behind widespread production and adoption of FOSS.
"Free and open-source software" is an umbrella term for software, considered both Free software and open-source software. FOSS allows the user to inspect the source code and provides a high level of control of the software's functions compared to proprietary software; the term "free software" does not refer to the monetary cost of the software at all, but rather whether the license maintains the software user's civil liberties. There are a number of related terms and abbreviations for free and open-source software, or free/libre and open-source software. Although there is a complete overlap between free-software licenses and open-source-software licenses, there is a strong philosophical disagreement between the advocates of these two positions; the terminology of FOSS or "Free and Open-source software" was created to be a neutral on these philosophical disagreements between the FSF and OSI and have a single unified term that could refer to both concepts. As the Free Software Foundation explains the philosophical difference between free software and open-source software: "The two terms describe the same category of software, but they stand for views based on fundamentally different values.
Open-source is a development methodology. For the free-software movement, free software is an ethical imperative, essential respect for the users' freedom. By contrast, the philosophy of open-source considers issues in terms of how to make software “better”—in a practical sense only." In parallel to this the Open Source Initiative considers many free-software licenses to be open source. These include the latest versions of the FSF's three main licenses: the GPL, the Lesser General Public License, the GNU Affero General Public License. Richard Stallman's Free Software Definition, adopted by the Free Software Foundation, defines free software as a matter of liberty not price, it upholds the Four Essential Freedoms; the earliest-known publication of the definition of his free-software idea was in the February 1986 edition of the FSF's now-discontinued GNU's Bulletin publication. The canonical source for the document is in the philosophy section of the GNU Project website; as of August 2017, it is published there in 40 languages.
To meet the definition of "free software", the FSF requires the software's licensing rights what the FSF respect the civil liberties / human rights of what the FSF calls the software user's "Four Essential Freedoms". The freedom to run the program as you wish, for any purpose; the freedom to study how the program works, change it so it does your computing as you wish. Access to the source code is a precondition for this; the freedom to redistribute copies. The freedom to distribute copies of your modified versions to others. By doing this you can give the whole community a chance to benefit from your changes. Access to the source code is a precondition for this; the open-source-software definition is used by the Open Source Initiative to determine whether a software license qualifies for the organization's insignia for Open-source software. The definition was based on the Debian Free Software Guidelines and adapted by Bruce Perens. Perens did not base his writing on the Four Essential Freedoms of free software from the Free Software Foundation, which were only available on the web.
Perens subsequently stated that he felt Eric Raymond's promotion of Open-source unfairly overshadowed the Free Software Foundation's efforts and reaffirmed his support for Free software. In the following 2000s, he spoke about open source again. In the 1950s through the 1980s, it was common for computer users to have the source code for all programs they used, the permission and ability to modify it for their own use. Software, including source code, was shared by individuals who used computers as public domain software. Most companies had a business model based on hardware sales, provided or bundled software with hardware, free of charge. By the late 1960s, the prevailing business model around software was changing. A growing and evolving software industry was competing with the hardware manufacturer's bundled software products. Leased machines required software support while providing n
Fritzing is an open-source initiative to develop amateur or hobby CAD software for the design of electronics hardware, to support designers and artists ready to move from experimenting with a prototype to building a more permanent circuit. It was developed at the University of Applied Sciences of Potsdam; the software is created in the spirit of the Processing programming language and the Arduino microcontroller and allows a designer, researcher, or hobbyist to document their Arduino-based prototype and create a PCB layout for manufacturing. The associated website helps users share and discuss drafts and experiences as well as to reduce manufacturing costs. Fritzing can be seen as an electronic design automation tool for non-engineers: the input metaphor is inspired by the environment of designers, while the output is focused on accessible means of production; as of December 2, 2014 Fritzing has made a code view option, where one can modify code and upload it directly to an Arduino device. Component images are distributed under CC-BY-SA, which will be the license for any generated breadboard views.
The Fritzing source code is written in C++ using the Qt-framework. The source code can be edited via the GitHub repositories; the source is split in two main repositories: Fritzing-Parts. Fritzing allows for easy creation of printed circuit boards. FritzingFab enables users to order PCBs with designs made on the Fritzing software. Additionally, the website contains a forum where users can share and comment on each other's designs. Comparison of EDA software List of free electronics circuit simulators Official website User Forum FabService Fritzing-App on GitHub Fritzing-Parts on GitHub Fritzing overview
Microsoft Windows is a group of several graphical operating system families, all of which are developed and sold by Microsoft. Each family caters to a certain sector of the computing industry. Active Windows families include Windows Embedded. Defunct Windows families include Windows Mobile and Windows Phone. Microsoft introduced an operating environment named Windows on November 20, 1985, as a graphical operating system shell for MS-DOS in response to the growing interest in graphical user interfaces. Microsoft Windows came to dominate the world's personal computer market with over 90% market share, overtaking Mac OS, introduced in 1984. Apple came to see Windows as an unfair encroachment on their innovation in GUI development as implemented on products such as the Lisa and Macintosh. On PCs, Windows is still the most popular operating system. However, in 2014, Microsoft admitted losing the majority of the overall operating system market to Android, because of the massive growth in sales of Android smartphones.
In 2014, the number of Windows devices sold was less than 25 %. This comparison however may not be relevant, as the two operating systems traditionally target different platforms. Still, numbers for server use of Windows show one third market share, similar to that for end user use; as of October 2018, the most recent version of Windows for PCs, tablets and embedded devices is Windows 10. The most recent versions for server computers is Windows Server 2019. A specialized version of Windows runs on the Xbox One video game console. Microsoft, the developer of Windows, has registered several trademarks, each of which denote a family of Windows operating systems that target a specific sector of the computing industry; as of 2014, the following Windows families are being developed: Windows NT: Started as a family of operating systems with Windows NT 3.1, an operating system for server computers and workstations. It now consists of three operating system subfamilies that are released at the same time and share the same kernel: Windows: The operating system for mainstream personal computers and smartphones.
The latest version is Windows 10. The main competitor of this family is macOS by Apple for personal computers and Android for mobile devices. Windows Server: The operating system for server computers; the latest version is Windows Server 2019. Unlike its client sibling, it has adopted a strong naming scheme; the main competitor of this family is Linux. Windows PE: A lightweight version of its Windows sibling, meant to operate as a live operating system, used for installing Windows on bare-metal computers, recovery or troubleshooting purposes; the latest version is Windows PE 10. Windows IoT: Initially, Microsoft developed Windows CE as a general-purpose operating system for every device, too resource-limited to be called a full-fledged computer. However, Windows CE was renamed Windows Embedded Compact and was folded under Windows Compact trademark which consists of Windows Embedded Industry, Windows Embedded Professional, Windows Embedded Standard, Windows Embedded Handheld and Windows Embedded Automotive.
The following Windows families are no longer being developed: Windows 9x: An operating system that targeted consumers market. Discontinued because of suboptimal performance. Microsoft now caters to the consumer market with Windows NT. Windows Mobile: The predecessor to Windows Phone, it was a mobile phone operating system; the first version was called Pocket PC 2000. The last version is Windows Mobile 6.5. Windows Phone: An operating system sold only to manufacturers of smartphones; the first version was Windows Phone 7, followed by Windows Phone 8, the last version Windows Phone 8.1. It was succeeded by Windows 10 Mobile; the term Windows collectively describes any or all of several generations of Microsoft operating system products. These products are categorized as follows: The history of Windows dates back to 1981, when Microsoft started work on a program called "Interface Manager", it was announced in November 1983 under the name "Windows", but Windows 1.0 was not released until November 1985.
Windows 1.0 was to achieved little popularity. Windows 1.0 is not a complete operating system. The shell of Windows 1.0 is a program known as the MS-DOS Executive. Components included Calculator, Cardfile, Clipboard viewer, Control Panel, Paint, Reversi and Write. Windows 1.0 does not allow overlapping windows. Instead all windows are tiled. Only modal dialog boxes may appear over other windows. Microsoft sold as included Windows Development libraries with the C development environment, which included numerous windows samples. Windows 2.0 was released in December 1987, was more popular than its predecessor. It features several improvements to the user memory management. Windows 2.03 changed the OS from tiled windows to overlapping windows. The result of this change led to Apple Computer filing a suit against Microsoft alleging infringement on Apple's copyrights. Windows 2.0
Unix is a family of multitasking, multiuser computer operating systems that derive from the original AT&T Unix, development starting in the 1970s at the Bell Labs research center by Ken Thompson, Dennis Ritchie, others. Intended for use inside the Bell System, AT&T licensed Unix to outside parties in the late 1970s, leading to a variety of both academic and commercial Unix variants from vendors including University of California, Microsoft, IBM, Sun Microsystems. In the early 1990s, AT&T sold its rights in Unix to Novell, which sold its Unix business to the Santa Cruz Operation in 1995; the UNIX trademark passed to The Open Group, a neutral industry consortium, which allows the use of the mark for certified operating systems that comply with the Single UNIX Specification. As of 2014, the Unix version with the largest installed base is Apple's macOS. Unix systems are characterized by a modular design, sometimes called the "Unix philosophy"; this concept entails that the operating system provides a set of simple tools that each performs a limited, well-defined function, with a unified filesystem as the main means of communication, a shell scripting and command language to combine the tools to perform complex workflows.
Unix distinguishes itself from its predecessors as the first portable operating system: the entire operating system is written in the C programming language, thus allowing Unix to reach numerous platforms. Unix was meant to be a convenient platform for programmers developing software to be run on it and on other systems, rather than for non-programmers; the system grew larger as the operating system started spreading in academic circles, as users added their own tools to the system and shared them with colleagues. At first, Unix was not designed to be multi-tasking. Unix gained portability, multi-tasking and multi-user capabilities in a time-sharing configuration. Unix systems are characterized by various concepts: the use of plain text for storing data; these concepts are collectively known as the "Unix philosophy". Brian Kernighan and Rob Pike summarize this in The Unix Programming Environment as "the idea that the power of a system comes more from the relationships among programs than from the programs themselves".
In an era when a standard computer consisted of a hard disk for storage and a data terminal for input and output, the Unix file model worked quite well, as I/O was linear. In the 1980s, non-blocking I/O and the set of inter-process communication mechanisms were augmented with Unix domain sockets, shared memory, message queues, semaphores, network sockets were added to support communication with other hosts; as graphical user interfaces developed, the file model proved inadequate to the task of handling asynchronous events such as those generated by a mouse. By the early 1980s, users began seeing Unix as a potential universal operating system, suitable for computers of all sizes; the Unix environment and the client–server program model were essential elements in the development of the Internet and the reshaping of computing as centered in networks rather than in individual computers. Both Unix and the C programming language were developed by AT&T and distributed to government and academic institutions, which led to both being ported to a wider variety of machine families than any other operating system.
Under Unix, the operating system consists of many libraries and utilities along with the master control program, the kernel. The kernel provides services to start and stop programs, handles the file system and other common "low-level" tasks that most programs share, schedules access to avoid conflicts when programs try to access the same resource or device simultaneously. To mediate such access, the kernel has special rights, reflected in the division between user space and kernel space - although in microkernel implementations, like MINIX or Redox, functions such as network protocols may run in user space; the origins of Unix date back to the mid-1960s when the Massachusetts Institute of Technology, Bell Labs, General Electric were developing Multics, a time-sharing operating system for the GE-645 mainframe computer. Multics featured several innovations, but presented severe problems. Frustrated by the size and complexity of Multics, but not by its goals, individual researchers at Bell Labs started withdrawing from the project.
The last to leave were Ken Thompson, Dennis Ritchie, Douglas McIlroy, Joe Ossanna, who decided to reimplement their experiences in a new project of smaller scale. This new operating system was without organizational backing, without a name; the new operating system was a single-tasking system. In 1970, the group coined the name Unics for Uniplexed Information and Computing Service, as a pun on Multics, which stood for Multiplexed Information and Computer Services. Brian Kernighan takes credit for the idea, but adds that "no one can remember" the origin of the final spelling Unix. Dennis Ritchie, Doug McIlroy, Peter G. Neumann credit Kernighan; the operating system was written in assembly language, but in 1973, Version 4 Unix was rewritten in C. Version 4 Unix, still had many PDP-11 dependent codes, is not suitable for porting; the first port to other platform was made five years f
Cobalt (CAD program)
Cobalt is a parametric-based computer-aided design and 3D modeling program that runs on both Macintosh and Microsoft Windows operating systems. The program combines the direct-modeling way to create and edit objects and the structured, history-driven parametric way exemplified by programs like Pro/ENGINEER. A product of Ashlar-Vellum, Cobalt is Wireframe-based and history-driven with associativity and 2D equation-driven parametrics and constraints, it offers surfacing tools, mold design tools and engineering features. Cobalt includes a library of 149,000 mechanical parts. Cobalt's interface, which the company named the "Vellum interface" after its eponymous flagship product, was designed in 1988 by Dr. Martin Newell and Dan Fitzpatrick; the central feature of the Vellum interface is its "Drafting Assistant," which facilitates the creation and alignment of the new geometry. Cobalt has received praise for its free-form surfaces on solid modeled objects; the distinguishing characteristics of Cobalt are its ease of use and the quick learning curve for new users.
Cobalt inherited its 2D and 3D wire frame features from "Vellum." However, with Cobalt, wire frame geometry—which does not have to be planar—can be subsequently revolved or extruded relative to any plane or along a curved path to create 3D solids. Cobalt allows 3D objects to be created directly using 3D tools while still retaining the designer's ability to edit those objects via history-driven parametrics and to add further constraints. Both types of solids—extruded 2D wire frame and directly created 3D solids—can be seamlessly mixed in the same drawing. Whereas most history-based parametric solid modelers require the designer to rigorously follow a logical progression while creating models and tend to require that the designer think ahead about the planned order of transmutations of the solid model, Cobalt has a more freeform, less structured way of solid modeling that the developer refers to as "Organic Workflow". Cobalt's less structured modeling environment coupled with an integral ray-tracing capability makes it suitable for brainstorming and product development.
The program's history-driven modeling and equation-driven parametrics and constraints permit designers to edit the dimensions and locations of key features in models without the need for major redesign—much like changing the value of a single cell in a complex spreadsheet. Ashlar-Vellum's patented, 31-year-old "Drafting Assistant" is the central component of Ashlar's "Vellum interface"; the Drafting Assistant looks for nearby geometry. It automatically displays information alongside the cursor regarding nearby geometric features to which the designer can snap; the designer can create new geometry at those snap points, or create construction lines to serve as guides. The Drafting Assistant is sensitive to the following geometric attributes: Centers Endpoints Intersections Midpoints Perpendicularity Quadrants Tangents VertexesDrafting Assistant remembers the last snaps with a weighted algorithm to intuit the designer's intentions. In the animation at right, the designer first snaps to the X-, Y-, Z-axis coordinates at the midpoint of the top edge and snaps to the same spot on the leading edge, which has different X- and Z-axis coordinates.
He moves his cursor to a point in 3D space. Although there may be 3D surfaces underneath the cursor, Drafting Assistant intuits the designer's intent and offers an intersection point comprising the Y- and Z-axis coordinates of the first edge and the X-axis coordinate of the nearest edge. At this location, the designer adds a circle freehand and specifies a diameter of 200 millimeters by typing it into the box at bottom right. Last, the designer uses the "Remove profile from solid" tool to cut through the block. Here again, Drafting Assistant enables prompt definition of the depth of the cut by snapping to the back quadrant of the intersecting hole; the Drafting Assistant provides a "Message line" at the top. This displays instructions appropriate for the selected tool, prompts the designer with what he should do next with any given tool, reminds the designer of optional modes for those tools. Cobalt's parametrics and history tracking work permit the designer to edit the diameter and location of either circle—both of which have dependencies —and the model updates accordingly.
Cobalt features the following tool sets: Animation tools Cobalt features several modes for making animation, notably "Static", "Walk-through," and "Fly-by". Cobalt is capable of six different levels of photorealistic rendering, from "Raytrace Preview Render " through "Auto Full Render ". Choosing less realistic modes for trial animations allows quick rendering—even those with several hundred frames—because Cobalt exploits multi-core microprocessors during rendering; the click-to-play animation shows two industrial pushbutton switches surrounded by a virtual "photo studio" in a Cobalt model. The mirrored hemisphere enables the reader to see the back wall and ceiling lights, which all contribute to the nature of the light reflecting off the switches. Face-on images of these switches were used in the development of a touchscreen-based human–machine interface for use in industrial manufacturing settings. To create fly-by animations, Cobalt prompts the designer to specify a path for the "camera e
Autodesk Alias is a family of Computer-aided industrial design software predominantly used in Automotive Design and Industrial Design for generating Class A surfaces using Bézier surface and NURBS modeling method. The product is sold as CAID rather than CAD, its tools and abilities are oriented more towards the "styling" aspect of design -, to say, the product's housing and outer appearance, it does not go into mechanical detail like other CAD programs such as Siemens NX, Inventor, CATIA, Pro/ENGINEER and SolidWorks, but has a much more powerful set of tools for the creation of sculpted curves and surfaces and all'touch and feel' surfaces of any part that demands aesthetic finish. Alias software was developed by four Computer scientists: Stephen Bingham, Nigel McGrath, Susan McKenna and David Springer to create an easy-to-use software realistic 3D package to produce realistic 3D graphic models. In 1983, Alias Research was founded at Toronto, Canada. Alias unveiled its first product Alias/1 in 1985 at SIGGRAPH'85 in San Francisco.
Initial versions were to be run only on SGIs super-microcomputer using 64-bit Motorola processors and Irix OS, until late 90's when Windows platform could use 64 bit chips. In 2011 Mac versions were launched; the company soon emerged as a premier software product company that produced high-end 3D graphics software. In 1995, Alias Research was purchased by Silicon Graphics and merged Wavefront Technologies, another 3D software graphics company founded in 1984 at Santa Barbara, California, to form Alias/Wavefront, renamed as Alias Systems Corporation. On October 4, 2005 Alias was acquired by Autodesk, StudioTools changed its name to Autodesk AliasStudio, it became part of Autodesk in 2006. The product suite starts with Alias Design as the entry-level conceptual design system, progressing to Alias Surface, to Alias Automotive as the top-of-the-line product with all of the options. Tools for sketching and visualization are combined in one software package, it meets the specialized needs of designers: sketching, freedom to experiment with shape and form, creating organic shapes, visualization for design review, data exchange with CAD packages.
As of version 2019, Autodesk Alias was split into separate standalone products: Autodesk Alias AutoStudio Autodesk Alias Surface Autodesk Alias Concept Autodesk Alias SpeedForm. Autodesk Alias is used for design and styling in the automotive, aircraft, sporting equipment, packaging electronic enclosure, children's toy, fashion accessory markets. Alias.wire data reads directly into Autodesk Inventor, Autodesk Showcase, Autodesk ImageStudio, Autodesk Maya and Autodesk VRED and It exports into several other 3D engineering packages via IGES or STEP such as Unigraphics, SolidWorks, Pro/ENGINEER, Siemens and CATIA for further downstream detailing and operations. The program has two types of modelers within it: polygons. Automotive design Product design Class A surfaces Autodesk Alias Surface Autodesk Silicon Graphics Alias Research Autodesk Alias Products AliasDesign Community Website