Question

In: Computer Science

Pertaining to the Linux operating system, which is a variant of Unix, DISCUSS Topics that will...

Pertaining to the Linux operating system, which is a variant of Unix, DISCUSS Topics that will include things such as history, Linux kernel, and design principles.

Solutions

Expert Solution

History

One of the most popular and used operating system worldwide is Unix. It is because of it’s large support base and distribution. In the mid-1970s, it was originally created as a multitasking system for mainframes and minicomputers. It has since grown to be the most widely used operating system despite having a confusing interface and lack of central standardization.

Linux is a freely distributable version of Unix and was originally developed by Linus Torvalds who began working for Linux in 1991. He was a student of the University of Helsinki in Finland. Currently, he is working for a start-up in Santa Clara, California named Transmeta Corporation and he continues maintaining the Linux kernel, the lowest level core component of the operating system.

Linus launched the first version of Linux on the Internet for free which has become the largest software-development phenomena of all time. Currently, Linux is being authored and maintained by a group of thousands of developers who are collaborated across the internet. Companies have sprung up to provide Linux support, to package it into easy-to-install distributions, and to sell workstations pre-installed with the Linux software. The first Linux World Expo trade show was conducted in March 1999 in San Jose, California with an attendance of 12000 people. Most estimates place the number of Linux users worldwide somewhere around the 10 million mark.

Linux Kernel

The lowest level of easily replaceable software that interfaces with the hardware in your computer is a Kernel. It is responsible for interfacing all of your applications that are running in “user mode” down to the physical hardware, and allowing processes, known as servers, to get information from each other using inter-process communication (IPC).

There are a number of different ways to build a kernel and architectural ruminations when building a kernel from the start. Usually, these three types cover most of the kernels: monolithic, microkernel, and hybrid. Linux is a monolithic kernel and OS X (XNU) and Windows 7 use hybrid kernels.

Microkernel
A microkernel works by only managing what it has to: CPU, memory, and IPC. Almost all the other things in a computer can be classified as an accessory and can be handled in user mode. Microkernels have an edge of portability because they don’t have to worry if you change your video card or even your OS so long as the OS still tries to access the hardware in the same way.

Monolithic Kernel
Monolithic kernels are completely opposite of microkernels as they encompass not only the CPU, memory, and IPC, but they also include things like device drivers, file system management, and system server calls which were seen as accessories in the microkernel. Monolithic kernels are better at multitasking and accessing hardware as if a program needs to get information another process running or from memory, it has a more direct l access to it and doesn’t have to wait in a queue to get the task completed.

Hybrid Kernel
Hybrid kernels have the ability to choose what they want to run in supervisor mode and what they want to run in user mode. Many times, things like device drivers and filesystem input/output will be run in user mode while Interprocess communication and server calls will be kept in the supervisor mode.

In Ubuntu, the kernel file is stored in /boot folder and is called vmlinuz-version. The name vmlinuz comes from the Unix world where they used to call their kernels simply “Unix” back in the 60’s so Linux started calling their kernel “Linux” when it was first developed in the ’90s.

It has the largest footprint and the most complexity over the other types of kernels because the Linux kernel is monolithic. This was a design feature which was debated a lot in the initial days of Linux and still has some of the same design flaws that monolithic kernels are supposed to have. One important thing that the Linux kernel developers and creators did to get around these flaws was to make kernel modules that could be loaded and unloaded at runtime, meaning you can add or remove features of your kernel on the fly.

Design Principles

  • It is a multiuser, multitasking system with a full set of UNIX-compatible tools.
  • Its file system sticks to conventional UNIX semantics, and it fully implements the standard UNIX networking model.
  • It is designed to be compliant with the relevant POSIX documents, at-least 2 Linux distributions have achieved official POSIX certification.
  • The Linux programming interface sticks to the SVR4 UNIX semantics, rather than to BSD behavior.
  • As PCs became more powerful and as memory and hard disks became cheaper, the original, minimalist Linux kernels grew to implement more UNIX functionality.
  • Speed and efficiency are very important design goals, but current work on Linux has focused on a third important design goal: standardization.
  • Even when the same system calls are present on two different UNIX systems, they do not exactly behave in the same way.
  • Linux is designed to be obedient with the relevant POSIX documents; at least two Linux distributions have achieved official POSIX certification.
  • It has a Hierarchical filesystem with a single root, everything is a file.
  • All the configurations of Linux are stored as text in ASCII or UTF 8.
  • Complex tasks are accomplished by pipe programs together.

Related Solutions

Linux Directories, File Properties, and the File System in C Understanding Unix/Linux Programming Your version of...
Linux Directories, File Properties, and the File System in C Understanding Unix/Linux Programming Your version of mv command The mv command is more than just a wrapper around the rename system call. Write a version of mv that accepts two argument. The first argument must be the name of a file, and the second argument may be the name of a file or the name of a directory. If the destination is the name of a directory, then mv moves...
application that uses linux operating system amd justify the linux operating system. provide a suitable application...
application that uses linux operating system amd justify the linux operating system. provide a suitable application that uses linux os and justify the usage of linux os in the considered application.
What are control structures in Linux/Unix?
What are control structures in Linux/Unix?
Consider Unix, Linux, MacOS, Android and Windows operating systems. Consider the primary application of each in...
Consider Unix, Linux, MacOS, Android and Windows operating systems. Consider the primary application of each in the marketplace. How does each OS implement threads? How does the usage of threads impact application (usage) ?
Study PC operating system such as windows and linux etc and mobile operating system such as...
Study PC operating system such as windows and linux etc and mobile operating system such as Android and iOS, find out whether there are functions and features that are provided in PC OS but not in mobile OS, and if there is any, analyze why these functions and features are not provided by these mobile OS. In your opinion for the future development will PC operating system and mobile operating system be the same or different? Give the details.
System Administration Linux/Unix This lab is for you to research and implement old school DNS for...
System Administration Linux/Unix This lab is for you to research and implement old school DNS for your virtualized environment Currently, if you tried to ping your server01 by IP address (192.168.10.11), you would receive a response. If you tried to ping using its hostname "server01", it would result in "ping: hostname: Temporary failure in name resolution" 1) Research how and where to implement 2) Create the following entries: 192.168.10.1 router 192.168.10.11 SRV1 192.168.10.12 SRV2 192.168.10.13 client 3) Ensure these hostnames...
Differences Between Linux and Windows Operating Systems Two key differences between a Linux operating system and...
Differences Between Linux and Windows Operating Systems Two key differences between a Linux operating system and a Windows operating system are the concepts of “mounting” and “drive” letters. Provide an example for each. Why is it important to plan disk partitioning before installing Linux? Discuss the advantages of disk partitioning. Also discuss what logical volume management (LVM) is and why or why you might use it.
Discuss what issues you've had in installing an operating system and if the vendor (Microsoft, Linux,...
Discuss what issues you've had in installing an operating system and if the vendor (Microsoft, Linux, etc.) was helpful in fixing those issues.
what is the major change of Unix, Linux and Android. what there evelution ? what they occor? discuss this
what is the major change of Unix, Linux and Android. what there evelution ? what they occor? discuss this
We are interested in the implementation of a Unix/Linux system utility for the concatenation of a list of n text files.
Write in C We are interested in the implementation of a Unix/Linux system utility for the concatenation of a list of n text files. In order to do that we are going to consider the following syntax below where the concatenation of n text files are written in the output file all.txt or on the console if the output text file is not specified.       $./mycat file_1.txt file_2.txt   . . .   file_n.txt > all.txt
ADVERTISEMENT
ADVERTISEMENT
ADVERTISEMENT