Please enable JavaScript.
Coggle requires JavaScript to display documents.
the software dev environment, Continue again from Software development 3 -…
the software dev environment
software
Control scheme for equipment, not fixed in hardware
First example is the Jacquard loom, which used puched cards to define weaving patterns
replaced by development of magnetic disk storage
Some computers lack software. But rely on hardware
Is almost everywhere in our technology
some appliances have firmware, which is software that isn't expected to change frequently
smart devices have complex software
Apps
Operating System
started as library packages to speed up tasks
first examples were created by a customer of a computer system, and took a while to become adopted
Operating Software started being made for customers around 1964
IBM job control language (JCL) to control batch processing
Load cards into machines to perform tasks
Cryptic and hardware oriented
Academic researchers organised OS
Interested in time sharing
using a computer system that was shared between people to get away from batch processing
ETSS / CTSS that ran on the IBM 709 mainframe at MIT
First login system was developed
Was designed to be general purpose and not to run on one piece of hardware
Making OS systems is hard
First attempt MULTICS
largest software project of it's era
has to protect each user's programs from interference by others
needs to coordinate access between users, but not at the same time
Quick Timeslicing allowed people to perform tasks as if they had their own computers
For slow devices (IO), queuing was necessary to syncrhonise. Stuff like printing need to be started and waited to be completed
late 60 and early 70s there was a turning point
Unix was developed
Was made by Ken Thompson by rewriting libraries to improve performance of games
benefited Ken and his colleagues by cretaing a better environement
Reused MULTICS concepts like kernel and shell
Creating small programs that interacted with each other through standard interfaces. Creating a programmers toolkit
Everything can be treated as a file
People became more interested and started using it for development
Ported to PDP minicomputer, and was used widely
AT&T distributed it publicly. But there were legal issues "Unix Wars"
More Operating System
Micrprocessors revolution in the 70s
as microprocessors became faster, they then requireed disk drives
Beginning of PCs
Apple DOS / proDOS for Apple II
MS-DOS for IBM-PC and clones
text-based UI, all done through the command line
in 1990s, better microprocessors were available, and supported better OS
Linux 1991 (an open source alternative to Unix is released) using GNU tools
Windows 95 was released, first widely used Graphical User Interface operating system. Changes accessibility of computing
In 2001 Apple OSX was released. Another Unix variant
Graphical User Interfaces over 20 years gradually became the standard
Complexity of software and hardware increased the price
Early on Microsoft and Apple devevloped their own GUI
X-Windows was standardised system for Unix, adopted by linux and Apple
However, text-based input is still always there. It's efficient and some operations are too complex for GUI
With text-based you can connect remotely across networks. An advantage.
Software development is referred to as programming
Defines order of instructions for a CPU to execute
Done through a high level language, (mimics human-like language) over a machine level language
uses keywords from language to form statements, which have to be validated , structures are required which are governed by syntax, rules of how the lanaguage is structured. Once validated, they are transferred to the machine instructions. Abstracting the complex langauge to how CPU instructions operate.
Machine instructions used to be coded directly by humans.
In binary (machine language)
used to be done with switches to define a pattern of bits
rudimentary, but was used if needed later on
It was preffered to make it more human friendly
Assembly was created, and was comparable to machine code through numerical operations like ADD, SUB and MULT) .
Still low level, but gave precise control over the hardware. But still very difficult to learn and use.
Continue again from Software development 3