Category Archives: Computing

Tinker Board: Raspberry Pi Competitor from ASUS

The community of single board computer users is passionate and the DIY enthusiasts are growing daily. While they are infatuated with the amazingly tiny package called the Raspberry Pi (RBPi), they are constantly clamoring for more performance and connectivity features. This demand has produced several competitors to the RBPi, and the tech giant, ASUS Computers is now providing one in the form of a Tinker Board.

The ASUS Computers product is a mini-PC based on the ARM core, and its actual model number is the ASUS 90MB0QY1-M0EAY0. However, it is easier to remember it as the Tinker Board. The smart name from ASUS for the product is the exact demographic of its intention, offering a tiny, all-in-one product for makers and tinkerers, to use in media servers, fun projects, and embedded applications. For instance, the Tinker Board allows one to build a personal NES Mini alternative.

Although a 64-bit ARM Cortex-A47 quad-core processor, the Broadcom BCM2837, powers the RBPi3 at 1.2 GHz, a 32-bit ARM Cortex-A17, the quad-core Rockchip RK3288 processor powers the Tinker Board, operating at 1.8 GHz. ASUS claims the Tinker Board is almost twice as fast as the RBPi3 model B. Additionally, against the 1 GB RAM configuration of the RBPi3, the Tinker Board offers 2 GB of RAM.

The Tinker Board has other advantages as well. The hardware includes the complete H.264 4K video decode capability, supported by a far stronger graphics performance from the ARM Mali-T764 with a graphics core of the Rockchip RK3288. The audio capabilities are also better with the Asus minicomputer offering audio sample rates at 192K/24-bit, while the RBPi3 offers only 48K/16-bit, which necessitates an add-on board for HD audio from the RBPi3.

The integrated, Gigabit Ethernet port at full speed on the Tinker Board gives it a substantial boost over the 100 Mb LAN on the RBPi3. Similar to that available on the RBPi3B, the Tinker Board also has an 802.11b/g/n Wi-Fi and Bluetooth 4 capability. In addition, it has support for SDIO 3.0, and offers swappable antennas for the built-in 802.11 b/g/n Wi-Fi module.

Similar to the RBPi3B, the Tinker Board also supports the Debian Linux (modified by ASUS) operating system and KODI, with its slick media streaming interface. Similar to the RBPi, the Tinker Board also comes with no on-board storage, and you have to use a micro SD card. However, the additional capabilities on the Tinker Board make it about twice as expensive as compared to the market price of the RBPi3B.

Physically, both single board computers are of the same size, with mounting holes in the same position. Obviously, ASUS wants the Tinker Board to be a drop-in replacement for the RBPi3. The same configuration of the GPIO pins for both boards lends further support to this credence.

The RBPi concept has spawned a whole new era of tiny computer devices, selling in several schools, colleges, and universities. Many other device manufacturers have since piled on and released their own version of the credit-card sized powerhouse.

In this chaotic, crowded environment, the specifications of the Tinker Board, although not ground breaking, could play nicely in the existing RBPi-based projects.

How Do You Count People Using Wi-Fi?

Other than providing wireless communication facilities, Wi-Fi can have other uses as well. Researchers at the UCSB are now experimenting with a common wireless signal to tell them the number of people present in a designated space. Astonishingly, these people need not be carrying any personal devices on them.

At Professor Yasamin Mostofi’s lab in the UC, Santa Barbara, researchers are demonstrating that wireless signals have more uses than simply providing access to the Internet. With a Wi-Fi signal, they are counting the number of people in a given space. According to the researchers, this technology can lead to diverse applications, such as search-and-rescue operations and energy efficiency.

Mostofi explains the process as estimating the number of people walking about in an area, based on the scattering and received power measurements of a Wi-Fi link. Moreover, it is unnecessary for the people being counted to carry any Wi-Fi enabled telecommunications devices.

In the demonstration, the researchers placed two Wi-Fi cards at the opposite sides of a target area measuring roughly 70-square-meters. They measured the received power of the link between the two cards, and this approach allowed them to estimate the number of people walking about in that area. So far, they have been successful in detecting up to nine people in both outdoor and indoor settings. Mostofi’s research group will be publishing their findings in the special issue on location-awareness for radios and networks in the Selected Areas in Communication of the publication of the Institute of Electrical and Electronics Engineers Journal.

According to Mostofi, the main motivation for this work comes from counting several continuously walking people in a small area by measuring only the power of one link of the Wi-Fi signal.

The researchers count people relying to a large extent on the changes in the received wireless signal. Human bodies scatter wireless signal, and when a person crosses the direct wireless link between the two cards, there is a distinct attenuation of the signal—both effects combining to form multi-path fading. Based on these two key phenomena, and a probabilistic mathematical framework, the researchers have proposed a method of estimating the number of people walking in the space.

With Wi-Fi abounding in most urban settings, the researchers estimate a huge potential for their findings for many diverse applications. For instance, smart homes and buildings can estimate the heating and air-conditioning requirements based on occupancy or the number of people present in a given space at the time. Stores can go for better business planning based on the number of shoppers on specific days of the week.

Occupancy estimation could also help in security and rescue operations. Remote estimation of the number of people stranded at a place can help with the organization and logistics involved in arrangement of the transportation required to rescue them. Mostofi and his team have also done extensive research work in their lab involving estimation of stationary objects and humans through walls using Wi-Fi signals. They ultimately plan to bring the two projects together in the future, so that security and rescue operations can commence with better preparation.

Pi-Top: Convert your Raspberry Pi into a Laptop

Although we call the Raspberry Pi or RBPi as a single board computer and it is small enough to fit in your pocket, it is hardly useful as a computer when you are on the move. This is mainly because the SBC comes without a keyboard, display, and mouse, intended to keep the costs down. However, if you are interested in turning your RBPi3 into a laptop, there is the Pi-Top.

You get everything necessary to turn your $35 single board computer into a laptop. For instance, you get a 13.3” HD LCD screen with an eDP interface and 1366×768 pixel resolution, which comes with an active 262K color matrix, anti-glare finish, and a 60 Hz refresh rate TFT LCD module. Additionally, you get a keyboard that is fully programmable via USB and a trackpad with a PalmCheck feature that helps prevent unwanted mouse clicks.

Although the Pi-Top converts the RBPI into a general-purpose laptop, its actual strength lies in its being a tinkerer’s toolkit. Pi-Top gives you great power management with LED battery indicators. The power supply requires an input capable of 18 V at 3 A, while it offers two outputs, one of 5 V, 3.5 A, and the other at 3.3 V, 500 mA. One good feature is the 3.3 V output is persistent. That means this voltage is available even when you have powered off the Pi-Top. Battery capacity is substantial, giving a run-time of 10-12 hours. There is protection for all outputs from over-current, over-voltage, over-temperature, and short-circuit. The smart battery pack uses a charging profile recommended by JEITA.

The hub-board of the Pi-Top has a screen driver that converts the HDMI output from the RBPi to the eDP 1.2 interface required by the LCD screen. It allows connection of UART, I2C, and SPI to the RBPi for use with add-on boards. There is even a PS/2 interface. The screen consumes 3 W, but you can dim it with a PWM screen dim control to make it consume less power.

Pi-Top comes with a manual to walk you through the assembly process in steps, while identifying clearly the part necessary to use at each stage. The manual has a pictorial guide to help in assembling the laptop. That makes the job relatively simpler. Since all the tools you need are already included, piecing together the case, cables, and boards into a working laptop is an unforgettable experience. However, you do need to be careful when tightening the smallish 2.5 mm nuts that hold the boards in place, as there are various electronic components on the boards.

Once assembled, the Pi-Top is an impressive sight, with its fluorescent green finish. The external case is injection-molded plastic and is sturdy enough to be travel-worthy. When powered on, you may be surprised at not seeing the familiar Linux-based Raspbian desktop on the screen. That is because the PI-Top re-skins the Raspbian desktop as the pi-topOS. Basically, they have added a launcher and configured the desktop to add a menu button at the bottom left corner – familiar to long-time Windows users with the Start menu.

PINE64 : A 64-bit Contender for the Raspberry Pi

Earlier, a DIY computing project could cost an enthusiast hundreds of dollars. Now, with single board computers such as the Raspberry Pi or RBPi or its latest kin, the Raspberry Pi Zero, anyone can start a new project at the cost of a cup of coffee. Seen from the other side of the fence, a competitor has to include a better choice of components, offer a better price or both. PINE64 Inc. has taken the third route.
PINE54 Inc. is attempting to improve on the legacy so far built up by the RBPi. According to the team, two mathematical constants make up the name of their board – Pi and Euler’s Number e. As it has a 64-bit processor, the name also includes the number 64 along with an A to differentiate it from future versions. The PINE A64 runs on an ARMv8 processor, the Cortex-A53, and is available for just $15.
PINE A64 measures 12.7×7.94cms and uses a 64-bit processor, a quad-core ARM Cortex A53 running at 1.2GHz. A dual-core Mali 400 MP2 handles the graphics. Memory includes a micro SD slot to handle cards up to 256GB and 2GB DDR3 SDRAM onboard. Ports available on the PINE A64 include one gigabit Ethernet, two USB 2.0, one HDMI 1.4 connector for 4K output, a stereo mini-jack connector and a charging circuit for a 3.7V Lithium battery.
PINE64 Inc. will also be offering separate modules to augment the functionality of PINE A64. The modules will add a touch panel port, a 5MP camera port, Bluetooth 4.0 and Wi-Fi connectivity and a 4-Lane MIPI video port. The board runs on 5V power via its micro USB connector, but can fall back on its internal battery with on-board power management.
According to Johnson Jeng, the co-founder of PINE64 Inc., the company has designed a simple, smart and affordable computer. People can use this to bring their next big ideas to life. The 64-bit quad-core single board computer is available at an exceptional price. It is compatible with several open-source platforms, enabling people to build a community of innovation and creativity.
Just like other ARM-based single board computers, you can set up PINE A64 to operate as a gaming console or a mini-computer. You can control your connected home or allow it run your own media center. PINE A64 can operate with Android 5.1, openHAB, Ubuntu Linux, OpenWRT and Kodi. Additionally, it supports Miracast and offers the H.265 video standard to give your 4Kx2K output.
The Raspberry Pi Foundation concentrates on delivering performance without increase in costs, and hence, prefers to retain the ARMv7 architecture for the RBPi family even when ARMv8 64-bit chips are readily available. According to Eben Upton, the founder of the RBPi series, a more powerful processor will certainly come with a boost in the prices.
With companies now launching new Systems-on-a-Chip or SoC platforms that are 64-bit and super-cheap, PINE64 Inc. has decidedly stolen a march over the RBPi series. Allwinner started this trend with the 64-bit Cortex A53 processor for their tablets and now PINE64 Inc. has used it to power their PINE A64, A64+ and A64+ 2GB boards.

Thin Clients with the Raspberry Pi

When deploying a large number of computers at a single location, it is a common practice to employ thin clients. In such cases, several client computers access a powerful central server computer that controls resources such as the hard disk data and Internet access. The logical operating system of the server is isolated from the clients accessing it via a concept known as desktop virtualization.

Implementation of desktop virtualization or VDI follows several conceptual models. One can broadly divide them into two categories depending on whether the operating system executes locally on the client machines or remotely on the server. Therefore, desktop virtualization may not always involve the use of virtual machines.

When the desktop virtualization uses a host-based form, users have to view and interact with their desktops over a network. For this, they must use a remote display protocol. As all processing takes place at the data center housing the server, client devices can be tablets, smartphones, zero clients and thin clients.

Citrix offers a suite of products known as Citrix Receiver with which client devices can easily connect to different desktop virtualization services from Citrix. They offer several types of client platforms and form factors. Included in these are embedded operating systems. zero clients, thin clients, Google Chromebook, Linux, Blackberry Playbook, Blackberry, Android, iPhone, iPad, Mac OS X, Windows Mobile and Windows.

For example, using Citrix Receiver technology, users can connect their client devices to XenDesktop and XenApp desktops and applications via the HDX protocol. They can also connect to the Citrix Access Gateway, XenVault secure storage and other Citrix services.

Citrix has since decided that putting a lot of effort into creating special versions of Receiver for one device is inefficient. Therefore, it has decided to work with the Pi Organization for ensuring their Linux Receiver would work with the new architecture of Raspberry Pi Model 2 or RBPi2 and its supported OS images.

With this effort, it is no longer necessary to have hardware-accelerated plugins for the RBPi2. The new HDX Thinwire and XenDesktop/XenApp 7.6 FP3 compatibility codecs work efficiently on the RBPi2. On the other hand, ThinLinx makes a Thin Client & Digital Signage Operating System for the RBPi. Citrix has tested this OS and has confirmed it is capable of handling video with impressive speed.

According to Citrix, their selection of RBPi2 as a thin client for VDI is based on the inherent security feature of the Single Board Computer. The SBC is secure as there is no on-board storage and the SD card of the computer can be removed and stored in a safe place when not in use. An additional factor is the price. RBPi is far cheaper than any other thin client available in the market. Another advantage is in addition to vanilla models, you can also have custom RBPis as thin clients.

That the RBPi is an interesting VDI option also comes from the fact that all dedicated thin clients require the same hidden costs to make them useful. This includes pointing devices, keyboards, Wi-Fi dongles, SD cards, USB hubs and monitoring devices.

Computer Translated Sign Language

There are many people in the world who cannot hear because their hearing ability is impaired. This disability also precludes them from holding audible conversations with others. For a long time, telephone calls dominated the long-distance communication scenario. However, over the past couple of decades, other means of communication have also evolved, such as emails and text-based messaging. Although these supplement voice calls largely, the problem of face-to-face communication with the deaf still remains.

Using sign language is one means of face-to-face communication that the hearing-impaired use and this is as efficient as their methods of communication using smartphones, tablets and computers. Similar to using any other language, two people can communicate face-to-face only when both are capable of using the sign language. Lately, communication between two individuals is now easier because of the use of translators in computers. This allows the user to understand even when they do not understand the spoken language.

Now MotionSavvy is using the same technology for translating sign language to another language that the user can understand. They are using a dedicated tablet, Uni, created to enable efficient two-way communication between those who can hear and those whose hearing is impaired.

Uni involves the use of two distinct technologies. First, it monitors sign language by using integrated cameras and interprets the signs using a special recognition software. Then it translates the signs into spoken words. The other part of the technology involves converting spoken words into text. This happens when the other person responds by speaking. Uni converts this speech into text, displaying it on the screen for the deaf person to read.

The World Federation of the Deaf claims there are more than 70 million deaf people in the world. With the technology offered by MotionSavvy, there is a dramatic potential to influence the lives of such people.

MotionSavvy is launching Uni with the ability to read at least 2000 signs initially. They will be issuing updates for adding more signs. However, they are offering SignBuilder software, with which users can configure new signs.

Uni is available in two versions – hardware and software. You can buy the hardware device that includes the software, or the software alone. You can use the software-only solution on a computer that has the Leap Motion controller. For both solutions, users need to pay a monthly subscription that allows them access to SignBuilder and CrowdSign.

The basic Uni Dictionary contains about 2000 signs. Although this confers the ability to hold meaningful conversations, individuals can add new vocabulary to Uni Dictionary with the help of SignBuilder. They can also share the new signs with others on the Uni network, by using the software CrowdSign. MotionSavvy expects the number of signs to grow exponentially with people using the two software programs.

At present, Uni is able to recognize signing by hands in front of its camera. Eventually, MotionSavvy expects to implement recognition of all facial emotions. Uni is working for people using signs such as CASE or SEE. MotionSavvy is working on improving recognition and adding more features to accommodate culturally strong ASL users as well.

Android vs. Linux – Which OS is better?

Is Android A Better OS Than Linux?

Android has established itself as an important operating system for mobile devices. Google developed Android as an open source OS based on the Linux kernel. Google selected the Linux kernel because of its proven driver model, existing drivers, process and memory management, networking support and several other core operating system services. However, the Google team had to make several changes to make Android capable of operating mobile devices successfully. Differences with standard Linux are highlighted here.

The target architecture

Although the Linux kernel supports several architectures, right now, Android supports only two: ARM and x86. The ARM platform is more prevalent on mobile phones while the Android-x86 targets mainly the Mobile Internet Devices or MIDs used for general-purpose desktop/laptop/server computing systems. This being the fundamental difference between the two Operating Systems, it provides a strong insight into further divergence between the two.

Modifications in the kernel

Android does not use the standard Linux kernel straightaway, but uses it with some enhancements. These include alarm driver, shared memory driver, inter-process communication interface, power management, low memory killer, kernel debugger and logger. Google has contributed all the kernel enhancements back to the open source community under GPL.

Bionic C library

The GNU C library used by most Linux distributions makes use of the Native POSIX Thread Library or NPTL, which offers high performance, especially in server applications. However, disk space footprint and memory requirements of NPTL are far too large for resource-limited systems such as mobile devices.

This led Google to create a new C library called Bionic. It has fast execution paths, avoids edge cases and remains a simple implementation. As mobile devices are single user systems, for security reasons Google has removed the settings for groups and passwords, keeping only a unique user id and group id. Bionic operates with the limited CPU and memory resources available on Android platforms.

The Dalvik Virtual Machine

Android uses a virtual machine to run applications. Most top cell manufacturers such as Samsung, Motorola and Nokia use J2ME, a mobile optimized version of the Java virtual machine. In contrast, Android uses the Dalvik Virtual Machine, which is a standard Java platform. The dex files used by Dalvik are more compact and optimized to perform well on mobile devices with slow CPUs, limited memory, no swap space and limited battery power.

File system

Most desktop/laptop/server applications use magnetic hard disks, which the standard Linux systems manage with the latest Ext journaling file system. However, magnetic drives are physically too large, too fragile and consume too much power. To provide a robust file system, embedded systems use solid-state memory devices such as NOR for code execution and NAND for storage. Block erasure and memory are important features of solid-state memory, which the Ext file system does not handle. Therefore, Android uses an optimized Linux flash file system called YAFFS and this deals with lifetime limitations, bad block management and error correction for maintaining data integrity in NAND flash systems.

Power management

Standard Linux systems manage power though APM or ACPI. Android does not use either, relying more on its own PowerManager module, which is a Linux power extension. The module has low-level drivers for controlling the peripheral supported such as screen display and backlight, keyboard backlight and button backlight.

Rolly: Rollup Your Keyboards

Anyone who has typed on a touchscreen with his or her thumbs can certify that it gets rather tiring after sometime – especially if you have to hold the smartphone also. At such times, one wishes they had a regular keyboard to allow the use of other fingers also to aid the thumbs. Although a number of keyboards are available, which are small enough to fit easily in the pocket along with the smartphone, LG’s Rolly Keyboard is unique – you can roll and fold it.

LG is coming to the market with an innovatively designed product, the first wireless portable solid keyboard of the industry, which is also roll able. LG’s Rolly Keyboard can easily fit in your pocket, purse or briefcase. It also has two arms that fold out to support your tablet or smartphone, leaving all your fingers free for typing.

Although roll able keyboards are not new in the market, most of these silicone gadgets feel more like an extension of the onscreen keyboard. Their tactile feedback is entirely different from the real feel of a desktop keyboard. That has also led to keyboards with origami-like designs to fit into your pocket. However, LG has managed to combine the feel of a real keyboard with the flexibility of rolling it up.

LG’s Rolly Keyboard, model KBB-700, is made from impact-resistant polycarbonate and ABS plastic. When spread out for use, four rows of keys become visible along with an elongated rectangular box sitting at the top of the keyboard. Inside the box are the two arms that fold out to hold your tablet or smartphone. The box also holds the single AAA battery for powering the keyboard for over three months of normal use. When not in use, the four rows of keys roll up around the rectangular box to form a stick. You can carry the stick easily in your pocket or purse.

Rolly Keyboard uses Bluetooth 3.0 to connect wirelessly to mobile devices. You only have to unroll the keyboard to activate it. Once paired up, any subsequent pairing function works automatically with a specific device. Additionally, you can pair up the keyboard with two devices at a time. A single button press allows you to switch over the keyboard to the other device. Rolly can be powered down simply by rolling it up. The keyboard then forms a stick, making it portable and easy to carry.

Although a portable device, Rolly has a pitch of 17 mm. This, according to LG, is very close to the 18 mm pitch for a desktop keyboard. Pitch being the distance between the centers of any two neighboring keys. That makes typing on Rolly as comfortable as typing on a real desktop keyboard. Additionally, Rolly offers the same tactile feeling as does the desktop keyboard when pressing keys on it. They markings on the Rolly keyboard are high-contrast type and therefore, readability is not an issue.

With Rolly, users can forget the onscreen keyboard on their smartphone. They can keep their smartphone on Rolly’s arms just as they would place a monitor in front of a desktop keyboard. That makes typing on smartphones much simpler than having to use the cramped up keyboard on the screen.

WD PiDrive for the Raspberry Pi

Most users of the RBPi (Raspberry Pi) prefer to use the single board computer for small and simple tasks suited for their low powered hardware. It is also possible for RBPi users to upgrade their hardware for augmenting functions that need more power. For example, users looking for additional memory space can use traditional SD Cards and USB drives. Now, Western Digital is upping the ante with their PiDrive, a one terabyte hard drive, compatible to the RBPi.

PiDrive is somewhat different from the average storage drive commonly seen in desktops and laptops. In place of the usual SATA interface that comes with a typical hard drive, PiDrive employs a USB 3.0 header, modified for the purpose. That means you can connect the drive to the USB port of the RBPi. However, PiDrive goes a step further. You can connect it to the power port on your SBC. The advantage is that you can now power both the RBPi and the PiDrive from the same source, using a single cable.

Since the SBC RBPi cannot boot from any source other than its microSD card, the WD PiDrive also has a built in 4GB microSD card. You can place an operating system on the card, so that the RBPi can boot from it. WD PiDrive is compatible to both RBPi Model B+ and RBPi 2 Model B.

PiDrive consists of a WD Passport drive with a built-in USB controller in place of the usual SATA interface and comes without any plastic enclosure. Earlier also, others have already toyed with the idea of an RBPi that can boot from and store information to a hoard drive. However, most such ventures needed a powered USB hub to transfer power to the drive. WD has removed the need for the USB hub, making the newly equipped RBPi much neater.

The 1TB PiDrive is available in the form of a kit. Along with the 2.5-inch USB hard disk drive, the kit consists of a 5V power adapter, a USB Micro B to Type A power cord, a WD PiDrive cable and a Class4 4GB microSD card with an SD adapter. However, the star attraction of the kit is the WD PiDrive cable. This specially designed cable supplies the necessary power to the PiDrive and the RBPi at the same time. The included power adapter has adequate capacity to handle the power required by both the SBC and the drive. WD provides a Quick Install Guide for making all the connections easily and correctly.

The microSD card with the PiDrive ships blank and you can install another operating system on it safely, without compromising the existing SD card of your RBPi. That means you can test another OS without losing the files or programs on the original SD card.

To use the WD PiDrive with the RBPi for the first time, you will need to partition it, format the partitions and mount them. You can also store your OS on the drive. For that, you must let the boot loader remain on the SD card, writing only the OS on the PiDrive. The WD Labs Community offers detailed instructions for doing this.

What is an Integrated Development Environment?

Those who develop and streamline software use IDEs or Integrated Development Environments. IDEs are software applications providing a programming environment for developing and debugging software. The older way of developing software was to use unrelated individual tasks such as coding, editing, compiling and linking to produce a binary or an executable file. An IDE combines these separate tasks to provide one seamless development environment for the developer.

Developers have a multitude of choices when selecting an IDE. They can choose IDEs made available from software companies, vendors and Open Source communities. There are free versions and those whose pricing depends on the number of licenses necessary. In general, IDEs do not follow any standard and developers select an IDE based on its own capabilities, strengths and weaknesses.

Typically, all IDEs provide an easy and useful interface, with automatic development steps. Developers using IDEs run and debug their programs all from one screen. Most IDEs offer links from a development operating system to a target application platform such as a microprocessor, smartphone or a desktop environment.

Developing executable software for any environment entails creating source files, compiling them to produce the machine code and linking these with each other along with any library files and resources to produce the executable file.

Programmers write code statements for specific tasks they expect their program to handle. This forms the source file and developers write in statements specific to a high-level language such as C, Java, Python, etc. The language of the source file is evident from the extension that developers use for the file. For example, a file written using c language usually has a name similar to “myfile.c.”

Compilers within the IDE translate source files to the appropriate machine level code or object files suitable for the target environment. The IDE will offer a choice of compilers suitable for the proper environment. In the next level, a linker collects all the object files that a program requires and links them together. Linking also takes in specified library files while assigning memory and register values to variables in the object files. Library files are necessary for supporting the tasks needed by the operating system. The output of the linker is an executable file, in low-level code, understood by the hardware in the system.

Without an IDE, the task of the developer is highly complicated. He or she must compile each source file separately. If the program has more than one source file, they must have separate names so that the compiler can identify them. While invoking the compiler, the developer must specify the proper directory containing the source files along with specifying another directory for holding the output files.

Any error in the source files leads to a failure in compiling and the compiler usually outputs error messages. Compilation succeeds only when the developer has addressed all errors by editing individual source files. For linking, the developer has to specify each object file necessary. Errors may crop up at the linking stage also since some errors are detectable only after linking the entire program.