What is GNU and what are the benefits of using it?

April 3rd, 2014 by Rossy Guide

Basic introduction

GNU is a Unix-like computer operating system developed by the GNU Project. It is composed wholly of free software. It is based on the GNU Hurd kernel and is intended to be a “complete Unix-compatible software system”. GNU is a recursive acronym for “GNU’s Not Unix!” chosen because GNU’s design is Unix-like, but differs from UNIX by being free software and containing no UNIX code.

Basic architecture of GNU OS

Advantages and disadvantages

Advantages of GNU:

o Low Cost
o Open Source software packages
o Stable
o Performance
o Network friendliness
o Compatibility
o Configurability
o Multitasking
o Security
o Ever improving without adding cost to the end user

Disadvantages of GNU:

o Learning curve is higher for people exposed only to MS Windows
o It was initially designed by programmers for programmers, so for normal users it’s difficult to grasp at the beginning
o Not all MS Windows application equivalents present in Linux
o Administration of Linux systems is tough for beginners
o Not all hardware are compatible, especially peripherals, whose drivers may not exist Comparison with Windows

Comparison with Windows

This section compares the Windows and GNU architectures.

Kernels and APIs

o In GNU, the API functions are called system calls. And Windows has an API for programming calls to the executive.
o Windows has an API for programming calls to the executive. In addition to this, each subsystem provides a higher-level API.

Kernel Objects and Handles

o In UNIX, the kernel object can be created using the system calls and it returns an unsigned integer. There is no exact equivalent of handles in UNIX.
o In Windows, Windows APIs are used to create the kernel object and it returns a Windows-specific data type called HANDLE.

Hardware Drivers

o In GNU, there are several different ways to manage drivers.
o In Windows, the Windows driver model provides a platform for developing drivers for industry-standard hardware devices attached to a Windows-based system.

Process Management

o Both Windows and GNU operating systems support processes and threads.
o The sections provide more details on process management in both GNU and Windows are Multitasking, Multiple users, Multithreading & Process hierarchy’.

Daemons and Services

o In GNU, a daemon is a process that the system starts to provide a service to other applications.
o A Windows service is the equivalent of a GNU daemon. It is a process that provides one or more facilities to client processes.

Virtual Memory Management

o Both GNU and Windows use virtual memory to extend the memory available to an application beyond the actual physical memory installed on the computer.

Security

o GNU uses a simple security model.
o Windows uses a unified security model that protects all objects from unauthorized access.

Networking

o The primary networking protocol for GNU and Windows is TCP/IP.

User Interfaces

o GNU supports the graphical user interface using the X Windows system.
o The Windows user interface was designed to take advantage of advancements in the graphics capabilities of computers.

System Configuration

o GNU users generally configure a system by editing the configuration files with any of the available text editors.
o Windows has GUI tools for configuring the system.

DLLs and Shared Libraries

o Windows and UNIX both have a facility that allows the application developer to put common functionality in a separate code module.

Overview of SFTP, FTPS, SCP, and FTP

April 2nd, 2014 by Rossy Guide

SFTP

The SSH File Transfer Protocol (also known as Secure FTP and SFTP) is a computing network protocol for accessing and managing files on remote file systems. SFTP also allows file transfers between hosts, similar to the SCP protocol. It encrypts commands and data both, preventing passwords and sensitive information from being transmitted in the clear over a network.

SFTP clients are programs that use SSH to access, manage, and transfer files.  Graphical clients are available for SFTP, or you can use it from the command line on a UNIX or Mac OS X computer.

FTPS

FTPS is an extension to the commonly used File Transfer Protocol (FTP) that adds support for  the Transport Layer Security (TLS) and the Secure Sockets Layer (SSL) cryptographic protocols.

Two separate methods were developed to invoke client security for use with FTP clients: Explicit or Implicit. The explicit method is a legacy compatible implementation where FTPS-aware clients can invoke security with an FTPS-aware server without breaking overall FTP functionality with non-FTPS-aware clients. The implicit method requires that all clients of the FTPS server be aware that SSL is to be used on the session, and thus is incompatible with non-FTPS-aware clients.

SCP

Secure copy or SCP is a means of securely transferring computer files between a local host and a remote host or between two remote hosts. It is based on the Secure Shell (SSH) protocol. The term SCP can refer to one of two related things, the SCP protocol or the SCP program.

The SCP protocol is a network protocol, based on the BSD RCP protocol, which supports file transfers between hosts on a network. The SCP program is a software tool implementing the SCP protocol as a service daemon or client.

FTP

File Transfer Protocol is a standard Internet protocol for transmitting files between computers on the Internet. It is an application protocol that uses the Internet’s TCP/IP protocols. It is commonly used to transfer Web page files from their creator to the computer that acts as their server for everyone on the Internet. It’s also commonly used to download programs and other files to your computer from other servers.

Basic FTP support is usually provided as part of a suite of programs that come with TCP/IP.

Main differences

FTPS is FTP using the SSL protocol for encryption. This is different from the SCP/SFTP family of protocols which use SSH as their transport tunnel. You will usually use the same client programs for scp and sftp, whereas you usually use a web browser or web Download manager for FTPS. FTPS is web-based, whereas SFTP is based on secure shell protocols pioneered on *NIX systems.

Differences between FTP, SFTP, FTPS, SCP

FTP

FTP classic

1. Plain FTP
2. Clear-text password sent over the network
3. Typically runs over TCP port 21

 

FTP/SSL

FTP over TLS/SSL

1. Often called ‘FTPS’ and ‘Secure FTP’
2. Plain FTP over TLS/SSL channel
3. Password and Transfer are encrypted
4. Typically runs over TCP port 21 or 990

 

SFTP

`SSH File Transfer Protocol

1. Has nothing common with original FTP
2. Often called ‘Secure FTP’
3. Password and Transfer are encrypted
4. Typically runs over TCP port 22

 

What are Local IP and Global IP?

April 1st, 2014 by Rossy Guide

Local IP

A network may contain multiple computers or other devices each having their own IP address (or addresses). A local IP address is a network device’s IP address intended to be used by other computers on a LAN to identify it. A local IP address is often a private IP address, although computers connected directly to the Internet via cable modem, for example, are given public addresses. Note that local IP addresses only loosely relate to geographic location.

Global IP

The global IP address is the IP address at which others on the internet see your connection as originating from. The global IP address is unique and assigned only to a single device. It can be moved to different servers in different locations.

Global IP’s provide IP flexibility by allowing users to shift workloads between servers. Global IP’s also provide IP persistence by allowing for transitions between servers and CCI’s.

To configure a global IP to your windows server, please complete the following steps:

Browse to

1. Start >> Control Panel >> Network Connections >> Local Area Connection (Public) (properties).
2. Select “Internet Protocol (TCP/IP)” and click Properties >> Advanced.
3. From here you will need to select “Add” in the IP addresses section and enter in the IP address and Subnet mask.
4. Once this is complete, simply “OK” back to the desktop.
5. To verify that your settings have taken effect, open a dos prompt by browsing to Start >> Run >> “cmd” and run the command ‘> ipconfig /all‘.

 

Difference between them:

o A global IP address is assigned to a computer or modern by an internet service provider and can be communicated with from anywhere on the internet.

o Global IP addresses are unique and assigned only to a single computer or device.

o Local IP addresses (Private IP Addresses) are assigned by a router and include 10.0.0.0 to 10.255.255.255, 172.16.0.0 to 172.31.255.255 and 192.168.0.0 to 192.168.255.255.

o Local IP addresses can only be used to communicate within a closed network.

As an example: Bob’s house has two computers and a router. Bob is assigned an IP address of 78.182.2.17 by his ISP. Both of Bob’s computers are connected to a router which is connected to the internet. Router IP: **** Local: 192.168.0.100, Global: 78.182.2.17, Computer one IP: 192.168.0.101 and Computer two IP: 192.168.0.102. When Bob uses either computer one or two to connect to the internet the traffic is passed by the IP address 78.182.2.17 which is his global IP address. The router acts as a gateway to the internet using this IP address. Bob can however communicate between his two computers within his house using the 192.168. IP addresses. If someone on the internet wants to communicate with Bob they use 78.182.2.17 and the router determines which of Bob’s two computers the traffic is intended for as the 78.182.2.17 IP address in this case is actually Bob’s router and is not directly assigned to either computer. Local IP addresses must be unique within a network but individual networks can use the same internal IP addresses provided and they are not connected.

Tips to Create a Strong and Secure Password

March 31st, 2014 by Rossy Guide

Passwords provide the first line of defense against unauthorized access to your computer. The stronger your password, the more protected your computer will be from hackers and malicious software. You should make sure you have strong passwords for all accounts on your computer. If you’re using a corporate network, your network administrator might require you to use a strong password.

To create a strong and secure password that is easy for you to remember, follow these simple steps:

 

1. Do not use personal information:

You should never use personal information as a part of your password. It is very easy for someone to guess things like your last name, pet’s name, child’s birth date and other similar details.

 

2. Mix different character types:

You can make a password much more secure by mixing different types of characters. Use some uppercase letters along with lowercase letters, numbers and even special characters such as ‘&’ or ‘%’.

 

3. Have eight or more characters:

Longer passwords are more secure.

 

4. Avoid sequences or repeated characters:

Examples: 12345678, 222222, abcdefg, or adjacent characters on your keyboard (QWERTY).

 

5. Use a password management tool:

Another way to store and remember passwords securely is to use some sort of password management tool. These tools maintain a list of usernames and passwords in encrypted form. Some will even automatically fill in the username and password information on sites and applications.

 

6. Use different passwords:

You should use a different username and password for each login or application you are trying to protect. That way if one gets compromised the others are still safe. Another approach which is less secure, but provides a fair tradeoff between security and convenience, is to use one username and password for sites and applications that don’t need the extra security, but use unique usernames and more secure passwords on sites such as your bank or credit card companies.

 

7. Change your passwords:

You should change your password at least every 30 to 60 days. You should also not re-use a password for at least a year.

 

8. Enforce stronger passwords:

Rather than relying on every user of the computer to understand and follow the instructions above, you can configure Microsoft Windows password policies so that Windows will not accept passwords that don’t meet the minimum requirements.

 

9. Be different than your password for other sites:

Otherwise, if someone acquires that one password, they could use it to access your accounts with other sites.

 

10. Use a passphrase:

Rather than trying to remember a password created using various character types which is also not a word from the dictionary, you can use a passphrase. Think up a sentence or a line from a song or poem that you like and create a password using the first letter from each word.

For example, rather than just having a password like ‘yr$1Hes’, you could take a sentence such as “I like to read the About.com Internet / Network Security web site” and convert it to a password like ‘il2rtA!nsws”. By substituting the number ‘2’ for the word ‘to’ and using an exclamation point in place of the ‘i’ for ‘Internet’, you can use a variety of character types and create a secure password that is hard to crack, but much easier for you to remember.

What are the Different Types of Encryption Methods?

March 30th, 2014 by Rossy Guide

Introduction

Encryption is a technique for transforming information on a computer and it is essentially to translate normal text into cipher text. Encryption can help ensure that data doesn’t get read by the wrong people, but can also ensure that data isn’t altered in transit, and verify the identity of the sender.

 

Three main types:

There are three basic encryption methods: hashing, symmetric cryptography, and asymmetric cryptography are as below.

o Hashing

Hashing creates a unique, fixed-length signature for a message or data set. Each “hash” is unique to a specific message, so minor changes to that message would be easy to track. Once data is encrypted using hashing, it cannot be reversed or deciphered.

o Symmetric methods

Symmetric encryption is also known as private-key cryptography, and is called so because the key used to encrypt and decrypt the message must remain secure, because anyone with access to it can decrypt the data. Using this method, a sender encrypts the data with one key, sends the data and then the receiver uses the key to decrypt the data.

o Asymmetric methods

Asymmetric encryption, or public-key cryptography, is different than the previous method because it uses two keys for encryption or decryption. With this method, a public key is freely available to everyone and is used to encrypt messages, and a different, private key is used by the recipient to decrypt messages.

 

Hashing – how it works:

The key in public-key encryption is based on a hash value. This is a value that is computed from a base input number using a hashing algorithm. Essentially, the hash value is a summary of the original value. The important thing about a hash value is that it is nearly impossible to derive the original input number without knowing the data used to create the hash value. Here’s a simple example:

Input Number

Hashing Algorithm

Hash Value

10,667

Input# x 143

1,525,381

 

You can see how hard it would be to determine that the value 1,525,381 came from the multiplication of 10,667 and 143. A 128-bit number has a possible 2128, or 3,402,823,669,209,384,634,633,746,074,300,000,000,000,000, 000,000,000,000,000, 000,000,000 different combinations — this would be like trying to find one particular grain of sand in the Sahara Desert.

Symmetric cryptography – how it works:

Let’s assume that Alice wants to talk to Bob. She wants to keep the message secret. Bob is the only one who should be able to read the message. The message is confidential, so Alice uses a key to encrypt the message. The original message is called a plaintext while the encrypted message is called a ciphertext. The ciphertext is sent to Bob, who knows the key and uses the same symmetric cipher (e.g., AES or 3DES). Thus Bob is able to decrypt the message.

Asymmetric cryptography:

Two keys are used in asymmetric cipher (e.g., RSA)—a public and a private one. The public one is available for everyone, but the private one is known only by the owner. When the message is encrypted with the public key, only the corresponding private key can decrypt it.

Asymmetric cipher solves the problem of secure key distribution. Alice takes Bob’s public key and uses it to encrypt the session key. Only Bob can then decrypt the encrypted session key, because he is the only one who knows the corresponding private key. Asymmetric ciphers are quite slow when compared with the symmetric ones, which is why asymmetric ciphers are used only to securely distribute the key. Then, Alice and Bob can use symmetric cipher and the session key to make the communication confidential.

What is Metafile in Windows?

March 29th, 2014 by Rossy Guide

Description

A metafile is a file containing information that describes or specifies another file. Microsoft uses this term for its Windows Metafile (WMF) format. A WMF file contains a sequence of graphical-device-interface (GDI) function calls that result in the presentation of a graphic image. Some of the function calls are equivalent to vector graphics statements and others identify stored bitmap or literal specifications of which bits to illuminate. Using WMF files rather than already-built bitmaps saves space when many bitmaps are used repeatedly by different components of the operating system or of an application. The Windows Metafile is a 16-bit metafile format that can contain both vector information and bitmap information. It is optimized for the Windows operating system.

 

Different types of files

There are six types of metafiles. They are,

o Bitmap

o Computer Graphics

o Clipboard

o CorelDraw!

o Enhanced

o Macintosh Picture

BMP: Windows bitmap

Windows bitmaps store a single raster image in any color depth, from black-and-white to 24-bit color. The Windows bitmap file format is compatible with other Microsoft Windows programs. It does not support file compression and is not suitable for Web pages.

CGM: Computer Graphics Metafile

The CGM metafile can contain vector information and bitmap information. It is an internationally standardized file format that is used by many organizations and government agencies, including the British Standards Institute (BSI), the American National Standards Institute (ANSI), and the United States Department of Defense.

CLP: Clipboard metafiles

Clipboard metafiles are stored in Microsoft Clipboard Viewer files (file extension .CLP) and Microsoft Windows Write files (file extension .WRI). Clipboard metafiles are also based on the standard metafile format, but are preceded by an additional 8- or 16-byte header that allows the position of the metafile on the Clipboard viewer.

CDR: CorelDraw!

The CorelDraw! metafile can contain both vector information and bitmap information. CDR is widely used in the prepress industry and the artistic design industry.

EMF: Enhanced Metafile

The Enhanced Metafile format is a 32-bit format that can contain both vector information and bitmap information. This format is an improvement over the Windows Metafile Format and contains extended features, such as the following:

o Built-in scaling information
o Built-in descriptions that are saved with the file
o Improvements in color palettes and device independence

The EMF format is an extensible format, which means that a programmer can modify the original specification to add functionality or to meet specific needs. This modification can lead to incompatibilities between different types of EMF pictures.

PICT: Macintosh Picture

The PICT file is a 32-bit metafile format for the Macintosh computer. PICT files use Run Length Encoded (RLE) internal compression, which works reasonably well. PICT files support JPEG compression if QuickTime is installed.

How to Change the IP Address of Your Computer?

March 28th, 2014 by Rossy Guide

What is IP Address?

The Internet Protocol (IP) is the method or protocol by which data is sent from one computer to another on the Internet. Each computer (known as a host) on the Internet has at least one IP address that uniquely identifies it from all other computers on the Internet. The format of an IP address is a 32-bit numeric address written as four numbers separated by periods. Each number can be zero to 255. For example, 1.160.10.240 could be an IP address.

 

How to change it in Windows Vista?

1. Open the Start Menu, right-click on Network, and select Properties.
2. The Network and Sharing Center opens…click on Manage network connections.
3. Right-click on the network adapter you want to assign an IP address and click Properties.
4. Highlight Internet Protocol Version 4 (TCP/IPv4) then click the Properties button.
5. Now change the IP, Subnet mask, Default Gateway, and DNS Server Addresses. When finished click OK.
6. Close the Local Area Connection Properties for the settings to go into effect.
7. Open the Command Prompt and do an ipconfig to verify the changes were successful.

 

How to change it in Windows 7 and 8?

To change the computer’s IP address in Windows 7 & 8,

1. Type network and sharing into the Search box in the Start Menu and select Network and Sharing Center when it comes up.
2. Then when the Network and Sharing Center opens, click on Change adapter settings. This will be the same on Windows 7 or 8.
3. Right-click on your local adapter and select Properties.
4. In the Local Area Connection Properties window highlight Internet Protocol Version 4 (TCP/IPv4) then click the Properties button.
5. Now select the radio button. Use the following IP address and enter in the correct IP, Subnet mask, and Default gateway that corresponds with your network setup. Then enter your Preferred and Alternate DNS server addresses.
6. Check Validate settings upon exit. Then click OK.
7. Now close the Local Area Connections Properties window.
8. Windows 7 will run network diagnostics and verify the connection is good.
9. Open the command prompt and do an ipconfig to the network adapter settings have been successfully changed.

Computer Programming: Linux vs. Mac OS X vs. Windows

March 27th, 2014 by Rossy Guide

What is computer programming?

Creating a sequence of instructions to enable the computer to do something is called computer programming. It is a process that leads from an original formulation of a computing problem to executable programs. It involves activities such as analysis, understanding, and generically solving such problems resulting in an algorithm, verification of requirements of the algorithm including its correctness and its resource consumption, implementation (or coding) of the algorithm in a target programming language, testing, debugging, and maintaining the source code, implementation of the build system and management of derived artifacts such as machine code of computer programs.

Difference between the use of Linux, Mac OS X and Windows for programming

Windows is a general applications OS, targeted largely at businesses. It has a very wide range of applications, many of which can be downloaded and run for free.

Mac OS X is the operating system for Apple computers. It has a highly polished user interface, takes very little effort to use, and has decent tech support.

Linux is the most popular attempt to create a Unix-like operating system for personal computers.

 

Advantages / disadvantages

o Windows:

Pros:

– Compatibility
– Technical support
– Huge quantity of function

Cons:

– Viruses
– Slow
– Price

o Macintosh:

Pros:

– Viruses
– Reliability
– Looks

Cons:

– Expensive
– Only available on Apple computers
– Compatibility

o Linux:

Pros:

– Price
– Variety
– Viruses

Cons:

– Complicated
– Compatibility
– Vendors

Some Great Programming Languages to Learn

March 26th, 2014 by Rossy Guide

Introduction

A programming language is a set of commands, instructions, and other syntax use to create a software program. The following programming languages are commonly used in computer software units.

Java – basic information:

Java is a computer programming language that is concurrent, class-based, object-oriented, and specifically designed to have as few implementation dependencies as possible.  Java applications are typically compiled to byte code that can run on any Java virtual machine regardless of computer architecture. Java was originally developed by James Gosling at Sun Microsystems and released in 1995.

C++:

C++ is one of the most popular programming language for graphical applications, such as those that run in Windows and Macintosh environments.

Objective-C:

Objective-C is a general-purpose, object-oriented programming language that adds Smalltalk-style messaging to the C programming language. It is the main programming language used by Apple for the OS X and iOS operating systems and their respective APIs, Cocoa and Cocoa Touch. Objective-C source code program files usually have .m filename extensions, while Objective-C header files have .h extensions, the same as for C header files.

Python:

Python is an easy to learn, powerful programming language. It has efficient high-level data structures and a simple but effective approach to object-oriented programming. The Python interpreter is easily extended with new functions and data types implemented in C or C++. It runs on Windows, Linux/Unix, Mac OS X, and has been ported to the Java and .NET virtual machines.

Ruby:

Ruby is a dynamic, reflective, object-oriented, general-purpose programming language. It supports multiple programming paradigms, including functional, object-oriented, and imperative. It also has a dynamic type system and automatic memory management.

PHP:

PHP is a server-side scripting language designed for web development but also used as a general-purpose programming language. It can perform any task that any CGI program can do, but its strength lies in its compatibility with many types of databases.

C#:

C# is an object-oriented programming language used with XML-based Web services on the .NET platform and designed for improving productivity in the development of Web applications. C# boasts type-safety, garbage collection, simplified type declarations, versioning and scalability support, and other features that make developing solutions faster and easier, especially for COM+ and Web services.

C Language:

C is an imperative language. It was designed to be compiled using a relatively straightforward compiler, to provide low-level access to memory, to provide language constructs that map efficiently to machine instructions, and to require minimal run-time support.

Windows 7 Error – Cannot Click Desktop Icons

March 25th, 2014 by Rossy Guide

How does this happen?

The Windows 7 error is a software or hardware problem that prevents a program from working correctly. It might cause you to lose information in the file you’re working on, cause errors in the file (corrupt the file) so you can’t work with it, or prevent you from using a feature. Unlike stop errors, runtime errors don’t typically cause Windows or a program to stop working.

Windows 7 errors can occur if you are running two software programs that aren’t compatible, if your computer has memory problems, or if the computer has been infected with malicious software. If this type of error keeps occurring, follow these steps:

o Install the latest updates for Windows and for the program displaying the error.

o Check Action Center for a solution to the program displaying the error. When you have Windows Error Reporting turned on and a program stops working, a problem report is typically sent to Microsoft for more analysis. If a solution is available, or there are steps you can take to minimize the likelihood of the problem recurring, they’ll be available in Action Center.

o Update and run your antivirus software. Windows doesn’t come with antivirus software, but Action Center can often monitor the antivirus software that you or your computer manufacturers have installed.

o Make sure your computer has at least the minimum amount of random access memory (RAM) required to run the program that is displaying the error. Look for the program requirements online or in the packaging information.

 

How it can be managed?

First temporarily disable security software and check. If it works then it’s your security software/softwares causing the issue.

Else, try the following and check if it helps.

1. Hit ctrl+shift+escape to open Task Manager.
2. On the processes tab , locate explorer.exe and select it,
3. Then click ‘end process’.  This should clear the desktop save the background.
4. Now move to the applications tab and click on ‘new task’.
5. Type in explorer.exe and click OK to reload the desktop.
6. Try clicking on some icons and check if it works fine. If so, then you have something loading at boot that is interfering with the desktop.

If the issue persists, check in Clean Boot as there could be some third party software interfering:

Clean Boot:  

To help troubleshoot error messages and other issues, you can start Windows Vista by using a minimal set of drivers and startup programs. This kind of startup is known as a “clean boot”.  A clean boot helps eliminate software conflicts.

How-to run Windows in Selective Startup (Clean Boot)…

o Click Start, click Control Panel, click System and Maintenance, click Administrative Tools, and then double-click System Configuration.
o Click Continue, or provide Administrator credentials if prompted.
o Click the General tab, and click Selective startup.
o Under Selective startup uncheck Load startup items.
o Click the Services tab, check the Hide all Microsoft services box, and then click Disable all.
o Click the Apply, then OK, and then Restart.