Big appreciation to #ralph_nee for expanding his collection with 6 #NFTs 🙌🔥 Always great to see the journey continue! #eCash $XEC #NFTCommunity #NFTCollectors #NFTartist #NFTUniverse #CryptoMarket pic.twitter.com/6ZVVogEmj9
— NFToa (@nftoa_) October 1, 2025
Overview
- Introduction to Linux
- Linux Installation
- Linux Command
- Gnome and applications
- System configuration
- Network Configuration
- File sharing
- Install & uninstall software
- Documentation
- Community
Introduction to Linux
The word "Linux" is currently familiar to internet users and student communities who have a hobby of trying new software. Technically and briefly, it can be said that Linux is an operating system that is multi-user and multi-tasking, which can run on various platforms including Intel 386 processors and higher. This operating system implements the POSIX standard. Linux can interoperate well with other operating systems, including Apple, Microsoft and Novell.
The name Linux itself is derived from its original creator, Linus Torvalds, which actually refers to a complete collection of software that together with the kernel forms a complete operating system. This operating system environment includes hundreds of programs, including compilers, interpreters, editors and utilities. Auxiliary devices that support connectivity, ethernet, SLIP and PPP and interoperability. Reliable software products, including the latest development versions. A worldwide group of developers who have worked and made Linux portable to a new platform, as well as supporting a user community that has a variety of needs and also users can participate as their own development team.
Unix like Operating sistem
-- Developed by Linus Torvalds and assisted by programmers all over the world
-- Linux is a unix-like operating system
-- Linux is just the kernel, the complete system is called GNU Linux
- open source software
-- Source code available
- Free software
-- Free to develop, use, study
- GPL (General Public License) License
-- Linux belongs to the public, not to individuals or companies.
- Distro Linux
-- A complete system that can be used for many needs
The fundamental differences of Linux
One thing that sets Linux apart from other operating systems is price. Linux is cheaper and can be reproduced and redistributed without having to pay fees or royalties to someone. But there is something more important than price considerations, namely the source code. Linux source code is available to everyone so that everyone can be directly involved in its development.
This freedom has allowed hardware vendors to create drivers for specific devices without having to obtain expensive source code licenses or sign Non Disclosure Agreements (NDAs). And it has also provided the possibility for anyone to get a glimpse of a real, commercial-quality operating system. Because Linux is freely available on the Internet, various vendors have created distribution packages that can be considered as packaged versions of Linux. These packages include a complete Linux environment, software for installation and may include special software and support.
Linux comparison to other operating systems
Linux is based on the POSIX operating system standard which is actually derived from the UNIX work function. UNIX is compatible with Linux at the system call level, this means that most programs written for UNIX or Linux can be recompiled and run on other systems with minimal changes. In general, it can be said that Linux runs faster than other UNIX on the same hardware. And again UNIX has a weakness, namely that it is not free. MS-DOS has similarities with Linux, namely a hierarchical file system. But MS-DOS can only be run on x86 processors and does not support multi-user and multi-tasking, and is not free. Also, MSDOS does not have good support to be able to interoperate with other operating systems, including the unavailability of network software, developer programs and utility programs in Linux.
MSWindows offers the graphical capabilities of Linux including networking capabilities but still has the shortcomings of MS-DOS. Windows NT is also available for Digital Alpha in addition to x86 processors. However, Windows NT still has some of the shortcomings that have existed in MSDOS. The time to find a bug in an operating system is not comparable to the price that must be paid.
Apple's operating system for Macintosh can only run on Mac systems. It also has shortcomings in terms of the availability of development tools and is also less easily interoperable with other operating systems. Apple has also made it possible for Linux to run on PowerMacs.
History of Linux
Linux was originally created by a Finnish student named Linus Torvalds. It was originally a hobby project inspired by Minix, a small UNIX system developed by Andrew Tanenbaum.
Linux version 0.01 was worked on around August 1991. Then on October 5, 1991, Linus announced the official version of Linux, namely version 0.02 which can only run the bash shell (GNU Bourne Again Shell) and gcc (GNU C Compiler). Currently Linux is a very complete UNIX system, can be used for networks, software development and even for daily work. Linux is now an alternative operating system that is much cheaper when compared to commercial operating systems (eg Windows 9.x / NT / 2000 / ME). Linux has developed very quickly. This is possible because Linux is developed by a diverse group of people. This diversity includes the level of knowledge, experience and geography. In order for this group to communicate quickly and efficiently, the internet is a very appropriate choice. Because the Linux kernel was developed with independent efforts, many applications are available, for example the C Compiler uses gcc from the Free Software Foundation GNU's Project. This compiler is widely used in Hewlett-Packard and Sun environments.
Nowadays, there are many Linux applications that can be used for office purposes such as spreadsheets, word processors, databases and graphic editor programs that have functions and displays like Microsoft Office, namely Star Office. In addition, there is also a version of Corel for Linux and applications such as Matlab which is known as Scilab on Linux.
Linux can be obtained in various distributions (often called Distro). Distro is a bundle of the Linux kernel, along with the basic Linux system, installation programs, basic tools, and other useful programs according to the purpose of making the distro. There are many Linux distros, including:
- RedHat, the most popular distribution, at least in Indonesia. RedHat is the first distribution that is easy to install and operate.
- Debian, a distribution that prioritizes stability and reliability, even at the expense of ease and program sophistication. Debian uses .deb in its program installation packages.
- Slackware, is a distribution that once dominated the Linux world. Almost all Linux documentation is compiled based on Slackware. Two important things about Slackware are that all its contents (kernel, libraries or applications) are those that have been tested. So it may be a bit old but certainly stable. The second is because it recommends installing from source so that every program we install is optimized for our system. This is the reason he does not want to use RPM binary and until Slackware 4.0, he still uses libc5 not glibc2 like the others.
- SuSE, a very famous distribution with YaST (Yet another Setup Tools) to configure the system. SuSE is the first distribution where the installation can use Indonesian.
- Mandrake, is a variant of RedHat distro optimized for pentium. If our computer uses pentium and above, Linux can generally run faster with Mandrake.
- -WinLinux, a distro designed to be installed on a DOS partition (Windows). So to run it can be clicked from Windows. WinLinux is made as if it were an application program under Windows And there are still many other distros that are already available or will appear.
Advantages of Linux
Here will be explained some of the advantages of the Linux/UNIX operating system compared to other operating systems. And here are some facts about the profitable things by using Linux/UNIX programs and files:
- Basically all data is stored in the hard disk although there are some conditions where data is stored on diskettes. Linux/UNIX provides some special processes where terminals, printers and other hardware devices can be accessed like we access files stored in a hard disk or diskette.
- When a program is run, it is run from the hard disk into RAM and after running it is called a process.
- Linux/UNIX provides services for creating, modifying programs, processes and files.
- Linux/UNIX supports hierarchical file structures.
- Linux/UNIX is one of the operating systems that is included in the class of operating systems that can perform multitasking. Multitasking itself is a state where an operating system can perform many jobs at the same time.
In addition to multitasking, Linux/UNIX can also support multiuser. That is, an operating system that can be used by more than one user who enters the system at the same time. Even for Linux also supports multiconsole where at the same time in front of the computer directly without having to go through the network and allows more than one user to enter the system.
Operating system parts
Linux/UNIX Operating System consists of kernel, system programs and several application programs. Kernel is the core of the operating system that regulates memory usage, input output devices, processes, file usage in the file system and others. Kernel also provides a set of services used to access the kernel called system call. This system call is used to implement various services needed by the operating system.
System programs and all other programs running on top of the kernel are called user mode. The basic difference between system programs and application programs is that system programs are needed for an operating system to run while application programs are programs needed to run a particular application.
Example: daemon is a system program and word processor is an application program.
Essential parts of the Linux kernel
The Linux kernel consists of several important parts, such as: process management, memory management, hardware device drivers, filesystem drivers, network management and others. However, the most important parts are process management and memory management. Memory management handles memory usage areas, swap areas, kernel parts and for cache buffers. Process management handles process creation and process scheduling. The basic kernel contains hardware device drivers for each type of supported hardware.
Why Linux?
- Linux is a mature operating system
- 70% of servers use Linux OS
- Software development is very fast
- Cheap, and easy to get
- Alternative software to avoid piracy
- Documentation is widely available on the internet.
- A large community
- A huge selection of distros
Linux Applications
- Desktop -- KDE, Gnome, XFCE
- Office -- Openoffice.org, Koffice, abiword, gnumeric
- Network -- Firefox, Thunderbird, evolution, Konqueror
- Grafis -- The Gimp, Scribus, Inkscape, xara xtreme
- CAD -- Qcad, varicad, geda, kicad
- Games -- Tuxracer, pingus, supertux, quake, doom, torcs, flightgear
- Server -- Apache, Bind, Postfix, qmail, squid, mysql, postgresql, shorewall
- Development -- Qtdesigner, kdevelop, gambas, lazarus, glade, netbean, eclipse
Where to use it?
● Server
-- Linux cluster, high performace, high availability, load balancing
-- Internet server, web, database, file, ftp, dns, proxy
● Desktop
-- Personal desktop, KDE, Gnome, openoffice.org
-- Linux Thinclient, LTSP
-- Notebook, OLPC
● Embedded
-- Router, firewall, controller
-- PDA, Handphone
Linux Installation
● For desktop
-- Minimum 2 partitions, / and swap, recommended to use /home
-- / => minimum 2 GB, recommended 5 GB
-- Swap => 2x RAM
-- /home => remaining hard disk space, depending on needs
● For servers
-- Add /var and /usr partitions of the size required, other partitions can be considered.
Installation method
● CDROM atau DVDROM
-- Beli cd/dvd linux
-- Download file iso cdrom & dvdrom, burn ke cd/dvd
-- Request dari internet
-- Pinjam cd/dvd
● Network or internet
-- Boot from network via BIOS
-- Download at least a CD or diskette, the rest is downloaded from the network & internet
Linux hard disk and partition
● Hard disk
-- ATA Primary master = /dev/hda
-- ATA Primary slave = /dev/hdb
-- ATA Secondary master = /dev/hdc
-- ATA Secondary slave = /dev/hdd
-- SATA/SCSI/USB = /dev/sdx default position
● Primary partition can only have 4, extended can only have 1, primary + extended = 3+1
● In extended there can be as many logical partitions
Boot loader
● Small program to run linux
● Hidden Linux Loader
-- Less flexible, currently rarely used
● Grub
-- Very good, and flexible to use on almost all distros
-- Supports multiboot
-- Supports cdrom/dvdrom boot
-- Can be edited if there is a configuration error
Command prompt
Regular user
-- [igos@localhost ~]$ means that the user igos is logged in and is in his home directory, namely /home/igos
-- Normal users only have write access rights to /home/username
Root user or superuser
-- [root@localhost ~]# means the root user is in his home directory, namely /root
-- The root user has read/write access rights to all files.
Linux command
File operations
-- List file :
- ls
- ls -l
- ls -a
- ll
-- Copy file :
- cp file file-copy
- cp -r doc /tmp
-- Remove & rename file :
- mv file /dir, mv
- mv file file-rename
Operations Director
-- Create a directory
- mkdir directory-name #create an empty directory
- rmdir name-directory #menghapus directory empty
- rm -rf directory-name #remove the directory and all its contents
Navigation on the console
-- View current directory
- pwd
-- Move directory
- cd directory-name #enter the directory
- cd ../ #move directory 1 level up
- cd / #move to / (root) directory
View file contents
-- cat file.txt
-- tail file.txt #last 10 lines of file.txt
-- head file.txt#first 10 lines of file.txt
-- less file.txt#view file by scroll
-- more file.txt#view file per screen
File editor
-- vi file.txt
-- nano file.txt
-- gedit file.txt
Network tool
-- Ifconfig #see ip address, must be root
-- Ifconfig eth0 192.168.1.10 #setup ip manual
-- route add default gw 192.168.1.1 #setup default gateway
-- route -n #see static routing
-- vi /etc/resolv.conf #fill in the file "nameserver 192.168.1.1"
-- mii-tool #see network card status
-- netstat -tapn #see connected ip and port
Archive & backup
● Open archive files
-- tar zxvf file.tar.gz
-- tar zxvf file.tar.gz -C /target/directory
-- tar jxvf file.tar.bz2
-- tar jxvf file.tar.bz2 -C /target/directory
-- gunzip file.gz
-- bunzip2 file.bz2
-- unzip fle.zip
● Create archive files
-- tar zcvf file.tar.gz /directory
-- tar jcvf file.tar.bz2 /directory
-- gzip file
-- bzip2 file
Secure shell
● Remote console with ssh
-- ssh -l igos 192.168.1.100
-- ssh [email protected]
● Send and retrieve via scp
-- scp file [email protected]:
-- scp file [email protected]:~/file .
-- scp -r direktory [email protected]:
-- scp -r [email protected]:~/direktory .
-- scp [email protected]:~/file [email protected]:
Sftp via gui
● Nautilus supports sftp, samba, ftp, webdav protocols

GUI Tool
● Administration via gui tool will always ask for root password if accessed from normal user.

user & group
● Linux is a multiuser OS, each user who uses it will have a user account and group


Setup display
● Linux supports a wide range of screen resolutions and many graphic cards.

Network setup
● Setup network via gui

Firewall & security
● To increase the security of the firewall & selinux setup

Archive with gui
● Can also be done via the archive manager GUI

Install & uninstall program
● Installation from tar.gz binary, for example firefox
-- rpm -ivh compat-libstdc++-33-3.2.3-55.fc5.i386.rpm
-- rpm -e firefox
-- tar zxvf firefox.tar.gz -C /usr/local
-- cd /usr/local/firefox
-- ln -s /usr/local/firefox/firefox /usr/local/bin
● Flash plugin installation
-- Tar zxvf install_flash_player_9_linux.tar.gz
-- cd install_flash
-- ./INSTALL #follow the instructions
● Hapus director firefox plugin buat link dari flash plugin ke firefox plugins
-- rm -rf /usr/local/firefox/plugins
-- ln -s /usr/lib/mozilla/plugins /usr/local/firefox/plugins
Installation from RPM
● Installing the Acrobat Reader program
-- rpm -ivh adobe-7.09.i386.rpm
● Installation of the program openoffice.org 2.2.1
-- tar zxvf openoffice.org.2.2.1.tar.gz
-- cd OOF<tab>/rpms
-- rpm -ivh *.rpm
-- cd desk<tab>
-- rpm -ivh redhat.rpm freedesktop*.rpm
Setup repository
● By default igos uses the Fedora 5 repository
-- cd /etc/yum.repos.d
-- mkdir default
-- mv fedora*.repo default
-- nano fig.repo # current
● [fig]
● name=igos r6
● baseurl=http://192.168.1.68/ign/rpm-igos
● enabled=1
● gpgcheck=0
● [extra-igos]
● name=extras igos r6
● baseurl=http:/192.168.1.68/ign/rpm-extras
● enabled=1
● gpgcheck=0
● [fedora-5]
● name=fedora 5
● baseurl=http:/192.168.1.68/ign/rpm-fedora5
● enabled=1
● gpgcheck=0
-- yum check-update # update repository
-- yum list # melihat program aviable pada repository
-- yum info program
-- yum install program
-- yum remove program
● Pirut gui front end for yum, unfortunately pirut is not available on igos yet so you have to get it from fedora core 5, and it doesn't come out in the menu
-- yum install pirut
-- As root run pirut

Documentation & community
● Command manual
-- man, man ls, man cp
-- Info, info ls, info cp
-- --help, ls -- help, cp --help
● The Linux Documentation Project
-- www.tldp.org
● Community in Indonesia
-- www.linux.or.id
-- Milis [email protected]
-- kambing.vlsm.org
Source
Igos Nusantara R6
- The Curiosity
- [email protected]
Sri Rahayu
- Open Knowledge and Education
- http://oke.or.id
Linux Kernel Questions Practice
- Separate callable kernel modules provide the flexibility to add drivers into the kernel. Give an example of module calling steps in Linux!
- Explain the difference between processes and threads in Linux!
- Explain the operations in inode!
- What are the advantages of the Reiser file system compared to other file systems?
- What is the difference between shareable and unshareable in file system?
- Why does ext3 file system take less recovery time than ext2 file system after an "unclean shutdown"?
- Explain the meaning of the system proc file!
- Linux memory management issues
- Explain the meaning of page!
- What is the difference between static linking and dynamic linking?
- Mention four advantages of using virtual memory!
- Mention some caches in memory management in Linux!
- Explain the meaning of demand paging!
- Who is the inventor of Linux?
- Describe the features and advantages/disadvantages of Linux kernel v0.01, v1.0, v2.0.
- Explain the difference between the Linux kernel and the Linux system.
- Name three main components of a Linux system. Explain them.
- Name two Linux distributions from Germany.
- How to set lilo.conf in Linux so that: (a. When booting and wanting to select an OS, the user enters a password? & b. When booting and wanting to add an option to the lilo prompt, the user enters a password?)
- Are hackers and crackers the same? If different/same, mention in what ways?
- Which IP addresses cannot be used in class C? and Why can't they be used?
- What are the advantages and disadvantages of IPX, TCP/IP, and UDP protocols?
- How does the TCP/IP protocol work?
- Explain the basic differences between block devices and character devices!
- What is the difference between a network device and a character device and a block device?
- How does Linux access IO?
- Explain how the process responds to the process!
- Name the signals that cannot be ignored!
- Explain a little about pipes and their special differences from other communication methods!
Understanding Operating System Structure
Make sure you have also read THE ORIGINS OF OPERATING SYSTEMS.
In reality, not all operating systems have the same structure. However, according to Avi Silberschatz, Peter Galvin, and Greg Gagne, generally a modern operating system has the following components:

Introduction to Operating System Structure
1. System Components
- Process Management.
- Main Memory Management.
- Managemen Secondary-Storage.
- I/O System Management.
- File Management.
- Protection System.
- Network.
- Command-Interpreter system.
2. Process Management
A process is a state when a program is being executed. A process requires some resources to complete its tasks. These resources can be CPU time, memory, files, and I/O devices. The operating system is responsible for activities related to process management such as:
- Creation and deletion of user processes and system processes.
- Suspend or resume a process.
- Provides a mechanism for the synchronization process.
- Provides a mechanism for the communication process.
- Provides a mechanism for deadlock handling.
3. Main Memory Management
Main memory or better known as memory is a large array of words or bytes, the size of which reaches hundreds, thousands, or even millions. Each word or byte has its own address. Main memory functions as a storage place whose data access is used by the CPU or I/O devices. Main memory includes temporary data storage (volatile), meaning that data can be lost once the system is turned off.
The operating system is responsible for activities related to memory management such as:
- Keeping track of which memory is being used and who is using it.
- Select the program to be loaded into memory.
- Allocate and deallocate memory space as needed.
4. Managemen Secondary-Storage
Data stored in the main memory is temporary and very small in number. Therefore, to store all data and computer programs, secondary storage is needed which is permanent and can accommodate a lot of data. Examples of secondary storage are hard disks, diskettes, etc.
The operating system is responsible for activities related to disk management such as: free-space management, storage allocation, disk scheduling.
5. I/O System Management
Often called device manager. Provides a common "device driver" so that I/O operations can be uniform (open, read, write, close). Example: users use the same operation to read files on hard-disk, CD-ROM and floppy disk.
Operating System Components for I/O system:
- Buffer: temporarily holds data from/to I/O devices.
- Spooling: scheduling system I/O usage so that it is more efficient (queues, etc.).
- Provides drivers to perform "detailed" operations for specific I/O hardware.
6. File Management
A file is a collection of related information according to the purpose of the file creator. Files can have a hierarchical structure (directories, volumes, etc.). The operating system is responsible for:
- File creation and deletion.
- Directory creation and deletion.
- Supports file and directory manipulation.
- Map files to secondary storage.
- Back up files to permanent (non-volatile) storage media.
7. Protection System
Protection refers to mechanisms for controlling access by programs, processors, or users to system resources. Protection mechanisms must:
- distinguish between permitted and unpermitted uses.
- specify the controls to be imposed.
- provide a means of enforcement.
8. Network
A distributed system is a collection of processors that do not share memory or clock. Each processor has its own memory. The processors are connected through a communication network. Distributed systems provide user access to various system resources. This access causes:
- Computation speed-up.
- Increased data availability.
- Enhanced reliability.
9. Command-Interpreter System
Operating System waits for instructions from the user (command driven). Programs that read instructions and interpret control statements are generally called: control-card interpreter, command-line interpreter, and UNIX shell. Command-Interpreter System varies greatly from one operating system to another and is adjusted to the purpose and technology of existing I/O devices. For example: CLI, Windows, Pen-based (touch), and others.
10. Operating System Services
Program execution is the ability of the system to "load" a program into memory and run the program. I/O operations: users cannot directly access hardware resources, the operating system must provide a mechanism to perform I/O operations on behalf of the user. File manipulation system is the ability of programs to operate on files (read, write, create, and delete files). Communication is the exchange of data/information between two or more processes that reside on one (or more) computers. Error detection is maintaining system stability by detecting "errors", both hardware and operations.
Efficiency of system usage:
- Resource allocator is allocating resources to multiple users or jobs running at the same time.
- Protection ensures that access to system resources is controlled (users have controlled access to the system).
- Accounting is recording user activities, resource usage quotas (fairness or discretion).
11. System Calls
System calls provide an interface between programs (running user programs) and the OS. System calls act as a bridge between processes and the operating system. System calls are written in assembly language or high-level languages that can control the machine (C). Example: UNIX provides system calls: read, write => I/O operations for files.
Often program users must provide data (parameters) to the OS to be called. Example on UNIX: read(buffer, max_size, file_id). Three ways to provide parameters from the program to the operating system:
- Through registers (resources in the CPU).
- Store parameters in a data structure (table) in memory, and the address of the table is pointed to by a pointer stored in a register.
- Push (store) through the "stack" in memory and the OS takes it through pop on the stack.
12. Virtual Machine
A virtual machine uses for example a system program => control program that regulates the use of hardware resources. Control program = trap System call + access to hardware. Control program provides facilities to user processes. Get CPU and memory quotas. Provide an "identical" interface to what is provided by the hardware => sharing devices for various processes.
Virtual Machine (MV) (MV) => minimal control program MV gives the illusion of multitasking: as if there is a processor and memory exclusively used by MV. MV sorts multitasking functions and implementation of extended machines (depending on user processes) => flexible and easier to setup. If each user is given one MV => free to run the desired OS (kernel) on the MV. Potential for more than one OS on one computer. Example: IBM VM370: provides MV for various OS: CMS (interactive), MVS, CICS, etc. Problem: Sharing disk => OS has a file system that may be different. IBM: virtual disk (minidisk) allocated to the user via MV.
The MV concept provides complete protection for system resources, since each MV is isolated from other MVs. However, it does not allow direct sharing of resources. MV is a great tool for operating system research and development. The MV concept is difficult to implement due to the effort required to provide a duplicate of the main machine.
13. System Design and Implementation
Targets for users: the operating system should be comfortable to use, easy to learn, reliable, secure and fast. Targets for systems: the operating system should be easy to design, implement and maintain, as well as flexible, error-free and efficient.
Mechanisms and Policies:
- Mechanisms explain how to do something; policies decide what to do. The separation of policies from mechanisms is essential; it allows for a great deal of flexibility if policies are changed later.
- Wisdom decides what to do.
The separation of policy from mechanism is essential; it allows for great flexibility if policy is to be changed later.
System implementations usually use assembly language, operating systems can now be written using high-level languages. Code written in high-level languages: can be created quickly, more concise, easier to understand and debug. Operating systems are easier to move to other hardware when written in high-level languages.
14. System Generation (SYSGEN)
Operating systems are designed to run on a variety of machines; they must be configured for each computer. The SYSGEN program obtains information about the specific configuration of the hardware system.
- Booting: starting the computer by loading the kernel.
- Bootstrap program: code stored in ROM that locates the kernel, loads it into memory, and begins its execution.
15. Summary
Operating systems have evolved over the past 40 years with two main goals. First, operating systems attempt to organize computing activities to ensure good utilization of the computing system. Second, they provide a comfortable environment for the development and execution of programs.
Initially, computer systems were used from the front console. Software such as assemblers, loaders, linkers and compilers increased the convenience of the programming system, but also required a lot of setup time. To reduce the setup time, operators were used and similar tasks were combined (batch systems). Batch systems allowed automatic sequencing of tasks using a resident operating system and provided a significant increase in computer utilization. The computer no longer had to wait for operations by the user. But CPU utilization remained low. This was due to the slow speed of the I/O devices relative to the CPU speed. Off-line operation of slow devices meant using several reader-to-tape and tape-to-printer systems for one CPU.
To increase the overall performance of a computer system, developers introduced the concept of multiprogramming. With multiprogramming, multiple tasks are held in memory at one time; the CPU is used alternately, increasing CPU utilization and reducing the total time required to complete the tasks. Multiprogramming, which was created to increase performance, also allowed for time sharing. A time-shared operating system allows multiple users to use the computer interactively at the same time. Personal computers are microcomputers that are considered smaller and less expensive than mainframe computers. Operating systems for these computers benefited from the development of operating systems for mainframe computers in several ways. However, with the advent of personal computers, CPU utilization has become less of a concern. Therefore, some designs for mainframe computers are not suitable for smaller systems.
Parallel systems have more than one CPU that are closely coupled; the CPUs share the computer bus, and sometimes memory and other devices. Such systems can increase throughput and reliability. Hard real-time systems are often used as controllers for dedicated applications. Hard real-time operating systems have well-defined, fixed time constraints. Processing must complete within these defined limits, or the system will fail. Soft real-time systems have fewer hard time constraints, and do not support scheduling using deadlines. The recent influence of the Internet and the World Wide Web has led to the development of modern operating systems that include web browsers and networking and communications software as an integrated whole.
Multiprogramming and time-sharing systems increase the capabilities of computers by going beyond the overlap of CPU and I/O operations on a single machine. This requires data transfer between the CPU and I/O devices, handled either by polling or interrupt-driven access to I/O ports, or by DMA transfers. In order for a computer to execute a program, it must reside in main memory (main memory). Main memory is the only large storage area that can be accessed directly by the processor. It is an array of words or bytes, ranging in size from hundreds to millions of thousands. Each word has its own address. Main memory is volatile storage, meaning its contents are lost when the power source (electrical power) is turned off. Most computer systems provide secondary storage as an extension of main memory. The primary requirement for secondary storage is that it can store large amounts of data permanently. The most common secondary storage is a magnetic disk, which provides storage for both programs and data. A magnetic disk is a nonvolatile data storage device that also provides random access. Magnetic tape is used primarily for backup, storing rarely used information, and as a medium for transferring information from one system to another.
The various storage systems in a computer system can be arranged in a hierarchy based on their speed and cost. The top level is the most expensive, but fast. As you go down, the cost per bit decreases, while the access time increases (gets slower). The operating system must ensure the correct operation of the computer system. To prevent user programs from interfering with the operations running in the system, the hardware has two modes: user mode and monitor mode. Some commands (such as I/O commands and the halt command) are special commands, and can only be executed in monitor mode. Memory must also be protected from modification by the user. Timers prevent infinite loops from occurring. These (dual mode, special commands, memory protection, timer interrupts) are the basic building blocks used by the operating system to achieve proper operation.
The operating system provides many services. At the lowest level, system calls allow running programs to make requests directly of the operating system. At the highest level, the command interpreter or shell provides a mechanism for users to make requests without writing programs. Commands can be issued from the command line when running in batch mode, or directly from the terminal when in interactive or time-shared mode. System programs are provided to satisfy most user requests. The types of requests vary with the level. The system call level must provide basic functions, such as process control and device and device manipulation. Higher-level requests (command interpreter or system programs) are translated into a sequence of system calls.
System services can be grouped into several categories: program control, status requests, and I/O requests. Program errors can be considered as implicit requests for services. Once the system services are defined, the structure of the operating system can be developed. Various tables are needed to store information that defines the state of the computer system and the status of system tasks. The design of a new operating system is a major task. It is essential that the goals of the system are well defined before starting the design. The type of system desired is the basis for choosing the various algorithms and strategies to be used. Because of the large size of operating systems, modularity is important. Designing the system as a sequence of layers or using a microkernel is one good technique. The concept of a virtual machine takes a layered approach and treats both the operating system kernel and the hardware as a single piece of hardware. Even other operating systems can be embedded on top of the virtual machine. Any operating system that implements the JVM can run any Java program, because the JVM is the underlying architecture for Java programs, providing a neutral interface.
In the operating system design cycle, we must be careful to separate the division of policy (policy decision) from the details of the implementation (mechanism). This separation allows maximum flexibility if the policy decision is to be changed later. Today's operating systems are almost always written using high-level languages. This improves implementation, maintenance, portability. To create an operating system for a particular machine configuration, we must perform system generation.
16. Questions
- Mention three main objectives of an operating system!
- Mention the advantages of multiprogramming!
- What are the main differences in operating systems between mainframe computers and PCs?
- What are the constraints that a programmer must overcome when writing an operating system for a real-time environment?
- Explain the difference between symmetric and asymmetric multiprocessing. Mention the advantages and disadvantages of multiprocessor systems!
- What is the difference between trap and interrupt? Mention the use of each function!
- What type of operations is DMA useful for? Explain the answer!
- Mention two uses of cache memory! What problems can be solved and also arise with the presence of the cache?
- Some CPUs provide more than two operating modes. What are two possible uses of these modes?
- Mention five main activities of the operating system related to process management!
- Mention three main activities of the operating system related to memory management!
- Mention three main activities of the operating system related to secondary storage management!
- Mention five main activities of the operating system related to file management!
- What is the purpose of the command interpreter? Why is it usually separate from the kernel?
Techniques for Using Operating Systems
If we look at Figure 4.1 above briefly, we might wonder what lines of text are presented in the image. But if we look closely, we will be able to guess that the text above is the command line and the execution result of the operating system. We often ignore this text-based operating system command section, but it is actually very important and useful.

Figure 4.1. Running a text-based operating system
This chapter will discuss the competency standards for operating text-based and GUI computer operating systems. There are two basic competencies in this competency standard, namely preparing PC operations, operating a PC connected to a network, and disconnecting a network connection. In the presentation in this book, each basic competency contains a description of the material. A summary is placed at the end of the chapter. Before studying this competency, remember about the computer system in the previous chapter and the supporting materials from the mathematics subject.
Objective
After reading this chapter, it is expected that readers will be able to:
- Explain the concept of operating system.
- Running the installation and booting process of the operating system.
- Running the operating system in text mode or GUI on the operating system.
- Operating a PC connected to a network.
1. Understanding Operating Systems
As mentioned in the previous chapter, the operating system is included in the system software group, namely software that plays a role in running computer hardware and the computer system as a whole. The Operating System is software that is responsible for managing the use of resources in a computer and providing an interface for users to access those resources.
a. Function
The general functions of an operating system can be seen in Figure 4.2.
a.1 User interface
This function is the most easily recognized function by users because through this function users can interact with the operating system, hardware and other software. The operating system basically waits for input or instructions from the user and then translates the commands into a language that the computer understands. The user interface is a place for users to write or convey these commands.

Figure 4.2. Operating system functions
Broadly speaking, there are two models of user interfaces, namely Command Line Interface (CLI) and Graphical User Interface (GUI). CLI provides facilities for users to give commands in text form while GUI is more based on graphical displays. Today, almost all modern operating systems provide a GUI model as a user interface. Some provide a GUI that is integrated with the operating system kernel, for example in Microsoft Windows and early versions of Apple Mac OS. While others provide a modular GUI, which is not directly integrated into the operating system kernel, such as in Unix, Linux and Mac OS versions X and above.
a.2 Memory management
Main memory or better known as memory is a large array of words or bytes, the size of which reaches hundreds, thousands, or even millions. Each word or byte has its own address. Main memory functions as a place to store instructions/data whose data access is used by the CPU and Input/Output devices. Main memory includes a place to store data that is volatile -- not permanent -- that is, data will be lost if the computer is turned off.
The operating system is responsible for activities related to memory management such as:
- Keeping track of which memory is being used and who is using it.
- Select the program to be loaded into memory.

Figure 4.3. Memory management on Microsoft Windows operating systems
a.3 File management
A file is a collection of related information, according to the purpose of the file creator. Generally, files represent programs and data. Files can have a hierarchical structure (directories, volumes, etc.). The operating system implements the abstract concept of a file by managing mass storage media, such as tapes and disks.
The operating system is responsible for activities related to file management:
- File creation and deletion.
- Directory creation and deletion.
- Supports file and directory manipulation.
- Map files to secondary storage.
- Backing up files to non-volatile storage media.

Figure 4.4. Windows Explorer as a file management tool
a.4 Process management
A process is a program that is being executed. A process requires some resources to complete its task. The allocation of these resources is managed by the Operating System. For example, the use of memory by the CPU, open files, and use by other input/output devices. When the process stops running, the operating system will reclaim all the resources that can be reused.
The operating system is responsible for activities related to process management such as:
- Create and delete user processes and system processes.
- Suspend or resume a process.
- Provides a mechanism for process synchronization.
- Provides a mechanism for process communication.
- Provides a mechanism for deadlock handling.

Figure 4.5. Process management on Microsoft Windows operating systems
a.5 Input and output (I/O) system management
This system is often called a device manager. Provides a common device driver so that Input/Output operations can be uniform (open, read, write, close). Example: users use the same operation to read files on hardware, CD-ROM and floppy disk.
Operating System Components for Input/Output systems:
- Buffer: temporarily holds data from/to Input/Output devices.
- Spooling: scheduling the use of system Input/Output to make it more efficient (queues, etc.).
- Providing drivers: to be able to perform detailed operations for specific Input/Output hardware.

Figure 4.6. I/O management on Microsoft Windows operating systems
b. BIOS
BIOS stands for Basic Input/Output System. BIOS is the program code that is first run when the computer is turned on (booting). The main function of BIOS is to identify and recognize computer hardware. Usually BIOS will be stored in ROM (Read Only Memory) on the motherboard of a computer.
When the computer is turned on, the BIOS will try to recognize the following parts of the computer:
- clock generator.
- processors dan caches.
- chipset (memory controller and I/O controller).
- system memory.
- All PCI devices
- primary graphics controller.
- Mass storage controllers (seperti SATA and IDE controllers).
- Various I/O controllers (such keyboard/mouse and USB).
Once recognized, the BIOS will call a program to boot an operating system (boot loader).
We can set the BIOS using the facilities provided by the BIOS. Usually by pressing the Del or F2 button (depending on the type of computer) when the computer is first turned on. If successful, we will be presented with a display like Figure 4.7. We can make a series of settings on the hardware on the computer.

Figure 4.7. BIOS utility display
2. Types of Operating Systems
Operating systems have come a long way. From the simplest to the most modern today. Each has its own advantages and disadvantages, especially in relation to the functions it has. The following section will discuss several operating systems that are widely used and familiar to computer users.
2.1 OF THE
DOS stands for Disk Operating System. DOS refers to an operating system device used in many computers that provides abstraction and management of secondary storage devices and their information. For example, the use of a file system that manages files on a storage device. DOS is usually run from one or two discs. This is because at the time DOS was used, storage media was still very limited in capacity (the largest was probably only 1.4 Megabytes).
There are many types of DOS including Apple DOS, Commodore DOS, Atari DOS and others. This type is very dependent on the type of computer device. The most famous type of DOS is the type of DOS that runs on machines that are compatible with the IBM Personal Computer.
To run operating system commands, DOS uses text-based commands or CLI. Every time you finish typing a command, you have to press the ENTER key to execute the command. An example of an operation using DOS can be seen in Figure 4.8.

Figure 4.8. Examples of DOS usage
2.2 UNIX
UNIX is an operating system originally developed by a group at AT & T at Bell Labs. Unix is widely used for both servers and workstations. The Unix environment and client-server programming model suggest that Unix is more developed as a powerful operating system on computer networks than as an operating system for personal computers.
UNIX is designed to be portable, multi-tasking, and multi-user. The main concepts of Unix include using a lot of plain text files to store data, using a hierarchical file system, treating devices as files, and using many small programs whose execution on the CLI can be combined with the pipeline (|) symbol. In Figure 5.2 above, several UNIX commands are combined with the pipeline. The very solid and stable concept makes Unix the basis for many modern operating systems. Figure 4.9 shows how Unix is the basis for many operating systems that exist today.

Figure 4.9. Unix and its derivative operating systems
The UNIX system consists of several components that are usually packaged together. Generally these packages are as follows:
Kernel with sub components such as:
- conf --- configuration file.
- dev --- hardware driver
- sys --- operating system kernel, memory management, process scheduling, system calls etc.
- h --- header files, defining the key structure within the system.
Figure 4.10. Memory management and process scheduling on Unix.
Development Environment:
- cc ---compiler for C language
- as --- machine-language assembler
- ld --- linker, to merge object files
- lib --- object-code libraries (installed in the /lib or /usr/lib folder) libc, a collection of libraries for the C language
- make -- program to compile program code
- include --- header files for software development and defining interface standards
- Other languages --- other programming languages such as Fortran-77, Free Pascal, and others.
Commands:
sh ---"Shell" for doing CLI-based programming or executing certain commands.
Utilities --- A collection of useful CLI commands for various functions, including:
- System utilities --- Programs for system management such as mkfs, fsck, etc.
- User utilities --- Programs for managing the work environment, such as passwd, kill, etc.
Document formatting --- Programs for preparing documents such as nroff, troff, tbl, eqn, refer, and pic. Some modern Unix systems also include applications such as TeX and Ghostscript.
Graphics --- Modern Unix systems provide X11 as the standard windowing system and GUI.

Figure 4.11. X windows system in UNIX
2.3. Microsoft Windows
Microsoft Windows or people more often call Windows only was initially just an add-on of MS-DOS because of the high demands on GUI-based operating systems. The early version of Windows ran on MS-DOS. However, the early version of Windows has shown some functions that are commonly found in operating systems, including: having its own executable file type, having its own hardware drivers, and others.

Figure 4.12. Windows version 3.11
Conceptually, Windows is actually more intended for personal computers. Initially, Windows also did not support the concept of multi-tasking and multi-user. Accommodation for networks or client-server functions is also not as strong as in UNIX and its derivatives. So that the problem that often arises in the Windows operating system is a security problem related to the network. However, Windows has advantages in terms of ease of use. In the latest version (Windows Vista), the concept of multiuser and multi-tasking has become more mature. In addition, the GUI display has been changed by using many three-dimensional effects.

Figure 4.13. Windows Vista
2.4. Apple Mac OS
As seen in Figure 5.10, Apple Mac OS is a derivative of UNIX through the BSD (Berkeley Software Distribution) line. Therefore, the strengths in multi-tasking, multi-user, networking that exist in UNIX are also possessed by Mac OS. Mac OS is a GUI-based operating system. Apple is a pioneer in the use of GUI in operating systems. The use of icons, mouse and several GUI components are extraordinary contributions to the development of GUI-based operating systems.
Early versions of Mac OS relied almost entirely on its GUI capabilities and severely limited the use of CLI (Figure 5.15). Although very easy, there were several weaknesses, including: multi-tasking that did not work perfectly, limited memory management, and conflicts in some embedded programs. Repairing the Mac OS system was sometimes a very tiring job.
Figure 4.14. Early versions of Mac OS
In Mac OS X (latest version), all the weaknesses in the old version have been tried to be eliminated. Multi-tasking has been running well and memory management is much better. In addition, the GUI display is said to be the best among existing operating systems.

Gambar 4.15. Mac OS X
2.5. Linux
Linux is very similar to UNIX systems, this is because compatibility with UNIX was a major design goal of the Linux project. The development of Linux began in 1991, when a Finnish student named Linus Torvalds wrote Linux, a kernel for the 80386 processor, the first 32-bit processor in the Intel CPU family suitable for PCs.
In many ways, the Linux kernel is the heart of the Linux project, but it is the other components that make up the complete Linux operating system. While the Linux kernel consists of code written specifically for the Linux project, much of the supporting software is not exclusive to Linux, but is commonly used in several UNIX-like operating systems.
Examples include Berkeley's BSD operating system, MIT's X Window System, and the Free Software Foundation's GNU project.
The sharing of tools has worked both ways. The core Linux library system was originally started by the GNU project, but the development of the libraries has been improved through cooperation with the Linux community, especially in addressing, inefficiencies, and bugs. Other components, such as the GNU C compiler, gcc, are of high enough quality to be used directly in Linux. The network administration tools under Linux are derived from code developed for 4.3BSD, but newer BSDs, such as FreeBSD, have in turn borrowed code from Linux, an example being the Intel floating-point-emulation math library.
Currently, Linux is one of the fastest growing operating systems. The presence of a number of developer groups, spread throughout the world, who are always improving all of its features, has helped the progress of the Linux operating system. At the same time, many developers are working to move various applications to Linux (can run on Linux).
The main problem that Linux faced in the past was the text-based interface. This made ordinary people not interested in using Linux because it had to be studied carefully first to understand how to use it (not user-friendly). But this situation has started to change with the presence of KDE and GNOME. Both have attractive desktop displays that have changed the world's perception of Linux.

Figure 4.16. Linux with KDE desktop
3. Preparing and Running the Operating System
Knowing the information system is not enough. For someone who is engaged in programming, it is necessary to know more deeply about how to install, boot and run the operating system, than ordinary users.
3.1. Installation
Installation is the installation of software on a computer system. While Operating System Installation is the installation of an operating system on a computer system. The operating system will be installed first compared to other software. Other software can only be run after the operating system is properly installed.
As explained, each operating system has its own characteristics. Likewise with the operating system installation process. The installation process is highly dependent on the type of operating system. Based on the appearance of the interface, we can divide it into two, namely GUI-based and CLI-based. The GUI-based installation process is on the Microsoft Windows operating system (full GUI on the Vista version), Apple Mac OS ver X and above, several versions of Linux such as Ubuntu and its derivatives (Xubuntu, Kubuntu, Edubuntu, etc.), Mandriva and its derivatives (PC Linux OS), and the latest version of Fedora. While the CLI version is on Linux versions Slackware, Gentoo and others.
The installation process can also be divided based on the installation source, namely from media such as CD, DVD or hard-disc and from the network. The installation process using CD or DVD media is the most commonly used method. This section will only explain the installation process with sources from CD/DVD.
The stages in the installation are usually as shown in Figure 4.16. These installation stages may vary between operating systems. However, in general, the stages in any operating system will not be much different.

Figure 4.16. Installation stages
Check hardware readiness. This stage aims to ensure that all hardware devices and peripherals are installed correctly. In addition, it is also to see whether the computer hardware specifications are supported by the operating system.
BIOS Settings. Basically this step is to configure the BIOS to place the installation media at the top of the boot priority.
Booting from the installation media. If the BIOS settings are successful, the computer will boot from the installation media. Figure 4.17 is a screen shot of the booting process at the beginning.

Figure 4.17. Testing installation media
Setting the main I/O. This stage aims to set the main input/output devices (mouse, keyboard and video) to run properly when the installation process is carried out.
Preparation and determination of installation location. The most common media used as an installation target is a hard disk embedded in a computer. We need to prepare the hard disk so that it is ready to be written. This preparation includes hard disk partitioning (including the volume size for each partition) and partition formatting according to the file system required by the operating system. For Microsoft Windows, you can use the NTFS or FAT32 file system. For Linux, you can use the ext2, ext3, ReiserFS, and XFS file systems. For Apple Mac OS X, HFS+ is usually used. Figure 4.18 shows the process of determining the installation location in the Fedora Core 8 installation process.

Figure 4.18. Installation target determination process
Determining the Operating System package to be installed. This step is sometimes not necessary if we choose the default installation. However, if we want to install the operating system to suit our wishes (custom installation) then this step must be done. The installation CD or DVD usually has application packages that we can choose when the operating system installation is running or when the installation process is complete.
Copy process to hard disk. After the application package determination is done, the process of copying the installation file to the hard disk can be done immediately. Figure 4.19. is an example of the operating system file copy process.

Figure 4.19. File copy process on Fedora
Setting other peripherals. This stage aims to install drivers for peripherals (VGA cards, sound cards, motherboard chipsets, etc.) on a computer so that they can work optimally.
User determination. User is the user of the operating system that has been installed. The data from the user that is usually asked is the user name and password. In general there are two levels of users, namely administrators and regular users. Administrators have rights on all parts of the operating system while regular users have rights determined by the administrator.
3.2. Booting
Booting is the initial process when the computer is turned on. The initial booting process can be explained using the scheme in Figure 4.20. The initial booting process begins with reading and executing programs stored in the computer's ROM and setup data stored in the CMOS. This section is called POST (Power On Self Test). If successful, the BIOS system software containing the BIOS program from the ROM and BIOS from the adapter (for example from VGA) will be loaded into the main memory (RAM) and continued with reading the start-up program stored in the hard disk boot sector. From here the operating system is loaded from the hard disk.
Figure 4.20. Initial boot process
On operating systems like Microsoft Windows, we cannot see what happens when the operating system is loaded (starts running). We are only presented with a display (usually a logo) called a boot-splash. But on the Linux family, we can choose whether the operating system process is displayed or not by configuring the boot-loader file (usually using LILO or Grub). Figure 4.21 shows the boot process on Linux Fedora.

Figure 4.21 Booting process on Linux Fedora
3.3. Text-based commands
For many people working with text-based commands (CLI) when dealing with operating systems can be very difficult because they have to memorize commands and type them and the display is not attractive. However, working with it actually has its own advantages, including:
- relatively faster command execution.
- economical in resource usage (especially CPU and main memory).
- does not depend on high-spec hardware (especially VGA and monitor).
On Microsoft Windows and Apple Mac OS X operating systems, CLI mode may be rarely used, or even never. But on the Linux and Unix families, CLI mode remains an important part, especially for system and network administration. In this section we will discuss some commands that are often used in CLI mode on the Linux operating system. To run CLI mode, you can use the console or terminal emulator available on Linux, such as Konsole, xterm, aterm and others (Figure 4.22).

Figure 4.22. Terminal is running in CLI mode.
There are two main groups of CLI mode commands:
Commands related to system administration. Commands included in this group can usually only be executed by users who have administrator (root) rights. Commands included in this group are usually stored in the /sbin (Figure 4.23) and /usr/sbin (Figure 4.24) directories.
Commands for regular use. These commands can be accessed by regular users. Commands included in this group are usually stored in the /bin (Figure 4.25) and /usr/bin (Figure 4.26) directories.

Figure 4.23. Commands in the sbin directory

Figure 4.24. Commands in the /usr/sbin directory

Picture 4.25. Commands on the bin directory

Picture 4.26. Commands in the /usr/bin directory
Here are some important commands in CLI mode.
Display directory contents
To display the contents of a directory, the ls command can be used followed by other arguments. Some examples of use can be seen in Figure 4.27.

Picture 4.27. Examples of using the ls command
Change directory
Changing directories can be done with the cd command followed by the location where we want to move. Some examples of use can be seen in Figure 4.28.

Picture 4.28. Examples of using the cd command
Searching for files
The find command can be used to find a specific file in a specified location. Some examples of use can be seen in picture 4.29.

Picture 4.29. Examples of using the find command
Display file contents
To display the contents of a file, you can use the more, less or cat commands followed by the file name. Some examples of usage can be seen in Figure 4.30.

Picture 4.30. Examples of using the cat and more commands
Copy files and directories
The cp command is intended to copy a file or directory. Some examples of use can be seen in picture 4.31.

Picture 4.31. Examples of using the cp command
Moving files
The mv command can be used to transfer files. Some examples of use can be seen in picture 4.32.

Picture 4.32. Examples of using the mv command to move files
Rename files
The mv command can also be used to rename files. Some examples of usage can be seen in Figure 4.33.

Figure 4.33. Example of using the mv command to rename a file.
Deleting files and directories
The command to delete files and directories is rm. Some examples of usage can be seen in figure 4.34.

Figure 4.34. Example of using the rm command to delete files or directories.
Create a directory
The mkdir command is a command to create a new directory. Some examples of use can be seen in picture 4.35.

Picture 4.35. Examples of using the mkdir command
Understanding file and directory access rights
On the Windows operating system, files and directories do not have sufficient file protection because files and directories only have limited attributes (Figure 4.36).

Figure 4.36. File/folder attributes in Microsoft Windows
In Figure 4.36, it appears that the file/directory attribute only has Read-only and Hidden attributes. If the Read-only option box is selected, then the file can only be read and vice versa. If the Hiden option box is selected, then the file/directory will be hidden so that it does not appear when searched with Windows Explorer.
In Unix and its family, including Linux, the issue of file/directory attributes is regulated very strictly. This is to increase security and give users the freedom to manage files and directories according to their needs.
There are 4 important parts in a file/directory, namely attributes, user or (owner) owner of the file, the group where the user is a member and the file/directory name.
(marked with the letter d for directories or the -- sign for regular files). Next, there are nine columns (characters) that show the access rights to the file/directory. The first three columns show the owner's access rights, the next three columns the group's access rights and the last three columns are the access rights for others (other users outside the owner and group members). The letter r indicates that the file/directory can be read, w indicates that the file/directory can be written and x indicates that the file/directory can be executed. Look at Figure 4.37 below.

Figure 4.37. File or directory attributes in the Unix family.
Figure 4.37 shows the following:
- Desktop and xml are directories because they have a d, while exports is a regular file because it has a -.
- Desktop and xml have drwxr-xr-x attributes which means the owner (i.e. one) has the right to read, write and execute this directory. While the group (i.e. users) has the right to read and execute only. Other (other users) also has the right to read and execute in this directory.
- Exports have the attribute -rw-r--r---which means the owner (ie one) has the right to read and write. While group and other only have the right to read.
To change file/directory attributes, you can use commands as in the following table. Table 4.1. Commands related to file/directory management.
| Perintah | Fungsi |
|----------------------------|---------------------------------------------------------------|
| chgrp [options] group file | Mengubah kepemilikan grup suatu file/direktori |
| chmod [options] owner file | Mengubah hak akses suatu file/direktori |
| chown [options] owner file | Mengubah kepemilikan owner suatu file/direktori |Controlling the process
Processes are a very important part of Linux, so it is important to know the commands related to processes.
To see the running process, you can use the ps command. Look at the following figure 4.38.

Figure 4.38. Executing the ps command
As seen in figure 4.38, the ps command has several options (more options can be seen by typing the man ps command in the terminal). In the figure there are two processes being run by user one (see the UID section), namely bash with process number (PID) 3605 and ps --f with PID 3676.
To stop a process we can use the kill command followed by its process number (PID). For example: kill 3605 to stop the bash process.
Knowing the free space on the disk
Sometimes we want to know how much disk space we still have left. To find out this, we can use the df command as shown in Figure 4.39.

Picture 4.39. Use of the df command
There are still many commands used in CLI in Linux. If you want to know the meaning of a command, try typing the man command followed by the command name (Figure 4.40).

Figure 4.40. Example of the results of executing the man command to view the manual for a command.
3.4. Working with GUI
In general, working with GUI on an operating system makes it very easy for users because users only need to work the mouse to perform a number of commands. The mouse has several uses, including:
- Single click is used to point to a single file before performing any other operations.
- Double-click to execute a command, for example opening a folder and running an executable file.
- Right click to open the context menu (Figure 4.41)
- Drag and drop to move files from one place to another (Figure 4.42).

Picture 4.41. Opens context menu with right click

Gambar 4.42. Drag and drop
Working In Computer Networks
Working on a computer connected to a network, nowadays is not something strange. Almost all places that have many computers, always use networks as a means of communication. Therefore, basic knowledge of how to work on a computer connected to a network becomes very important.
4.1. Preparation
There are three important things that must be prepared when connecting to a computer network, namely hardware, software and access to the network.
Hardware

Gambar 4.43. Network Interface Card
Hardware requirements depend heavily on the type of network connection to be used. For a LAN connection, the primary requirement is a properly installed NIC (Network Interface Card) with the appropriate driver installed and a network cable. For a dialup connection, a modem and an analog telephone cable are required.
We can see whether the network hardware (NIC, modem or others) is installed correctly by checking the list of hardware recognized by the computer.
In the Windows operating system we can see by right-clicking on the My Computer icon on the desktop then select Properties on the menu that appears (Figure 4.44). In the System Properties window select the Hardware tab then click on Device Manager (Figure 4.44), so that the Device Manager window will appear (Figure 4.45).
In Figure 4.45, it can be seen that the network adapter used by the computer has been recognized properly. If we find a question mark image on a software, it means that the hardware has not been recognized properly (see Figure 4.45).
On the Linux operating system and its family, we can check whether the hardware is recognized or not by typing the lspci (Figure 4.46) and ifconfig commands.

Figure 4.44. Opening system properties

Gambar 4.45. Device manager

Picture 4.46. lspci command output to check network adapter
Software
The main software, besides the operating system, is whether the TCP/IP package has been installed correctly on the computer. On the Windows operating system, this can be done by double-clicking on the connection type, then after the properties window appears, check whether TCP/IP has been installed (Figure 4.47).

Figure 4.47. Checking the TCP/IP protocol
This network access is related to our rights or authority in the computer network that we will enter, especially the provision of IP addresses and passwords to enter the network. On a network that implements DHCP, we don't need to worry because the IP number will be given directly when the computer connects to the network. If we do not use DHCP, we must provide a static IP number given by the network administrator on the computer.
4.2. Network connection configuration
In today's modern operating systems, connecting to a network is not a difficult job because almost all connections have been run automatically by the operating system. On a LAN network that uses DHCP, computers using the Windows operating system (version 2000 and later) or Linux will automatically connect to the network and obtain a dynamic IP number. On the Windows operating system, to check whether the computer is connected to the network we can look at the systray (notification area) located at the bottom right of the desktop (Figure 4.48).

Figure 4.48. Network connection conditions
4.3. Sharing files, printers, and other resources
The main advantage of a computer network is the shared use of various resources, such as: files, printers, recording media (CD-RW or DVD-RW), scanners and others. The following section will explain how to share files and printers. Other resources can be shared in a way that is not much different from files and printers.
Share files
Directories or files on our computer can be set to be used by other computers on the network. Likewise, we can use directories or files on other computers on the network.
To share a directory or file, we can do the following. Open Windows Explorer, then right-click on the directory or file that we want to share and select Sharing and Security. After the properties window appears, select the Sharing tab and in the Network sharing and security section, check Share this folder on the network and give a name to the shared directory (Figure 4.49).

Figure 4.49. Setting up file sharing
To be able to access directories or files on other computers, we can open Windows Explorer then click on My Network Places -> Entire Network -> Microsoft Windows Network. We will find a display like in Figure 4.50. From here we can see what resources are shared on each computer connected to the network by double-clicking on the computer name.

Figure 4.50. Exploring computers on the network
Printer sharing
To be able to share a printer on a computer, we can do almost the same way. First, we open the Printers and Faxes window by going to Start -> Settings -> Printers and Faxes. After the window opens, right-click on the printer to be shared and select Sharing .... After the printer properties window opens, select the Sharing tab and click on Share this printer and give it a name (Figure 4.51).

Figure 4.51. Printer sharing
5. Summary
- An operating system is software that is responsible for managing the use of resources on a computer and providing an interface for users to access those resources.
- The functions of the operating system are as a user interface, memory management, file management, process management and input/output management.
- The main function of BIOS (Basic Input/Output System) is to identify and recognize computer hardware.
- There are several well-known operating systems, namely DOS, Windows, Mac OS, UNIX and Linux.
- Every operating system to be run must be installed first.
- Operating systems can use text-based commands or GUI depending on the configuration and facilities provided by the operating system.
6. Exercise Questions
- State the definition of an operating system.
- Explain the functions of the operating system.
- What are the stages of the computer booting process?
- Try installing one Linux operating system distro on a computer and observe the installation process. Then compare it with the installation process on a Windows system. Do you think there are any important differences in the installation process of the two operating systems?
- Try booting on a Linux operating system, then observe the boot process and compare it with the boot process on Windows. What do you think the difference is?
- Run the Linux operating system, then open a terminal window. Perform a series of commands using the ls, cd, find, cat, cp, mv, and mkdir commands. Note what you find when running these commands.
- A file has the attribute --rw-r--r-- and is owned by a user named rony. What is the meaning of the attribute. How to do it if there are other users so that they have read and write access rights to the file?
File Operations Concept
Files are often used to store data so that data is not lost. Data or what exists and is produced in a program will be lost when the program is terminated, so files are used to store the data. There are two types of files, namely program files and data files. Program files contain program codes while data files only contain data. Data files consist of two types, namely sequential data files and random-access data files. The main differences between these two types of data files can be seen in the following table.
1. Data Writing Algorithm to Files
The algorithm used for writing data for sequential and random data files is basically the same, only the mode is different. The following is the data writing algorithm in SE.
Open "modus", <buffer number>, "nama file data"
Write <record number>, field 1, field 2, .. field n
Close buffer numberMode O indicates this file is open for writing.
Example 5.25. Example of application of data writing algorithm
Suppose we have a data file named "student.dat" whose fields are student name, address, phone number. So to write the data is as follows.
Open "O", #1, "siswa.dat"
Write #1, <nama>, <alamat>, <no.telepon>
Close #1The notation #1 indicates that the student.dat will be placed in buffer no. 1. This notation must be used equally throughout the programs above. This means that if we place a file with buffer number #1 then when opening, writing, reading and closing it must use that notation. Likewise if we place it in buffer no. #2.
2. Data Reading Algorithm in Files
The algorithm for reading data is almost the same as writing data, but the mode used is not O but I. I is input which means the data file is opened to read the data as input. The following is the algorithm in SE.
Open "modus", <buffer number>, "nama file data"
While not EOF:
Input <record number>, field 1, field 2, ..
field n
Print field 1, field 2, .. field n
End while
Close buffer numberThe While Not EOF statement is used to check whether there is already a last line of data. If not, then the rows of data will be read and printed until the last line. The input statement is used to retrieve data from a file to be loaded into the program. While the print statement is used to print data to the computer screen.
Example 5.26. Example of application of data writing algorithm
Data file with the name "siswa.dat" as in example 5.25 whose fields are student name, address, telephone number. So to read the data is as follows.
Open "I", #2, "siswa.dat"
While not EOF:
Input #2, <nama>, <alamat>, <no.telepon>
Print <nama>, <alamat>, <no.telepon>
End while
Close buffer number3. Summary
- Variables are places where we can fill or empty the value and call it back when needed. Each variable will have a name (identifier) and a value.
- A constant is a variable whose data value is fixed and cannot be changed.
- Data type is a type of data that can be processed by a computer to meet the needs of computer programming.
- Data types can be grouped into primitive data types and composite data types. Primitive data types consist of numeric, character, and bolean. While composite data types consist of array, record/struct, image, date time, subrange, enumeration, object and variant.
- An algorithm is a sequence of logical steps to solve a problem that is arranged systematically. The algorithm must be correct and must stop. After stopping, the algorithm gives the correct result.
- Algorithms can be written in Structured English, Pseudocode and Flowchart.
- A sequential structure consists of one or more instructions. Each instruction is executed sequentially according to the order in which it is written.
- In a branching structure, the program will change the order of execution if a required condition is met.
- The repetition structure consists of the repetition condition and the repetition body and can be done with For and While.
- Array is a data structure that stores a collection of elements of the same type, each element is accessed directly through its index. Search operations on arrays can be done by linear search while sorting with the bubble sort method.
- Data files are either sequential or random. Reading and writing methods are distinguished by their modes.
4. Exercise Questions
1. Determine whether the following variable names are true or false. If they are false, try to give a reason.
- a. nama.guru
- b
- c. 2x
- d. price/book
- e. hargaPerBuku
2. Determine the appropriate data type for the following (note these are not variable names) and explain why.
- a. Number of students
- b. Body weight
- c. Height
- d. Student name
- e. Place of birth
- f. Date of birth
3. Look back at Example 5.3.
- a. If in program code A all variables (x, y, z) are declared as int data type, what is the value of z?
- b. If in program code A all variables (x, y, z) are declared as float data type, what is the value of z?
- c. If in program code B the variable x is also declared as a float data type, what is the value of z?
4. There are two glasses A and B, glass A contains a red solution, glass B contains a yellow solution. Swap the contents of the two glasses so that glass A contains a yellow solution and glass B contains a red solution. Create a solution algorithm using SI (Structured Indonesia).
5. Variable A = 6, Variable B = 10. Make a flowchart to swap the values of variables A and B so that variable A = 10 and variable B = 6.
6. PT. Sandang Nyaman intends to use a computer to calculate its employees' weekly wages. The data required are the employee's name and the number of hours worked during a week. The hourly wage is set at Rp. 4500,-. Make a flowchart for this problem if the desired output is the employee's name, hours worked and wages received.
7. Same as question no. 3, but if working hours exceed 25 hours per week then the excess is considered overtime. The hourly wage for overtime is one and a half times the hourly wage under normal conditions. How is the flowchart?
8. A seller of elementary school textbooks is trying to attract book buyers with the following conditions:
- If the number of books purchased is less than or equal to 100 copies, the buyer will not receive a discount.
- If the number of books purchased is more than 100 but less than or equal to 200 copies, then the first 100 copies will receive a 5% discount, while the rest will receive a 15% discount.
- If the number of books purchased is more than 200 copies, then the first 100 copies will be discounted by 7%, the second 100 copies will be discounted by 17% and the remainder will be discounted by 27%.
If the price of one copy of a book is Rp. 5000, create a flowchart to complete the rule if the desired output is the number of copies of the book purchased and the total price to be paid. (Determine first, all variables, constants and data types respectively).
9. Look back at Example 5.16. Create a flowchart to produce the same output as Example 5.16, but using a While loop.
10. Given 2 sets, A = {1, 3, 5, ..., 19) and B = {2, 5, 8, ..., 29}. Make a flowchart to find the intersection of sets A and B. (Hint: set intersection occurs if the value of the members of set A = the value of the members of set B).
11. Make a flowchart to print a multiplication table as follows:
12. Sort the following numbers using the bubble sort algorithm.
- a. 5 - 3 - 12 -- 2 - 52
- b. 4 - 33 -- 4 -- 3 -12 -2
- c. 5 - 3 - 12 - 2 -- 50 -- 52 -- 10
Reference
NOTE: This reference site (URL) was accessed in mid-2003. It is possible that the site has now changed, or has been removed.
- http://www.csc.uvic.ca/~mcheng/360/notes/NOTES2.html
- http://www.chipcenter.com/circuitcellar/march02/c0302dc4.htm
- http://www.osdata.com/kind/history.htm
- http://www.imm.dtu.dk/courses/02220/OS/OH/week7.pdf
- http://www.mcsr.olemiss.edu/unixhelp/concepts/history.html
- http://www.cs.panam.edu/fox/CSCI4334/ch3.ppt
- http://www.cis.umassd.edu/~rbalasubrama/
- http://legion.virginia.edu/presentations/sc2000/sld001.htm
- http://www.cs.wpi.edu/~cs502/s99/
- http://cs-www.cs.yale.edu/homes/avi/os-book/osc/slide-dir/
- http://www.hardware.fr/articles/338/page1.html
- http://www.cs.technion.ac.il/~hagit/OSS98
- http://www.ignou.ac.in/virtualcampus/adit/course/index-tr1.htm
- http://www.techrescue.net/guides/insthware.asp
- http://agt.buka.org/concept.html
- http://kos.enix.org/pub/greenwald96synergy.pdf
Library
This book is presented by the Joint Working Group 21--28 IKI-20230 Even Semester 2002/ 2003, by the Joint Working Group 21--28 IKI-20230 Even Semester 2002/ 2003, for anyone who wants to learn Operating Systems. The team compiling this book is as follows:
Group 21 (Coordinator)
Dhani Yuliarso, Fernan, Hanny Faristin, Melanie Tedja, Paramanandana DM, Widya Yuwanda.
Group 22 (Chapter 1)
Budiono Wibowo, Agus Setiawan, Baya UHS, Budi A. Azis Dede Junaedi, Heriyanto, Muhammad Rusdi.
Group 23 (Chapter 2)
Indra Agung, Ali Khumaidi, Arifullah, Baihaki AS, Christian KF Daeli, Eries Nugroho, Eko Seno P., Habrar, Haris Sahlan.
Group 24 (Chapter 3)
The Call to Prayer by Wahyu Jatmiko, Agung Pratomo, Dedy Kurniawan, Samiaji Adisasmito, Zidni Agni.
Group 25 (Chapter 4)
Nasrullah, Amy S. Indrasari, Ihsan Wahyu, Inge Evita Putri, Muhammad Faizal Ardhi, Muhammad Zaki Rahman, N. Rifka N. Liputo, Nelly, Nur Indah, R. Ayu P., Sita AR
Group 26 (Chapter 5)
Rakhmad Azhari, Adhe Aries, Adityo Pratomo, Aldiantoro Nugroho, Framadhan A., Pelangi, Satrio Baskoro Y.
Group 27 (Chapter 6)
Teuku Amir FK, Alex Hendra Nilam, Anggraini W., Ardini Ridhatillah, R. Ferdy Ferdian, Ripta Ramelan, Suluh Legowo, Zulkifli.
Group 28 (Chapter 7)
Operating Systems: Lecture Materials IKI-20230 by Joint Working Group 21--28 IKI-20230 Even Semester 2002/2003
$Revision: 1.3.0.0 $ Edition
Published September 30, 2003
Copyright © 2003 by Joint Working Group 21--28 IKI-20230 Even Semester 2002/ 2003.
Please copy, distribute, and/or modify any part of this document -- $Revision: 1.3.0.0 $ -- -- authored by Joint Working Group 21--28 IKI-20230 Semester Genap 2002/ 2003, under the terms of the "GNU Free Documentation License version 1.1" or any later version of the FSF (Free Software Foundation); without the "Invariant" section, without the "Front-Cover" text, and without the "Back-Cover" text. This Appendix A contains a complete copy of the license. These terms do NOT apply to parts and/or excerpts not authored by Joint Working Group 21--28 IKI-20230 Semester Genap 2002/ 2003.
Revision Notes
Revision 1.3 09-30-2003 Revised by: RMS46
This revision was edited by Rahmat M. Samik-Ibrahim: continuing improvements to layout and indexing.
Revision 1.2 09-17-2003 Revised by: RMS46
This revision was edited by Rahmat M. Samik-Ibrahim: continuing improvements.
Revision 1.1 01-09-2003 Revised by: RMS46
This revision was edited by Rahmat M. Samik-Ibrahim: made improvements to the SGML structure, without changing the contents of the book too much.
Revision 1.0 05-27-2003 Revised by: RMS46
Recompiled, and did some tidying up.
Revision 0.21.4 05-05-2003 Revised by: Group 21 File tidying and adding entities.
Revision 0.21.3 04-29-2003 Revised by: Group 21 Changes to improve file names.
Revision 0.21.2 04-24-2003 Revised by: Group 21
Changed the Foreword.
Revision 0.21.1 04-21-2003 Revised by: Group 21
Added Bibliography and Index.
Revision 0.21.0 03-26-2003 Revised by: Group 21 Starting to make group assignments for Operating Systems lectures.
Christiono H, Arief Purnama LK, Arman Rahmanto, Fajar, Muhammad Ichsan, Rama P. Tardan, Unedo Sanro Simon.
