CENG484 – Unix Programming Lecture 1: Course Outline and Introduction Dr. Sedef Demirci CENG484 Class Introduction Dr. Sedef Demirci Contact: sedefgunduz@gazi.edu.tr Website: http://w3.gazi.edu.tr/~sedefgunduz/ Course Objectives • This course provides an introduction to UNIX systems and UNIX programming. • It covers basic commands in UNIX systems, the fundamentals of UNIX programming, writing shell scripts. Course Outcomes At the end of the course, you will be able to • use basic commands in UNIX systems, • grasp the fundamentals of UNIX programming, • Gain the ability to write shell scripts. Resources No textbook is required, but the following will be useful: • “UNIX in a Nutshell” by Arnold Robbins, O’Reilly, 2005. • “A Practical Guide to Ubuntu Linux (3rd or 4th edition)”, Mark G. Sobell, 2010 or 2015. • “UNIX Power Tools” by Jerry Peek, Tim O’Reilly, Mike Loukides, O’Reilly, 1997. • “Kim Korkar UNIX’ten”, Can Uğur Ayfer, Pusula Yayıncılık, 1995. Other Class Resources ○ My website: http://w3.gazi.edu.tr/~sedefgunduz/ Grading • assignments = %30 • 1 midterm = %30 • 1 final = %40 Assignments • Submissions will be made through the online system on the due date. • There will be mainly on coding and writing scripts. Course Schedule (Tentative) • • • • • Feb 26 Mar 5 Mar 12 Mar 19 Mar 26 Course outline and introduction Introduction to UNIX, basic commands Common UNIX commands UNIX Shell UNIX Shell Course Schedule (Tentative) • • • • Apr 2 Apr 9 Apr 16 Apr 23 • Apr 30 UNIX Filesystem UNIX Filesystem File management and access control Ulusal Egemenlik ve Çocuk Bayramı Search in UNIX, pattern matching Course Schedule (Tentative) • • • • • May 7 May 14 May 21 May 28 Jun 4 Editors, makefiles Ramazan Bayramı Process management Shell programming Shell programming Today • What is UNIX? • Brief history of UNIX • Properties of UNIX systems What is UNIX? • An operating system • The Unix operating system originated at AT&T Bell Labs in the early 1970s. • Why did people need UNIX? ○ Allowing multiple users to use a computer Multi-user ○ allowing one user to do more than one job at the same time Multi-tasking Before UNIX • In the 1960s, computers did batch processing. • Programs could wait for hours, or days. • Time-sharing system became a necessity. • Multiple users at the same time MULTICS The birth of UNIX 1969: Ken Thompson, Dennis Ritchie, and others in Bell Labs developed a hierarchical file system, a command line interpreter, and some small programs using assembly language. 1970: The project was named UNICS (UNiplexed Information and Computing Service) 1972: Unix was rewritten in C. The system grew throughout the 1970s. The development of UNIX 1983: GNU project was started. 1980s: There were many different implementations. This led to Unix Wars between Berkeley’s BSD and AT&T System V. 1991: Linus Torvalds wrote the Linux kernel. 1993: Common Open Software Environment 1990s: More BSD versions appeared. The development of UNIX 2000s and beyond: There are numerous Unix-like systems. They all behave like a UNIX system, but may or may not have trademark connection with early UNIX code. Linux is a common Unix-like OS. Next Lecture • Installing Ubuntu on Windows ○ https://www.wikihow.com/Install-Ubuntu-Linux • UNIX filesystem • UNIX filetypes • Introduction to UNIX programming • Basic comments