HOME


Top 10 List of Week 00

  1. What is an Operating System?
    In layman terms, Operating System is a bridge between hardware and the software that we use. Of course, it is still to abstract. In details, it exposes ways of using computer hardware’s capabilities through kernel which softwares can utilize through Bytecode or Virtual Machine (e.g. C++ Compiled .exe or Java Virtual Machine).

While it is convenient and easy for the machine to communicate with each software through bytecode, it will be arduous for Humans to write their 0’s and 1’s away.

  1. Operating System Functionalities
    The main task an operating system carries out is the allocation of resources and services, such as allocation of: memory, devices, processors and information. The operating system also includes programs to manage these resources, such as a traffic controller, a scheduler, memory management module, I/O programs, and a file system.

Important functions of an operating System:

  1. How does Humans conveniently interact with Machine?
    From a high level overview, there are mainly two ways for Human to interact with Machine: Command Line Interface (CLI) and Graphical Unit Interface (GUI). CLI describes interaction with commands that we type on Terminal. GUI describes graphical interaction with buttons and text fields. However, it is too narrow to define how Humans interact based on those two methodologies. With technological developments, we can communicate with machine through ways that are convenient for us. In example:
    • IOT Devices that communicates wirelessly
    • NFC
    • Touchscreen
    • Stylus
    • Other sensors that couldn’t come up to my mind…

They are enabled by interconnection of softwares that are connected by the World Wide Web. How they communicate is another topic of it’s own, which leads us to the next point.

  1. Application Programming Interface and RESTful APIs
    Application Programming Interface (or conveniently, API) is a way of software to communicate with other machines. In a sense, they expose endpoints that have a set of rules that process data in some kind of way that outputs useful data. However, if it is not generalized, software communication would be a nightmare. That is why RESTful APIs become the widely accepted norm.

You can read over what a RESTful API is on the link above. Essentially, it enables every possible way of communication between software gracefully.

  1. Security Threats to Software Services
    As Software Services are man-made, it is bound to have mistakes and vulnerabilities. However, fret not, because many humans dedicated themselves to detect and mitigate these vulnerabilities such as OWASP.

  2. Security Threats to Operating Systems
    Not only Software Services, Operating Systems are also vulnerable as it too is man-made. Here are the most common vulnerability that OS’s meet.
    • Breach of Confidentiality
      Theft of private or confidential information, such as credit-card numbers, trade secrets, patents, secret formulas, manufacturing procedures, medical information, financial information, etc.
    • Breach of Integrity
      Unauthorized modification of data, which may have serious indirect consequences. For example a popular game or other program’s source code could be modified to open up security holes on users systems before being released to the public.
    • Breach of Availability
      Unauthorized destruction of data, often just for the “fun” of causing havoc and for bragging rites. Vandalism of web sites is a common form of this violation.
    • Theft of Service
      Unauthorized use of resources, such as theft of CPU cycles, installation of daemons running an unauthorized file server, or tapping into the target’s telephone or networking services.
    • Denial of Service, DOS
      Preventing legitimate users from using the system, often by overloading and overwhelming the system with an excess of requests for service.
  3. OS Design Issues There are various types of Advanced Operating Systems. Though all the Major Design Issues will be applicable to most of the Operating Systems. The important issues related to Operating system are:
    • Transparency
    • Flexibility
    • Reliability
    • Performance
    • Scalability
    • Naming
    • Replication
    • Synchronization
    • Security
  4. Resource Management on OS
    In computer programming, resource management refers to techniques for managing resources (components with limited availability). It includes both preventing resource leaks (releasing a resource when a process has finished using it) and dealing with resource contention (when multiple processes wish to access a limited resource). Resource leaks are an issue in sequential computing, while resource contention is an issue in concurrent computing. On many systems the operating system reclaims resources after the process makes the exit system call.

  5. Logical Layer of an Operating System
    The Logical Level of the operating system provides high level functions, such as file management, internet and networking facilities, etc. The file system provides a logical manner for programs to access files. The actual data is stored as bits on a storage media (Hard Drive, SSD, Optical Drives, etc.), often with special information for error correction and other internal purposes. Data is usually stored in blocks — and there are numerous ways the blocks of data can be organized. Rather than having each program directly access the hardware and correctly interpret the bit patterns of the physical media, operating systems can provide a logical file system.

  6. Structures of Operating System
    Operating system can be implemented with the help of various structures. The structure of the OS depends mainly on how the various common components of the operating system are interconnected and melded into the kernel. Depending on this we have following structures of the operating system:
    • Simple Structure
    • Layered Structure
    • Micro-kernel
    • Modular Approach