Skip to Content


نصب PostgreSQL و pgAdmin در لینوکس CentOS 7

Install PostgreSQL and pgAdmin on Linux CentOS 7


PostgreSQL is one of the most powerful and popular open source databases that built its reputation on architecture, features and the ability pretty much to run on a wide range of operating systems. The same VMware VCSA uses PostgreSQL as the embedded database option for the vCenter appliance. The purpose of this article is to show the simple steps on how to install PostgreSQL on a Linux CentOS 7 virtual machine running on VMware vSphere. Complementary to the PostgreSQL deployment also the pgAdmin install. A powerful tool that provides full management capabilities for all PostgreSQL aspects. From Database Server level to the manipulation of all database objects. Also in this case pgAdmin is available for multiple platforms.

This article shows the process to install PostgreSQL using the command line. Whereas the pgAdmin tool will be installed using the built-in Software Manager in the GNOME Desktop. The configuration for both applications will use the command line or bash shell. A third application that will be installed and configured is Apache or httpd daemon. This one will serve the pgAdmin install and provides a web based GUI to graphically manage the PostgreSQL Server.

The idea to install PostgreSQL on Linux CentOS 7 goes together with option to explore the configurations on how to protect both the server environment and also the PostgreSQL application with its databases. Separate articles will be dedicated on how to provide protection including a file and crash consistent backup. The scenario visits the ability to include the PostgreSQL Server into a Veeam Protection Group. Effectively the protection is operated by the Veeam Agent for Linux working in “Managed Mode”. Typically, this scenario is used for both Physical Servers and Cloud Instances. In this case the homelab offers both scenarios: protecting the Linux CentOS VM within the Hypervisor or simply installing the Veeam Agent. A dedicated article will show both.


How to install PostgreSQL on Linux CentOS 7

For this first part to install PostgreSQL Database Server a quick and easy way is to use the excellent Package Manager from the command line. First thing to make things even easier (and run the majority of commands without logging into root account) is to edit the “sudoers” file. Essentially this file controls who and what admin commands can be run from the user context. Its not required but recommended for security reasons and also because future installs might benefit from same configuration. In a nutshell let’s open a Terminal session and issue the “su” command and provide the root password.

At this point let’s run the command


This special command is authorized to make changes to the sudoers file. All we need to do is to add a line for the intended user similar to the one on the screenshot:

“yourUser ALL=(ALL)   ALL”

This is the “vi” editor:

  • i=enters INSERT mode
  • ESC=exit current mode
  • :=specify command
  • :w=write changes
  • :q=exit vi

Should this not be easy or intuitive to use, let;s not make any change and carry on with the rest of the process to install PostgreSQL with a root account. install postgreSQL pgAdmin CentOS 7 sudoers

Since the install will be done via the network and the Package repositories it’s a good idea to update the Package Manager itself. The operation is very quick. A few seconds.

“sudo yum update -y” install postgreSQL pgAdmin CentOS 7 yum update

Next step is to add the internet Linux CentOS repositories for the RPMs with the latest version to install PostgreSQL. To install the x86_64 version of 11.x release the command is:

“yum install” install postgreSQL pgAdmin CentOS 7 yum rpm repo

Next step is to install PostgreSQL Client, Server and additional packages for dependencies in the Contrib package:

“yum install postgresql11 postgresql11-server postgresql11-contrib” install postgreSQL pgAdmin CentOS 7 packages

Now that the necessary packages are installed it is possible to initialize the database, add the PostgreSQL database server to the list of automatic services to start at boot and start the service.

  • Initialize database
    • “/usr/pgsql-11/bin/postgresql-11-setup initdb”
  • Add PostgreSQL service to boot
    • systemctl enable postgresql-11
  • Start PostgreSQL service
    • “systemctl start postgresql-11” install postgreSQL pgAdmin CentOS 7 service enable

By default, Linux CentOS 7 runs both a firewall and SELinux configuration. Unless these are disabled the following ports need to be open and accept inbound connections. Network Port 5432 is used by default from PostgreSQL to listen incoming requests. of course this can be changed if required. Port 80 will be used by default from Apache (which will be installed later on). As an extra I’m adding Network Port 5500 to connect to this Linux CentOS 7 Server using a remote desktop.

The command to add the desired ports is:

  • “sudo firewall-cmd –permanent –add-port=5432/tcp”
  • “sudo firewall-cmd –permanent –add-port=80/tcp”
  • “sudo firewall-cmd –permanent –add-port=5500/tcp” install postgreSQL pgAdmin CentOS 7 firewall add

At this point the step to install PostgreSQL server are completed. To test the deployment it is possible to use the internal “psql” command utility to operate the server. By default, a Database user is created with username and password “postgres”. Ideally we can start changing the password for this user. From a Terminal session let’s run:

“sudo su – postgres”

this will output the bash prompt. Let’s enter “psql” to start the utility. This shows the PostgreSQL version installed (11.1) and the help command.

From here let’s run:

“sudo -u postgres psql postgres”

default password is postgres

“\password postgres”

At this point let’s enter a new password and confirm this again. install postgreSQL pgAdmin CentOS 7 password

Within the psql context it is possible to run many commands to create, delete users, databases and a lot more. A command like:

“SELECT version ();”

shows the current version installed.

“SHOW config_file;”

shows the actual configuration


shows a list of databases. install postgreSQL pgAdmin CentOS 7 psql

Now that the Server Database is installed it’s  a matter to run the configuration for first use. First thing is to change how the passwords are sent to authenticate to the database. This can be changed to use the md5. To change this we can issue the command:

“nano /var/lib/pgsql/11/data/pg_hba.conf” install postgreSQL pgAdmin CentOS 7 configuration

In the method column all the peer and ident can be changed to md5. install postgreSQL pgAdmin CentOS 7 md5

the result should be something similar to this. install postgreSQL pgAdmin CentOS 7 md5 authentication

To make changes effective it is necessary to restart the PostgreSQL service:

“systemctl restart postgresql-11.service” install postgreSQL pgAdmin CentOS 7 restart service

Next options to change are the allowed connections and the listening port. By default PostgreSQL accepts only local connections and it is using Network Port 5432. With the following command it is possible to change these parameters:

“nano /var/lib/pgsql/11/data/postgresql.conf” install postgreSQL pgAdmin CentOS 7 config

The listening addresses and port show localhost and 5432. install postgreSQL pgAdmin CentOS 7 listening port

These can be changed to something similar to this. Also, these lines should be commented out to make this change effective. install postgreSQL pgAdmin CentOS 7 port config

Again time to restart the PostgreSQL service. install postgreSQL pgAdmin CentOS 7 restart service

All the initial configurations from the PostgreSQL server side are competed. Next steps include the installation of httpd and pgAdmin. The latter is located on the epel-release Package repository. Similarly, to what has been done before it’s a matter to the software repo from where to download and install the desired packages:

“sudo yum install epel-release -y”

followed by

“sudo yum install httpd -y”

pgAdmin will be actually installed using the graphical Software Manager. install postgreSQL pgAdmin CentOS 7 epel repo



Adding pgAdmin to the install of PostgreSQL on Linux CentOS 7

Now everything is ready to install pgAdmin and manage the PostgreSQL Database Server. From the Software Manager let’s look for “pgadmin4” and select to install the first one as per screenshot below. install postgreSQL pgAdmin CentOS 7 install

Let’s provide the root password to continue. install postgreSQL pgAdmin CentOS 7 root password

Now pgAdmin requires a bit of configuration together with Apache httpd daemon. From this perspective the first step is to add the location paths where pgAdmin will operate the internal db, logs and storage.

“nano /usr/lib/python2.7/site-packages/pgadmin4-web/” install postgreSQL pgAdmin CentOS 7 config

Using the editor lets add the following lines. Let’s pay attention to the current locations:

  • LOG_FILE = ‘/var/log/pgadmin4/pgadmin4.log’
  • SQLITE_PATH = ‘/var/lib/pgadmin4/pgadmin4.db’
  • SESSION_DB_PATH = ‘/var/lib/pgadmin4/sessions’
  • STORAGE_DIR = ‘/var/lib/pgadmin4/storage’ install postgreSQL pgAdmin CentOS 7 config path

After making sure the locations are correct next step is to create and initialize the pgAdmin internal database:

“python /usr/lib/python2.7/site-packages/pgadmin4-web/” install postgreSQL pgAdmin CentOS 7 database initialisation

As a requirement it is a good idea to make sure the Apache user and Group have the ownership to the pgAdmin locations:

  • chown -R apache:apache /var/lib/pgadmin4
  • chown -R apache:apache /var/log/pgadmin4

In addition, if the SELinux is running (it is configured by default in Linux CentOS 7) the following is required:

  • chcon -R -t httpd_sys_content_rw_t “/var/log/pgadmin4/”
  • chcon -R -t httpd_sys_content_rw_t “/var/lib/pgadmin4/” install postgreSQL pgAdmin CentOS 7 chown chcon

This step provides the information to create the Apache virtual directory which will host the pgAdmin site.

“nano /etc/httpd/conf.d/pgadmin4.conf”

with the following configuration

ServerName YourFQDNName

  WSGIDaemonProcess pgadmin processes=1 threads=25

  WSGIScriptAlias / /usr/lib/python2.7/site-packages/pgadmin4-web/pgAdmin4.wsgi

  <directory “=”” usr=”” lib=”” python2.7=”” site-packages=”” pgadmin4-web=””>

        WSGIProcessGroup pgadmin

        WSGIApplicationGroup %{GLOBAL}

        Require all granted install postgreSQL pgAdmin CentOS 7 pgadmin conf

Apache server provides the capability to test the configuration for any syntax error:

“apachectl configtest”

If working ok it is now time to restart the Apache web server with:

“systemctl restart httpd” install postgreSQL pgAdmin CentOS 7 apache restart

Since SELinux is enabled by default an extra command line isrequired to allow pgAdmin to connect to PostgreSQL:

setsebool -P httpd_can_network_connect 1


Finally it is a matter of adding the rules for the firewall and restart the firewall service as root:

“firewall-cmd –permanent –add-service=http”


“firewall-cmd –reload” install postgreSQL pgAdmin CentOS 7 apache firewall

It’s now time to test the pgAdmin connection to the PostgreSQL Database Server. From any web browser let’s point to the host where the Apache web server is running. Simply the hostname or hostname is sufficient. If everything is working this should output something simlar to this where to enter the default user postgres and the chosen password. install postgreSQL pgAdmin CentOS 7 login

Success! pgAdmin can now manage the install PostgreSQL from any location using a web browser. install postgreSQL pgAdmin CentOS 7 GUI

ادامه مطلب

نصب OpenSSH در سرور Ubuntu

Install OpenSSH on Ubuntu Server quick howto


As part of the main preparation process for a Linux based vApp this article is following up with the steps on how to install OpenSSH Server on a Ubuntu Server virtual machine. Secure Shell (SSH) is a protocol which allows to connect to a Host over an unsecure network. The typical tasks include remote login, and commands executions. This is a perfect replacement for other legacy network protocols that could send passwords and other sensitive information in clear text.

The purpose of this quick article is to show the steps to install OpenSSH Server on a Ubuntu Server virtual machine. This will make the management of the server a lot easier without requiring to open any remote console or even use a remote desktop connection application. A simple SSH client like putty for example running on a Windows machine will be able to connect and manage the Ubuntu Server over a secure network connection with SSH enabled encryption.

OpenSSH runs by default on Network Port 22. Same applies to both Unix and Windows system types. If required or even for extra security it is possible to change this Port to a custom value.

OpenSSH Server can be installed as part of the main installation of the Ubuntu Server Operating System itself. Should this have been omitted or not included in any deployment scripts for unattended installations the next steps show the process to install OpenSSH Server.


How to install OpenSSH Server on Ubuntu

From the VMware vCenter Client > Virtual Machine Name > the option to run the VMware Remote console. Once the session is started and straight after the login to the Ubuntu Server the command line to install OpenSSH is pretty simple. For a non root account:

“sudo apt install -y openssh-server”

will search for the package definition into the local cache of the package manager and start the install process. Ideally a “sudo apt update” first comes handy to update the local cache with latest packages definitions. Install OpenSSH Ubuntu Server

In a matter of few seconds the step to install OpenSSH Server is complete. As the output of the installation is showing it also includes the creation of an encrypted key. This is a self-generated and not public one. Indeed, it is also possible to use an existing public one. Install OpenSSH Ubuntu Server complete

First step would be to make sure the OpenSSH Server is running. The quickest way would be to issue the command:

“sudo systemctl status ssh”

The result would look something similar to this screenshot. Install OpenSSH Ubuntu Server service status

Next in order to make OpenSSH Server start at every boot of the Ubuntu Server it is just a matter to enable the automatic start of its daemon:

“sudo systemctl enable ssh”

This command will automatically create the necessary symbolic links. Install OpenSSH Ubuntu Server enable service

At this point it is time to test the OpenSSH Server connection from a different Host. For example a Windows machine running the putty SSH client. As soon as the connection is starting (and if the encryption certificate is not “known”) the first time a new message pops up asking to review the certificate connection details. This is normal for a first time connection when using a self-generated non-public certificate. Install OpenSSH Ubuntu Server putty certificate

Upon acceptance the OpenSSH Server allows the connection and remote execution of any commands in the “local” terminal. Very useful for management and scripting purposes. Install OpenSSH Ubuntu Server windows connection

ادامه مطلب

پیکربندی Ubuntu Server 16.04.5 LTS بر روی VMware

Deploy Ubuntu Server 16.04.5 LTS on VMware


The purpose of this article is to cover the steps on how to deploy Ubuntu Server on a VMware vSphere environment. In the past the installation and deployment steps covered the Ubuntu 16.04 Desktop edition. In this case the focus is how to deploy Ubuntu Server edition and in particular the 16.04.5 release (from this branch the latest edition at the time of writing).

The idea is to create a test bed or simply a sandbox environment to use later for other projects which include the install and configuration of:

  • T.I.C.K Stack (Telegraf,InfluxDB,Chronograf and Kapacitor)
  • Grafana dashboard
  • Custom VMware vApp to deploy using OVA/OVF Templates
  • Veeam Agent for Linux
  • more

The way the guide is laid out follows the classic structure used in this blog showing different steps. Once the ISO image has been downloaded the steps are straight forward. Starting with the deployment phase it consists in creating the VM Guest container. In this sample a VM with 2 CPUs, 4 GB of RAM Memory and 2 virtual disks of 20 GB each is more than sufficient to satisfy the requirements highlighted above. The OS version is based on 64-Bit release. In general,  the idea is to create something small and light which could be used as a building block for other applications. Your mileage may vary! Before starting, it is a good time to start uploading the Ubuntu Server ISO image on the VMware Datastore. Possible the closest to the VMware Host where the Ubuntu Server VM will run.


How to deploy Ubuntu Server on VMware vSphere

Within the Data Center group or from the desired VMware vSphere Host the wizard to create a new virtual machine. This wizard will be used in two occasions: to create and customize the base Ubuntu Server virtual machine and also to export the VM into a vApp in a OVA/OVF format template. deploy Ubuntu Server VMware

In the second step of the wizard the desired name for the VM and the location in the VMware vCenter virtual infrastructure where to locate the virtual machine. deploy Ubuntu Server name VMware

Next step is to associate the vSphere Host to the virtual machine. Of course this can be changed later if required with a simple vMotion migration. It can be used for CPU, Storage and Network migration from the same wizard. deploy Ubuntu Server VMware compute resource

Next is the desired Datastore where to deploy the virtual machine disks and resources files. deploy Ubuntu Server VMware select storage

In the compatibility section unless there are specific requirements to support older versions of the virtual hardware (which also comes with less features) it is a safe option to use the latest release available which will automatically create and stamp the “vmx” file to support the latest features on the vSphere Hosts. deploy Ubuntu Server VMware select compatibility

This is the step where both the Guest OS Family and Version needs to be specified. In this example Ubuntu Linux (64-Bit) perfectly covers this scenario. deploy Ubuntu Server VMware select guest OS

This is the part where the wizard allows to further customize the virtual machine. In this example the following changes:

  • 2 CPUs
  • 4 GB Memory
  • 2 Hard Drives 20 GB each (Thin Provisioning)
  • Custom Network Port Group
  • ISO Image mounted deploy Ubuntu Server VMware customize hardware

In a final screen the wizard shows the main settings before amending changes. deploy Ubuntu Server VMware wizard summary

At this point everything is ready to commit the information and complete the wizard. Next step is about the Ubuntu Server installation.

ادامه مطلب

آموزش نصب Ubuntu Server 16.04.5 بر روی VMware

Install Ubuntu Server 16.04.5 on VMware

The steps to install Ubuntu Server are very easy. In this case the installation will occur on a VMware virtual machine. For this purpose this article follows up the steps after initial Ubuntu Server deployment. In particular this article refers to the Ubuntu Server 16.04.5 release. At the time of writing the latest from the previous stable branch.

A lightweight text based wizard guides through the entire process to install Ubuntu Server. It also includes the option to pre-install additional Server functionalities through additional package like DNS, Samba, LAMP, Mail and more. What is interesting are the options at the boot straight after the language selection. Along with traditional options to test Memory, installation source (ISO file in this case) and recover a broken system also the ability to run “special” types of install which include additional packages for:

  • HWE
  • MaaS

The former Hardware Enablement (HWE) provides the option to automatically install the latest kernel available with the latest hardware for which the drivers are already included. So no extra steps. In practice, the additional or latest kernels are made available to Ubuntu users and can be installed using the kernel package called linux-hwe-generic. This package is installed along with linux-generic for the standard kernel. HWE should be used for Dev and homelab rather than Production environments.

The latter Metal as a Service (MaaS) allows and fully automates the deployment of Physical Servers aiming to increase the Data Center operational efficiency. Generally something that is designed for DevOps at scale.

Overall to install Ubuntu Server the process is easy and the wizard provides good and intuitive information.


How to install Ubuntu Server on VMware

The VMware Remote Console is very good tool to access the virtual machine and install Ubuntu Server. After Power-on the boot displays the language to use during the text based wizard for the initial boot. Install Ubuntu Server VMware boot language

Next the option to decide on the type of installation. In this case a standard install Ubuntu Server is executed. The same ISO and wizard also provides the options to add the latest kernel packages for the latest hardware and even the option to install the MaaS Ubuntu Server. Additionally, the ability to run Memory and ISO test to make sure both are working as expected. Since this is a VM it might be also a good indicator to spot and troubleshoot undesired settings for example in the virtual BIOS. Install Ubuntu Server VMware boot menu

At this point the option to choose which language to use for the installation process. The selected one will also be used on the Ubuntu Server right after the installation. Indeed, it can be changed where required. Install Ubuntu Server VMware select language

The location settings determines the time zone and the system locale. All these settings can be changed afterwords. Install Ubuntu Server VMware select location

This is good test to verify the keyboard layout. Running a quick test is useful especially when considering to use special characters for the passwords. By choosing No the next screen allows to manually choose the keyboard layout. Install Ubuntu Server VMware configure keyboard

Select the appropriate keyboard layout. Install Ubuntu Server VMware keyboard

And also the layout type. Running a quick test on the characters helps with special ones when these are hidden for passwords. Install Ubuntu Server VMware keyboard layout

At this point the installer is copying the necessary packages from the ISO source file mounted on the virtual machine. Install Ubuntu Server VMware additional components

Next is to choose a Hostname. The NetBIOS Hostname cannot be longer than 15 characters including special ones. The “.” for obvious reasons cannot be used as part of the Hostname. Install Ubuntu Server VMware configure network

Next screens include the steps to create a non-admin user that can be used instead of root account. Initially this should be the real name of the user. Install Ubuntu Server VMware setup account name

Next the option to use the desired username for this account. Account and Username can also be the same. Install Ubuntu Server VMware setup username

And finally a password for this Account with the option to verify. Install Ubuntu Server VMware setup password

As a final touch for the Accounts’ creation the wizard also offers the ability to automatically encrypt the “home” folder which is the default writeable location for each account created on the local system. Install Ubuntu Server VMware home encryption

As a final question for this part the wizard prompts for the time zone details. Install Ubuntu Server VMware setup clock

In this part of the wizard now the options to configure the storage presented to this Ubuntu Server. Initially the idea is to create a simple machine with two disks. For now the “standard” partitioning will be used. Install Ubuntu Server VMware partition disks

The wizard detects the two iSCSI virtual disks connected to Ubuntu Server virtual machine. The Server will be installed on the first one identified as sda (0,0,0). Install Ubuntu Server VMware select disks

On this disk two partitions will be created by default: root and swap. Unless there are different requirements this partition layout should suffice as a standard Ubuntu Server machine. The new layout is now created on disk “sda” and the partitions properly formatted. Install Ubuntu Server VMware disk layout

At this point the wizard is ready to start copying the necessary packages from the ISO file to sda disk. Install Ubuntu Server VMware installing system

In case the network where the Ubuntu Server uses a Web Proxy the necessary details can be configured here or simply continue. Eventually these can be changed later on as well. Install Ubuntu Server VMware http proxy

As part of the built-in service in the Ubuntu Server also the option to choose how to streamline the updates. For now no automatic update is selected. Install Ubuntu Server VMware automatic updates

As part of the process to install Ubuntu Server the wizard allows to install also very popular and useful Server features like DNS, LAMP (Linux, Apache, MySQL and PHP), Mail, PostgreSQL and more. Install Ubuntu Server VMware software selection

Linux operating systems by default use GRUB as boot loader. It allows the correct boot order and many other options. And it can also coexist with other operating systems. Without installing this component, manual changes are required to the Master Boot Record (MBR). So best practice in this case is to install GRUB loader. Install Ubuntu Server VMware install GRUB loader

Since there are two partitions (sda and sdb) the best practice is to choose the first hard drive where the system is installed and making this disk bootable. Install Ubuntu Server VMware GRUB loader

At this point the install is completed. Next step is to unmount or simply disconnect the Ubuntu Server ISO file and continue to automatically reboot Server and make changes effective. Install Ubuntu Server VMware complete

A few seconds later the Ubuntu Server is ready with the terminal prompt. Install Ubuntu Server VMware console

ادامه مطلب

معماری های لینوکس

معماری های لینوکس

معمولا وقتی میزکار و توزیع خود را انتخاب کردید، می‌توانید به سراغ دانلود دیسک و نصب لینوکس بروید اما گاهی یک سوال کمی حرفه‌ای تر شما را گیج می‌کند: ۳۲ بیت یا ۶۴ بیت.

از قدیم تقریبا تمام توزیع‌های مشهور لینوکس هم با نسخه ۳۲ بیت عرضه می‌شدند و هم به شکل نسخه ۶۴ بیتی و اینکه کاربر کدام را دانلود و نصب می‌کرد وابسته به فاکتورهای مختلفی بود. تا یکسال پیش تقریبا اکثر توزیع‌های بزرگ به شکل پیش‌فرض شما را به سمت نسخه‌های ۳۲ بیتی راهنمایی می‌کردند و حالا توزیع‌هایی مثل اوبونتو و فدورا در سایت‌هایشان نسخه‌های ۶۴ بیتی را گزینه پیش فرض قرار داده‌اند. اما اول بگذارید ببینیم مفهوم این عددها چیست.

جریان چیست؟

عددهایی مثل ۳۲ یا ۶۴ نشان دهنده اندازه (عرض) حافظه‌ای است که یک پردازشگر (سی پی یو) می‌تواند به آن دسترسی پیدا کند. اگر بخواهیم عبارت را دقیق‌تر بیان کنیم باید بگویم که گفتن عبارت «کامپیوتر ۶۴ بیتی» یعنی پردازشگر این کامپیوتر رجیسترهایی به اندازه ۶۴ بیت داشته و در هر عملیات واحد می‌تواند روی ۶۴ بیت پردازش انجام دهد.

مشخص است که یک کامپیوتر ۶۴ بیتی با داشتن رجیسترهای بزرگتر به راحتی می‌تواند تمام دستورات و برنامه‌های ۳۲ بیتی را اجرا کند ولی معکوس این جریان صادق نیست. پس اگر شما یک کامپیوتر ۶۴ بیتی دارید مجاز هستید روی آن سیستم عامل ۳۲ بیتی یا ۶۴ بیتی نصب کنید ولی اگر از یک کامپیوتر ۳۲ بیتی استفاده می‌کنید، نباید به سراغ نسخه ۶۴ بیتی سیستم عامل‌ها بروید. البته واقعا نیاز به استرس نیست، خبر خوش من این است : به احتمال خیلی زیاد شما یک کامپیوتر ۶۴ بیتی دارید.

فهرست پروسس‌های ۶۴ بیت

چون در دنیای ویندوز سیستم‌عامل‌های ۶۴ تازه برای کارهای دسکتاپ مشهور شده‌اند، عده‌ای هیجان دارند که درباره آن صحبت کنند اما واقعیت این است که مفهوم پروسسور ۶۴ بیتی مفهومی کاملا جا افتاده و حتی قدیمی است و اگر کامپیوتر شما از سال ۲۰۰۸ به بعد ساخته شده، به احتمال زیاد معماری ۶۴ بیتی دارد. فهرست زیر نشان دهنده پردازنده‌های ۶۴ بیت موجود است:


Athlon64, Athlon FX, Athlon X2, Phenom, Semprons that use AM2/AM2+/AM3 socket, Turion64 Intel

F and 5×1 series Pentium 4 using the “Prescott” core Pentium D Core 2 (Solo, Duo & Quad) Core i3 (all) Core i5 (all) Core i7 (all) VIA

Isiah و احتمالا هر چیزی که در آینده ساخته شود هم از همین معماری بهره خواهد برد. در صورتی که همین حالا هم پشت یک کامپیوتر لینوکسی نشسته‌اید، با زدن دستور زیر می‌توانید پهنای رجیسترهای خود را بررسی کنید:

grep –color=always -iw lm /proc/cpuinfo در صورتی که خروجی این دستور حاوی lmهای رنگی باشد، می‌گوید که سی‌پی‌یو(ها)ی شما از حالت long mode یا همان آدرس دهی ۶۴ بیتی پشتیبانی می‌کنند.



بر اساس تست‌های انجام شده و عقل سلیم، یک سیستم ۶۴ بیت سریعتر از یک سیستم ۳۲ بیت کار می‌کند. اما احتمالا برایتان جالب است که بگویم تقریبا هیچ انسان عادی نمی‌تواند تفاوت سرعت اجرای برنامه‌های معمول در دو حالت ۳۲ و ۶۴ بیت را تشخیص بدهد چون تست‌ها به عددهای بین ۵ تا ۱۵ درصد سریعتر شدن برنامه‌ها اشاره می‌کنند. مساله این است که برنامه‌های ۶۴ بیت دقیقا همان برنامه‌های ۳۲ بیت هستند که دوباره کامپایل شده‌اند و هیچ بهینه‌سازی خاصی برای استفاده از تمام قابلیت‌های پروسسور در آن‌ها صورت نگرفته. پس اگر فکر می‌کنید با نصب ۶۴ بیت به سرعت خیلی بهتری می‌رسید، تجدید نظر کنید.


از نظر ریاضی یک سیستم ۳۲ بیتی می‌تواند تا ۴ گیگابایت حافظه و یک سیستم ۶۴ بیت تا ۱۶.۸ میلیون ترابایت (۱۶ اگزابایت) حافظه را آدرس دهی کند. پس اگر شما ۸ گیگابایت رم داشته باشید، در حالت عادی یک سیستم ۳۲ بیتی فقط خواهد توانست از ۴ گیگ آن استفاده کند در حالی که یک سیستم ۶۴ می‌تواند میلیون‌ها برابر بزرگتر از آن‌ را هم کنترل کند. اما این اصلا به این معنی نیست که اگر بیشتر از ۴ گیگ رم دارید، ملزم به نصب ۶۴ بیت هستید. از مدت‌ها پیش، یک افزونه در کرنل به نام Physical Address Extention که به شکل مخفف PAE خوانده می‌شود، محدودیت آدرس دهی کرنل‌های ۳۲ بیتی را به ۶۴ گیگ افزایش داده.

اگر بیشتر از ۴ گیگابایت رم دارید و می‌خواهید از یک سیستم عامل (و در نتیجه کرنل ۳۲ بیتی) استفاده کنید باید مطمئن شوید که کرنل pae را نصب کرده‌اید. معمولا می‌توانید این کرنل را در مخازن با جستجو به دنبال pae پیدا کرده و نصب کنید. با توجه به طبیعی‌تر شدن داشتن رم‌های بالای ۴ گیگ، بعضی توزیع‌های مشهور (از جمله اوبونتو) در نسخه‌های اخیر خود به شکل پیش فرض از کرنل PAE استفاده می‌کنند.


تقریبا تا دو سال قبل، استفاده از یک لینوکس ۶۴ بیت با دردسرهایی مثل سخت تر بودن نصب بعضی برنامه‌ها (بخصوص فلش و جاوا) همراه بود. این مشکل حالا تا حد زیادی مرتفع شده. البته کماکان نصب یک سیستم ۶۴ بیتی ممکن است در لحظاتی باعث دردسرهایی در نصب برنامه های جدید بشود. مثلا برنامه اسکایپ یا یک بازی جدید که توسط یک کمپانی به شکل باینری برای لینوکس عرضه شده ممکن است روی سیستم‌های ۳۲ بیت فقط با دانلود و دبل کلیک کردن اجرا شود اما برای نصب روی یک سیستم ۶۴ بیت نیازمند درک / کار بیشتری باشد (نصب کتابخانه‌های ۳۲ بیتی سازگار کننده). اما این واقعا به ترسناکی قدیم نیست و حداقل انتظار می‌رود که تمام برنامه‌های معمول روی هر دو نسخه عرضه شوند.

باحال بودن. ۶۴ بیت برای خیلی‌ها یک مفهوم جدید است و هیجان انگیز. آدم‌ها دوست دارند کارهای جدید بکنند و «متفاوت» باشند و در نتیجه نصب و استفاده از یک سیستم ۶۴ بیت با اینکه در عمل هیچ تفاوتی با نصب و استفاده از یک سیستم ۳۲ بیت ندارد، برای عده‌ای کشش خاص خودش را دارد.

و حرف نهایی

برای یک کاربر خانگی رومیزی، تفاوت بزرگی بین سیستم‌های ۳۲ بیت و ۶۴ بیت وجود ندارد. اگر سیستم ۳۲ بیت نصب می‌کنید و بیشتر از چهار گیگابایت رم دارید باید مطمئن شوید که از کرنل pae استفاده می‌کنید تا تمام حافظه‌تان استفاده شود و اگر سیستم ۶۴ بیت نصب می‌کنید باید آماده باشید که یک روز یک برنامه بسته برایتان کمی دردسر درست کند و مجبور بشوید سراغ نصب چند لایبری ۳۲ بیت از مخازنتان بروید.

اگر هم نظر من را می‌خواهید باید بگویم که دوباره نوشته‌های بالا را بخوانید و خودتان انتخاب کنید چون این دو گزینه تقریبا مساوی همدیگر هستند. یک راه حل هم این است که اگر هیچ ایده‌ای ندارید از سیستمی استفاده کنید که سایت دانلود رسمی همان توزیع به شما پیشنهاد می‌دهد.


  • صفحه ویکی جامعه اوبونتو در مورد انتخاب بین ۳۲ و ۶۴ بیت
  • در دنیای لینوکس کرنل‌های ۶۴ بیتی معمولا با پسوند 64_ و سیستم‌عامل‌های ۳۲ بیتی با پسوندهایی مانند i686 یا i386 شناخته می‌شوند
  • بر اساس خروجی این دستور می‌بینید که من (جادی) از یک کرنل ۳۲ بیتی (i686) با قابلیت دسترسی به حافظه بیشتر از ۴ گیگابایت (PAE) و علیرضا (cyletech) از یک کرنل ۶۴ بیتی (_64) استفاده می‌کنیم. $ uname -a Linux jedora 3.6.9-2.fc17.i686.PAE #1 SMP Tue Dec 4 14:15:28 UTC 2012 i686 i686 i386 GNU/Linux

Linux cyletech 3.5.0-34-generic #55-Ubuntu SMP Thu Jun 6 20:18:19 UTC 2013 x86_64 x86_64 x86_64 GNU/Linux

ادامه مطلب

کاربردهای لینوکس

کاربردهای لینوکس


لینوکس به شکل سنتی به عنوان یک سیستم عامل مناسب برای سرور شناخته شده است. این امر، ارث پدر معنوی لینوکس یعنی یونیکس است. بنا به آخرین گزارش‌های سایت نت‌کرافت، پنجاه درصد بهترین سرویس دهندگان وب از لینوکس بر روی سرورهای خود استفاده می‌کنند (از پنجاه درصد باقی مانده سی درصد سهم فری‌بی‌اس‌دی و بیست درصد سهم مایکروسافت است).

این سیستم‌عامل همچنین نقش بسیار مهمی در سرورهای مخابراتی دارد و توزیع‌هایی با پشتیبانی تجاری همچون ردهت، درصد زیادی از سیستم عامل سرورها را به خود اختصاص داده‌اند.

کاربرد دیگر لینوکس در دنیای حرفه‌ای، مین‌فریم‌ها و سوپرکامپیوترها هستند. غول دنیای مین‌فریم یعنی آی‌بی‌ام اخیرا اعلام کرده که از سال ۲۰۰۹ به بعد، مین فریم‌هایش را با لینوکس عرضه خواهد کرد. همچنین طبق آخرین آمار سریعترین کامیپوترهای دنیا، از ۵۰۰ سوپرکامپیوتر برتر دنیا، ۸۸.۶٪ آن‌ها از لینوکس به عنوان سیستم‌عامل خود استفاده می‌کنند.

سیستم‌های درون‌ساخت

سیستم‌های لینوکس درون‌ساخت (به انگلیسی: Embedded) به سیستم‌هایی می‌گویند که لینوکس در آن‌ها به عنوان بخشی از یک ابزار خاص منظوره استفاده شده است. مثلا در یک موبایل، توستر، خودرو، قهوه‌ساز، ساعت یا غیره. تفاوت یک سیستم درون‌ساخت با یک توزیع معمولی لینوکس این است که در وضعیت درون‌ساخت، سخت افزار مورد استفاده کاملا مشخص است و در اکثر موارد هم منابع محدودی دارد. علاوه بر این، معمولا سیستم‌عامل برای اجرای یک برنامه از پیش آماده و ثابت استفاده می‌شود؛ در حالی که از یک توزیع معمولی انتظار می‌رود از سخت‌افزارهای متنوع پشتیبانی کند و بتواند طیف وسیعی از برنامه‌ها را اجرا کند.

در سیستم‌های درون‌ساخت هم لینوکس گزینه مناسبی است. اولا به خاطر قابلیت تغییر ساده، ماژولار، و بعد هم به خاطر هزینه‌های پایین. در حال حاضر لینوکس در تلفن‌های موبایل، انواعی از روترها و فایروال‌های شبکه (به‌ویژه در لینک‌سیس‌های سیسکو سیستمز) و ابزار دیگر استفاده می‌شود. با پیدایش سیستم‌عامل اندروید گوگل، استفاده از لینوکس درون‌ساخت در وسایل ارتباطی شتاب خیلی بیشتری گرفت.

Android Phoneنمونه‌ای از یک گوشی اچ‌تی‌سی مجهز به لینوکس اندروید


لینوکس چند سالی بیشتر نیست که به شکل جدی وارد دنیای دسکتاپ شده است. تقریبا ده سال پیش اگر می‌خواستید لینوکس را روی دسکتاپ یا لپ‌تاپ خود نصب کنید، دردسرهای خیلی زیادی داشتید اما حالا، همه چیز راحت تر است. در حال حاضر تقریبا تمام توزیع‌ها به شکل پیش‌فرض از محیط گرافیکی استفاده می‌کنند (مثال نقض جذاب،‌ آرچ است) و به خاطر استفاده از کرنل‌های جدید، امکان شناسایی طیف بسیار وسیعی از سخت‌افزارها را دارند.

این روزها تقریبا نسخه جدید هر توزیعی را که داشته باشید، انتظار می‌رود بدون مشکل روی دسکتاپ یا لپ‌تاپ شما نصب شود و بدون دردسر به شما اجازه استفاده یا نصب طیف بسیار وسیعی از نرم‌افزارها را بدهد. از برنامه‌های آفیس گرفته تا بازی‌های سه بعدی، پخش کننده‌های موسیقی، چت، و ضبط کننده‌های تصاویر.

در حال حاضر در عمل تمام برنامه‌های عمومی موجود برای ویندوز و مک، نسخه‌های مشابه لینوکسی هم دارند. گاهی این برنامه، دقیقا نسخه مشابهی است که روی لینوکس کامپایل شده (مانند فایرفاکس) یا نسخه‌ی لینوکسی یک برنامه ویندوزی است (مانند اسکایپ) یا برنامه‌ای است که قابلیت کاری مشابهی با برنامه ویندوزی یا مکی دیگری دارد (مانند گیمپ که جایگزین فتوشاپ است.)

البته نکته‌ای که نباید فراموش کنید این است که لینوکس ویندوز نیست. نباید انتظار داشته باشید که دقیقا هر چیزی روی ویندوز اتفاق می‌افتاد روی لینوکس هم اتفاق بیافتد. گاهی برنامه‌های تخصصی وجود دارند که مشابه لینوکسی ندارند (مانند یک برنامه‌ی خاص طراحی مدار) و گاهی شکل رابط کاربری یک برنامه کاملا با همکار ویندوزی‌اش فرق می‌کند (مثلا در مورد گیمپ).

همچنین ذات باز و آزاد لینوکس، به افراد اجازه داده تا توزیع‌های ویژه کاربردهای خاص را ایجاد کنند. مثلا توزیعی مثل پارسیکس با هدف پشتیبانی پیش فرض از زبان فارسی ساخته شده یا توزیعی مثل میت تی.وی. به طور خاص برای تبدیل یک کامپیوتر به یک مدیاسنتر توسعه یافته است. این موضوع هم باعث شده درصدی از کاربران خانگی به سراغ لینوکس‌های خاص منظوره کشیده شوند.

کمک به جامعه‌ی بشری و ساختن یک دنیای بهتر

پروژه‌ی “یک لپ‌تاپ برای هر کودک” One Laptop per Child (OLPC) پروژه‌ای است با هدف بالابردن سطح آموزش در فقیرترین کشورهای جهان که توسط چند سازمان غیرانتفاعی دنبال می‌شود. این لپ‌تاپ‌های ارزان‌قیمت و کم‌قدرت (این موسسه اخیراً نوعی تبلت نیز در همین راستا ارائه کرده است) که XO نامیده میشوند مخصوص کودکان ساخته شده‌اند. سیستم عاملی که در این لپ‌تاپ‌ها استفاده می‌شود نوعی لینوکس مبتنی بر توزیع Fedora هست که از رابط کاربری Sugar استفاده میکند.

OLPC & Kids

شاید خوشبین‌ترین افراد نیز تصور اینکه پروژه‌ی گنو/لینوکس و تلاش‌های استالمن، توروالدز و هزاران انسان دیگر روزی بدین شکل برای کمک به جامعه‌ی بشری و گسترش آموزش و پرورش در اینچنین ابعاد جهانی به خدمت گرفته شود، را نداشتند اما امروز این خواسته محقق گشته است. موسسه‌ی OLPC در وب‌سایت خود ماموریت این نهاد را اینگونه شرح می‌دهد: “آموزش شالوده‌ای است برای انسان کامل، توسعه‌ی اجتماعی، اقتصادی و دموکراتیک. با دسترسی به این نوع ابزار، کودکان در آموزش خود درگیر میشوند، یاد میگیرند، به اشتراک میگذارند و باهم خلق میکنند. آنها به یکدیگر، به جهان و به یک آینده‌ی روشن‌تر ملحق میشوند.”

XO Laptop XO Tablet

پیوند به بیرون: وب‌سایت اختصاصی نهاد OLPC

ادامه مطلب

تاریخچه گنو/لینوکس

تاریخچه گنو/لینوکس


گنو (GNU) یک سیستم‌عامل آزاد شبه‌یونیکس است که توسط پروژه‌ی گنو توسعه پیدا میکند. گنو مخفف “گنو یونیکس نیست” (GNU’s Not Unix) است و این نام بخاطر این انتخاب‌شده که اولاً طراحی گنو، شبه‌یونیکس است و ثانیاً گنو جزء نرم‌افزارهای آزاد بوده و از کدهای یونیکس استفاده نمیکند. ریچارد استالمن موسس بنیاد نرم‌افزار آزاد، کار خود در دانشگاه MIT را در سال 1971 آغاز کرد. در آن زمان نرم‌افزارهای آزاد، همکاری برنامه‌نویسان و کاربران، به اشتراک‌گذاری کد و … رونق داشت. اما در دهه‌ی 80 انحصار و مالکیت بر نرم‌افزارها، عدم قبول همکاری کاربران در گسترش نرم‌افزارها و بطور خلاصه تجاری‌شدن نرم‌افزارها شدت گرفت. پروژه‌ی گنو جنبشی بر علیه محدودیت‌ها و موانع اعمال‌شده توسط صاحبان نرم‌افزارهای انحصاری و با هدف طراحی نرم‌افزار آزاد بود. قدم اول در این راه ایجاد یک سیستم‌عامل آزاد بود. طراحی سیستم‌عامل گنو توسط ریچارد استالمن در سال 1983 آغاز شد. استالمن همچنین در سال 1985 بنیاد نرم‌افزار آزاد را بیشتر با هدف جذب سرمایه برای توسعه‌ی گنو تاسیس کرد. در ابتدا اجزاء مورد نیاز هسته‌ گنو مثل: ویرایشگرها، پوسته‌ها، کامپایلرها و سایر ابزارها طراحی و پیاده‌سازی شدند اما هسته‌ی سیستم‌عامل هنوز مهیا نبود. هسته‌ی گنو، هرد (Hurd) نام دارد و از سال 1990 تاکنون در دست توسعه است. با این وجود هسته‌های غیر گنو که معروف‌ترین آنها لینوکس است (لینوس توروالدز هسته‌ی لینوکس را در سال 1991 نوشت و آنرا تحت مجوز GPL منتشر کرد.) میتوانند با نرم‌افزارهای آزاد گنو کار کنند. سیستم‌عامل گنو/لینوکس محصول ترکیب هسته‌ی لینوکس و نرم‌افزارهای آزاد گنو است. در وب‌سایت اختصاصی پروژه‌ی گنو هدف نهایی این پروژه بدین شکل بیان شده است:

پروژه‌ی گنو فقط به یک سیستم‌عامل محدود نشده است. ما در نظر داریم تا یک مجموعه‌ کامل از نرم‌افزارها را ایجاد کنیم، هر آنچه که بسیاری از کاربران میخواهند داشته باشند. هدف نهایی فراهم‌کردن نرم‌افزارهای آزاد برای انجام تمام کارهایی که کاربران کامپیوتر میخواهند انجام دهند و در نتیجه مطرودکردن نرم‌افزارهای انحصاری است.


به منظور درک محبوبیت لینوکس باید سفری به زمان گذشته داشته باشیم، در حدود 30 سال پیش …

کامپیوترها را به اندازه‌ی خانه‌ها تجسم کنید، حتی به اندازه‌ی استادیوم‌ها. علاوه بر اینکه اندازه‌ی آن کامپیوترها مشکلات قابل توجهی بوجود می‌آورد مسئله‌ دیگری نیز این را بدتر میکرد: هر کامپیوتر سیستم عامل مجزایی داشت. نرم‌افزار، برای برآورده‌کردن یک نیاز خاص سفارشی میشد و نرم‌افزار روی یک سیستم، بر روی سیستم دیگری اجرا نمیشد. قابلیت کار کردن با یک سیستم به این معنی نبود که شما میتوانید با دیگری هم کار کنید. این قضیه هم برای کاربران و هم برای مدیران سیستم دشوار بود.

کامپیوترها بینهایت گران بودند و حتی پس از خرید اصلی باید تلاش‌هایی در جهت اینکه کاربران بفهمند آنها چگونه کار میکنند صورت میگرفت. کل هزینه‌ بر مبنای واحد قدرت محاسباتی بسیار هنگفت بود.

فناوری جهان نسبتاً پیشرفته نبود بنابراین آنها مجبور بودند با این وضع برای یک دهه‌ی دیگر کنار بیایند. در سال 1969 یک تیم از توسعه‌دهندگان در آزمایشگاه‌های بل روی راه‌حلی برای معضل نرم‌افزار جهت درست‌کردن اینگونه مشکلات سازگاری شروع به کار کردند. آنها سیستم عامل جدیدی را توسعه دادند که:

1- ساده و دلپسند بود. 2- به جای کد اسمبلی با زبان برنامه‌نویسی سی نوشته شده بود. 3- قادر به بازیافت کد بود.

توسعه‌دهندگان آزمایشگاه‌های بل نام پروژه‌شان را یونیکس (Unix) گذاشتند.

ویژگی‌های بازیافت کد بسیار مهم بودند. تا آن زمان همه‌ی سیستم‌های کامپیوتری تجاری موجود با کدی نوشته شده بودند که به طور خاص برای یک سیستم توسعه داده شده بود. از طرف دیگر یونیکس فقط به تکه‌ی کوچکی از آن کد بخصوص نیاز داشت که امروزه عموماً هسته نامیده میشود. این هسته تنها تکه کدی است که برای انطباق با هر سیستم بخصوص و شکل‌دادن به پایه‌ی سیستم یونیکس مورد نیاز است. سیستم عامل و همه‌ی کارکردهای دیگر، حول این هسته ساخته و در زبان برنامه‌نویسی سطح بالاتر سی نوشته شده‌اند. این زبان به طور ویژه برای ایجاد سیستم یونیکس توسعه داده شد. با استفاده از این تکنیک جدید توسعه‌ی سیستم عاملی که بتواند روی سخت‌افزارهای مختلف اجرا شود بسیار آسان‌تر شد.

فروشندگان نرم‌افزار به سرعت وفق پیدا کردند، چون میتوانستند ده‌ها بار بیشتر نرم‌افزاری که تقریباً بی‌دردسر بود را بفروشند. موقعیت‌های شگفت‌انگیزی بوجود آمد: تصور اینکه برای نمونه کامپیوترهای فروشندگان مختلف در یک شبکه‌ی واحد ارتباط برقرار کنند، یا کاربرانی که بدون اینکه نیاز داشته باشند برای استفاده از کامپیوتر دیگر آموزش اضافی ببینند، روی سیستم‌های گوناگون کار میکنند. یونیکس سهم بسزایی در جهت کمک به کاربران برای سازگاری با سیستم‌های مختلف ایفا کرد.

در طول چند دهه‌ی آینده توسعه‌ی یونیکس ادامه پیدا کرد. انجام خیلی از چیزها امکان‌پذیر شد و بسیاری از فروشندگان سخت‌افزار و نرم‌افزار، پشتیبانی از یونیکس را برای محصولات‌شان اضافه کردند.

یونیکس در ابتدا تنها در محیط‌های خیلی وسیع با مین‌فریم‌ها و مینی‌کامپیوتر‌ها مستقر شد. (توجه داشته باشید که پی‌سی یک میکروکامپیوتر است). شما مجبور بودید برای کار کردن با یک سیستم یونیکس، یا در یک دانشگاه، یا برای دولت و یا برای موسسات مالی بزرگ کار کنید.

اما کامپیوترهای کوچکتر توسعه پیدا کردند و در اواخر دهه‌ی ۸۰ بسیاری از مردم کامپیوتر خانگی داشتند. در آن زمان چندین نسخه از یونیکس برای معماری پی‌سی موجود بود اما هیچ‌کدام از آنها واقعا آزاد و مهمتر از آن سریع نبودند، همه‌ی آنها بطور وحشتناکی کند بودند، بنابراین خیلی از مردم با MS DOS یا Windows 3.1 روی کامپیوترهای خانگی‌شان کار میکردند.

لینوس و لینوکس

با آغاز دهه‌ی ۹۰ کامپیوترهای خانگی سرانجام به اندازه‌ای قدرتمند شدند که بتوانند یک یونیکس تمام‌عیار را اجرا کنند. لینوس توروالدز، جوانی که در دانشگاه هلسینکی علوم کامپیوتر میخواند، فکر کرد ایده‌ی خوبی است که یک جور نسخه‌ی دانشگاهی آزادانه در دسترس یونیکس را داشته باشد و بی‌درنگ شروع به کدنویسی کرد. او شروع به سوال‌پرسیدن، یافتن جواب‌ها و راه‌حل‌هایی که میتوانست به او در داشتن یونیکس روی پی‌سی‌اش کمک کند، کرد. در زیر یکی از اولین پست‌های او در comp.os.minix مربوط به سال 1991 را مشاهده میکنید:

From: torvalds@klaava.Helsinki.FI (Linus Benedict Torvalds) Newsgroups: comp.os.minix Subject: Gcc-1.40 and a posix-question Message-ID: 1991Jul3.100050.9886@klaava.Helsinki.FI Date: 3 Jul 91 10:00:50 GMT

سلام شبکه‌ای‌ها، به خاطر پروژه‌ای که مشغول آن هستم (در مینیکس)، علاقمندم تعاریف استاندارد پوسیکس را داشته باشم. ممکن است یک نفر من را به یک نسخه (ترجیحا) قابل خواندن توسط ماشین از جدیدترین نسخه راهنمایی کند؟ سایت‌های اف.تی.پی. خیلی خوب خواهند بود.

از همان آغاز هدف لینوس داشتن یک سیستم آزاد که با یونیکس اصلی سازگار باشد بود. به همین علت او در مورد استانداردهای POSIX پرسید، POSIX هنوز هم استاندارد یونیکس است. آن روزها نصب و اجرا (plug-and-play) هنوز اختراع نشده بود اما خیلی از مردم علاقه‌مند به داشتن یک سیستم یونیکس برای خودشان بودند که این فقط یک مشکل کوچک بود. درایورهای جدید با شتاب تندی برای همه نوع سخت‌افزار جدید در دسترس قرار گرفتند. تقریباً به محض اینکه قطعه‌ی سخت‌افزاری جدیدی در دسترس قرار میگرفت شخصی آنرا میخرید و جهت تست لینوکس ارائه میکرد. با فراخوانی تدریجی سیستم، کد آزاد بیشتری برای پهنه‌ی وسیعی از سخت‌افزارها منتشر میشد. این کدنویسان روی کامپیوترهای خودشان متوقف نشدند، هر قطعه‌ی سخت‌افزاری که میتوانستند پیدا کنند برای لینوکس مفید بود.

در آن زمان آن دسته از مردم nerds یا freaks نامیده میشدند، اما این از زمانی که لیست سخت‌افزارهای پشتیبانی‌شده طولانی‌تر و طولانی‌تر میشد برایشان مهم نبود. بواسطه‌ی این افراد، لینوکس امروز تنها مناسب برای اجرا روی کامپیوترهای جدید نیست، بلکه همچنین سیستم انتخابی جهت سخت‌افزارهای قدیمی و کم‌نظیر هم هست به نحوی که اگر لینوکس وجود نداشت بلااستفاده بودند.

دو سال پس از پست لینوس، ۱۲۰۰۰ کاربر لینوکس وجود داشت.پروژه‌ای محبوب با همراهی علاقه‌مندان و رشد مداوم است، در حالی که در قلمرو استاندارد POSIX می‌ماند. همه‌ی ویژگی‌های یونیکس در چند سال آینده اضافه گشت و نتیجه آن سیستم عامل بالغ لینوکس امروزی است. لینوکس یک clone کامل از یونیکس است، مناسب برای استفاده در ایستگاه‌های کاری و همچنین در سرورهای متوسط و سطح بالا میباشد.


ادامه مطلب

لینوکس چیست و چه تفاوتی با ویندوز دارد؟

لینوکس چیست و چه تفاوتی با ویندوز دارد؟

لینوکس چیست؟
لینوکس به خودی خود، یک هسته (Kernelاستهسته، بخش اصلی سیستم‌عامل را تشکیل می‌دهد که کار آن کنترل داده‌ها، مدیریت حافظه، سخت‌افزار، ورود و خروج داده‌ها و تمامی موارد اصلی سیستم‌عامل می‌باشدهمانطور که گفتم، لینوکس به خودی خود سیستم‌عامل به شمار نمی‌رود، بلکه با استفاده از ابزارهایی که پروژه بازمتن (OpenSource)گنو (GNUبرای آن تولید کرده است، تبدیل به یک سیستم‌عامل کامل می‌شود (به همین دلیل است که لینوکس را معمولا گنو/لینوکس یا GNU/Linux می‌نامندو با اضافه کردن سایر نرم‌افزارهای بازمتن به آن، می‌توان از آن در موارد متعددی مانند سرویس‌دهنده‌ها، ایستگاه‌های کاری، کامپیوترهای روی‌میزی، ابر رایانه‌ها، ابزارهای صنعتی و پزشکی که دارای سیستم‌های درونه‌ای (Embeddedمی‌باشند و… استفاده کرد.
از نظر فنی، لینوکس را می‌توان نمونه بازمتن سیستم‌عامل یونیکس نامیدزیرا بر اساس استاندارد POSIX پیاده سازی شده و کاملا با آن سازگار استبنابراین لینوکس را می‌توان نواده سیستم‌عامل پرسابقه و مستحکم یونیکس دانست که البته خواص خوب آنرا نیز به ارث برده استاکنون تفاوت‌های اصلی لینوکس و ویندوز را با هم می‌شماریم:

لینوکس سیستم‌عامل آزاد
لینوکس یک سیستم عامل آزاد و بازمتن استکد منبع آن در اختیار همگان قرار دارد و همه می‌توانند در کدهای آن تغییر ایجاد کرده و بنا به نیازشان استفاده کنندآزاد و در دسترس بودن کدهای منبع سبب می‌شود تا بتوانید از طرز کارکرد دقیق سیستم‌عامل مطلع شویدشما لینوکس را می‌توانید به هر تعداد کپی کرده و بین دوستانتان پخش کنیددر سمت مقابل، ویندوز یک سیستم‌عامل اختصاصی است که کد منبع آن سری نگهداشته شده است و برای همگان در دسترس نیستشما نمی‌توانید بفهمید که واقعا در زیر سیستم‌عامل ویندوزتان چه می‌گذرد؟ آیا یک برنامه جاسوسی در آن پنهان نشده است؟ بعید نیستسیستم عامل ویندوز رایگان نبوده و تحت حمایت قانون کپی‌رایت قرار داردشما نمی‌توانید آنرا کپی کرده و پخش کنیددر صورت این کار شما خلاف‌کار هستید و جریمه و مجازات خواهید شد. (فعلا نه در ایران ولی در ۴۶ سال آینده بله)
لینوکس را به هواپیمایی تشبیه کرده‌اند که هر قسمت از انرا در جایی ساخته‌اندلینوکس واقعا محصول کشور خاصی نیستتعداد زیادی از مردم در سرتاسر جهان در حال کار بر روی آن و توسعه آن هستندتعداد برنامه نویسانی که روی بخش‌های مختلف سیستم‌عامل لینوکس کار می‌کنند، به حدود ۴۰۰ هزار نفر می‌رسد، در حالی که تعداد کل برنامه‌نویسان مایکروسافت کمتر از ۱۰۰۰۰ نفر استهمین، تفاوت کیفیت کار را مشخص می‌کند.
شما با سیستم‌عامل لینوکس آزاد هستیدلازم ندارید تا از نرم‌افزارهای اختصاصی استفاده کنید و تحت انقیاد آنها در آیید.

لینوکس سرعت، قدرت، پایداری
همانطور که گفتم، لینوکس نواده سیستم‌عامل یونیکس استبنابراین ساختار کلی این سیستم‌عامل کاملا با ویندوز متفاوت استاین به این معنی است که مثلا شما نخواهید توانست برنامه‌هایی که در ویندوز دارید، روی لینوکس اجرا نمایید (البته راه‌هایی وجود دارد – شبیه سازها – ولی در حالت عادی خیر). یکی از خواص اصلی سیستم‌عامل‌های خانواده یونیکس، پایداری و استقامت بسیار بالای آنهاستاین سیستم‌عامل‌ها به این راحتی‌ها خراب نشده و به ندرت نیاز به بوت مجدد پیدا می‌کنندلینوکس‌هایی وجود دارند که شما می‌توانید سالها بدون نیاز به بوت، از آنها استفاده نماییددر سمت مقابل، حتی جدیدترین و پایدارترین سیستم‌های ویندوز به اندازه یک موی لینوکس پایدار نیستندبرای بکارگیری سیستم‌های ویندوز به عنوان سرویس دهنده به حافظه و پردازنده‌های قویتری نیاز دارید و مطمئن باشید اگر هر هفته آنرا بوت نکنید، از کار خواهد افتاد!
من حدود ۲ سال است با این سیستم‌عامل کار می‌کنمتنها یکبار مجبور شده‌ام بدلیل اشکال در کارت صوتی آنرا بوت کنم. (فقط کارت صوتی از کار افتاده بود!) در صورتی که در ویندوز، شما اگر خیلی شانس داشته باشید، حتما هفته‌ای ۲۳ مشکل را که منجر به بوت خواهند شد، خواهید داشتمعمولا سیستم‌عامل لینوکس به راحتی خراب نمی‌شود و برعکس ویندوز مجبور نیستید تا آنرا هر چندماه یکبار مجددا نصب کنیدحتی برخی از انواع لینوکس به نصب «یکبار برای تمامی عمر» مشهور هستنداین گونه سیستم‌ها را می‌توانید حین کار و حتی بدون بوت، به نسخه‌های جدیدتر ارتقا دهید.

لینوکس امنیت، امنیت، امنیت
امروزه در دنیایی متکی بر فناوری اطلاعات زندگی می‌کنیم که هر لحظه به خطر افتادن جریان اطلاعات منجر به بروز خسارت‌های تجاری جبران ناپذیری خواهد شدامروزه همه به دنبال یک سکوی (Platformامن‌تر برای اجرای برنامه‌های کاربردی و سروی‌دهنده‌ها هستندلینوکس حرف‌های زیادی برای گفتن در سمت امنیت داردبسیاری از قابلیت‌های امنیتی که در ویندوز وجود ندارند و یا فقط با اضافه کردن نرم‌افزارهای اضافی قابل دسترسی می‌باشند، بطور درونی و پیش‌گزیده در لینوکس پیاده سازی شده‌اندلینوکس از ابتدا برای محیط‌های شبکه‌ای و چند کاربره طراحی شده است و همین باعث رعایت مسائل امنیتی از ابتدا در ان شده است، درحالی که ویندوز اینگونه نبوده و درحال حاضر نیز از نظر امنیتی دارای نقاط ضعف فراوانی است.مثلا یک برنامه مخرب با استفاده از همین ضعف‌های امنیتی می‌تواند کل سیستم‌عامل را نابود کند، ولی در صورتی که مورد مشابهی در لینوکس وجود داشته باشد، حداکثر به دایرکتوری خانگی کاربر اجرا کننده آسیب خواهد رسید، نه کل سیستم‌عامل.
اینطور نیست که لینوکس فاقد هر گونه اشکال امنیتی باشد، خیر، ولی باز بودن کد منبع آن باعث می‌شود تا بسیاری از اشکالات امنیتی پیش از ایجاد خسارت و در مراحل توسعه و برنامه نویسی برنامه بر ملا شده و رفع شونددر صورتی که اشکالی نیز در برنامه‌های منتشر شده یافت شود، بدلیل موجود بودن کد منبع سریعا برطرف می‌گردددر صورتی که در سیستم عامل ویندوز شما باید منتظر مایکروسافت بمانید و بمانید و بمانیدسیستم‌عامل ویندوز دارای اشکالات امنیتی بسیاری است که به راحتی هم کشف نمی‌شوند و هنگامی کشف می‌شوند که خسارات جبران ناپذیری در اثر حمله از طریق آن ضعف‌های امنیتی رخ دهد که امثال آنرا شاهد هستیم.
می‌توان ادعا کرد که تقریبا هیچ ویروسی برای لینوکس وجود ندارد و این درحالی است که سالیانه بیش از ۱۰۰۰ ویروس و کرم مختلف برای سیستم‌عامل ویندوز ایجاد می‌شوداین بخاطر عدم گسترده بودن لینوکس نیست (حدود ۷۰ درصد از سایت‌های وب در جهان بر روی سیستم‌عامل لینوکس و سرویس‌دهنده وب آپاچی درحال اجرا هستندبلکه بدلیل وجود حفره‌های امنیتی متعدد ویندوز و سیاست انحصار گرایی مایکروسافت استیعنی چه؟ مایکروسافت طوری رفتار و سیاست گذاری کرده است که مشتریان خود را تنها به محصولات خودش عادت دهدبسیاری از کاربران ویندوز از اینترنت اکسپلورر و آتلوک برای مرور وب و پست الکترونیک استفاده می‌کنندمن به عنوان یک ویروس نویس، می‌دانم که اگر ویروسی را برای کاربران ویندوز بنویسم، بر روی کامپیوترهای ۹۰ درصد آنها اثر خواهد کردچون اکثرا از IE وOutlook استفاده می‌کنندولی در لینوکس چطور؟ در لینوکس شما طیف وسیعی از انتخاب و عدم اجبار داریدمن از مرورگر موزیلا استفاده میکنمدوستی دارم که Konqueror را ترجیح می‌دهددیگری از Opera استفاده می‌کندمن از Kmail استفاده می‌کنمدوستم از Evolution، دیگری از Pine و بعدی از Mutt و برادرم هم از Mozilla Mailمن فقط می‌توانم برای یکی از اینها ویروس بنویسم چون روی بقیه کار نخواهد کرد و عملا میزان اثر آن انداک خواهد بودضمنا هیچیک از ویروس‌هایی که برای ویندوز نوشته شده‌اند، بر روی لینوکس کار نمی‌کنند.

لینوکس تعدد سکوهای اجرایی
لینوکس برخلاف ویندوز بر روی تعداد زیادی از سکوهای مختلف سخت‌افزاری اجرا می‌شود و شما حتی قادرید آنرا برای کار بر روی سکوی مورد نظرتان تغییر دهیداین قابلیت، لینوکس را برای بکارگیری در سخت‌افزارهای درونه‌ای (Embeddedبسیار مناسب می‌سازدهسته 2.6لینوکس که بتازگی ارائه شده است، این امکان را فراهم می‌سازد تا لینوکس را بر روی دستگاه‌های بسیار کوچک و یا ابر رایانه‌های بسیار بزرگ اجرا نماییداصلا ویندوز می‌تواند؟

لینوکس گسترده‌ترین تنوع در کاربرد
لینوکس را می‌توانید برای انجام وظایف بسیار متعددی بکار بگیریداز دستگاه چک کردن اتصالات شبکه، دیوار آتش، مسیریاب (Routerشبکه، سرویس‌دهنده‌های مختلف مانند وب، بانک اطلاعاتی، فایل، چاپ و، میزهای کار (Desktop)، ایستگاه‌های کاری (Workstationsوسیستم‌عامل لینوکس حتی این امکان را دارد که از آن بتوان به صورت یک سیستم زنده و پرتابل استفاده کردبه این معنی که کل سیستم‌عامل از روی یک دیسک CD اجرا شود و شما آنرا با خودتان جابجا کنید و میزکار و تنظیماتتان را همراه خودتان منتقل کنیدعلاوه بر این، این قابلیت برای رفع اشکال و نمایش آن نیز بسیار مفید است.

لینوکس تنوع در انتخاب
بدلیل آزاد بودن سیستم‌عامل لینوکس، هر گروه یا موسسه تجاری، یک نسخه خاص از آن که به توزیع یا پخش (Distributionمعروف هستند، منتشر ساخته استاین توزیع‌های مختلف همگی لینوکس هستند، ولی هریک معمولا برای یک یا چند امر خاص مانند سرویس‌دهنده، دیوار آتش، میزکار و… طراحی شده‌اند و هریک قابلیت‌ها و بهینه سازی‌ها خاص خودشان را به کاربران ارائه می‌کنندکاربران در این میان آزادی انتخاب زیادی داشته و می‌توانند چیزی که کاملا نیازشان را برطرف می‌کند، انتخاب کنندچیزی که در ویندوز نمی‌توان مفهومی برای آن پیدا کرد.

لینوکس سیستم‌عاملی حرفه‌ای
لینوکس یک سیستم‌عامل حرفه‌ای استیعنی ممکن است یک کاربر کاملا غیر فنی برای مدیریت آن و انجام برخی از تنظیمات سخت‌افزاری دچار مشکل شود و نتواند به راحتی این کار را انجام دهدالبته برخی از توزیع‌های لینوکس این امور را بسیار راحت (و حتی راحت‌تر از ویندوز)کرده‌اند، ولی با این حال به طور کلی، لینوکس یک سیستم‌عامل حرفه‌ای است که در عین سادگی، از پیچیدگی‌های فنی زیادی برخوردار استالبته تمام کاربران لازم نیست این امور را بدانندمثلا یک کارمند دفتری که اموری مانند تایپ و حسابداری را با کامپیوترش انجام می‌دهد، ممکن است از نظر فنی تفاوتی را احساس نکند، ولی لینوکس خوراکی ۴ ساله برای کاربران خوره فراهم می‌سازدبرخلاف ویندوز، نکات بی‌پایانی برای یادگیری در لینوکس وجود دارداین سیستم‌عامل ۴ سال به راحتی شما را مشغول خواهد کرد و می‌توانید مطمئن باشید پس از آن بازهم مطالب جدیدی برای یادگیری وجود خواهند داشتپس خوره‌های کامپیوتری از آن لذت وافری خواهند برد و هرگز آنرا رها نخواهند کرد.
برخلاف ویندوز، در لینوکس راحت‌تر هستید تا بسیاری از کارهای پیکربندی و سیستمی را از خط فرمان بسیار قدرتمند و عالی آن انجام دهیدبا اینکه برای بسیاری از امور مانند ویندوز ابزارهای گرافیکی طراحی شده است، یک کاربر حرفه‌ای واقعا از خط فرمان لینوکس لذت خواهد بردخط فرمان ویندوز را اصلا می‌توان خط فرمان نامید؟

لینوکس بهشت برنامه نویسان!
لینوکس را بهشت برنامه نویسان نامیده‌اندبرخلاف ویندوز که اکثر ابزارهای برنامه نویسی روی آنرا باید جداگانه نصب و حتی خریداری نمایید، لینوکس به همراه تمامی ابزارهای برنامه نویسی مورد نيازتان و با هر زبانی که فکر کنید ارائه می‌شودکافی است آنرا نصب کنید و کار برنامه نویسی‌تان را با ابزارهای دلخواهتان شروع کنید.

لینوکس یک جعبه ابزار کامل
لینوکس برای کاربران حرفه‌ای، یک جعبه ابزار کامل به شما می‌رود که در آن تمامی ابزارهای مورد نیاز مانند برنامه‌های اینترنتی، ابزارهای امنیتی مانند ابزارهای آزمایش شبکه، ابزارهای برنامه نویسی، هزاران صفحه کتاب و راهنما در آن پیدا خواهید کردابزارهایی که در اختیارتان قرار دارد چنان متنوع هستند که می‌توانید ۹۰ درصد اطمینان داشته باشید که پس از نصب آن به چیز دیگری نیاز نخواهید داشت.

لینوکس یکی از زیباترین دستاوردهای بشری
لینوکس در سایه همکاری و تبادلات علمی هزاران نفر در سرتاسر جهان ایجاد شده و توسعه یافته استاین همکاری چنان گسترده و زیبا بوده و هست، که به سیستم‌عامل لینوکس لقب«زیباترین دستاورد همکاری جمعی بشر» داده شده استفرهنگ حاکم در جامعه لینوکس و بازمتن، فرهنگ کمک، اشتراک اطلاعات و تلاش برای بهبود هرچه بیشتر محصولات و «انجام هرکاری که از دستت برمی‌آید» استهرکس که می‌خواهد با این سیستم‌عامل کار کند، باید تمامی دیدگاه‌ها و عقاید قبلی خود را درباره نرم‌افزارها و سیستم‌عامل کنار گذاشته و با یک دیدگاه جدید و طرز فکر متحول شده وارد دنیای لینوکس شود، زیرا با فرهنگ حاکم متفاوتی روبرو خواهد بودلینوکس نوید دهنده آزادی است

ادامه مطلب