Home Linux Community Community Blogs

Community Blogs

Should You Use Linux for A Start Up?

Let me tell you a story: You’ve drafted your business plan and you’ve got funding. You are a tech business and you’ve got to decide a few things. You’ve got 20-50 employees who are going to be working around the clock on the next big thing and you need to determine your OS. Are you going to go with something stable, compatible, but vulnerable like a Windows version? Are you sucked into some Mac OS because of some proprietary hardware of software? Honestly, the best bet for your is (surprise surprise) a version of Linux. As you can get some stable builds for free, what’s your overhead going to be? If you are really concerned, why not dual boot  windows and ubuntu?


Well, once you’ve got your system up and running and your employees in the office you need to consider a few other things from a tech perspective. Security is first and foremost. While we all know how the NSA uses (or used, who knows now) SELinux and that the Linux kernel is very security focused, there are a few other ways you can boost it. If you are still looking at the zero cost avenue and you have some pretty major security concerns you can run Fedora on all your computers like Linus Torvalds does. There are other security concerns however. Like, since not everyone knows how to rebuild a kernel when you get some critical error, you’ll need someone to recover your data. Since that is really your only overhead, other than an IT guy who is familiar with Linux, it’s well worth the risk.


So, is Linux really worth it for your startup? Yes, but you have to know what you are looking to do. Since there are so many distributions, you are going to need to research which ones you are going to use and which one is the best fit for your needs. I talked about Fedora as a security conscious one, Ubuntu/Debian (with unity) for a more user friendly approach, or even something like Kali Linux for pen testing.


My personal experiences with Linux in the workplace actually started shortly after I adopted Linux on my home PC (well I was am still am dual booting Windows). I was at a startup who had installed Ubuntu on all the desktops, other than a few, and had no idea what they were doing. Luckily the IT guy and myself both were familiar enough with it to work through some of the early problems (mostly on the fly problem solving). Once we got past the growing pains that all start ups go though, we were in the clear. It saved the company a lot of money and, even though the new people we eventually hired did grumble about having to learn a new OS, it eventually worked out for the best.


Set up Nova-Docker on OpenStack RDO Juno on top of Fedora 21

Quote ([1]]) :-

The Docker driver is a hypervisor driver for Openstack Nova Compute. It was introduced with the Havana release, but lives out-of-tree for Icehouse and Juno. Being out-of-tree has allowed the driver to reach maturity and feature-parity faster than would be possible should it have remained in-tree. It is expected the driver will return to mainline Nova in the Kilo release.

Complete text of article may be viewed here


How to make SLD64 transit longer distance than SFD64?

As we know, Huawei SFD64 is updated version of SLD64, for its transmission distance is further than SLD64.

Technically, in Huawei SDH transmission boards, SFD64 can transit longer than SLD64 in normal condition, but when you use DWDM color interface into SLD64, it can transit longer than SFD64. For when SFD64 with SFP or XFP, it can transit 40km, but when SLD64 equiped with DWDM color interface module, it has two options, 40km and 80km, which based on your maximum demand. 


How To Use 'Sudo' And 'Su' Commands In Linux : An Introduction

Today We're going to discuss sudo and su, the very important and mostly used commands in Linux. It is very important for a Linux user to understand these two to increase security and prevent unexpected things that a user may have to go through. Firstly we will see what these commands do then we'll know the difference between both of them. So let's get started.


Note: This article is specific for Ubuntu users, although many things are also in other distributions. 

Introduction to Linux command 'sudo'





14 Excellent Free LaTeX Books

LaTeX is a high-quality document preparation system and document markup language which was written by Leslie Lamport. It is a very mature system and has been in development for more than 20 years. It includes features designed for the production of technical and scientific documentation.

An easy way to get started in LaTeX is to study online books and web sites. This article highlights 14 free LaTeX books, some are short general introductions that offer a gentle learning curve, other books show you how to fully exploit the preparation system.

<A HREF="">Full article</A>


How To Install Software In Linux : An Introduction

In any operating system we need to install applications to complete our day to day tasks. In the world of Windows, every program has a simple Setup.exe or a file. On a Mac a package is a program.dmg or a program.sit file. In both theoperating system you can simply click it and it will ask you some very basic configuration questions like, do you accept the licence agreement or the directory you want to install the software to. Although in Linux, It seems tough to install the programs/softwares but It's not true.


The second package manager format is DEB, stands for Debian. Debian packages and the APT (Advanced Packagin Tool) has made advanced features that are now commonly used, like, automatic dependency resolution and signed packages. Debian packages are used by Debian/Linux, and some of the most used Linux distributions, like, Ubuntu, Linux Mint, Mepis etc. The .deb/Debian files look like this program-version-other.deb

APT For Debian based distributions, like, Ubuntu, Linux Mint etc.

The APT is the tool, commonly used to install packages, remotely from the software repository. In short it's a simple command based tool that you use to install files/softwares. Complete command is apt-get and it's the easiest way to install files/Softwares packages. This easy tools informs you about packages that are currently being installed and also it informs you about the packages that are available in repositories.


apt-get install ${packagename}

To remove/uninstall any software, just use remove

apt-get remove ${packagename}

The software packages are somewhere in the online repositoies, APT handles a local database on the user's hard drive that contains informations about the available packages and where they are located. So when the types the command, apt-get install conky, the APT will start finding the package named conky in the database and will install conky once user types 'y' (yes). To get the all newly uploaded packages on the repositories, user need to update APT regularly.

To update APT database:

apt-get update

To update the APT database and also upgrade the security updates and patches that might be available for some installed softwares, users may do it at once just by using the commands like this:

apt-get update; apt-get upgrade

And remember all of the package management tools I am discussing, will need user to be in root or superuser, for example to install software in debian based distributions you will use apt-get followed by sudo then It will ask you to enter password.

sudo apt-get install conky
sudo apt-get remove conky
sudo apt-get update

Install Software in Linux, Ubuntu, debian
Insert password to install any package

yum: For RPM based Linux distributions, like, Fedora, Red Hat

You will not have any trouble understanding yum because its same as apt-get. As 'apt-get' installs software packages for Debian packages, like that 'yum' installs software packages for RPM packages. It can also like apt-get download and install packages from a repository.

Yum install ${packagename}

To remove software packages, just use remove

yum remove ${packagename}

There is one thing to note that yum does not keep a local database by default in user's hard disk. So there is no need to update it. But to install available security paches and bug fixes, use the following command:

yum update

If user wants to update any single package then do it in the following way:

yum update ${packagename}

Tar Balls

You would remember in Windows you've Zip files .zip or in Mac .sit. The same way here in Linux you have Tar Balls (files) ending with extentions, like, .tar, .tar.gz, .tgz, or something else. To unpack a tar ball (file), use the following command:

tar -xzvf ${filename}.tar.gz

The parameters are x to extract files, z to filter through gzip for decompression (leave this off if the file does not have a gz extension), v for verbose mode so you can tell what’s going on, f indicating there will be a filename to follow. You may want to create an alias called “untar” that feeds in these options if you have a hard time remembering command line options as I do.

The command will not install the software, but it will extract the archived files. After extracting files then you can install the extracted files by reading README file or INSTALL file (because there you can instructions for installing those particular files).

Other Linux Packaging Managements

Afcourse there are many distributions, so the packaging managing tools. Like, SUSE uses RPM as its native package format, but has its own tool to manage softwares on system.

Yast is the packaging managing tool used in openSUSE Linux distribution, as well as SUSE's derived commercial distributions. I'll cover Yast in my other post.

I will cover some more majorly used packaging management tools like, 'dpkg' in my other post. The work and attributes of some other packaging management tools will be discussed in that post.

Also Read important article The Linux Permissions: An Introduction



Set up GlassFish 4.1 Nova-Docker Container via phusion/baseimage on RDO Juno

The problem here is that  phusion/baseimage per  should provide ssh access to container , however it doesn't. Working with docker container there is easy workaround suggested by Mykola Gurov  in
# docker exec container-id exec /usr/sbin/sshd -D 
which is of no help in case of Nova-Docker Container.  To bring sshd back to life
I added to Dockerfile :-
  RUN echo "/usr/sbin/sshd > log &" >> /etc/my_init.d/

Complete text of posting may be viewed here


Community-developed Open Source solutions in a corporate environment

The company 7iSolutions describes the issues which companies have to face when they decide to implement community-developed open source solutions. 7iSolutions describes what they do to offer an adequate solution for corporations.

The Univention Blog:


APT Packaging Management Tool In Detail; Linux


Pay attention to SSN1EAS2 Board Occasional Packet Loss or Ethernet Service Interruption on NG SDH Pr

Problem Description
Trigger condition:
1. SSN1EAS2 transmission board use FPGA 110.
2. Cross-connect boards in slot 10 are active cross-connect boards.
3. The PCB of a cross-connect board is SSN1SXCS1, SST1PSXCSA1, SST1PSXCSA, SST2PSXCS, or SSN2SXCS.
4. When the proceeding three conditions are all met, the problem occurs occasionally (about 10% probability) and is determined by SSN1EAS2 boards and cross-connect boards.


During an upgrade on the live network, the problem is easily triggered when the cross-connect board in slot 10 replaces that in slot 9 as an active one.
When an SSN1EAS2 board works with a cross-connect board whose PCB is SSN1SXCS1, SST1PSXCSA1, SST1PSXCSA, SST2PSXCS, or SSN2SXCS, there is a high probability that the problem may occur. When an SSN1EAS2 board works with other types of cross-connect boards, this problem never occurs on live networks and in test environment. For details about risky types of cross-connect boards, see the Risky Types of Cross-Connect Boards That May Encounter Header Jitters on FPGA 110 of SSN1EAS2 Boards When They Work Together.

1. Some packets of Ethernet services on an SSN1EAS2 board are lost, or Ethernet services are interrupted.
2. The board may repeatedly or occasionally reports service alarms related to huawei SDH or GFP services, such as B3_SD, HP_UNEQ, HP_RDI, T_LO**, ALM_GFP_DLFD, and FCS_ERR.
3. The active and standby cross-connect boards may report BUS_ERR alarms simultaneously, and alarm parameters indicate that the SSN1EAS2 board caused the alarm.
Cold reset cannot resolve the problem nor trigger the problem.
Identification methods:
1. If all of the following conditions are met, these fault symptoms are most probably caused by the SSN1EAS2 board:
− An SSN1EAS2 board uses FPGA 110.
− The cross-connect board in slot 10 is the active one.
− The cross-connect board is the type listed in the attachment Risky Types of Cross-Connect Boards That May Encounter Header Jitters on FPGA 110 of SSN1EAS2 Boards When They Work Together.

2. After the cross-connect board in slot 10 replaces that in slot 9, if fault symptoms on the SSN1EAS2 board are cleared, the problem is caused by the SSN1EAS2 board.

[Root Cause]
The design of the FPGA on an SSN1EAS2 board for cross-clock-domain has bugs. When the cross-connect board in slot 10 function as the active one, the headers output to the MAPPER and VSC9128 chips have jitters at the period of 77 Mbit/s. As a result, the VSC9128 chips fail to correctly receive service signals from the cross-connect boards. In addition, the services signals transmitted to the cross-boards may have jitters, resulting in bidirectional packet loss or service interruption.

[Impact and Risk]
Some packets of Ethernet services are lost, or Ethernet services are interrupted in the upstream and downstream direction.
Measures and Solutions
Recovery measures:
Replace the cross-connect board in slot 10 with that in slot 9 as the active one.
When an SSN1EAS2 board uses FPGA 110 or earlier, avoid using the cross-connect board in slot 10 as the active cross-connect.

Preventive Solutions:
1. Upgrade the FPGA (BOM: 05020AAE) used on an SSN1EAS2 board to version 120 or later, because the FPGAs resolve the design bugs for cross-clock-domain.
− For V100R008 and V100R009 versions, upgrade the device to V100R010C03SPC203 or later.
− For V100R010 versions, upgrade the device to V100R010C03SPC203 or later.
− For V200R011 versions, upgrade the device to V200R011C02SPC106 or later.
− For V200R012 versions, upgrade the device to V200R012C00SPC101/V200R012C01 or later.
During an upgrade, the board version needs to match the device version specified in the version mapping.

On the NE whose version is V100R010C03SPC202, the SSN1EAS2 board can use the software of V100R010C03SPC203 in a weak mapping mode. The software includes BIOS, board software, FPGA, and EPLD.

2. SSN3EAS2 boards can be used. Both SSN1EAS2 and SSN3EAS2 boards are 10GE Ethernet service processing boards. When using an SSN3EAS2 board, ensure that the device version supports the SSN3EAS2 board.


You don't know JS until you've learned all of it

If you are going to learn something new, don't scim through it. Learn everything you can about the subject hard and easy. Once you fully understand the subject you can elevate that knowledge to higher levels. Never be picky when it comes to learning. You might not realize what you overlooked was cricial to learn. 

I was studying a transcript of an interview between Remy DeCausemaker an open source research coordinator and Kyle Simpson an open web evangelist who strongly uses and teaches JavaScript. He is the author of a book series called You don't know JS. Simpson states that those who've learned JavaScript learned it incompletely and improperly.

“I'm an open web evangelist who teaches JavaScript for a living. I work with developers all the time who've learned JS incompletely and improperly, and they're having to fight hard against the grain to re-learn it” (Kyle Simpson).

“I believe JavaScript takes time to learn properly and completely, and that if you're going to write it, then you should invest that effort. You should understand why the code that you write works the way that it works” (Kyle Simpson).

What he could be suggesting is that JS developers learn only enough about JS to enable them to work with the language but not to fully master it. In otherwords, they learn only what is needed to complete a task.

He makes another strong statement regarding what his book series attempts to do. “My books are the opposite. They're the anti-"The Good Parts." That doesn't mean they're the bad parts, it means they're all the parts. Rather than avoiding most of the language because one guy said to—rather than running away from the hard parts—I encourage you to run towards "the tough parts" and learn them” (Kyle Simpson).

The reason this article stood out to me relates to the approach I am using when it comes to editing text files on my Debian and Mint based Linux systems. I have developed a habit of learning why my changes worked beyond the fact that they do work. I must know everything about every piece of code, character, comment, spacing, everything. I must know the meaning of the code. However, the more I want to learn, the longer it takes me to move on to the next code. I felt time was not on my side. I had to learn fast. According to Kyle Simpson, this was not the way to learn.

“When you see something in JS that you don't understand or is confusing, instead of blaming the language as being poorly designed, turn your attention toward your own lack of understanding, and spend the effort to increase your understanding” (Kyle Simpson).

Kyle is saying that it is a must to spend the effort that is required to learn that which is hard. Do not run away from it but to face it. Spend as much time as it takes to understand it. Perhaps the beauty of acquiring skill is not how quickly you were able to gain it but how long it took you to gain it. 

I can go on, but what I am concluding is that perhaps great wonders lie in what seems too difficult to handle. Really give it your all in any area of expertise. Let all the knowledge poor in. It might take a long time to master it. That is ok. The more time I spent operating my Linux systems through the terminal, the better and more confident I became at it. I am not looking to compete with anyone. My goal is to learn all I can about it. Whatever you are learning, JS, bash scripting, PHP, Linux, take as much time as you need to learn it from top to bottom. This is hard enough.



Remy DeCausemaker(2014). You don't know JS, but you should.

Page 2 of 150

Upcoming Linux Foundation Courses

  1. LFD312 Developing Applications For Linux
    16 Feb » 20 Feb - Atlanta - GA
  2. LFD331 Developing Linux Device Drivers
    16 Feb » 20 Feb - San Jose - CA
  3. LFS220 Linux System Administration
    16 Feb » 19 Feb - Virtual

View All Upcoming Courses

Who we are ?

The Linux Foundation is a non-profit consortium dedicated to the growth of Linux.

More About the foundation...

Frequent Questions

Join / Linux Training / Board