Why Does Linux not have a Registry like Windows?


👤 Diwas Poudel    🕒 23 Feb 2023    📁 TECH

What is the Registry in Windows?

Simply put, the registry present in windows is a database. It stores thousands of the low-level settings for windows and for applications that use it. It can be accessed by using the “regedit” command in the run dialog box. The registry stores the settings as well as various values for the software and hardware. The registry was first released with windows 3.1. Windows 95 and Windows NT further extended the registry’s use. When first released, it stored information for COM (Component Object Model) based components. Around this time, it was known as the Registration Info Editor. Now, used for basically all the PC settings and information, it seems to be a big deal. But why does Windows have it and Why does Linux not have it? We’ll need to look into the key differences between windows and Linux. 

Windows and Linux - Key Differences

Let us first understand the file structure and file system present in Linux OS. The fundamental design of Linux is completely different from that of windows. There is one single file tree in Linux and All the drives are mounted there. It is a whole new file structure. Windows, on the other hand, uses a hierarchical structure. Therefore, there are various drives present in windows like the C: drive and the D: drive. 

The fundamental design philosophy of Unix (and Linux) is using standardized text formats. On the other hand, Windows Registry is a proprietary binary format with .bin and .ini files. Linux doesn’t have a monolithic registry.

The applications store the information in a hidden file. This hidden file can be accessed in the user’s “home” directory. In the home directory, we can find configuration files stored as text files and can easily open them with any text editor. The system configurations are stored in /etc the directory. The system state lives under /var. And all the user settings live under files starting with the dot ( . ) prefix like .var, .config, etc. While there are some exceptions to the rule, this is how it works generally. 

Why does Windows need the Registry?

The registry helps Windows manage, operate and change critical settings of the computer. It helps in resource management, program configuration, and settings configuration. It is a hierarchical database made of keys and values. The keys are containers that act like folders with values or subkeys within them. When an app is uninstalled, the app’s files are deleted from the registry.

However, sometimes these files don’t get deleted. So, you’ll have to delete them by yourself through the registry. This gets rid of the junk present in the computer. It also helps deal with any virus on a deep level if there is one present. 

Registry Contents

The Registry works with branches. The main 5 branches (in most cases) of a registry are called hives. These hives store folders called keys. Keys contain values that are settings. They are as follows:

  • HKEY_CURRENT_CONFIG
  • HKEY_LOCAL_MACHINE
  • HKEY_USERS
  • HKEY_CLASSES_ROOT
  • HKEY_CURRENT_USER
Windows registry Editor
fig. Windows Registry Editor

The functions of these are as follows:

Registry Contents  Description
Current Config It has a real-time measurement of Hardware information. This information isn’t permanently stored and keeps changing in real-time. 
Local Machine It has passwords, boot files, software installation files, and so on. It is very critical to the functioning of the computer. 
Users It has the settings specified by multiple users logged in to the same computer. It is similar to the HKEY_CURRENT_USER hive.  
Classes Root It has default file associations. It ensures that your default browser is opened when you click a link in other apps. 
Current User It stores the settings specified by the current user of the computer.

Why Does Linux Not Have the Registry?

Linux stores all the configuration files in the home directory of the PC. Using the terminal, we can easily access these files. This is a step-by-step on how to access /etc on the terminal.

  1. Open the terminal
    Open Terminal
    fig. Terminal
  2. Enter the command “cd ..”
    type cd..
    fig. Type cd.. 

  3. You will see that you are in the home directory
  4. Enter the command “cd /etc”
    cd /etc in terminal
    fig. Type cd /etc in terminal 
  5. You’ll see that you are in the /etc directory
  6. Type in the ls command
    Files inside etc directory
    fig. Files inside etc directory
  7. You’ll see the files present in the /etc location as shown in the above picture

The reason Linux doesn’t have a registry is that it was built as a multi-user system. At its core, the registry system doesn’t sit well with the multi-user system. In Linux, we can just move and copy the home directory to another machine and load up applications.

Also, there is less chance of failure in Linux. If one of the configuration files is corrupted, only that function is disabled while the others continue to function. It does not prevent you from working in general. In contrast, deleting or modifying the registry may have an impact on your system.

All the configuration data in Linux and Unix is stored in text files. One can simply access it without the registry as shown in the above steps. Having the data stored like this means that it’s manageable and faster to access. However, this comes as both a boon and a curse. We’ll discuss the benefits and curses in the next part of the article. 

Another reason why Linux systems don’t use the registry is that having a registry is simply a nightmare. When working, the registry is a good strong part of the OS. But when something goes wrong, it gets really ugly really soon. Text files, on the other hand, can store configurations efficiently. They rarely need to be changed. It’s also very easy to write scripts for the configuration of such files. This comes in handy when automating server maintenance.

Linux offers more system configuration flexibility,reliability and stability than registry. System administrators can manage configuration settings for users, who can simply modify or replace configuration files.

Transparency is also a point.The Windows registry is a binary database that is hard to comprehend and modify, while Linux system configuration files are plain text files which are easy to read and change.

Ease of troubleshooting is another things.Linux simplifies program and system component troubleshooting. Configuration files are stored in individual directories, making application or setting issues easier to find and diagnose.

Lightweight system configuration is next important things.Linux system setup is lighter than Windows registry. This benefits embedded and mobile devices with limited resources.

Where and How Do Linux Store Files?

Within Linux, specific implementations of configuration storage might be different in systems because they are different architectures. Generally, Linux distros store files in /proc for kernel-related things and they store files in /etc for software-related stuff. These files are hidden. So if you want to see them, you can use the terminal as shown above or you can check the “show hidden files” options. Here’s how:

  • Go to the location of the hidden files
  • On the top right, there are more options [I’m using Pop! OS, you might find it different]
  • Click on the “Show Hidden Files” Option. 
Unhide Linux etc file
fig. Show hidden files present inside /etc file

No Registry - Boon or Curse?

Not having a registry is both, a blessing and a curse. It depends on where you draw the line. It is a blessing because all the config files are kept as text files. This means that we can make a bunch of comments on these files. Over the long run, this means that we can take a look at these comments. By doing so, we can understand why a configuration is set up the way it is. It also means that the text editor of choice can be used by users. It also means that editing these files and configurations is easier because of the simple text format. 

So, where’s the curse? Well, the curses start when we sit down to edit the files. This is because there is no standard way of writing the configuration files. It can get very confusing very fast. 

Conclusion

Personally, the registry feels like a clunky and big database for storing configurations. It isn’t needed anymore. It is a single point of failure of a lot of configuration options in Windows. If anything goes wrong or any file gets corrupted on the registry, you’ll have to replace it with a new registry. This also means that all your installed programs will lose entries along with the OS. It’s possible you’ll have to reinstall the OS in case the registry fails. Therefore, in this regard, you’re better off looking at systems without registries. Which tend to cause fewer problems and are also easier to configure.

FAQ:

Does Ubuntu have a registry?

Since Ubuntu is a Linux-based operating system, this operating system does not have a registry either.

Article by: Adamya Neupane