Wednesday, 21 January 2015

What Does Flash BIOS Mean?

Flash BIOS is a term used to describe the process of updating a computer's motherboard. It is usually done to increase compatibility or increase the performance capabilities of a computer. While it become an easier process to perform over the years, some computer experts do not recommend novices attempt it without assistance, as it can permanently damage a computer if done using improper methods.

BIOS Definition -
BIOS stands for Basic Input Output System. It is the firmware program for a computer, and comes pre-installed on all motherboards that are used for home PCs. It is the first things that loads up when a computer is turned on, checking to make sure all the components of a computer are properly running before turning over control of the computer to the operating system. The BIOS of a system can be accessed during the boot process, and is usually done to change the boot order of drives, enable/disable certain hardware components, or tweak things like computer fan speed.

Effects -
All computers come installed with BIOS on their motherboards, but many times during the life cycle of a motherboard the BIOS may be updated. These updates may increase the performance capabilities of a computer, add compatibility for new devices or fix bugs that might have gone unnoticed during the initial release. BIOS updates are motherboard-specific and not universal. One BIOS update for another motherboard will not work for another. Attempting to flash the BIOS of a motherboard with the wrong BIOS can cause serious errors.

Process -
The process of flashing BIOS starts by first getting the updated BIOS. These files can usually be found at the motherboard manufacturer's website. In addition to downloading the new BIOS, a person must also download a special program to flash the BIOS. Many modern motherboards can be flashed while still in Windows. Older motherboards require a user to download special tools that can only be used when booting a computer into DOS. Then special text commands must be entered for the BIOS to be uploaded to the motherboard.

Warning -
If a computer's BIOS is flashed incorrectly, or if something like a power disruptions interrupts the flashing process, it can severely damage a computer-usually making it impossible to properly boot. If a BIOS flash goes wrong a user will usually have to manually open up their computer and change their motherboard's "jumpers." These small switches can be used to undo a BIOS flash and set a computer's BIOS settings back to their factory defaults.

Expert Insight -
While flashing a computer's BIOS has become easier in recent years thanks to Windows tools that can complete the process, it is still something that many computer experts don't advise others do unless absolutely necessary. If a computer is working properly and does not need any BIOS upgrades to be compatible with new hardware or software, then it probably doesn't need to be upgraded at all.

What is VFS (vitual file system) ?

Defined link between operating system kernel and different file systems

supplies application with the system call for the file management
( like open, read ) maintain internal data str and passes appropriate
task to appropraite file system

Provide standard actions ( lseek )

No file system will actually provide lseek

Difference b/w Emulator and Simulator?

Simulator -

write a program that draw the calculator's display and keys and when
user clicks on the keys your progra, does what the old calculator did.

duplicate the behaiour of device

Emulator -

you get a dump of the calculator firmware , then write a program
that loads the firmware and interpret in the sameway the u.p in the
calculator did.

duplicate the inner working of the device.

in emulator s/w platform is created on which the emulated code can be run
in ahost computer having different h/w and a different instr set.

What is patch file and how to create patch file?

To patch a file means to modify it, with the connotation
that the modification is generally small.

The usage comes from the general English usage where a patch
is a small modification (to a piece of cloth, for example).

When it comes to files, a patch is not always a repair.

A patch is a series of instructions that describe how to modify
a file or a set of files.

In the unix world, a patch is usually the output of the diff command,
describing changes in a text file. A patch in this sense describes
the modifications in terms of adding, removing or modifying lines
in the files. The patch utility applies these instructions to modify
a file or set of files.

It tries to be smart about applying multiple patches to the same file,
as the first patch could cause changes that prevent the second one
from being applies because the file is no longer in the expected state.
Because diff and patch strongly base their operation on lines,
they are not well-suited to binary files.

patch file creation and how to patch ?

before doing this, please backup your source code, patch wrongly
will screwup your source code.

how to create patch file?

Patch file is a readable file that created by diff with -c
(context output format).

It doesn’t matter and if you wanna know more, man diff.

To patch the entire folder of source codes(as usually people do)
I do as bellow:

Assume Original source code at folder Tb01, and latest source
code at folder Tb02. And there have multiple sub directories at
Tb01 and Tb02 too.

====> diff -crB Tb01 Tb02 > Tb02.patch

-c context, -r recursive (multiple levels dir), -B is to ignore
Blank Lines.

put -B because blank lines is really useless for patching,
sometimes I need to manually read the patch file to track the changes, \
without -B is really headache.

How to patch?

First of all, please do a dry-run before really patch it.

Bare in mind, patch will be working very specifically.

Let say the version 3 Tb03.patch is use to patch from Tb02,
if you apply patch on Tb01, sometimes it will corrupt your source code.
So, to make sure it works, do a dry run.

Dry-run means a fake-test, do it at the directory of the source code
targeted to patch.

Doing dry-run like this:

====> patch --dry-run -p1 -i Tb02.patch

The success output looks like this:

patching file TbApi.cpp
patching file TbApi.h
patching file TbCard.cpp

The failure ouptut looks like this:

patching file TbCard.cpp
Hunk #2 FAILED at 585.
1 out of 2 hunks FAILED -- saving rejects to file TbCard.cpp.rej
patching file TbCard.h
Hunk #1 FAILED at 57.
Hunk #2 FAILED at 77.
Hunk #3 succeeded at 83 with fuzz 1 (offset -21 lines).

At last, if the dry-run is giving good result,
do this and enjoy the compilation.

====> patch -p1 -i Tb02.patch

Second, if there were files in Tb02 that did not exist in Tb01 and
you want them included in the patch, give diff the -N option:

diff -crBN Tb01 Tb02 > Tb02.patch

Lastly, I’d note that diff and patch really only work with text files.
It can’t deal with jpegs, pdfs, or other binary objects.

This can be a bit of a pain for web and GUI developers.