I am not going to focus on certain details such as the performance, architecture, support and so on. I only want to talk about those simple things that, when I finish the installation of an operating system, I usually say: I like it!
For my tests, I am going to use two similar versions: Ubuntu Server 10.04 LTS and CentOS 6.0, both 32 bits. After the initial installation (and their corresponding upgrades), here you are a typical view of the system status. As you can distinguish, Ubuntu Server grabs little memory, since the most of it is cached. In respect of the number of active processes, it also has got fewer than CentOS.
root@ubuntu-server:~# top top - 12:17:54 up 13 min, 1 user, load average: 0.00, 0.00, 0.00 Tasks: 78 total, 1 running, 77 sleeping, 0 stopped, 0 zombie Cpu(s): 0.0%us, 0.0%sy, 0.0%ni,100.0%id, 0.0%wa, 0.0%hi, 0.0%si, 0.0%st Mem: 2061260k total, 126644k used, 1934616k free, 17088k buffers Swap: 565240k total, 0k used, 565240k free, 87796k cached ... [root@centos ~]# top top - 12:17:49 up 13 min, 1 user, load average: 0.00, 0.00, 0.00 Tasks: 84 total, 1 running, 83 sleeping, 0 stopped, 0 zombie Cpu(s): 0.0%us, 0.0%sy, 0.0%ni,100.0%id, 0.0%wa, 0.0%hi, 0.0%si, 0.0%st Mem: 2071620k total, 99020k used, 1972600k free, 5272k buffers Swap: 4161528k total, 0k used, 4161528k free, 29488k cached ...
What about the initial space taken up for the installation? (In order to get a more accurate result, I have cleaned the package cache). As you can see, CentOS occupies around 225 MB less than Ubuntu Server. I have to highlight this point, because this aspect has improved a lot on CentOS 6.0, since we have now a version of minimal installation. With CentOS 5, the final size was bigger.
root@ubuntu-server:~# aptitude clean root@ubuntu-server:~# df -h Filesystem Size Used Avail Use% Mounted on /dev/mapper/ubuntu--server-root 12G 888M 9.6G 9% / none 1002M 172K 1002M 1% /dev none 1007M 0 1007M 0% /dev/shm none 1007M 32K 1007M 1% /var/run none 1007M 0 1007M 0% /var/lock none 1007M 0 1007M 0% /lib/init/rw /dev/sda1 228M 31M 185M 15% /boot [root@centos ~]# yum clean all [root@centos ~]# df -h S.ficheros Size Used Avail Use% Montado en /dev/mapper/vg_centos-lv_root 7,5G 664M 6,4G 10% / tmpfs 1012M 0 1012M 0% /dev/shm /dev/sda1 485M 56M 404M 13% /boot
This situation is reflected as well when we take a look at the number of packages installed on the system.
root@ubuntu-server:~# dpkg -l | grep ii | wc -l 358 [root@centos ~]# yum list installed | wc -l 234
Let's move on to the services which are listening on the system at the beginning. You may appreciate that the picture of Ubuntu Server is impeccable. There is no process bound to any port (aside from SSH). But what happens with CentOS? There are different applications which have already been started up (TCP and UDP). This is a waste of time for me, because at the end of each CentOS installation, I have to remove them.
root@ubuntu-server:~# netstat -nltup Active Internet connections (only servers) Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN 810/sshd tcp6 0 0 :::22 :::* LISTEN 810/sshd [root@centos ~]# netstat -nltup Active Internet connections (only servers) Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name tcp 0 0 0.0.0.0:111 0.0.0.0:* LISTEN 1071/rpcbind tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN 1191/sshd tcp 0 0 0.0.0.0:44568 0.0.0.0:* LISTEN 1089/rpc.statd tcp 0 0 :::111 :::* LISTEN 1071/rpcbind tcp 0 0 :::55445 :::* LISTEN 1089/rpc.statd tcp 0 0 :::22 :::* LISTEN 1191/sshd udp 0 0 0.0.0.0:822 0.0.0.0:* 1071/rpcbind udp 0 0 0.0.0.0:841 0.0.0.0:* 1089/rpc.statd udp 0 0 0.0.0.0:45143 0.0.0.0:* 1089/rpc.statd udp 0 0 0.0.0.0:111 0.0.0.0:* 1071/rpcbind udp 0 0 :::822 :::* 1071/rpcbind udp 0 0 :::43338 :::* 1089/rpc.statd udp 0 0 :::111 :::* 1071/rpcbind
Regarding the repositories provided for each distribution, Ubuntu Server supplies a larger number of packages than CentOS, and this is another plus. Although you can add excelent additional repositories such as EPEL, those extra packages are not officialy supported.
root@ubuntu-server:~# apt-cache stats | grep Normal Normal packages: 30299 [root@centos ~]# yum list all | wc -l 4595
Also point out the life cycle of each distribution. On Ubuntu Server you have got a LTS (Long Term Support) version each three years. In contrast, on CentOS, the first release of the branch 5 was shipped in March 2007 and CentOS 6.0, in July 2011 (more than four years after). What goes on with this? Over time, you have to use an operating system where the most of the packages, although still supported, are obsoleted.
And finally, I have metered the time spent in order to reboot the system (both use Upstart). This parameter is really important, mainly in production environments. I have obtained 20 seconds on Ubuntu Server and 40 on CentOS.