Ubuntu OS and its support for machine learning developers — Part 1

Hao Phu Phan
5 min readJul 23, 2019

--

In the field of operating systems, besides the popularity of Microsoft Windows and Mac OS, there is still a silently developed operating system that carries its own characteristics. It is Linux. Linux is the name of a computer operating system and also the kernel name of the operating system. It is considered as the most famous example of free software and of open-source development.

The first Linux version (version 1.0) was written by Linus Torvalds in 1991
when he was a student at Helsinki University in Finland and released in 1994. It was developed and launched under the GNU General Public License. Therefore, anyone can download, view Linux source code and participate in the development projects for Linux.

Correctly, the term “Linux” is usually used to refer to the Linux kernel, but this name is widely used to describe Unix-like operating systems (also known as GNU / Linux) created by packaging the Linux kernel with GNU libraries and tools, as well as Linux distributions. One of those operating systems is Debian, which is a popular operating system available for computer, using Linux kernel and other program components obtained from the GNU project.

Ubuntu is a distribution of Linux (Linux distro), based on Debian. It’s an
open-source operating system, produced by Canonical Group Ltd and developed by the developer community all over the world. Ubuntu runs on various platforms, from the PC (desktop, laptop), to the cloud, servers and to all the internet connected things. Ubuntu is always free of charge, even there is no fee for the “enterprise edition” which is used to satisfy the needs of an organization rather than individual users. Therefore, everyone can access https://www.ubuntu.com and easily download the latest Ubuntu version.

Main editions

  1. Ubuntu Desktop: Ubuntu Desktop is an operating system powers desktop
    computing platform like PC, laptop. It comes with everything that is necessary to run organization, school, home or enterprise.
  2. Ubuntu Server: Ubuntu Server is a server operating system that works with nearly every type of hardware or virtualization platform. It can serve up websites, file shares, and containers, as well as expand your company offerings with cloud presences.
  3. Ubuntu Core: Ubuntu Core is a transactional edition of the Ubuntu OS, made specifically for the Internet of things (IoT) devices and large container deployments.

Features

General advantages

Ubuntu has all the advantages of an operating system which is based on Linux kernel:

  1. Easy for user to customize
  2. Fast and high-performance (especially appreciate for the old devices)
    Supporting multiple languages (includes Vietnamese)
  3. Having the security against all viruses and malware (especially safe for the desktop system of individual users): Ubuntu can be infected by a virus, but rarely. In part, because it is not as popular as Windows, but the main reason is the system of user permissions on Ubuntu is so tight that it is harder for viruses and malware to spread than on Windows, Linux-distros like Ubuntu do not easily let you log in root account (like administrator account of Windows). Except for some tasks, you can run as root with sudo command (password requests, warnings, etc.) but quite limited. If someone wants to break the root’s security, there is a need for a high-tech attack technique. So it is quite enough to ensure the system of an individual user is safe unless the user deliberately impacts. On the other hand, Ubuntu is open-source, so any bug will be quickly fixed by the community.

File Hierarchy Structure

Like other Linux distributions, Ubuntu file hierarchy structure is completely different from Windows.
There are also no C:\ or D:\ drive available. Instead, there is a data tree and the drives are sprung into the tree. Similarly, the home and desktop folders are all part of the data tree. Technically, Ubuntu and other Linux distros have a completely new system and file architecture.

File hierarchy structure on Ubuntu (Source: https://cITricks.net) ​

Terminal​

The terminal is a program that is pre-installed on Ubuntu. It allows the
user to communicate with the computer by running commands. Therefore,
Terminal is also called a command-line interface program. For programmers and especially system administrators, using Terminal will also be faster and more efficient than using the GUI interface, especially when modifying system properties, installing and running programming tools.

The terminal of Ubuntu ver. 18.04.1 LTS

Package management

Package Management is a fundamental feature that a Linux-distro system like Ubuntu provides for installing, updating, upgrading, configuring, and removing software. In addition, this feature also allows the user to access package base and there are more than 45.000 tools to install on the user’s
Ubuntu computer. Moreover, the package management also features automatic software update checking. There are several tools that help the user interact with Ubuntu’s package management system:

  1. Apt command: is a command-line tool which works with Ubuntu’s Advanced Packaging Tool (APT). It is powerful, can perform many functions such as: installing new software packages, upgrading existing software packages, updating the package list index, and even upgrading the entire Ubuntu system.
    — Udate entire Ubuntu system: sudo apt update
    — Upgrade existing packages: sudo apt upgrade
    — Remove all packages which are no longer needed: ​sudo apt autoremove
    — Install a new software package (For example: Ruby programming language):sudo apt install Ruby-full
  2. Synaptic: ​ is a graphical front-end tool which also works with Ubuntu’s Advanced Packaging Tool (APT). It combines the easy-to-use graphical user interface with the power of the apt command-line tool. Like apt command, with Synaptic Package Manager, the user can install, remove, upgrade software packages, update or upgrade the whole system. Moreover, the user also can browse, search for available software packages.
Synaptic Package Manager

--

--