Tuesday, June 30, 2026

File System



A file is a collection of correlated information which is recorded on secondary or non-volatile storage like magnetic disks, optical disks, and tapes. It is a method of data collection that is used as a medium for giving input and receiving output from that program.

In general, a file is a sequence of bits, bytes, or records whose meaning is defined by the file creator and user. Every File has a logical location where they are located for storage and retrieval.

Objective of File management System

Here are the main objectives of the file management system:

  • It provides I/O support for a variety of storage device types.

  • Minimizes the chances of lost or destroyed data

  • Helps OS to standardized I/O interface routines for user processes.

  • It provides I/O support for multiple users in a multiuser systems environment.

Properties of a File System

Here, are important properties of a file system:

  • Files are stored on disk or other storage and do not disappear when a user logs off.

  • Files have names and are associated with access permission that permits controlled sharing.

  • Files could be arranged or more complex structures to reflect the relationship between them.

File structure

A File Structure needs to be predefined format in such a way that an operating system understands . It has an exclusively defined structure, which is based on its type.

Three types of files structure in OS:

  • A text file: It is a series of characters that is organized in lines.

  • An object file: It is a series of bytes that is organized into blocks.

  • A source file: It is a series of functions and processes.

File Attributes

A file has a name and data. Moreover, it also stores meta information like file creation date and time, current size, last modified date, etc. All this information is called the attributes of a file system.

Here, are some important File attributes used in OS:

  • Name: It is the only information stored in a human-readable form.

  • Identifier: Every file is identified by a unique tag number within a file system known as an identifier.

  • Location: Points to file location on device.

  • Type: This attribute is required for systems that support various types of files.

  • Size. Attribute used to display the current file size.

  • Protection. This attribute assigns and controls the access rights of reading, writing, and executing the file.

  • Time, date and security: It is used for protection, security, and also used for monitoring

File Type

It refers to the ability of the operating system to differentiate various types of files like text files, binary, and source files. However, Operating systems like MS_DOS and UNIX has the following type of files:

Character Special File

It is a hardware file that reads or writes data character by character, like mouse, printer, and more.

Ordinary files

  • These types of files stores user information.

  • It may be text, executable programs, and databases.

  • It allows the user to perform operations like add, delete, and modify.

Directory Files

  • Directory contains files and other related information about those files. Its basically a folder to hold and organize multiple files.

Special Files

  • These files are also called device files. It represents physical devices like printers, disks, networks, flash drive, etc.

Functions of File

  • Create file, find space on disk, and make an entry in the directory.

  • Write to file, requires positioning within the file

  • Read from file involves positioning within the file

  • Delete directory entry, regain disk space.

  • Reposition: move read/write position.

Commonly used terms in File systems

Field:

This element stores a single value, which can be static or variable length.

DATABASE:

Collection of related data is called a database. Relationships among elements of data are explicit.

FILES:

Files is the collection of similar record which is treated as a single entity.

RECORD:

A Record type is a complex data type that allows the programmer to create a new data type with the desired column structure. Its groups one or more columns to form a new data type. These columns will have their own names and data type.

File Access Methods

File access is a process that determines the way that files are accessed and read into memory. Generally, a single access method is always supported by operating systems. Though there are some operating system which also supports multiple access methods.

Three file access methods are:

  • Sequential access

  • Direct random access

  • Index sequential access

Sequential Access

In this type of file access method, records are accessed in a certain pre-defined sequence. In the sequential access method, information stored in the file is also processed one by one. Most compilers access files using this access method.

Random Access

The random access method is also called direct random access. This method allow accessing the record directly. Each record has its own address on which can be directly accessed for reading and writing.

Sequential Access

This type of accessing method is based on simple sequential access. In this access method, an index is built for every file, with a direct pointer to different memory blocks. In this method, the Index is searched sequentially, and its pointer can access the file directly. Multiple levels of indexing can be used to offer greater efficiency in access. It also reduces the time needed to access a single record.

File Directories

A single directory may or may not contain multiple files. It can also have sub-directories inside the main directory. Information about files is maintained by Directories. In Windows OS, it is called folders.

Following is the information which is maintained in a directory:

  • Name The name which is displayed to the user.

  • Type: Type of the directory.

  • Position: Current next-read/write pointers.

  • Location: Location on the device where the file header is stored.

  • Size : Number of bytes, block, and words in the file.

  • Protection: Access control on read/write/execute/delete.

  • Usage: Time of creation, access, modification

File types- name, extension

File TypeUsual extensionFunction
Executableexe, com, bin or noneready-to-run machine- language program
Objectobj, ocomplied, machine language, not linked
Source codec. p, pas, 177, asm, a‭‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬source code in various languages‭‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬
Batchbat, shSeries of commands to be executed
Texttxt, doctextual data documents
Word processordoc,docs, tex, rrf, etc.various word-processor formats‭ ‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬
Librarylib, hlibraries of routines
Archivearc, zip, tarrelated files grouped into one file, sometimes compressed.


Summary:

  • A file is a collection of correlated information which is recorded on secondary or non-volatile storage like magnetic disks, optical disks, and tapes.
  • It provides I/O support for a variety of storage device types.
  • Files are stored on disk or other storage and do not disappear when a user logs off.
  • A File Structure needs to be predefined format in such a way that an operating system understands it.
  • File type refers to the ability of the operating system to differentiate different types of files like text files, binary, and source files.
  • Create find space on disk and make an entry in the directory.
  • Indexed Sequential Access method is based on simple sequential access
  • In Sequential Access method records are accessed in a certain pre-defined sequence
  • The random access method is also called direct random access
  • Three types of space allocation methods are:
    • Linked Allocation
    • Indexed Allocation
    • Contiguous Allocation
  • Information about files is maintained by Directories

Friday, June 26, 2026

Threads



Thread is an execution unit which consists of its own program counter, a stack, and a set of registers. Threads are also known as Lightweight processes. Threads are popular way to improve application through parallelism. The CPU switches rapidly back and forth among the threads giving illusion that the threads are running in parallel.

As each thread has its own independent resource for process execution, multpile processes can be executed parallely by increasing number of threads.

Types of Thread

There are two types of threads:

  1. User Threads
  2. Kernel Threads

User threads, are above the kernel and without kernel support. These are the threads that application programmers use in their programs.

Kernel threads are supported within the kernel of the OS itself. All modern OSs support kernel level threads, allowing the kernel to perform multiple simultaneous tasks and/or to service multiple kernel system calls simultaneously.

Multithreading Models

The user threads must be mapped to kernel threads, by one of the following strategies:

  • Many to One Model

  • One to One Model

  • Many to Many Model

Many to One Model

  • In the many to one model, many user-level threads are all mapped onto a single kernel thread.

  • Thread management is handled by the thread library in user space, which is efficient in nature.

One to One Model

  • The one to one model creates a separate kernel thread to handle each and every user thread.

  • Most implementations of this model place a limit on how many threads can be created.

  • Linux and Windows from 95 to XP implement the one-to-one model for threads.

Many to Many Model

  • The many to many model multiplexes any number of user threads onto an equal or smaller number of kernel threads, combining the best features of the one-to-one and many-to-one models.

  • Users can create any number of the threads.

  • Blocking the kernel system calls does not block the entire process.

  • Processes can be split across multiple processors.

What are Thread Libraries?

Thread libraries provide programmers with API for creation and management of threads.

Thread libraries may be implemented either in user space or in kernel space. The user space involves API functions implemented solely within the user space, with no kernel support. The kernel space involves system calls, and requires a kernel with thread library support.

Three types of Thread

  1. POSIX Pitheads, may be provided as either a user or kernel library, as an extension to the POSIX standard.

  2. Win32 threads, are provided as a kernel-level library on Windows systems.

  3. Java threads: Since Java generally runs on a Java Virtual Machine, the implementation of threads is based upon whatever OS and hardware the JVM is running on, i.e. either Pitheads or Win32 threads depending on the system.

Benefits of Multithreading

  • Responsiveness

  • Resource sharing, hence allowing better utilization of resources.

  • Economy. Creating and managing threads becomes easier.

  • Scalability. One thread runs on one CPU. In Multithreaded processes, threads can be distributed over a series of processors to scale.

  • Context Switching is smooth. Context switching refers to the procedure followed by CPU to change from one task to another.

Multithreading Issues

Below we have mentioned a few issues related to multithreading. Well, it's an old saying, All good things, come at a price.

Thread Cancellation

Thread cancellation means terminating a thread before it has finished working. There can be two approaches for this, one is Asynchronous cancellation, which terminates the target thread immediately. The other is Deferred cancellation allows the target thread to periodically check if it should be cancelled.

Signal Handling

Signals are used in UNIX systems to notify a process that a particular event has occurred. Now in when a Multithreaded process receives a signal, to which thread it must be delivered? It can be delivered to all, or a single thread.

fork() System Call

fork() is a system call executed in the kernel through which a process creates a copy of itself. Now the problem in Multithreaded process is, if one thread forks, will the entire process be copied or not?

Security Issues

Yes, there can be security issues because of extensive sharing of resources between multiple threads.

There are many other issues that you might face in a multithreaded process, but there are appropriate solutions available for them. Pointing out some issues here was just to study both sides of the coin.

 

 

 

Thursday, June 25, 2026

Operating system security



Operating system security (OS security) is the process of ensuring OS integrity, confidentiality and availability.

OS security refers to specified steps or measures used to protect the OS from threats, viruses, worms, malware or remote hacker intrusions. OS security encompasses all preventive-control techniques, which safeguard any computer assets capable of being stolen, edited or deleted if OS security is compromised.

OS security may be approached in many ways, including adherence to the following:

  • Performing regular OS patch updates

  • Installing updated antivirus engines and software

  • Scrutinizing all incoming and outgoing network traffic through a firewall

  • Creating secure accounts with required privileges only (i.e., user management)

 We're going to discuss following topics in this chapter.

  • Authentication

  • One Time passwords

  • Program Threats

  • System Threats

  • Computer Security Classifications

Authentication

Authentication refers to identifying each user of the system and associating the executing programs with those users. It is the responsibility of the Operating System to create a protection system which ensures that a user who is running a particular program is authentic. Operating Systems generally identifies/authenticates users using following three ways −

  • Username / Password − User need to enter a registered username and password with Operating system to login into the system.

  • User card/key − User need to punch card in card slot, or enter key generated by key generator in option provided by operating system to login into the system.

  • User attribute - fingerprint/ eye retina pattern/ signature − User need to pass his/her attribute via designated input device used by operating system to login into the system.

One Time passwords

One-time passwords provide additional security along with normal authentication. In One-Time Password system, a unique password is required every time user tries to login into the system. Once a one-time password is used, then it cannot be used again. One-time password are implemented in various ways.

  • Random numbers − Users are provided cards having numbers printed along with corresponding alphabets. System asks for numbers corresponding to few alphabets randomly chosen.

  • Secret key − User are provided a hardware device which can create a secret id mapped with user id. System asks for such secret id which is to be generated every time prior to login.

  • Network password − Some commercial applications send one-time passwords to user on registered mobile/ email which is required to be entered prior to login.

Program Threats

Operating system's processes and kernel do the designated task as instructed. If a user program made these process do malicious tasks, then it is known as Program Threats. One of the common example of program threat is a program installed in a computer which can store and send user credentials via network to some hacker. Following is the list of some well-known program threats.

  • Trojan Horse − Such program traps user login credentials and stores them to send to malicious user who can later on login to computer and can access system resources.

  • Trap Door − If a program which is designed to work as required, have a security hole in its code and perform illegal action without knowledge of user then it is called to have a trap door.

  • Logic Bomb − Logic bomb is a situation when a program misbehaves only when certain conditions met otherwise it works as a genuine program. It is harder to detect.

  • Virus − Virus as name suggest can replicate themselves on computer system. They are highly dangerous and can modify/delete user files, crash systems. A virus is generatlly a small code embedded in a program. As user accesses the program, the virus starts getting embedded in other files/ programs and can make system unusable for user

System Threats

System threats refers to misuse of system services and network connections to put user in trouble. System threats can be used to launch program threats on a complete network called as program attack. System threats creates such an environment that operating system resources/ user files are misused. Following is the list of some well-known system threats.

  • Worm − Worm is a process which can choked down a system performance by using system resources to extreme levels. A Worm process generates its multiple copies where each copy uses system resources, prevents all other processes to get required resources. Worms processes can even shut down an entire network.

  • Port Scanning − Port scanning is a mechanism or means by which a hacker can detects system vulnerabilities to make an attack on the system.

  • Denial of Service − Denial of service attacks normally prevents user to make legitimate use of the system. For example, a user may not be able to use internet if denial of service attacks browser's content settings.

Computer Security Classifications

As per the U.S. Department of Defense Trusted Computer System's Evaluation Criteria there are four security classifications in computer systems: A, B, C, and D. This is widely used specifications to determine and model the security of systems and of security solutions. Following is the brief description of each classification.

S.N.Classification Type & Description
1

Type A

Highest Level. Uses formal design specifications and verification techniques. Grants a high degree of assurance of process security.

2

Type B

Provides mandatory protection system. Have all the properties of a class C2 system. Attaches a sensitivity label to each object. It is of three types.

  • B1 − Maintains the security label of each object in the system. Label is used for making decisions to access control.

  • B2 − Extends the sensitivity labels to each system resource, such as storage objects, supports covert channels and auditing of events.

  • B3 − Allows creating lists or user groups for access-control to grant access or revoke access to a given named object.

3

Type C

Provides protection and user accountability using audit capabilities. It is of two types.

  • C1 − Incorporates controls so that users can protect their private information and keep other users from accidentally reading / deleting their data. UNIX versions are mostly Cl class.

  • C2 − Adds an individual-level access control to the capabilities of a Cl level system.

4

Type D

Lowest level. Minimum protection. MS-DOS, Window 3.1 fall in this category.

Wednesday, June 24, 2026

Input/Output OS Software



Basically, input/output software organized in the following four layers:

  • Interrupt handlers

  • Device drivers

  • Device-independent input/output software

  • User-space input/output software

In every input/output software, each of the above given four layer has a well-defined function to perform and a well-defined interface to the adjacent layers.

Now let's describe briefly, all the four input/output software layers that are listed above.

Interrupt Handlers

Whenever the interrupt occurs, then the interrupt procedure does whatever it has to in order to handle the interrupt.

Device Drivers

Basically, device drivers is a device-specific code just for controlling the input/output device that are attached to the computer system.

Device-Independent Input/Output Software

In some of the input/output software is device specific, and other parts of that input/output software are device-independent.

The exact boundary between the device-independent software and drivers is device dependent, just because of that some functions that could be done in a device-independent way sometime be done in the drivers, for efficiency or any other reasons.

Here are the list of some functions that are done in the device-independent software:

  • Uniform interfacing for device drivers

  • Buffering

  • Error reporting

  • Allocating and releasing dedicated devices

  • Providing a device-independent block size

User-Space Input/Output Software

Generally most of the input/output software is within the operating system (OS), and some small part of that input/output software consists of libraries that are linked with the user programs and even whole programs running outside the kernel.

 

Goals of the I/O Software

  • A key concept in the design of I/O software is known as device independence. It means that I/O devices should be accessible to programs without specifying the device in advance.

  • Uniform Naming, simply be a string or an integer and not depend on the device in any way. In UNIX, all disks can be integrated in the file-system hierarchy in arbitrary ways so the user need not be aware of which name corresponds to which device.

  • Error Handling: If the controller discovers a read error, it should try to correct the error itself if it can. If it cannot, then the device driver should handle it, perhaps by just trying to read the block again. In many cases, error recovery can be done transparently at a low level without the upper levels even knowing about the error.

  • Synchronous (blocking) and Asynchronous (interrupt-driven) transfers: Most physical I/O is asynchronous, however, some very high-performance applications need to control all the details of the I/O, so some operating systems make asynchronous I/O available to them.

  • Buffering: Often data that come off a device cannot be stored directly in their final destination.

  • Sharable and Dedicated devices: Some I/O devices, such as disks, can be used by many users at the same time. No problems are caused by multiple users having open files on the same disk at the same time. Other devices, such as printers, have to be dedicated to a single user until that user is finished. Then another user can have the printer. Introducing dedicated (unshared) devices also introduces a variety of problems, such as deadlocks. Again, the operating system must be able to handle both shared and dedicated devices in a way that avoids problems.

 

 

 

Tuesday, June 23, 2026

Operating System - I/O Hardware



Overview

Computers operate on many kinds of devices. General types include storage devices (disks, tapes),transmission devices (network cards, modems), and human-interface devices (screen, keyboard, mouse). Other devices are more specialized. A device communicates with a computer system by sending signals over a cable or even through the air. The device communicates with the machine via a connection point termed a port (for example, a serial port). If one or more devices use a common set of wires, the connection is called a bus.In other terms, a bus is a set of wires and a rigidly defined protocol that specifies a set of messages that can be sent on the wires.

Daisy chain

When device A has a cable that plugs into device B, and device B has a cable that plugs into device C, and device C plugs into a port on the computer, this arrangement is called a daisy chain. It usually operates as a bus.

Controller

A controller is a collection of electronics that can operate a port, a bus, or a device. A serial-port controller is an example of a simple device controller. This is a single chip in the computer that controls the signals on the wires of a serial port. The SCSI bus controller is often implemented as a separate circuit board (a host adapter) that plugs into the computer. It contains a processor, microcode, and some private memory to enable it to process the SCSI protocol messages. Some devices have their own built-in controllers.

I/O port

An I/O port typically consists of four registers, called the status , control, data-in, and data-outregisters.

Status Register

The status register contains bits that can be read by the host. These bits indicate states such as whether the current command has completed, whether a byte is available to be read from the data-in register, and whether there has been a device error.

Control register

The control register can be written by the host to start a command or to change the mode of a device. For instance, a certain bit in the control register of a serial port chooses between fullduplex and half-duplex communication, another enables parity checking, a third bit sets the word length to 7 or 8 bits, and other bits select one of the speeds supported by the serial port.

Data-in register

The data-in register is read by the host to get input.

Data-out register

The data out register is written by the host to send output.

Polling

Polling is a process by which a host waits for controller response.It is a looping process, reading the status register over and over until the busy bit of status register becomes clear. The controller uses/sets the busy bit when it is busy working on a command, and clears the busy bit when it is ready to accept the next command. The host signals its wish via the command-ready bit in the command register. The host sets the command-ready bit when a command is available for the controller to execute.

In the following example, the host writes output through a port, coordinating with the controller by handshaking

The host repeatedly reads the busy bit until that bit becomes clear.

The host sets the write bit in the command register and writes a byte into the data-out register.

The host sets the command-ready bit.

When the controller notices that the command-ready bit is set, it sets the busy bit.

The controller reads the command register and sees the write command.

It reads the data-out register to get the byte, and does the I/O to the device.

The controller clears the command-ready bit, clears the error bit in the status register to indicate that the device I/O succeeded, and clears the busy bit to indicate that it is finished.

I/O devices

I/O Devices can be categorized into following category.

Human readable

Human Readable devices are suitable for communicating with the computer user. Examples are printers, video display terminals, keyboard etc.

Machine readable

Machine Readable devices are suitable for communicating with electronic equipment. Examples are disk and tape drives, sensors, controllers and actuators.

Communication

Communication devices are suitable for communicating with remote devices. Examples are digital line drivers and modems.

Following are the differences between I/O Devices

Data rate

There may be differences of several orders of magnitude between the data transfer rates.

Application

Different devices have different use in the system

Complexity of Control

A disk is much more complex whereas printer requires simple control interface.

Unit of transfer

Data may be transferred as a stream of bytes or characters or in larger blocks.

Data representation

Different data encoding schemes are used for different devices.

Error Conditions

The nature of errors differs widely from one device to another.

Direct Memory Access (DMA)

Many computers avoid burdening the main CPU with programmed I/O by offloading some of this work to a special purpose processor. This type of processor is called, a Direct Memory Access(DMA) controller. A special control unit is used to transfer block of data directly between an external device and the main memory, without intervention by the processor. This approach is called Direct Memory Access(DMA).

DMA can be used with either polling or interrupt software. DMA is particularly useful on devices like disks, where many bytes of information can be transferred in single I/O operations. When used with an interrupt, the CPU is notified only after the entire block of data has been transferred. For each byte or word transferred, it must provide the memory address and all the bus signals controlling the data transfer. Interaction with a device controller is managed through a device driver.

Handshaking is a process between the DMA controller and the device controller. It is performed via wires using terms DMA request and DMA acknowledge.

 

 

Monday, June 22, 2026

Services of Operating System



An operating system is an interface which provides services to both the user and to the programs. It provides an environment for the program to execute. It also provides users with the services of how to execute programs in a convenient manner. The operating system provides some services to program and also to the users of those programs. The specific services provided by the OS are off course different.

Following are the common services provided by an operating system:

  1. Program execution
  2. I/O operations
  3. File system manipulation
  4. Communication
  5. Error detection
  6. Resource allocation
  7. Protection

1) Program Execution

  • An operating system must be able to load many kinds of activities into the memory and to run it. The program must be able to end its execution, either normally or abnormally.

  • A process includes the complete execution of the written program or code. There are some of the activities which are performed by the operating system:

    • The operating system Loads program into memory

    • It also Executes the program

    • It Handles the program’s execution

    • It Provides a mechanism for process synchronization

    • It Provides a mechanism for process communication

2) I/O Operations

  • The communication between the user and devices drivers are managed by the operating system.

  • I/O devices are required for any running process. In I/O a file or an I/O devices can be involved.

  • I/O operations are the read or write operations which are done with the help of input-output devices.

  • Operating system give the access to the I/O devices when it required.

3) File system manipulation

  • The collection of related information which represent some content is known as a file. The computer can store files on the secondary storage devices. For long-term storage purpose. examples of storage media include magnetic tape, magnetic disk and optical disk drives like CD, DVD.

  • A file system is a collection of directories for easy understand and usage. These directories contain some files. There are some major activities which are performed by an operating system with respect to file management.

    • The operating system gives an access to the program for performing an operation on the file.

    • Programs need to read and write a file.

    • The user can create/delete a file by using an interface provided by the operating system.

    • The operating system provides an interface to the user creates/ delete directories.

    • The backup of the file system can be created by using an interface provided by the operating system.

4) Communication

In the computer system, there is a collection of processors which do not share memory peripherals devices or a clock, the operating system manages communication between all the processes. Multiple processes can communicate with every process through communication lines in the network. There are some major activities that are carried by an operating system with respect to communication.

  • Two processes may require data to be transferred between the process.

  • Both the processes can be on one computer or a different computer, but are connected through a computer network.

5) Error handling

An error is one part of the system that may cause malfunctioning of the complete system. The operating system constantly monitors the system for detecting errors to avoid some situations. This give relives to the user of the worry of getting an error in the various parts of the system causing malfunctioning.

The error can occur anytime and anywhere. The error may occur anywhere in the computer system like in CPU, in I/O devices or in the memory hardware. There are some activities that are performed by an operating system:

  • The OS continuously checks for the possible errors.

  • The OS takes an appropriate action to correct errors and consistent computing.

6) Resource management

When there are multiple users or multiple jobs running at the same time resources must be allocated to each of them. There are some major activities that are performed by an operating system:

  • The OS manages all kinds of resources using schedulers.

  • CPU scheduling algorithm is used for better utilization of CPU.

7) Protection

The owners of information stored in a multi-user computer system want to control its use. When several disjoints processes execute concurrently it should not be possible for any process to interfere with another process. Every process in the computer system must be secured and controlled.

 

Friday, June 19, 2026

What is a Process?



Process is the execution of a program that performs the actions specified in that program. It can be defined as an execution unit where a program runs. The OS helps you to create, schedule, and terminates the processes which is used by CPU. A process created by the main process is called a child process.

Process operations can be easily controlled with the help of PCB(Process Control Block). You can consider it as the brain of the process, which contains all the crucial information related to processing like process id, priority, state, CPU registers, etc.

What is Process Management?

Process management involves various tasks like creation, scheduling, termination of processes, and a dead lock. Process is a program that is under execution, which is an important part of modern-day operating systems. The OS must allocate resources that enable processes to share and exchange information. It also protects the resources of each process from other methods and allows synchronization among processes.

It is the job of OS to manage all the running processes of the system. It handles operations by performing tasks like process scheduling and such as resource allocation.

Process Architecture

Here, are the Architecture Steps:

  • Stack: The Stack stores temporary data like function parameters, returns addresses, and local variables.

  • Heap Allocates memory, which may be processed during its run time.

  • Data: It contains the variable.

  • Text: Text Section includes the current activity, which is represented by the value of the Program Counter.

Process Stages

There are mainly seven stages of a process which are:

  • New: The new process is created when a specific program calls from secondary memory/ hard disk to primary memory/ RAM a

  • Ready: In a ready state, the process should be loaded into the primary memory, which is ready for execution.

  • Waiting: The process is waiting for the allocation of CPU time and other resources for execution.

  • Executing: The process is an execution state.

  • Blocked: It is a time interval when a process is waiting for an event like I/O operations to complete.

  • Suspended: Suspended state defines the time when a process is ready for execution but has not been placed in the ready queue by OS.

  • Terminated: Terminated state specifies the time when a process is terminated

Process Control Block(PCB)

Every process is represented in the operating system by a process control block, which is also called a task control block.

Here, are important components of PCB

  • Process state: A process can be new, ready, running, waiting, etc.

  • Program counter: The program counter lets you know the address of the next instruction, which should be executed for that process.

  • CPU registers: This component includes accumulators, index and general-purpose registers, and information of condition code.

  • CPU scheduling information: This component includes a process priority, pointers for scheduling queues, and various other scheduling parameters.

  • Accounting and business information: It includes the amount of CPU and time utilities like real time used, job or process numbers, etc.

  • Memory-management information: This information includes the value of the base and limit registers, the page, or segment tables. This depends on the memory system, which is used by the operating system.

  • I/O status information: This block includes a list of open files, the list of I/O devices that are allocated to the process, etc.

Summary:

  • A process is defined as the execution of a program that performs the actions specified in that program.

  • Process management involves various tasks like creation, scheduling, termination of processes, and a dead lock.

  • The important elements of Process architecture are 1)Stack 2) Heap 3) Data, and 4) Text

  • The PCB is a full form of Process Control Block. It is a data structure that is maintained by the Operating System for every process

  • A process state is a condition of the process at a specific instant of time.

  • Every process is represented in the operating system by a process control block, which is also called a task control block.

 

Wednesday, June 17, 2026

Operating System Types


Single-user systems

A computer system that allows only one user to use the computer at a given time is known as a single-user system. The goals of such systems are maximizing user convenience and responsiveness, instead of maximizing the utilization of the CPU and peripheral devices.

Single-user systems use I/O devices such as keyboards, mice, display screens, scanners, and small printers. They can adopt technology developed for larger operating systems.

They may run different types of operating systems, including DOS, Windows, and MacOS. Linux and UNIX operating systems can also be run in single-user mode.

Batch Systems

Early computers were large machines run from a console with card readers and tape drives as input devices and line printers, tape drives, and card punches as output devices. The user did not interact directly with the system; instead, the user prepared a job, (which consisted of the program, data, and some control information about the nature of the job in the form of control cards) and submitted this to the computer operator. The job was in the form of punch cards, and at some later time, the output was generated by the system. The output consisted of the result of the program, as well as a dump of the final memory and register contents for debugging.

To speed up processing, operators batched together jobs with similar needs and ran them through the computer as a group. For example, all FORTRAN programs were compiled one after the other.

The major task of such an operating system was to transfer control automatically from one job to the next. Such systems in which the user does not get to interact with his jobs and jobs with similar needs are executed in a “batch”, one after the other, are known as batch systems. Digital Equipment Corporation’s VMS is an example of a batch operating system.

Multi-programmed Systems

Such systems organize jobs so that CPU always has one to execute. In this way, CPU utilization is increased. The operating system picks and executes from amongst the available jobs in memory. The job has to wait for some task such as an I/O operation to complete. In a non-multi-programmed system CPU would sit idle while in case of multiprogrammed system, the operating system simply switches to, and executes another job.

Time-sharing systems

These are multi-user and multi-process systems. Multi-user means system allows multiple users simultaneously. In this system, a user can run one or more processes at the same time. Examples of time-sharing systems are UNIX, Linux, Windows server editions.

Real-time systems

Real time systems are used when strict time requirements are placed on the operation of a processor or the flow of data. These are used to control a device in a dedicated application. For example, medical imaging system and scientific experiments.

Operating System Examples

There are many types of operating system. Some most popular examples of operating system are:

Unix Operating System

Unix was initially written in assembly language. Later on, it was replaced by C, and Unix, rewritten in C and was developed into a large, complex family of inter-related operating systems. The major categories include BSD, and Linux.

“UNIX” is a trademark of The Open Group which licenses it for use with any operating system that has been shown to conform to their definitions.

macOS

Mac-OS is developed by Apple Inc. and is available on all Macintosh computers. It was formerly called “Mac OS X” and later on “OS X”.  MacOS was developed in 1980s by NeXT and that company was purchased by Apple in 1997.

Linux

Linux is Unix-like operating system and was developed without any Unix code. Linux is open license model and code is available for study and modification. It has superseded Unix on many platforms. Linux is commonly used smartphones and smartwatches.

Microsoft Windows

Microsoft Windows is most popular and widely used operating system. It was designed and developed by Microsoft Corporation. The current version of operating system is Windows-10.

Microsoft Windows was first released in 1985. In 1995, Windows 95 was released which only used MS-DOS as a bootstrap.

 

Operating System Components

An operating system has various components that perform different tasks for proper execution of programs. Following are main components of the operating system.

Process Management

A process can be a program in execution that needs resources like CPU time, memory, files and I/O devices to accomplish its tasks. The operating system is responsible for

  • Creating and terminating user and system processes
  • Suspending and resuming processes
  • Providing mechanisms for process synchronization
  • Providing mechanisms for process communication
  • Providing mechanisms for deadlock handling

Main Memory Management

Main memory is a large array of words or bytes. These bytes are called memory locations and range in size from hundreds of thousands to billions. Every word or byte has its own address. Main memory is a repository of quickly accessible data shared by the CPU and I/O devices. It contains the code, data, stack, and other parts of a process. The central processor reads instructions of a process from main memory during the machine cycle. The OS is responsible for the following activities in connection with memory management.

  • Keeping track of free memory space
  • Keeping track of which parts of memory are currently being used and by whom
  • Deciding which processes are to be loaded into memory when memory space becomes available
  • Deciding how much memory is to be allocated to a process
  • Allocating and deallocating memory space as needed
  • Ensuring that a process is not overwritten on top of another

Secondary Storage Management

The programs to be executed, along with the data they access, must be in the main memory or primary storage during their execution. Since main memory is too small to accommodate all data and programs, and because the data it holds are lost when the power is lost, the computer system must provide secondary storage to backup main memory. Most programs are stored on a disk until loaded into the memory and then use disk as both the source and destination of their processing. Like all other resources in a computer system, proper management of disk storage is important.
The operating system is responsible for the following activities in connection with disk management:

  • Free-space management
  • Storage allocation and deallocation
  • Disk scheduling

Input/Output Management

The input and output subsystem consists of:

  • A memory management component that includes buffering, caching and spooling
  • A general device-driver interface
  • Drivers for specific hardware devices

File Management

Computers can store information on several types of physical media, e.g. magnetic tape, magnetic disk and an optical disk. The operating system maps files onto physical media and accesses these media through storage devices. Operating system is responsible for the following activities pertaining to file management:

  • Creating and deleting files
  • Creating and deleting directories
  • Supporting primitives (operations) for manipulating files and directories
  • Mapping files onto the secondary storage
  • Backing up files on stable (nonvolatile) storage media

Protection System

If a computer system has multiple users and allows concurrent execution of multiple processes then the various processes must be protected from each other’s activities. Protection is any mechanism for controlling the access of programs, processes or users to the resources defined by a computer system.

Networking

A distributed system is a collection of processors that do not share memory, peripheral devices or a clock. Instead, each processor has it own local memory and clock, and the processors communicate with each other through various communication lines, such as high- speed buses or networks.

The processors in a communication system are connected through a communication network. The communication network design must consider message routing and connection strategies and the problems of contention and security.

A distributed system collects physically separate, possibly heterogeneous, systems into a single coherent system, providing the user with access to the various resources that the system maintains.

Command Line Interpreter

One of the most important system programs for an operating system is the command interpreter, which is the interface between the user and operating system. Its purpose is to read user commands and try to execute them. Some operating systems include the command interpreter in the kernel. Other operating systems (for example UNIX, Linux, and DOS) treat it as a special program that runs when a job is initiated or when a user first logs on (on time-sharing systems). Examples of shells for UNIX and Linux are Bourne shell (sh), C shell (csh), Bourne Again shell (bash), TC shell (tcsh), and Korn shell (ksh). You can use any of these shells by running the corresponding command, listed in parentheses for each shell.

 

 

Tuesday, June 16, 2026

Operating System (OS) Overview



Operating System is an interface between the user and the hardware and enables the interaction of a computer’s hardware and software.

Also, an operating system is a software which performs all the basic tasks like file management, memory management, storage management, process management, handling input and output, and controlling peripheral devices such as disk drives and printers.

Types of Operating System (OS) 

All different operating system types are listed below –

  • Windows
  • iOS
  • MAC OS
  • Ubuntu
  • Novell Netware
  • Unix
  • Linux

Mobile Operating System

These are some of Mobile Operating System –

  • iOS
  • Symbian
  • Blackberry
  • Windows
  • Android OS
  • Bada

Operating System Functions 

All  Operating system functions are shared below –

1. DEVICE MANAGEMENT –

Operating System manages device communication via their respective drivers.

It does the following activities for device management −

  • Keeps tracks of all devices. I/O controller is responsible for this task
  • Decides which process gets the device when and for how much time.
  • Allocates the device in an efficient way.
  • De-allocates devices.

2. FILE MANAGEMENT –

The operating system allocates and de-allocates resources. It regulates which process gets the file and for what duration. Also, it keeps track of information, location, uses, status etc.

The collective facilities are often known as a file system. OS also performs tasks like creating directories and files, copying/moving them and renaming/deleting files.

3. MEMORY MANAGEMENT –

Memory management refers to the management of primary or main memory. Main memory provides fast storage which can be accessed directly by CPU.

When the program is executed and finished, the memory area is freed which can be used for other programs. Computer memory is arranged such that fastest registers come 1st followed by the CPU cache, random access memory, and then disk storage.

The operating system’s memory manager coordinates the use of various types of memory, which is to be allocated or de-allocated and how to move data between them 

4. PROCESS MANAGEMENT –

Every program running on a computer is a process whether it is in the background or in frontend. The operating system is responsible for making multiple tasks to run at the same time (multitasking).

Operating system finds the status of processor and processes, chooses job and its processor allocates processor to process and de-allocates process when it’s executed.

5. MASTERMIND –

Mastermind is one term we can rightfully use for Operating system. Reason – Operating system performs a multitude of functions which only can be performed by super-intelligent mind hence the term “Mastermind”.

  • OS provides Booting without an Operating System
  • Provides Facility to increase the Logical Memory of the Computer System by using the Physical Memory of the Computer System.
  • OS controls the Errors that have been Occurred into the Program
  • Provides Recovery of the System when the System gets Damaged.
  • Operating System breaks the large program into the Smaller Programs those are also called as the threads. And execute those threads one by one

6. STORAGE MANAGEMENT –

Operating System controls all Storage Operations. Some of these include – how to store data or files into the computers and how users will access the files. The operating system is Responsible for Storing and Accessing the Files. Creation of Files, Creation of Directories and Reading and Writing the data of Files and Directories and also Copy the contents of the Files and the Directories from One Place to Another Place.

 

Monday, June 15, 2026

Software Development Life Cycle



The Software Development Life Cycle (SDLC) refers to a methodology with clearly defined processes for creating high-quality software. in detail, the SDLC methodology focuses on the following phases of software development:

  • Requirement analysis

  • Planning

  • Software design such as architectural design

  • Software development

  • Testing

  • Deployment

This article will explain how SDLC works, dive deeper in each of the phases, and provide you with examples to get a better understanding of each phase.

What is the software development life cycle?

SDLC or the Software Development Life Cycle is a process that produces software with the highest quality and lowest cost in the shortest time possible. SDLC provides a well-structured flow of phases that help an organization to quickly produce high-quality software which is well-tested and ready for production use.

The SDLC involves six phases as explained in the introduction. Popular SDLC models include the waterfall model,spiral model, and Agile model.

How the SDLC Works

SDLC works by lowering the cost of software development while simultaneously improving quality and shortening production time. SDLC achieves these apparently divergent goals by following a plan that removes the typical pitfalls of software development projects. That plan starts by evaluating existing systems for deficiencies.

Next, it defines the requirements of the new system. It then creates the software through the stages of analysis, planning, design, development, testing, and deployment. By anticipating costly mistakes like failing to ask the end-user or client for feedback, SLDC can eliminate redundant rework and after-the-fact fixes.

It’s also important to know that there is a strong focus on the testing phase. As the SDLC is a repetitive methodology, you have to ensure code quality at every cycle. Many organizations tend to spend few efforts on testing while a stronger focus on testing can save them a lot of rework, time, and money. Be smart and write the right types of tests.

Stages and Best Practices

Following the best practices and/or stages of SDLC ensures the process works in a smooth, efficient, and productive way.

1. Identify the Current Problems 

“What are the current problems?” This stage of the SDLC means getting input from all stakeholders, including customers, salespeople, industry experts, and programmers. Learn the strengths and weaknesses of the current system with improvement as the goal.

2. Plan

“What do we want?” In this stage of the SDLC, the team determines the cost and resources required for implementing the analyzed requirements. It also details the risks involved and provides sub-plans for softening those risks.

In other words, the team should determine the feasibility of the project and how they can implement the project successfully with the lowest risk in mind.

3. Design

“How will we get what we want?” This phase of the SDLC starts by turning the software specifications into a design plan called the Design Specification. All stakeholders then review this plan and offer feedback and suggestions. It’s crucial to have a plan for collecting and incorporating stakeholder input into this document. Failure at this stage will almost certainly result in cost overruns at best and the total collapse of the project at worst.

4. Build

“Let’s create what we want.”

At this stage, the actual development starts. It’s important that every developer sticks to the agreed blueprint. Also, make sure you have proper guidelines in place about the code style and practices.

For example, define a nomenclature for files or define a variable naming style such as camelCase. This will help your team to produce organized and consistent code that is easier to understand but also to test during the next phase.

5. Code Test

“Did we get what we want?” In this stage, we test for defects and deficiencies. We fix those issues until the product meets the original specifications.

In short, we want to verify if the code meets the defined requirements.

6. Software Deployment

“Let’s start using what we got.”

At this stage, the goal is to deploy the software to the production environment so users can start using the product. However, many organizations choose to move the product through different deployment environments such as a testing or staging environment.

This allows any stakeholders to safely play with the product before releasing it to the market. Besides, this allows any final mistakes to be caught before releasing the product.

The most common SDLC examples or SDLC models are listed below.

Waterfall Model

This SDLC model is the oldest and most straightforward. With this methodology, we finish one phase and then start the next. Each phase has its own mini-plan and each phase “waterfalls” into the next. The biggest drawback of this model is that small details left incomplete can hold up the entire process.

Agile Model

The Agile SDLC model separates the product into cycles and delivers a working product very quickly. This methodology produces a succession of releases. Testing of each release feeds back info that’s incorporated into the next version. According to Robert Half, the drawback of this model is that the heavy emphasis on customer interaction can lead the project in the wrong direction in some cases.

Iterative Model

This SDLC model emphasizes repetition. Developers create a version very quickly and for relatively little cost, then test and improve it through rapid and successive versions. One big disadvantage here is that it can eat up resources fast if left unchecked.

V-Shaped Model

An extension of the waterfall model, this SDLC methodology tests at each stage of development. As with waterfall, this process can run into roadblocks.

Big Bang Model

This high-risk SDLC model throws most of its resources at development and works best for small projects. It lacks the thorough requirements definition stage of the other methods.

Spiral Model

The most flexible of the SDLC models, the spiral model is similar to the iterative model in its emphasis on repetition. The spiral model goes through the planning, design, build and test phases over and over, with gradual improvements at each pass.

Benefits of the SDLC

SDLC done right can allow the highest level of management control and documentation. Developers understand what they should build and why. All parties agree on the goal upfront and see a clear plan for arriving at that goal. Everyone understands the costs and resources required.

Several pitfalls can turn an SDLC implementation into more of a roadblock to development than a tool that helps us. Failure to take into account the needs of customers and all users and stakeholders can result in a poor understanding of the system requirements at the outset. The benefits of SDLC only exist if the plan is followed faithfully.

 

 

Friday, June 12, 2026

Computer Careers



It’s safe to say that now is a great time to pursue a career in technology. In fact, the Bureau of Labor Statistics (BLS) projects employment of professionals in computer and information technology careers to increase much faster than average.Let us introduce you to some of the many computer jobs worth considering.

1. Big data engineer

Big Data Engineers spend their work days communicating with business users and data scientists with the goal of translating business objectives into workable data-processing workflows. These positions require a robust knowledge of statistics, experience with programming and the ability to design and implement working solutions for common big data challenges.

2. Applications architect

Digital pros who land a position like applications architect are required to maintain a high level of technical expertise while also excelling in areas like planning, coordination, communication and teamwork. These professionals are tasked with designing major aspects of the architecture of an application, providing technical leadership to the development team, performing design and code reviews, ensuring enterprise-wide application standards are met and more.

3. Web developer

A web developer is the person responsible for the building and maintenance of a website. Because a website is often an organization’s primary public-facing property, it’s important for web developers to understand business needs and how to build sites that accommodate them. This position requires an in-depth knowledge of internet protocols and development languages like PHP, JavaScript, HTML5 and CSS as well.

4. Database administrator

Put simply, database administrators use specialized software to securely store and organize data, ensuring that data is both available to users and secure from unauthorized access. Additional duties include identifying user needs to create and administer databases, testing and making modifications to database structure as needed and merging old databases into new ones. Because many databases contain personal and financial information, database administrators make security a top priority.

5. Computer hardware engineer

Computer Hardware Engineers are tasked with designing, developing and supervising the production of computer hardware like keyboards, modems, printers, computer systems, chips and circuit boards. Their duties are similar to those of electronics engineers, although they focus exclusively on computer technology, with tasks like designing blueprints of new equipment, making models of new hardware designs, upgrading current computer equipment and supervising the manufacturing of new hardware.

6. Computer software engineer

Conversely, computer software engineers focus their work on designing and developing software used to control computers by utilizing the principles of computer science and mathematical analysis. You’ll typically see this work materialize through the design and development of computer games, word processors, operating systems and compilers.

7. Data security analyst

Data Security Analysts use their thorough understanding of computer and network security, including aspects like firewall administration, encryption technologies and network protocols, to perform security audits and risk assessments on behalf of their organizations, make recommendations for enhancing system security, research attempted breaches of data security, rectify security weaknesses and formulate security policies and procedures. They’re also expected to stay up-to-date with industry security trends and relevant government regulations.

8. Information systems security manager

Quality information system security managers provide leadership, guidance and training to information systems security personnel. This requires a strong technical background in tandem with excellent interpersonal and management skills. Typical duties include reviewing, implementing, updating and documenting information security policies and procedures within an organization, in addition to ensuring that legal and contractual security and privacy mandates are adhered to.

9. Health information technology careers

While jobs in technology continue to rise in prevalence, so too do jobs in the healthcare field.Health Information technology (HIT) is an excellent way to blend the two, launching your career in the midst of rapid growth. The HIT field is a specialized subset of information technology professionals who work for medical facilities and other healthcare organizations to increase the efficiency and quality of clinical care through technology. You can expect to encounter tech positions in healthcare environments that center on elements like electronic billing and coding systems, electronic medical records and networks for digital imaging.

10. Statistician

Quality statisticians are needed in a litany of different industries, including economics, government, business, biology, engineering, politics, public health, medicine, psychology, marketing, education and even sports. They collect, analyze and present data using their knowledge of statistics to conduct surveys, opinion polls and more. Statisticians use their technical skills to determine how to best collect information, what groups to test, what questions to ask and how to interpret and publish their findings.

11. Mathematician

Mathematicians use mathematical theory, algorithms and computational methods to answer questions relating to everything from economics, business and engineering to physics and other sciences. They are often tasked with both utilizing existing mathematical theories and developing new ones to connect previously unknown relationships between mathematical concepts. Our digital landscape’s influx of technical capabilities has catapulted mathematicians’ abilities to develop data-driven solutions for real-world problems.

12. Business intelligence analyst

Business intelligence analyst are responsible for designing and developing data analysis and reporting solutions, communicating analysis results while making recommendations to senior management teams and developing data cleansing regulations for their organizations. In order to land this computer career, you’ll need to have a strong background in database technology, analytical reporting and languages like SQL and Python, while also demonstrating excellent written and oral communication skills.

13. Computer and information research scientist

These high skilled professionals spend their work days inventing and designing new approaches to computing technology while also discovering innovative uses for technologies that already exist. Computer and information research scientists can work in business, science, medicine and other fields to study and solve complex problems, creating and improving computer software and hardware.

14. Network architect

Network Architect use their backgrounds in networking technology to assess business and application requirements for phone, data and internet systems for an organization. This includes planning, designing and upgrading network installation projects, troubleshooting network architecture, making recommendations for system enhancements and maintaining backup, version-control and defense systems. Network architects help business leaders make informed decisions on network investments that fit their short and long-term needs.

15. Systems engineer

This experienced tech position requires the ability to communicate complex information to technical and nontechnical users, relying on an in-depth knowledge of the technology in use, as well as advanced analytical, troubleshooting and design skills. Systems Engineers are charged with developing, maintaining and supporting technical infrastructure, hardware and system software components, while also providing user support across multiple infrastructure platforms.

16. Computer support specialist

The important work of computer supprort specialists is pretty accurately explained by the title itself. They provide help and advice to computer users and organizations by offering technical assistance directly to computer users. This includes regular testing, troubleshooting and overall maintenance of existing network systems.

17. Mobile application developer

Mobile Application Developers specialize in coding, testing, debugging and monitoring mobile apps. They use their strong analytical and programming skills to contribute to the development of ongoing projects, recommending changes and enhancements to software applications as needed. Most mobile application developer positions will require previous experience building mobile applications across a number of different platforms, in addition to knowledge of common mobile development languages.

Wednesday, June 10, 2026

Common Computer, IT, and Technology Abbreviations




There are literally thousands of computer abbreviations out there. Many are concerned with the technical aspects of the computer, while others deal with personal communication. Following are some more common ones that you may have heard but do not know exactly what they mean.

Common Computer Abbreviations

Operating Systems and Data Storage

Two of the most basic components of any computer system are its operating system and data storage. Many acronyms reflect these basic requirements.

  • AFA - This acronym stands for All Flash Array, a grouping of flash memory devices that helps boost performance.

  • BIOS - This is the Basic Input Output System, which controls the computer, telling it what operations to perform. These instructions are on a chip that connects to the motherboard.

  • BYTE - A byte is a storage unit for data. KB is a kilobyte (1024 bytes); MB is a megabyte (1 million bytes); and GB is a gigabyte (1000 megabytes).

  • CPU - This stands for the Central Processing Unit of the computer. This is like the computer's brain.

  • HDD - This is an acronym for Hard Disk Drive, the traditional spinning drives that store information.

  • LCD - This stands for Liquid Crystal Display, a type of computer screen.

  • MAC - This is an abbreviation for Macintosh, which is a type of personal computer made by the Apple Computer company.

  • OS - This is the Operating System of the computer. It is the main program that runs on a computer and begins automatically when the computer is turned on.

  • PC - This is the abbreviation for personal computer. It originally referred to computers that were IBM compatible.

  • PDF - This represents the Portable Document Format, which displays files in a format that is ready for the web.

  • RAID - A type of storage that can be configured in different ways to provide a redundant copy of files, RAID stands for Redundant Array of Independent Disks.

  • RAM - This stands for Random Access Memory, which is the space inside the computer that can be accessed at one time. If you increase the amount of RAM, then you will increase the computer's speed. This is because more of a particular program is able to be loaded at one time.

  • RDMA - This stands for Remote Direct Memory Access.

  • ROM - This is Read Only Memory, which is the instruction for the computer and cannot be altered.

  • SATA - This stands for Serial Advanced Technology Attachment, a type of hard drive technology.

  • SDS - This stands for Software-Defined Storage, a type of data storage that separates the data from its associated software.

  • SSD - This acronym stands for Solid State Drive, a more modern type of hard drive that has no moving parts.

  • VGA - The Video Graphics Array is a system for displaying graphics. It was developed by IBM.

Internet, Networking, and Connectivity

Moving beyond the physical computer right in front of you, acronyms related to networking and getting online are equally numerous and diverse.

  • DNS - This stands for Domain Name Server; this can help recognize an IP address used by a domain name.

  • FTP - This is a service called File Transport Protocol, which moves a file between computers using the Internet.

  • HTML - HyperText Markup Language formats information so it can be transported on the Internet.

  • HTTP - Hypertext Transfer Protocol is a set of instructions for the software that controls the movement of files on the Internet.

  • IP - This stands for Internet Protocol which is the set of rules that govern the systems connected to the Internet. IP Address is a digital code specific to each computer that is hooked up to the Internet.

  • ISP - The Internet Service Provider is the company which provides Internet service so you can connect your computer to the Internet.

  • LAN - This stands for Local Area Network, which consists of the servers that your computer connects to in your local area.

  • PPP - Point-to-Point Protocol is the set of rules that allow your computer to use the Internet protocols using a phone line and modem.

  • SEO - This is an acronym for Search Engine Optimization.

  • URL - This is the Uniform Resource Locator, which is a path to a certain file on the World Wide Web. It is what you may also call the web address.

  • USB - The Universal Serial Bus is used for communications between certain devices. It can connect keyboards, cameras, printers, mice, flash drives, and other devices. Its use has expanded from personal computers to smartphones and video games, and is used as a power cord to connect devices to a wall outlet to charge them.

  • VR - Virtual Reality simulates a three-dimensional scene on the computer and has the capability of interaction. This is widely used in gaming.

  • VRML - Virtual Reality Mark-up Language allows the display of 3D images.

  • WYSIWYG - This initialism stands for What You See Is What You Get. It is pronounced "wizziwig" and basically means that the printer will print what you see on your monitor. It also describes web design programs where what you see in the program is how the website will appear to the end user.

Common Cloud Computing Abbreviations

Cloud computing has its own set of acronyms and IT abbreviations that can easily confuse people. These are a few of the common ones:

  • BYOC - This stands for Bring Your Own Cloud, often referring to cloud-based file-sharing software.

  • IaaS - This acronym stands for Infrastructure as a Service. It means a service that provides data storage and servers remotely for clients.

  • SaaS - This stands for Software as a Service and refers to on-demand software stored in the cloud.

  • VDI - This abbreviation stands for Virtual Desktop Infrastructure and refers to a virtual desktop that can be accessed by several users.

  • VPN - This stands for Virtual Private Network and is used to represent a secure connection between a network and a user.

Common AI Abbreviations

AI, which stands for Artificial Intelligence, is becoming more common all the time. From your phone to the way you interact with your television, people encounter AI every day. These are some of the common acronyms and abbreviations that go with it:

  • AI - Short for artificial intelligence, AI refers to the development of computer systems to perform tasks like speech recognition and object assessment.

  • ASR - This stands for Automatic Speech Recognition and refers to computers’ ability to understand your speech.

  • DL - This acronym stands for Deep Learning, referring to complicated tasks that require many layers of integration in a machine’s neural network.

  • FKP - This stands for Facial Key Points, the places software looks to recognize faces.

  • ML - ML stands for Machine Learning, the ability of a machine to learn and integrate new information.

Common Email and Chat Abbreviations

Email and web communication require certain abbreviations of their own, including symbols that stand in for facial expressions.

Email Abbreviations

You’ll also see some of these email abbreviations used in texting and online messaging.

  • AFK - Away From Keyboard

  • BC - Blind Copy

  • CIAO - Check It All Out

  • GAL - Get A Life

  • GMTA - Great Minds Think Alike

  • J4F - Just For Fun

  • KISS - Keep it Simple, Stupid

  • LOL - Laughing Out Loud

  • Re: - Regarding

  • TIC - Tongue In Cheek

  • TL;DR - Too Long, Didn't Read

Emoticons

Instead of abbreviating a word or phrase, emoticons attempt to resemble the visual expressions on a human face.

  • :) or :-) - Smiley face

  • :.( - Crying face

  • :-> - Grinning

  • :-| - Indifferent or bored

  • :-( - Sad face

  • ;-) - Winking

  • :-O - Yelling

Tuesday, June 9, 2026

Introduction




A basic understanding of networking is important for anyone managing a server. Not only is it essential for getting your services online and running smoothly, it also gives you the insight to diagnose problems.

This document will provide a basic overview of some common networking concepts. Here we will discuss basic terminologies.

This guide is operating system agnostic, but should be very helpful when implementing features and services that utilize networking on your server.

Networking Glossary

Before we begin discussing networking with any depth, we must define some common terms that you will see throughout this guide, and in other guides and documentation regarding networking.

These terms will be expanded upon in the appropriate sections that follow:

  • Connection: In networking, a connection refers to pieces of related information that are transfered through a network. This generally infers that a connection is built before the data transfer (by following the procedures laid out in a protocol) and then is deconstructed at the at the end of the data transfer.

  • Packet: A packet is, generally speaking, the most basic unit that is transfered over a network. When communicating over a network, packets are the envelopes that carry your data (in pieces) from one end point to the other.

Packets have a header portion that contains information about the packet including the source and destination, timestamps, network hops, etc. The main portion of a packet contains the actual data being transfered. It is sometimes called the body or the payload.

  • Network Interface: A network interface can refer to any kind of software interface to networking hardware. For instance, if you have two network cards in your computer, you can control and configure each network interface associated with them individually.

A network interface may be associated with a physical device, or it may be a representation of a virtual interface. The “loopback” device, which is a virtual interface to the local machine, is an example of this.

  • LAN: LAN stands for “local area network”. It refers to a network or a portion of a network that is not publicly accessible to the greater internet. A home or office network is an example of a LAN.

  • WAN: WAN stands for “wide area network”. It means a network that is much more extensive than a LAN. While WAN is the relevant term to use to describe large, dispersed networks in general, it is usually meant to mean the internet, as a whole.

If an interface is said to be connected to the WAN, it is generally assumed that it is reachable through the internet.

  • Protocol: A protocol is a set of rules and standards that basically define a language that devices can use to communicate. There are a great number of protocols in use extensively in networking, and they are often implemented in different layers.

Some low level protocols are TCP, UDP, IP, and ICMP. Some familiar examples of application layer protocols, built on these lower protocols, are HTTP (for accessing web content), SSH, TLS/SSL, and FTP.

  • Port: A port is an address on a single machine that can be tied to a specific piece of software. It is not a physical interface or location, but it allows your server to be able to communicate using more than one application.

  • Firewall: A firewall is a program that decides whether traffic coming into a server or going out should be allowed. A firewall usually works by creating rules for which type of traffic is acceptable on which ports. Generally, firewalls block ports that are not used by a specific application on a server.

  • NAT: NAT stands for network address translation. It is a way to translate requests that are incoming into a routing server to the relevant devices or servers that it knows about in the LAN. This is usually implemented in physical LANs as a way to route requests through one IP address to the necessary backend servers.

  • VPN: VPN stands for virtual private network. It is a means of connecting separate LANs through the internet, while maintaining privacy. This is used as a means of connecting remote systems as if they were on a local network, often for security reasons.

Monday, June 8, 2026

Electronic Commerce



E-Commerce or Electronic Commerce means buying and selling of goods, products, or services over the internet. E-commerce is also known as electronic commerce or internet commerce. These services provided online over the internet network. Transaction of money, funds, and data are also considered as E-commerce. These business transactions can be done in four ways: Business to Business (B2B), Business to Customer (B2C), Customer to Customer (C2C), Customer to Business (C2B). The standard definition of E-commerce is a commercila transaction which is happened over the internet. Online stores like Amazon, Flipkart, Shopify, Myntra, Ebay, Quikr, Olx are examples of E-commerce websites. By 2020, global retail e-commerce can reach up to $27 Trillion. Let us learn in detail about what is the advantages and disadvantages of E-commerce and its types.

E-Commerce or Electronic Commerce

E-commerce is a popular term for electronic commerce or even internet commerce. The name is self-explanatory, it is the meeting of buyers and sellers on the internet. This involves the transaction of goods and services, the transfer of funds and the exchange of data.

Types of E-Commerce Models

Electronic commerce can be classified into four main categories. The basis for this simple classification is the parties that are involved in the transactions. So the four basic electronic commerce models are as follows,

1. Business to Business

This is Business to Business transactions. Here the companies are doing business with each other. The final consumer is not involved. So the online transactions only involve the manufacturers,whole salers and retailers etc.

2. Business to Consumer

Business to Consumer. Here the company will sell their goods and/or services directly to the consumer. The consumer can browse their websites and look at products, pictures, read reviews. Then they place their order and the company ships the goods directly to them. Popular examples are Amazon, Flipkart, Jabong etc.

3. Consumer to Consumer

Consumer to consumer, where the consumers are in direct contact with each other. No company is involved. It helps people sell their personal goods and assets directly to an interested party. Usually, goods traded are cars, bikes, electronics etc. OLX, Quikr etc follow this model.

4. Consumer to Business

This is the reverse of B2C, it is a consumer to business. So the consumer provides a good or some service to the company. Say for example an IT freelancer who demos and sells his software to a company. This would be a C2B transaction.

Advantages of E-Commerce

  • E-commerce provides the sellers with a global reach. They remove the barrier of place (geography). Now sellers and buyers can meet in the virtual world, without the hindrance of location.

  • Electronic commerce will substantially lower the transaction cost. It eliminates many fixed costs of maintaining brick and mortar shops. This allows the companies to enjoy a much higher margin of profit.

  • It provides quick delivery of goods with very little effort on part of the customer. Customer complaints are also addressed quickly. It also saves time, energy and effort for both the consumers and the company.

  • One other great advantage is the convenience it offers. A customer can shop 24×7. The website is functional at all times, it does not have working hours like a shop.

  • Electronic commerce also allows the customer and the business to be in touch directly, without any intermediaries. This allows for quick communication and transactions. It also gives a valuable personal touch.

Disadvantages of E-Commerce

  • The start-up costs of the e-commerce portal are very high. The setup of the hardware and the software, the training cost of employees, the constant maintenance and upkeep are all quite expensive.

  • Although it may seem like a sure thing, the e-commerce industry has a high risk of failure. Many companies riding the dot-com wave of the 2000s have failed miserably. The high risk of failure remains even today.

  • At times, e-commerce can feel impersonal. So it lacks the warmth of an interpersonal relationship which is important for many brands and products. This lack of a personal touch can be a disadvantage for many types of services and products like interior designing or the jewelry business.

  • Security is another area of concern. Only recently, we have witnessed many security breaches where the information of the customers was stolen. Credit card theft, identity theft etc. remain big concerns with the customers.

  • Then there are also fulfillment problems. Even after the order is placed there can be problems with shipping, delivery, mix-ups etc. This leaves the customers unhappy and dissatisfied.

Friday, June 5, 2026

Programming language



Computer programming languages allow us to give instructions to a computer in a language the computer understands. Just as many human-based languages exist, there are an array of computer programming languages that programmers can use to communicate with a computer. The portion of the language that a computer can understand is called a “binary.” Translating programming language into binary is known as “compiling.” Each language, from C Language to Python, has its own distinct features, though many times there are commonalities between programming languages.

These languages allow computers to quickly and efficiently process large and complex swaths of information. For example, if a person is given a list of randomized numbers ranging from one to ten thousand and is asked to place them in ascending order, chances are that it will take a sizable amount of time and include some errors.

Language Types

 

Machine and assembly languages

A machine language consists of the numeric codes for the operations that a particular computer can execute directly. The codes are strings of 0s and 1s, or binary digits (“bits”), which are frequently converted both from and to hexadecimal (base 16) for human viewing and modification. Machine language instructions typically use some bits to represent operations, such as addition, and some to represent operands, or perhaps the location of the next instruction. Machine language is difficult to read and write, since it does not resemble conventional mathematical notation or human language, and its codes vary from computer to computer.

Assembly language is designed to be easily translated into machine language. Although blocks of data may be referred to by name instead of by their machine addresses, assembly language does not provide more sophisticated means of organizing complex information. Like machine language, assembly language requires detailed knowledge of internal computer architecture. It is useful when such details are important, as in programming a computer to interact with peripheral devices (printers, scanners, storage devices, and so forth).

Algorithmic languages

Algorithmic languages are designed to express mathematical or symbolic computations. They can express algebraic operations in notation similar to mathematics and allow the use of subprograms that package commonly used operations for reuse. They were the first high-level languages.

FORTRAN

The first important algorithmic language was FORTRAN(formula translation), designed in 1957 by an IBM team led by John Backus. It was intended for scientific computations with real numbers and collections of them organized as one- or multidimensional arrays. Its control structures included conditional IF statements, repetitive loops (so-called DO loops), and a GOTO statement that allowed nonsequential execution of program code. FORTRAN made it convenient to have subprograms for common mathematical operations, and built libraries of them.

FORTRAN was also designed to translate into efficient machine language. It was immediately successful and continues to evolve.

 ALGOL

ALGOL (algorithmic language) was designed by a committee of American and European computer scientists during 1958–60 for publishing algorithms, as well as for doing computations. Like LISP (described in the next section), ALGOL had recursive subprograms—procedures that could invoke themselves to solve a problem by reducing it to a smaller problem of the same kind. ALGOL introduced block structure, in which a program is composed of blocks that might contain both data and instructions and have the same structure as an entire program. Block structure became a powerful tool for building large programs out of small components.

ALGOL contributed a notation for describing the structure of a programming language, Backus–Naur Form, which in some variation became the standard tool for stating the syntax(grammar) of programming languages. ALGOL was widely used in Europe, and for many years it remained the language in which computer algorithms were published. Many important languages, such as Pascal and Ada (both described later), are its descendants.

LISP

LISP(list processing) was developed about 1960 by John McCarthy at the Massachusetts Institute of technology (MIT) and was founded on the mathematical theory of recursive functions (in which a function appears in its own definition). A LISP program is a function applied to data, rather than being a sequence of procedural steps as in FORTRAN and ALGOL. LISP uses a very simple notation in which operations and their operands are given in a parenthesized list. For example, (+ a (* b c)) stands for a + b*c. Although this appears awkward, the notation works well for computers. LISP also uses the list structure to represent data, and, because programs and data use the same structure, it is easy for a LISP program to operate on other programs as data.

LISP became a common language for artificial Intelligence (AI) programming, partly owing to the confluence of LISP and AI work at MIT and partly because AI programs capable of “learning” could be written in LISP as self-modifying programs. LISP has evolved through numerous dialects, such as Scheme and Common LISP.

C

The C programming language was developed in 1972 by Dennis Richtie and Brian Kernighan at the AT&T Corporation for programming computer operating systems. Its capacity to structure data and programs through the composition of smaller units is comparable to that of ALGOL. It uses a compact notation and provides the programmer with the ability to operate with the addresses of data as well as with their values. This ability is important in systems programming, and C shares with assembly language the power to exploit all the features of a computer’s internal architecture. C, along with its descendant C++, remains one of the most common languages.

 

Business-oriented languages

 

COBOL

COBOL (common business oriented language) has been heavily used by businesses since its inception in 1959. A committee of computer manufacturers and users and U.S. government organizations established CODASYL (Committee on Data Systems and Languages) to develop and oversee the language standard in order to ensure its portability across diverse systems.

COBOL uses an English-like notation—novel when introduced. Business computations organize and manipulate large quantities of data, and COBOL introduced the record data structures for such tasks. A record clusters heterogenous data—such as a name, an ID number, an age, and an address—into a single unit. This contrasts with scientific languages, in which homogenous arrays of numbers are common. Records are an important example of “chunking” data into a single object, and they appear in nearly all modern languages.

 

SQL (structured query language) is a language for specifying the organization of databases (collections of records). Databases organized with SQL are called relational, because SQL provides the ability to query a database for information that falls in a given relation. For example, a query might be “find all records with both last name  Smith and city New York.” Commercial database programs commonly use an SQL-like language for their queries.

 

Education-oriented languages

BASIC

BASIC (beginner’s all-purpose symbolic instruction code) was designed at Dartmouth College in the mid-1960s by John Kemeny and Thomas Kurtz. It was intended to be easy to learn by novices, particularly non-computer science majors, and to run well on a time-sharing computer with many users. It had simple data structures and notation and it was interpreted: a BASIC program was translated line-by-line and executed as it was translated, which made it easy to locate programming errors.

Its small size and simplicity also made BASIC a popular language for early personal computers. Its recent forms have adopted many of the data and control structures of other contemporary languages, which makes it more powerful but less convenient for beginners.

PASCAL

About 1970 Niklaus Wirth of Switzerland designed Pascal to teach structured programming, which emphasized the orderly use of conditional and loop control structures without GOTO statements. Although Pascal resembled ALGOL in notation, it provided the ability to define data types with which to organize complex information, a feature beyond the capabilities of ALGOL as well as FORTRAN and COBOL. User-defined data types allowed the programmer to introduce names for complex data, which the language translator could then check for correct usage before running a program.

During the late 1970s and ’80s, Pascal was one of the most widely used languages for programming instruction. It was available on nearly all computers, and, because of its familiarity, clarity, and security, it was used for production software as well as for education. 

HyperTalk

HyperTalk was designed as “programming for the rest of us” by Bill Atkinson for Apple’s Macintosh. Using a simple English-like syntax, Hypertalk enabled anyone to combine text, graphics, and audio quickly into “linked stacks” that could be navigated by clicking with a mouse on standard buttons supplied by the program. Hypertalk was particularly popular among educators in the 1980s and early ’90s for classroom multimedia presentations. Although Hypertalk had many features of object-oriented languages (described in the next section), Apple did not develop it for other computer platforms and let it languish; as Apple’s market share declined in the 1990s, a new cross-platform way of displaying multimedia left Hypertalk all but obsolete (see the section World Wide Web Display Languages ).

Object Oriented languages

Object-oriented languages help to manage complexity in large programs. Objects package data and the operations on them so that only the operations are publicly accessible and internal details of the data structures are hidden. This information hiding made large-scale programming easier by allowing a programmer to think about each part of the program in isolation. In addition, objects may be derived from more general ones, “inheriting” their capabilities. Such an object hierarchy made it possible to define specialized objects without repeating all that is in the more general ones.

Object-oriented programming began with the Simula language (1967), which added information hiding to ALGOL. Another influential object-oriented language was Smalltalk (1980), in which a program was a set of objects that interacted by sending messages to one another. 

C++

The C++ language, developed by Bjarne Stroustrup at AT&T in the mid-1980s, extended C by adding objects to it while preserving the efficiency of C programs. It has been one of the most important languages for both education and industrial programming. Large parts of many operating systems were written in C++. C++, along with Java, has become popular for developing commercial software packages that incorporate multiple interrelated applications. C++ is considered one of the fastest languages and is very close to low-level languages, thus allowing complete control over memory allocation and management. This very feature and its many other capabilities also make it one of the most difficult languages to learn and handle on a large scale.

C#

C# (pronounced C sharp like the musical note) was developed by Anders Hejlsberg at Microsoft in 2000. C# has a syntax similar to that of C and C++ and is often used for developing games and applications for the Microsoft Windows Operating System.

Java

In the early 1990s, Java was designed by Sun Microsystem,Inc., as a programming language for the World Wide Web (WWW). Although it resembled C++ in appearance, it was fully object-oriented. In particular, Java dispensed with lower-level features, including the ability to manipulate data addresses, a capability that is neither desirable nor useful in programs for distributed systems. In order to be portable, Java programs are translated by a Java Virtual Machine specific to each computer platform, which then executes the Java program. In addition to adding interactive capabilities to the internet through Web “applets,” Java has been widely used for programming small and portable devices, such as mobile telephones.

Visual Basic was developed by Microsoft to extend the capabilities of BASIC by adding objects and “event-driven” programming: buttons, menus, and other elements of graphical user interfaces (GUIs). Visual Basic can also be used within other Microsoft software to program small routines. Visual Basic was succeeded in 2002 by Visual Basic .NET, a vastly different language based on C#, a language with similarities to C++.

Python

The open-source language Python was developed by Dutch programmer Guido van Rossum in 1991. It was designed as an easy-to-use language, with features such as using indentation instead of brackets to group statements. Python is also a very compact language, designed so that complex jobs can be executed with only a few statements. In the 2010s, Python became one of the most popular programming languages, along with Java and JavaScript.

 

Change margins

Word for Microsoft 365 Word 2019 Word 2016 Word 2013 Word 2010 More...   In Word, each page automatically has a one-inch ma...