Skip to main content

Introduction to Linux and shells

 Hello Dear Readers, 

Today here in this series of Linux, I will start with an introduction to depth commands level experiment, so stay tuned currently, below, I will discuss an introduction to Linux and shells.

Linux is an operating system like macOS or Windows. It is also the most popular Open Source and free, as in freedom, operating system. It powers the vast majority of the servers that compose the Internet. It's the base upon which everything is built. But not just that. Android is based on (a modified version of) Linux. The Linux "core" (called kernel) was born in 1991 in Finland, and it went a really long way from its humble beginnings. It went on to be the kernel of the GNU Operating System, creating the duo GNU/Linux. 

There's one thing about Linux that corporations like Microsoft and Apple, or Google, will never be able to offer: the freedom to do whatever you want with your computer. They're actually going in the opposite direction, building walled gardens, especially on the mobile side. Linux is the ultimate freedom. It is developed by volunteers, some paid by companies that rely on it, some independently, but there's no single commercial company that can dictate what goes into Linux, or the project priorities. Linux can also be used as your day to day computer. I use macOS because I really enjoy the applications, the design and I also used to be an iOS and Mac apps developer, but before using it I used Linux as my main computer Operating System. No one can dictate which apps you can run, or "call home" with apps that track you, your position, and more. Linux is also special because there's not just "one Linux", like it happens on Windows or macOS. Instead, we have distributions.

A "distro" is made by a company or organization and packages the Linux core with additional programs and tooling. For example, you have Debian, Red Hat, and Ubuntu, probably the most popular. Many, many more exist. You can create your own distribution, too. But most likely, you'll use a popular one, one that has lots of users and a community of people around it, so you can do what you need to do without losing too much time reinventing the wheel and figuring out answers to common problems. 

Some desktop computers and laptops ship with Linux preinstalled. Or you can install it on your Windows-based computer, or on a Mac. But you don't need to disrupt your existing computer just to get an idea of how Linux works. I don't have a Linux computer. If you use a Mac you need to know that under the hood macOS is a UNIX Operating System, and it shares a lot of the same ideas and software that a GNU/Linux system uses, because GNU/Linux is a free alternative to UNIX. UNIX is an umbrella term that groups many operating systems used in big corporations and institutions, starting from the 70s. Microsoft has an official Windows Subsystem for Linux which you can (and should!) install on Windows. This will give you the ability to run Linux in a very easy way on your PC. But the vast majority of the time you will run a Linux computer in the cloud via a VPS (Virtual Private Server) like DigitalOcean or by VM  (Virtual Machine). A shell is a command interpreter that exposes to the user an interface to work with the underlying operating system.

It allows you to execute operations using text and commands, and it provides users advanced features like being able to create scripts. This is important: shells let you perform things in a more optimized way than a GUI (Graphical User Interface) could ever possibly let you do. Command line tools can offer many different configuration options without being too complex to use. There are many different kind of shells. This post focuses on Unix shells, the ones that you will find commonly on Linux and macOS computers. Many different kind of shells were created for those systems over time, and a few of them dominate the space: Bash, Csh, Zsh, Fish and many more! All shells originate from the Bourne Shell, called sh . "Bourne" because its creator was Steve Bourne. Bash means Bourne-again shell. sh was proprietary and not open source, and Bash was created in 1989 to create a free alternative for the GNU project and the Free Software Foundation. Since projects had to pay to use the Bourne shell, Bash became very popular. If you use a Mac, try opening your Mac terminal. That by default, is running ZSH. (or, pre-Catalina, Bash) You can set up your system to run any kind of shell, for example I use the Fish shell. Each single shell has its own unique features and advanced usage, but they all share a common functionality: they can let you execute programs, and they can be programmed.


Connect with me 








Comments

  1. good and please complete series early we are exciting to read it

    ReplyDelete

Post a Comment

Popular posts from this blog

Design Engineer at Infineon Bangalore

  Hello Dear Readers, Currently at Infineon Bangalore vacancy for the Design Engineer role. Design analog and mixed-signal modules in CMOS and Smart PowerTechnologies, with a particular focus on achieving high-efficiency power conversion for applications using GaN devices; In your new role you will: Design analog and mixed-signal modules  in CMOS and Smart PowerTechnologies, with a particular focus on achieving high-efficiency power conversion for applications using GaN devices; Design and verify pre-silicon analog/mixed-signal integrated circuit blocks, including incorporating features for testing and quality assurance, and providing support for top-level integration; Assist in defining the requirements  for analog and mixed-signal blocks,aligning them with IP Module architecture, and ensuring compliance with requirements through documentation; Estimate effort and planning design work packages to meet project milestones; Provide essential support to physical design ...

Engineer II - Analog Design Engineering at Microchip

Hello Dear Readers,   Currently at Microchip  vacancy for Engineer II - Analog Design Engineering role. Job Description: The Mixed Signal Development Group is responsible for delivering analog, digital and mixed-signal IP to divisions within Microchip. We work with leading edge CMOS processes to produce analog integrated circuits for wireline applications. From 112Gb/s+ SERDES to high-speed FEC engines, we enable technology that allows Microchip’s products to interface to the outside world.  Job Descriptions: As a member of the Mixed-Signal Development Group, the candidate will be supervised by a team leader/manager, and be engaged in the design of SERDES/DSP blocks, and other high-speed Digital Signal Processing blocks. This will involve taking a design from initial concept to production form. Throughout you will be mentored and coached by experienced engineers and be exposed to Microchip's Best-In-Class engineering practices. Job Responsibilities: Ramping up o...

Analog Design Engineer II at onsemi

Hello Dear Readers,   Currently at onsemi  vacancy for  Analog Design  Engineer II role. JOB DESCRIPTION: An analog design engineer is expected to quickly take an analog design block through all phases of the development process, including design, simulation, and supervision of the layout/verification processes and evaluation/debug of silicon samples. A Senior Analog IC Design Engineer will be responsible for individual block designs using CMOS process. That person will work with the latest Cadence analogue design tools (Virtuoso Composer, Verilog) Spectre and appropriate PC-based tools (MATLAB). The nature of the circuits is Mixed Signal involving blocks such as switched capacitor amplifiers, data converters, charge pumps, references, voltage buffers, IO circuits and digital building blocks. QUALIFICATIONS: Analog engineer is expected to have PhD (no experience) or master’s degree in field of Electrical Engineering/VLSI/Electronics with 0-2 years of experience and w...