Linux
Linux is a kernel used with GNU operating system. It is a Unix-like, open source and community-developed system for computers, servers, mobile devices and embedded devices. It communicates between hardware and software devices of the system and enables all the applications.
In use cases and applications Linux is similar to other operating systems such as Windows or MacOS. It has word processors, photo editors, video editors and many other applications. It is open source which allows users to view, edit or even contribute to the Linux.
Individuals and companies use it mostly for operating servers as it is more secure and flexible but it is also used in making Android phones, tablets, Chromebooks, digital storage devices, personal video recorders, cameras and many more devices.
Discussion
-
What are components of a Linux system? Linux operating system comprises different components:
- Bootloader: It is code that manages the boot process of computer. GRUB is the most common boot loader in Linux.
- Kernel: It is the main component of Linux operating system. It manages the CPU, memory, and other peripheral devices. It communicates between a computer's hardware and its processes.
- Init System: It is the first process that run once the kernel is loaded. It acts as the parent process to all other processes running on the system.
- Daemons: These are programs that run in background and handle requests for a service such as printing, sound or scheduling. Httpd daemon is used to listen for web server requests on Linux web servers.
- Graphical Server: It controls how graphics are displayed on the computer screen. Servers and even low-end embedded devices don't need graphical servers or desktop environments.
- Desktop Environment: It is a collection of software and UI controls that users interact with. Each desktop environment comes with built-in applications such as file managers, configuration tools, web browsers, and games.
-
What are some basic Linux terms? Below are some basic terms used in Linux:
- Command: These are printable characters that user type into a program called the ‘command line' to give instructions to the operating system.
- Distro: Linux distribution or distro is a specific version of Linux OS packaged with other components including installation programs, management tools and other software.
- Root: Linux systems have predefined set of rules for users. Different users have different levels of permissions. For instance, a guest user won't be able to modify the OS's main files while a root user (aka administrator) has full access to every command and file in the system.
- Terminal: It invokes applications whose execution is scheduled by OS transparent to the user. The UI of terminal is very simple and easy to use.
- Shell: It is Linux command line interpreter. It executes the command given by user.
- Device: There are various special files under the directory
/dev
. These files are called device files. The most common types of device files are block devices and character devices. Character devices communicate by sending and receiving single characters. Block devices communicate by sending blocks of data.
-
What are some basic services/utilities provided in Linux? Below are some basic services/utilities provided in Linux:
- User management: User management activities such as adding user, deleting user, updating or giving certain permissions, creating and removing groups require administrator privileges. Admin permissions can be gained either by changing to the root user with the
su
command or usingsudo
. - File system: Linux file system has a hierarchal file structure as it contains a root directory and its subdirectories.
- Scheduler: The scheduler also called as process scheduler is the component of the kernel that schedules the processes to run in a systematic manner.
- Process management: Each process starts with a unique five-digit number called process id or PID. We can track the process using this PID.
- Package management: It helps to install, update, remove, and keep track of software updates in the Linux system.
- Memory management: Linux memory management subsystem manages the implementation of virtual memory and demand paging, memory allocation both for kernel internal structures and user space programs, mapping of files into processes address space and many other things.
- User management: User management activities such as adding user, deleting user, updating or giving certain permissions, creating and removing groups require administrator privileges. Admin permissions can be gained either by changing to the root user with the
-
How does Linux differ from other operating systems? The Linux is totally free of cost whereas Windows is a costly OS. Unlike in Windows, users can access the source code of Linux as it is open source. Linux is more secure compared to Windows and MacOs. File names are case sensitive in Linux which is not the case in Windows. Linux uses the monolithic kernel while Windows utilizes the micro-kernel. Linux is more efficient than Windows in performing operations while Windows has a better user friendly UI and navigation. Hackers use Linux based systems as Windows is not a very efficient OS for hacking purposes.
-
Which industries use Linux? Linux is the core of many industries while Windows OS dominates in market share. Linux is the most favourite operating system of Microsoft Azure's customers. It is used to develop several coding languages and build embedded systems. Microsoft's operating system named Azure Sphere is also built on Linux kernel.
There are broadly two types of categories that use Linux:
- Consumer devices: Google's video streaming platform Chromecast also runs on Linux. Panasonic, Samsung, Phillips and many more use Linux-based operating systems for their devices. Lightweight laptops such as Chromebook use Chrome OS, which is built on Linux. Instagram, Facebook, YouTube and Twitter all run on Linux.
- Non-consumer devices: In US, The Library of Congress, House of Representatives, Senate, and White House all use Linux. The New York Stock Exchange uses Linux. The Indian state Kerala has made Linux mandatory for all the high schools computers. NASA's Pleiades supercomputer runs on Linux. The International Space Station switched from Windows to Linux in 2013 due to its reliability. Linux is the leading operating system used for servers.
-
How can I get started using Linux? The prerequisites for learning Linux includes basic computer skills and a basic computer system with single-core CPU, 128 MB of memory and few GBs of hard disk.
First step is to decide the Linux distro version to use. There are many beginner friendly and free-to-use Linux distros such as Ubuntu, Debian GNU, openSUSE and CentOS. Each of them has its own advantages and features. After selection, one needs to install the Linux distro on the system.
In the learning phase users have a lot of problems and challenges which they can tackle using communities such as StackOverflow and GitHub as they are helping open-source communities. Below are some courses and cheatsheets to learn Linux command line:
- Learn The Linux Command Line: Basic Commands
- Linux Tutorials and Projects
- Learn Linux on a MAC
- Linux Commands Cheat Sheet by Linux training academy
- Linux Command Line Cheat Sheet by DaveChild
- Linux Command Line by Das
- Books: The Linux Command Line: A Complete Introduction by William Shotts and How Linux Works by Brian Ward are two books for beginners.
-
What are the pros and cons of using Linux? As it has a small user base compared to other OS, hackers avoid targeting it. Every Linux distribution is tested many times against bugs before releasing a stable version which makes it a stable option. Linux is released under the GNU GPL license which makes it free to use. Unlike Windows and MacOS, users are free to customize Linux distributions according to their needs. Linux systems can run on even 500 MB ram or at 256 MB RAM, as it uses resources very efficiently. Users can install software using a few commands on terminal.
However, Linux has some disadvantages. It is less user-friendly compared to Windows and MacOS. Troubleshooting in Linux is difficult for beginners. It is not a preferred option for games. There are no drivers in Linux which can be a significant issue at times.
Milestones
Linux 1.0.0 is released with 176,250 lines of code. In June 1996, Torvalds releases Linux version 2.0.0. that contains 41 releases. Support for symmetric multiprocessing (SMP) and support for more types of processors are added in this version. On 04 January 2001, Linux version 2.4.0 is released. It consists support for ISA Plug and Play, USB, and PC Cards. On 17 December 2003, Linux version 2.6.0 is released. Support for files of other OS such as JFS, XFS, Solaris, Windows and MS-DOS is added. Torvalds releases Linux version 3.0 on 22 July 2011.
References
- A2 Marketing Team. 2019. "10 Key Linux Terms You Need to Know." A2 Hosting, January 24. Accessed 2022-07-15.
- Blandford, Jonathan. 2017. "A Brief History of GNOME." Presentation, The GNOME Conference GUADEC, Manchester, UK, July 29. Accessed 2022-09-11.
- Byju's. 2021. "Difference Between Linux and Windows." Byju's, August 12. Updated 2022-09-30. Accessed 2022-08-13.
- Campbell, Andrew T. 2022. "Lecture 2: The Linux Shell and Commands." CS 50: Software Design and Implementation, Dept. of CS, Dartmouth College. Accessed 2022-09-13.
- Chercher Tech. 2017. "Process management in Linux." Chercher Tech, November 14. Updated 2018-08-29. Accessed 2022-09-02.
- Chinthaguntla, Keerthi. 2020. "Linux package management with YUM and RPM." Red Hat, April 22. Accessed 2022-08-13.
- Das, Debarshi. 2022. "How to Install a Desktop Environment/GUI in Ubuntu Server." MakeUseOf, May 06. Accessed 2022-10-01.
- Debian. 2011. "Appendix D.1: Linux Devices." In: Debian GNU/Linux Installation Guide, for 64-bit PC (amd64), Debian. Accessed 2022-09-13.
- Education Ecosystem. 2019. "Get Started With Linux: A Beginner's Guide." Medium, August 10. Accessed 2022-08-13.
- Fortune Business Insights. 2020. "Linux Operating System Market to Reach $15.64 Billion by 2027." Global Newswire, August 27. Accessed 2022-10-02.
- Gehlot, Manish. 2021. "Obtain information about internal hardware on GNU Linux's console or terminal." #!xFAQ, March 16. Accessed 2022-08-08.
- Ghosh, Abhishek. 2012. "Kernel of Operating System." The Customize Windows, July 31. Updated 2016-11-25. Accessed 2022-10-03.
- Huawei Community. 2020. "Most popular Linux boot loaders." Huawei, January 13. Accessed 2022-09-12.
- Larcom, Allyson. 2022. "Words to go: Learn basic Linux terminology." TechTarget, June 27. Accessed 2022-08-13.
- Linux Kernel Docs. 2020. "Memory Management." The Linux kernel user’s and administrator’s guide, The Linux Kernel 6.0.0, April 22. Accessed 2022-08-13.
- Loshin, Peter, and Stephen Bigelow. 2021. "Linux operating system." Tech Target. Accessed 2022-07-11.
- Love, Robert. 2003. "The Linux Process Scheduler." Chapter 3 in: Linux Kernel Development, 1st Edition, Sams Publishing. Accessed 2022-07-19.
- Manjunatha, Manoj Thoranala. 2022. "What is the difference between character and block device drivers in UNIX?" Quora. Accessed 2022-09-13.
- Miller, Brandon. 2017. "15 Pros and Cons of Linux." Blog, GreenGarage, April 19. Accessed 2022-08-13.
- Paul, Javin. 2020. "Top 10 Free & Best Courses to Learn Linux Command Line in 2022." Medium, February 09. Accessed 2022-09-14.
- Prakash, Abhishek. 2017. "Timeline Of The Most Important Events In 25 Years Of Linux." It's Foss, June 20. Accessed 2022-08-13.
- Red Hat. 2019. "What is the Linux kernel?" Red Hat, February 27. Accessed 2022-07-24.
- Silva, Nimesh Ryan. 2021. "Windows versus Linux." Essay, CYB 5285: Secure Operating Systems, Florida Institute of Technology, February 15. Accessed 2022-10-01.
- Stallman, Richard. 2021. "Linux and the GNU System." GNU Operating System, The Free Software Foundation. Updated 2021-11-02. Accessed 2022-09-14.
- Supersu. 2021. "Top 10 Advantages and Disadvantages of Linux." Kerneltips, March 21. Accessed 2022-08-13.
- Tech Differences. 2018. "Difference Between Linux and Windows Operating System." Tech Differences. Accessed 2022-09-13.
- The Linux Foundation. 2018. "What Is Linux?" Linux.com, August 20. Updated 2022-08-26. Accessed 2022-08-11.
- Vocal Technologies. 2021. "Software Components of Embedded Linux Systems." Vocal Technologies, October 18. Accessed 2022-09-11.
- Watkins, Don. 2019. "List of Linux adopters." Opensource, August 30. Accessed 2022-08-13.
- Whittaker, George. 2020. "Linux vs. Windows: What's the difference in 2022?" Linux Journal, June 19. Accessed 2022-10-01.
- Wikipedia. 2022. "Linux." Wikipedia. Updated 2022-08-05. Accessed 2022-08-04.
- Wikipedia. 2022a. "List of Linux adopters." Wikipedia, June 10. Accessed 2022-08-13.
- Wikipedia. 2022b. "Device file." Wikipedia, August 17. Accessed 2022-09-13.
- Wikipedia. 2022c. "Linux Kernel." Wikipedia. Updated 2022-11-09. Accessed 2022-09-14.
- Wikipedia. 2022d. "Microsoft and open source." Wikipedia. Updated 2022-08-14. Accessed 2022-09-14.
- Wikipedia. 2022e. "Embedded system." Wikipedia. Updated 2022-09-30. Accessed 2022-10-01.
Further Reading
- Wikipedia. 2022. "Linux." Wikipedia. Updated 2022-08-05. Accessed 2022-08-04.
- Loshin, Peter, and Stephen Bigelow. 2021. "Linux operating system." Tech Target. Accessed 2022-07-11.
- Vocal Technologies. 2021. "Software Components of Embedded Linux Systems." Vocal Technologies, October 18. Accessed 2022-09-11.