My name is Taufik Algi Fahri

OS202

View on GitHub

HOME


Top 10 List of Week 01

  1. Virtualizations
    Virtualization is a surprisingly simple concept…at least in theory. The simple explanation is that you create a virtual version of something that’s generally used for some type of execution. For example, if you were to partition a basic hard drive to create two hard drives, then they would be two ‘virtualized hard drives,’ as the hardware is technically a single hard drive that was digitally separated into two. There are 7 types of virtualization, OS Virtualization—aka Virtual Machines, Application-Server Virtualization, Application Virtualization, Administrative Virtualization, Network Virtualization, Hardware Virtualization, and Storage Virtualization.

  2. Virtual memory
    Virtual memory is a memory management technique that can be implemented using both hardware and software. As the name indicates, it adds virtual memory to available memory, so that your system will appear to have more memory than what actually exists. Virtual memory is a layer of memory addresses (virtual addresses) that map to physical addresses. The memory addresses used by a program is the virtual addresses. These virtual address spaces and the assignment of real memory to the virtual memory are managed by the operating system. The working of virtual memory is as follows. The computer system has a limited amount of Static RAM. When a program gets executed, an instance of the program is loaded into the RAM. This is the process of allocating the memory for the instructions to execute. When the program demands more RAM than available, it will be allocated to the virtual memory. This prevents the program from lacking the necessary RAM to execute. This virtual memory is actually the memory of the hard disk and it is then mapped into the physical memory.

  3. Demand paging
    Demand paging is a type of swapping done in virtual memory systems. In demand paging, the data is not copied from the disk to the RAM until they are needed or being demanded by some program. The data will not be copied when the data is already available on the memory. This is otherwise called a lazy evaluation because only the demanded pages of memory are being swapped from the secondary storage (disk space) to the main memory. In contrast during pure swapping, all the memory for a process is swapped from secondary storage to main memory during the process startup.

  4. Virtual file system
    The Virtual File System (also known as the Virtual Filesystem Switch) is the software layer in the kernel that provides the filesystem interface to userspace programs. It also provides an abstraction within the kernel which allows different filesystem implementations to coexist. VFS system calls open(2), stat(2), read(2), write(2), chmod(2) and so on are called from a process context. Filesystem locking is described in the document Documentation/filesystems/locking.rst.

  5. Hypervisor
    A hypervisor, also known as a virtual machine monitor or VMM, is software that creates and runs virtual machines (VMs). A hypervisor allows one host computer to support multiple guest VMs by virtually sharing its resources, such as memory and processing. There are two main hypervisor types, referred to as “Type 1” (or “bare metal”) and “Type 2” (or “hosted”). A type 1 hypervisor acts like a lightweight operating system and runs directly on the host’s hardware, while a type 2 hypervisor runs as a software layer on an operating system, like other computer programs.

  6. Cloud service
    The term “cloud services” refers to a wide range of services delivered on demand to companies and customers over the internet. These services are designed to provide easy, affordable access to applications and resources, without the need for internal infrastructure or hardware. From checking email to collaborating on documents, most employees use cloud services throughout the workday, whether they’re aware of it or not.

  7. Regular expression
    Regular expressions or regex or regexp are basically strings of character that define a search pattern, they can be used for performing ‘Search’ or ‘Search & Replace’ operations as well as can be used to validate a condition like a password policy etc. Regex is a very powerful tool that is available at our disposal & the best thing about using regex is that they can be used in almost every computer language. So if you are Bash Scripting or creating a Python program, we can use regex or we can also write a single line search query.

  8. Free software
    “Free software” means software that respects users’ freedom and community. Roughly, it means that the users have the freedom to run, copy, distribute, study, change and improve the software. Thus, “free software” is a matter of liberty, not price. To understand the concept, you should think of “free” as in “free speech,” not as in “free beer”. We sometimes call it “libre software,” borrowing the French or Spanish word for “free” as in freedom.

  9. Concurrency)
    Concurrency means multiple computations are happening at the same time. Concurrency is everywhere in modern programming, whether we like it or not: Multiple computers in a network, Multiple applications running on one computer, Multiple processors in a computer (today, often multiple processor cores on a single .chip). In fact, concurrency is essential in modern programming: Web sites must handle multiple simultaneous users, Mobile apps need to do some of their processing on servers (“in the cloud”), Graphical user interfaces almost always require background work that does not interrupt the user. For example, Eclipse compiles your Java code while you’re still editing it.

  10. Software license
    A software license is a document that provides legally binding guidelines for the use and distribution of software. Software licenses typically provide end users with the right to one or more copies of the software without violating copyrights. The license also defines the responsibilities of the parties entering into the license agreement and may impose restrictions on how the software can be used. Software licensing terms and conditions usually include fair use of the software, the limitations of liability, warranties and disclaimers and protections if the software or its use infringes on the intellectual property rights of others.