Tuesday, March 29, 2011

Linux Operating System

When you turn your computer on, you may not be aware of the large amount of communication going on inside of it. A lot of the communication that happens has to do with the operating system (OS) installed on the computer and the applications you might be running. The basis of an OS is software consisting of data and programs that is used to relay information between the hardware and applications. Any computer, including video game consoles and cellphones, uses some type of OS, whether it be Unix, Microsoft Windows, Mac OS X, and, our topic of today, Linux.

Linux first made its debut at the hands of Linus Torvalds in 1991, a then-21 year old Finnish student at the University of Helsinki. Torvalds wrote the Linux kernel so that it would be the first free and open source OS for computers, in contrast to the older Unix and MINIX operating systems. Unix and MINIX both restricted the use of their codes, limiting it only to academic institutions and businesses, with MINIX used more to teach students about OS than for its useful execution outside of the classroom.

The kernel of an operating system is the link between applications on the computer and the hardware, specifically the CPU, memory, and devices. The Linux kernel was first written in the programming language C, but it has been expanded to work with almost any other programming language, including C++, Java, PHP, Python, and Fortran. It is a monolithic kernel, which means that executes all the operating system code in the same address space to increase the performance of the system.

Linux is mostly used on servers, which is how Linux ended up running the 10 fastest supercomputers in the world, but its popularity on desktops has increased in recent years, possibly as a result of a 2007 "rebellion" in the Linux development community. As a result, many applications that used to run on only Windows or Mac OS have now been "translated" to Linux, including popular games such as World of Warcraft and Team Fortress 2, and more mundane applications such as Mozilla's FireFox internet browser.

However, if you're the kind of person who likes to look at code, the prospects for the Linux market are growing rapidly. The latest version of the Linux kernel is about 13 million lines of code, and with the ever-present advances in technology, the next one will be longer and more complex. Linux is definitely something to watch for and understand in the world of computing and technology.

Tuesday, March 15, 2011

The Switch to IPv6

Forget 2012, because it's 2011 that is the end of the IPv4 world in which we've all grown up. The Internet Assigned Numbers Authority, the organization which controls and coordinates global IP addressing for every computer on earth, is running out of IPv4 (stands for Internet Protocol version 4) addresses. As of February 2011, it was down to the last 2.7% of them.

So does this mean that new computers will become unusable? Of course not. The solution for this problem involves a little creativity, and a lot of new space.
The gradual transition to IPv6. From http://www.potaroo.net/ispcol/2008-09/fig1.jpg
 To explain this better, imagine that all the IPv4 addresses are like the apartments in New York City. There's a limit to how many there are, and once they're filled, they stay there for good. Any technology device, including printers, has an IP address to tell other computers where to direct their information, similar to the mail service when you want to send a letter to a friend. Unlike people, however, the computers never change their addresses, and so this had led to the problem equivalent to overpopulation. So, instead of deleting computers from the system, computer scientists have been building New York City 2.0, which they have called IPv6.

IPv4 is a 32-bit internet layer protocol which handles the transfer of information through "routes," or pathways on the internet. Every piece of information shared online has three core data points that direct it: who sent it (IP address 1), where it's going (IP address 2), and how it's getting there (the route). This system was created in the 1980s, far before the internet got so huge, and long before anyone predicted it would run out. After all, it accounts for 2^32 addresses! Side note: remember that computers use a binary (base of 2) system to communicate.

IPv6, on the other hand, is a 128-bit internet layer protocol which can support 2^128 addresses, which is about equal to the impossibly large number 340 undecillion (3.4 x 10^38). This expansion allows for many more devices and users on the internet as well as extra flexibility in allocating addresses and efficiency for routing traffic. As of now, IPv6 is still in the pilot stage, but on June 8, 2011, this will change. Why? It's World IPv6 Day, of course!

On that day, the entire globe will be undergoing a test of the major IPv6 infrastructures. Many of the most commonly used websites (Facebook, Google, etc.) have or will enable a "gateway translation," which will allow IPv4 users to connect to IPv6. Unfortunately, .05% of people who are covered by IPv4 will experience major technical issues on this day. These are the problems that World IPv6 Day is trying to fix before the entire IPv6 is launched full-scale, which might happen in a decade or so.

So don't worry about losing internet access yet, unless you are part of the .05% group who has issues with the switch to IPv6. The point is that it's out there, and we're ready.

To all Johns Hopkins students, have a safe, restful, and fun Spring Break. The blog will return in 2 weeks. Until then, enjoy this small joy.

Wednesday, March 9, 2011

Cloud Computing Part 2: Applications

So a major question you should be asking right now is: Why are we so worked up about cloud computing now if it's been around and in use for a couple of years already? There are two answers to this question. 1) Microsoft has now become a cloud supplier, and since they've been doing a lot of advertising about it lately, the idea has finally reached the public's ears.

The second reason is far less fickle than the public's attention: The Obama Administration has asked agencies to cut the number of federal data centers by 40% in five years and identify 3 applications to move to a cloud in the next 18 months, one of which must be moved successfully in only 12.

This means that the U.S. Government will be on clouds (and servers) which could potentially be accessible by anyone. Obviously there's an issue with confidentiality, but ever since WikiLeaks went live, transparency in the Government is sky high. Now, they decided, is a good time to switch to cloud computing, and for a number of different reasons, one of which is cost effectiveness. Because cloud computing is mostly cheaper than owning multiple copies of the same software, the United States Government is cutting their technology budget, however marginally. This doesn't mean that taxes are going down anytime soon, but it does mean that the deficit won't be as large as it would have been without the cloud.

The question that the Government is now asking is which cloud provider will best meet their needs. The General Service Provider (GSA) is the odds-on favorite (mostly because it's also controlled by the Government) for most departments, but since each department is run individually, the choices will be varied. Some may choose public cloud providers such as Amazon or Salesforce, and some may even choose Microsoft.

The most technically-savvy of the departments will use their own cloud because they are equipped with the infrastructure and tech support to have it. For example, NASA's cloud, nicknamed Nebula, is an open-source cloud computing service specifically designed for NASA scientists and data processing. The Department of Energy (DOE) will be using its own Magellan program due to the specificity needed for their research problems, and the lack of this technology on public clouds.

Other, smaller municipalities are heading in this direction as well. New Mexico is looking to reduce IT and electricity costs with cloud computing, and in 2010 New York City made a deal with Microsoft for a single, citywide license under which the city will pay only for the applications that city employees actually use.

So the next time someone says you have your head in the clouds, retaliate by saying "That's where all the information is." You wouldn't be lying either.

Wednesday, March 2, 2011

Cloud Computing Part 1: Basics

To the cloud?

That's where everyone, from commercial users to large companies to the United States Government, seems to be going. Although the concept of cloud computing is relatively new, it has impacted the way we all think about data storage and program use, even if you have no idea what it is. You are not alone in this oblivion; until yesterday, this blogger had no idea what cloud computing was, but I knew I needed to find out.

This is precisely the reason that this week's article is about cloud computing: few people have a clear idea of what it is, but it's about to change everything about how we work with others.

http://tomlambert.com/cloud-computing-will-rule-the-world/
Cloud computing is best thought of as "pools" of computer resources and data storage in which each pool is run by an individual, major company, such as Google or Microsoft. The programs offered by the company will be accessible to every computer in the cloud, just as it is now on the internet or through software installation, but the best part is that you don't need to buy individuals resources and there are no compatibility issues. Essentially, the hardware itself becomes virtualized. Continuing with the pool analogy, it's more like renting a kick-board or flippers in the pool instead of buying your own. This greatly reduces the cost of operating large (and small) businesses, one of the benefits of cloud computing.

Yet another useful feature of the cloud is that any computer within the cloud can be accessed by another computer (hopefully with a password of sorts to prevent any kind of unauthorized access). Aware of the security breaches this kind of openness would cause for its users, the companies who create and maintain the clouds are extremely careful and sensitive to any kind of problem. While these systems seem prime targets for attack, companies recognize this and take extensive measures to prevent it from happening.Specialized teams at cloud headquarters act as highly observant lifeguards on the edges of the pool, ready to jump and save any piece of data that's in danger. In truth, even if a malicious person wanted to bring down the entire cloud cluster, there are so many nodes (sources of data) that it would take far too long for him to succeed.

One of the best parts of the cloud is the almost-endless data storage. While users pay for the ability to store data on a cloud, it's actually a better investment than having multiple back-up files on flash drives and external storage units. Even if you have multiple computers, the cloud will make it so that you have multiple machines, with their files and their programs, on the one computer you are using at that moment.

The layers of a cloud
To gain access to a cloud, first you need to purchase it from a vendor, which could be Microsoft's Azure, Google's App Engine, or any other one not mentioned here. It is a matter of best fit for you and what you need to be able to do on the cloud. Your computer, the client, is able to interact with the application on the cloud in the same way you, as a human, interact with your computer's normal (not cloud) programs. The platform works with the cloud's infrastructure, and controls the deployment of programs, minus the cost and extensive tech support. The infrastructure is the cloud itself, and it varies for each cloud's operating system, but the overall goal is to connect it to a massive server, which is where the data and programming is stored. These are maintained at buildings far away from where your computer is, so you don't have to worry about it at all.Although there are certain parts of each level which interact with each other, the majority of the information is trapped in one layer, minimizing the potential for security breaches and system downtime. The clouds are so effective that it is successful and operative 99.999% of the time (which means it's down for about 31 seconds every year).

Overall, the cloud seems to have so many benefits that even the Obama Administration has declared that the number of federal data centers will be cut by 40% in five years (about 420 of them in total), and that various agencies "identify applications to move to the cloud within 18 months," according to Government Computer News magazine. There will be more about this in next week's blog article. As for now, you've been inundated with enough cloud information.

Special thanks to Eric Caruso of Brown University for his help in explaining to me (in simple English) what a cloud is.