Google wants to create a wave, yet again.With Google Wave, a new tool that allows users to email, chat, play games, hold video conferences, edit documents, add images and conduct search, all in a single window.
Google Wave is a real-time multifaceted communication and collaboration platform.
It unifies different web technologies such as email, instant messaging, wiki, online documents and social networking.
Google Wave works on the idea of providing a real-time communication and collaboration by integrating established and emerging web technolgies.
Colayer, a Swiss-Indian software company, already provides a platform for companies to communicate, collaborate and co-create by building interactive social Web 2.0 environment
Microsoft, which is trying hard to catch up with Google on the internet, and Yahoo are widely expected to come up with Wave-like offerings. Buying out Colayer may be an option all three might be looking at.
What is a wave?
A wave is equal parts conversation and document. People can communicate and work together with richly formatted text, photos, videos, maps, and more.
A wave is shared. Any participant can reply anywhere in the message, edit the content and add participants at any point in the process. Then playback lets anyone rewind the wave to see who said what and when.
A wave is live. With live transmission as you type, participants on a wave can have faster conversations, see edits and interact with extensions in real-time.
Wave terminologies
Wave: A container for enhanced set of threaded conversations that is viewable as a document. It modifies real time and stores historical information.
Wavelet: A threaded conversation spawned within a wave. All participants on a wavelet have read/write access to content within the wavelet.
Blip: A single message that appears in a wavelet.
Participants: Each wave has a set of one or more participants who engage and interact in a wave. Participants are added to a wave by existing participants.
* Programming languages used in embedded software development
* Development tools for writing embedded software
* Tools for device driver development
Operating Systems
Without its software, a computer is basically a useless lump of metal.
- “Operating Systems: Design and Implementation”
The embedded system has to interact with hardware to achieve the desired functionality. This interaction consists of efficiently managing the input/output operation, the memory, the various tasks to be carried out, the resource allocation of specified tasks, etc. Generally, all of these functions are achieved through an operating system.
Architecture of a typical Operating system kernel
Kernel architecture
In computing, the kernel is the central component of most computer operating systems. Its responsibilities include managing the system's resources (the communication between hardware and software components). As a basic component of an operating system, a kernel provides the lowest-level abstraction layer for the resources (especially memory, processors and I/O devices) that application software must control to perform its function. It typically makes these facilities available to application processes through inter-process communication mechanisms and system calls. The following architecture is applicable to both desktops and embedded systems.
The kernel's primary purpose is to manage the computer's resources and allow other programs to run and use these resources. Typically, the resources consist of:
* The Central Processing Unit (CPU, the processor)
* The computer's memory
* Any Input/Output (I/O) devices present in the computer, such as keyboard, mouse, disk drives, printers, displays, etc.
Kernels also usually provide methods for synchronization and communication between processes (called inter-process communication or IPC).
What is a Kernel?
The kernel is the central part of an operating system, that directly controls the computer hardware. Usually, the kernel is the first of the user-installed software on a computer, booting directly after the BIOS. Operating system kernels are specific to the hardware on which they are running, thus most operating systems are distributed with different kernel options that are configured when the system is installed. Changing major hardware components such as the motherboard, processor, or memory, often requires a kernel update. Additionally, often new kernels are offered that improve system security or performance. The two major types of kernels competing in today's computer markets are the Windows kernel and the unix-like kernels.
The Windows kernel is available only with the Microsoft Windows series of operating systems. It is proprietary software, developed and distributed by Microsoft Corporation. Introduced in Windows/386, it's many incarnations have since gone by several different names, and some had no names at all. The latest version of the Windows kernel was introduced in Windows NT, and has had many of it's functions removed and placed in user-mode software for Windows Vista. This leads to increased system stability and security. In Vista, application-level software exploits have much less access to the core functions of the operating system, and application crashes will not bring down the OS.
Unix-like kernels are a family of operating system kernels that are based upon, or operate similar to, the original Bell Labs UNIX operating system. Common examples of unix-like kernels are the Linux kernel, BSD, Mac OS, and Solaris. While many of these kernels were developed with original Bell Labs code as part of the software, not all of them have direct lineage to Bell. Linux, for instance, was developed as a free alternative to Minix, itself an independently developed variation of UNIX. Although originally running an original kernel design, Mac OS was outfitted with a unix-like kernel in 1988 with the introduction of A/UX. All subsequent Apple operating systems have unix-like kernels, including the current Mac OS-X's BSD-derived kernel.