110 likes | 500 Views
Computer System Basics Operating Systems: Unix, Linux, and Androids. Lynn Choi Dept. Of Computer and Electronics Engineering. Unix. History Developed by Ken Thompson, Dennis Ritchie, Brian Kernighan, Douglas McIlroy, and Joe Ossanna at AT&T Bell Labs in 1969
E N D
Computer System BasicsOperating Systems: Unix, Linux, and Androids Lynn Choi Dept. Of Computer and Electronics Engineering
Unix • History • Developed by Ken Thompson, Dennis Ritchie, Brian Kernighan, Douglas McIlroy, and Joe Ossanna at AT&T Bell Labs in 1969 • C programming language is developed by Dennis Ritchie in 1973 to code UNIX • Originally developed in assembly languages and recoded in C in 1973 • Widely used in servers, workstations, Macs, and mobile devices • Several branches and versions available • Unix: BSD, System V, Solaris, HP-UX, AIX, OS X • Unix-like systems: Linux • Characteristics • Portable, multi-tasking, multi-user, time-sharing, client-server programming model • Plain text for storing data • Hierarchical file system • Treating IO devices, IPC (interprocess communication) as files • Small programs strung together through command-line interpreter (Shell) using pipes • Unix philosophy: keep it simple and small, make it modular and portable
Unix Architecture • Kernel (source code in /usr/sys) • Key components of the operating system • Boot code, device drivers, kernel, and headers • Process management: concurrency control for multiprocessing • Memory management: virtual memory and paging • File management: hierarchical file system • Device and network management: IO devices & networks as files (stream of bytes) • Programming development environment • Cc (C compiler), as (assembler), ld (linker), lib (libraries), make (automatic builder),.. • Commands • Shell: command-line interpreter • Interpret user commands and start applications • Utilities: system utilities (mkfs, fsck,..) and user utilities (ps, kill, ls, cp, cat, vi,..) • Manuals and documentation
Unix Architecture • Shell (UI) • Command-line interpreter • Interpret user commands and start applications • Utilities • Commands • ps, ls, vi, cat • Libraries • A collection of pre-written codes • Device Drivers • Translate high-level program calls to HW device commands • Hardware dependent and OS-specific
Evolution of the Unix operating system • Mac OS X • Unix-based graphical OS • Derived from Next OS • Objective-C (OO programming) • Graphical UI • IOS • Apple’s mobile OS • Used for iPhone, iPod, iPad, and Apple TV • Derived from Mac OS X • Touch-screen UI
Linux • Unix-like free and open source OS under GNU GPL (General Public License) based on Linux kernel • Linux kernel was created in 1992 by Linus Torvalds • Free and open source software is the primary difference between Linux and other OS • GNU GPL is the most widely used free software license • Copyleft license: Derived works can only be distributed under the same license terms to ensure the freedoms are preserved, even when the work is changed or added to. • Major platforms for mobile phones, tablet PCs, routers, desktops, mainframes, and supercomputers • Smartphone platform: the best selling smartphone platform since Q4 of 2010 • Android is based on a modified version of the Linux kernel • Server platform: 6 of the top 10 internet hosting companies run Linux while 2 of the top ten run FreeBSD, and the remaining 2 run MS Windows. • Mainframe platform: IBM market and sell Enterprise Linux Server on their mainframes • Supercomputer platform: 459 out of the top 500 supercomputers run Linux
Android • Mobile OS developed by Open Handset Alliance led by Google • Google purchased Android, Inc., the initial developer of the Android, in 2005 • OHA: A consortium of 80 HW, SW, and telecommunication companies for the open standards for mobile devices • Android code is released under the Apache License, a free software license • Android Open Source Project (AOSP) is tasked with the maintenance and further development of Android • Android system • Consists of Android kernel, libraries & APIs (written in C), application frameworks, Android runtime system including Dalvik virtual machine, and applications • Android kernel is derived from Linux kernel • Some features (i.e. power management) was rejected by Linux developers • Android is a collection of middlewares built on top of Linux kernel • Apps are primarily written in Java • Dalvik : Android applications are converted into Dalvik executable format (.dex), which is designed for low computing and low memory environment • Unlike JVM (stack-machine), Dalvik is a register-based architecture