Operating systems are key components of computer systems and responsible for management of computer hardware, software resources and provide common services for computer programs and enable interface for end users to load and execute programs. Operating systems several flavours emerged from time to time and the growing complexity of hardware and application programs eventually made operating systems a necessity for everyday usage.
In this article we will learn more about Darwin OS, its features, advantages, and limitations.
Definition: Darwin OS
The OS X kernel is an open source project. The kernel along with core parts of OS X are together referred to as Darwin. Darwin is a complete operating system based on many technologies however Darwin does not include Apple proprietary graphics or application layers such as Quartz, Concoa, Carbon or OpenGL. Darwin has a BSD command line application environment.
Origin of Darwin OS
Darwin is from Apple and the operating system for Mac OS X. Darwin is a Mac OS X without user interface. Darwin is compatible with FreeBSD distribution and emerged having efficiency and stability of UNIX with simple usability of Mac OS. Developers of Apple and the open source community worked together for PowerPC and x86 operating system versions, modifications, and developments flow back to the public, after a free registration of source code was made available for download from Apple website. Standard format supported for applications in Darwin is Mach-O and Linux applications can be ported.
Architecture of Darwin OS
Darwin technology is based on BSD Mach 3.0 from Apple technologies. It is an open source technology having developers’ full access to source code. Same software forms the core of both OS X and Darwin, developers can create a low-level software which runs on both OS’s. Majorly the technology is derived from FreeBSD, a version of 4.4BSD which offers advanced features like networking, performance, security, and compatibility features. Most part of the OS is platform dependent and it provides a clean set of abstractions for dealing with memory management, interprocess communication (IPC), and other low-level operating system functions.
Architecture components of Darwin:
- Mach components : Manages process resources (CPU usage and memory) , handles scheduling, memory protection, messaging center for entire OS , support for low level functions (Remote procedure calls, scheduler support for SMP , real time services support, virtual memory support, paging etc.)
- BSD – provides OS ‘Personality’ services such as file system, networking, FreeBSD Kernel API, kernel support for threads, support for syscall, security policies such as user IDs and permissions
- Networking – Modern features for BSD network capability, network address translation and firewalls, provides support for both IP and AppleTalk, multihoming, routing – multicast support and packet filtering , server tuning, socket-based AppleTalk, Mac OS classic support , open transport APIs
- File system – File systems support (HFS, UFS, NFS etc), The default file system is (HFS+), Mac OS X boots (and ‘roots’) from HFS+ , enhanced virtual file system (VFS) file systems are stackable ,UTF-8 (Unicode) support, increased performance over previous versions
- I/O Kit – simplified driver development Framework, modular and extensible, object oriented I/O architecture , true plug and play, dynamic device management, on demand drivers loading and multiprocessor capabilities , power management of desktop systems as well as portables
- Network kernel Extensions (NKE) – Without interruption and re-compilation Add/remove kernel modules for networking
Characteristics of Darwin OS
- Layered architecture
- Improved reliability and performance
- Enhanced networking
- Object based systems programming interface
- Industry standards support
Darwin OS Pros and Cons
- Reliable and good performance
- Virtual file system design
- Foremost networking features
- Distributed under open source hence security threat
- Not extensible like windows OS
- Slow loading and execution of classic applications
- Shortcoming and support in software compatibility