<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>notes on Devops Diary</title><link>/categories/notes/</link><description>Recent content in notes on Devops Diary</description><generator>Hugo -- gohugo.io</generator><language>en-us</language><lastBuildDate>Sat, 13 Jan 2024 00:00:00 +0000</lastBuildDate><atom:link href="/categories/notes/index.xml" rel="self" type="application/rss+xml"/><item><title>Short Notes: Virtual File Systems (VFS)</title><link>/notes/advanced-vfs-concepts/</link><pubDate>Sat, 13 Jan 2024 00:00:00 +0000</pubDate><guid>/notes/advanced-vfs-concepts/</guid><description>Dentries The dentry cache is a portion of the Linux kernel that stores directory entries, it is a part of the Virtual File System (VFS) layer. A dentry is the glue that holds inodes and files together by relating inode numbers to file names. Dentries also play a role in directory caching which, ideally, keeps the most frequently used files on-hand for faster access. It tracks the locations of files and directories on a Linux file system, allowing for faster path name resolution.</description></item><item><title>Short Notes: Virtual File Systems (VFS)</title><link>/notes/virtual-file-systems/</link><pubDate>Tue, 28 Nov 2023 00:00:00 +0000</pubDate><guid>/notes/virtual-file-systems/</guid><description>Virtual File Systems (VFS) What is VFS 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 is an abstraction layer, it&amp;rsquo;s what makes &amp;ldquo;everything is a file&amp;rdquo; philosophy possible in linux.
Linux views all file systems from the perspective of a common set of objects.</description></item><item><title>Short Notes: cGroups and Namespaces</title><link>/notes/cgroups-and-namespaces/</link><pubDate>Thu, 22 Jun 2023 00:00:00 +0000</pubDate><guid>/notes/cgroups-and-namespaces/</guid><description>Cgroups Control groups (or cgroups as they are commonly known) are a feature provided by the Linux kernel to track, manage, restrict, and audit groups of processes. It also allows to limit/prioritize what resources are available to a group of processes. The way you interact with cgroups are by using sub-systems; cgroup system is an abstract framework, subsystems are the concrete implementation. Cgroups are more flexible as they can operate on (sub)sets of processes (possibly with different system users).</description></item><item><title>Short Notes: Unix System Calls</title><link>/notes/unix-system-calls/</link><pubDate>Thu, 27 Apr 2023 00:00:00 +0000</pubDate><guid>/notes/unix-system-calls/</guid><description>Unix Systems Unix systems were created in 1970s, and by 1980s the 2 most prevelant systems were SystemV (created by AT&amp;amp;T) and BSD (Berkeley System Distribution). Many variants exist nowadays, including many distros for Linux, MacOSX (based on Darwin), FreeBSD etc.
Unix is a modular OS made up of a number of essential components, including the kernel, shell, file system and a core set of utilities or programs. At the heart of the Unix OS is the kernel, a master control program that provides services to start and end programs.</description></item><item><title>Short Notes: Inter Process Communication</title><link>/notes/ipc/</link><pubDate>Sun, 12 Feb 2023 00:00:00 +0000</pubDate><guid>/notes/ipc/</guid><description>IPC (Inter Process Communication) refers to the mechanisms by which processes in an operating system communicate with each other. This involves synchronizing their actions and managing shared data. This can be done between related processes (parent/child) and between unrelated processes. These mechanisms are implemented as part of the kernel module. The Linux kernel has many IPC mechanisms that allow processes to communicate and collaborate. Here are some of the main ones:</description></item><item><title>Short Notes: Memory Management</title><link>/notes/memory-management/</link><pubDate>Sun, 08 Jan 2023 00:00:00 +0000</pubDate><guid>/notes/memory-management/</guid><description>Memory Management The CPU can only access its registers and main memory. It cannot, for example, make direct access to the hard drive, so any data stored there must first be transferred into the main memory chips before the CPU can work with it. Device drivers communicate with their hardware via &amp;ldquo;interrupts&amp;rdquo; and &amp;ldquo;memory&amp;rdquo; accesses, sending short instructions.
For example, to transfer data from the hard drive to a specified location in main memory, the disk controller monitors the bus for such instructions, transfers the data, and then notifies the CPU that the data is there with another interrupt, but the CPU never gets direct access to the disk.</description></item><item><title>Short Notes: Virtualization</title><link>/notes/virtualization/</link><pubDate>Mon, 19 Dec 2022 00:00:00 +0000</pubDate><guid>/notes/virtualization/</guid><description>Virtualization Virtualization is technology that you can use to create virtual representations of servers, storage, networks, and other physical machines. Virtual software mimics the functions of physical hardware to run multiple virtual machines simultaneously on a single physical machine, increasing the utilization and flexibility of hardware. To the applications running on top of the virtualized machine, it can appear as if they are on their own dedicated machine, even though it is running on just a portion of the actual underlying computer hardware.</description></item><item><title>Short Notes: Process Management</title><link>/notes/process-management/</link><pubDate>Thu, 08 Sep 2022 00:00:00 +0000</pubDate><guid>/notes/process-management/</guid><description>What is a Process A process is a running instances of program. Shell is also a process: when you enter shell command, control passes from shell to new process, executes and then returns back to shell once the process exits. Every process has unique number: pid. Every process also has a parent id: ppid (except init). For every process running in the system, the OS keeps a data sturucture that keeps all the things associated with the process.</description></item><item><title>Short Notes: TCP Flow and Congestion Control</title><link>/notes/tcp-congestion-retransmission/</link><pubDate>Mon, 25 Jul 2022 00:00:00 +0000</pubDate><guid>/notes/tcp-congestion-retransmission/</guid><description>TCP Flow Control Flow control deals with the amount of data sent to the receiver side without receiving any acknowledgment. It makes sure that the receiver will not be overwhelmed with data. The data link layer in the OSI model is responsible for facilitating flow control. The goal of flow control is to prevent buffer overflow, which can lead to dropped packets and poor network performance.
The flow control mechanism tells the sender the maximum speed at which the data can be sent to the receiver device.</description></item><item><title>Short Notes: Network Layer</title><link>/notes/network-layer/</link><pubDate>Tue, 03 May 2022 00:00:00 +0000</pubDate><guid>/notes/network-layer/</guid><description>Internet is a network of networks: computers are connected to each other within networks, and these networks connect to other networks. The &amp;ldquo;network layer&amp;rdquo; is the part of the Internet communications process where these connections occur, by sending packets of data back and forth between different networks. The network layer is layer 3. The Internet Protocol (IP) is one of the main protocols used at this layer, along with several other protocols for routing, testing, and encryption.</description></item><item><title>Short Notes: Transport Layer</title><link>/notes/transport-layer/</link><pubDate>Sat, 02 Apr 2022 00:00:00 +0000</pubDate><guid>/notes/transport-layer/</guid><description>Transport Layer Transport Layer provides logical communication between application processes running on different hosts. This is required specifically when these hosts are on different networks. Network layer provides logical communication between hosts whereas Transport layer provides logical communication between processes.
Transport protocol runs on end systems. On the sender&amp;rsquo;s side it breaks the application layer messages into segments, adds some transport layer information and passes it to network layer. On the receiver side, it re-assembles segments into messages by stripping transport layer headers, and then passes it to the application layer.</description></item><item><title>Short Notes: All about TLS</title><link>/notes/all-about-tls/</link><pubDate>Wed, 23 Feb 2022 00:00:00 +0000</pubDate><guid>/notes/all-about-tls/</guid><description>What is TLS (or SSL) Secure Sockets Layer (SSL) &amp;amp; Transport Layer Security (TLS) SSL is deprecated now, TLS is in use now but both names are still used interchangably . TLS is an encryption and authentication protocol designed to secure Internet communications. TLS handshake is the process of creating a safe and secure encrypted communication channel between the client and the server. During a TLS handshake, the two communicating sides exchange messages to acknowledge each other, verify each other, establish the cryptographic algorithms they will use, and agree on session keys.</description></item><item><title>Short Notes: Data Link Layer</title><link>/notes/data-link-layer/</link><pubDate>Mon, 02 Aug 2021 00:00:00 +0000</pubDate><guid>/notes/data-link-layer/</guid><description>Address Translation (ARP) IP datagrams contain IP addresses, but the physical interface hardware on the host or router to which you want to send the datagram only understands the addressing scheme of that particular network. Thus, we need to translate the IP address to a link-level address that makes sense on this network (a 48-bit Ethernet address). We can then encapsulate the IP datagram inside a frame that contains that link-level address and send it either to the ultimate destination or to a router that promises to forward the datagram toward the ultimate destination.</description></item><item><title>Short Notes: Puppet</title><link>/notes/puppet/</link><pubDate>Thu, 05 Sep 2019 00:00:00 +0000</pubDate><guid>/notes/puppet/</guid><description>Puppet Puppet Flow Puppet has a agent(s)/master(s) model where the servers is called Puppet Master, and the managed clients are called Puppet agents, which get their configuration from puppet master. The Puppet agent begins a Puppet run by sending a catalog request to master, along with the &amp;ldquo;facts&amp;rdquo; of the system.
The master uses this information to compile a catalog for the agent.</description></item><item><title>Short Notes: Varnish</title><link>/notes/varnish/</link><pubDate>Wed, 21 Aug 2019 00:00:00 +0000</pubDate><guid>/notes/varnish/</guid><description>Varnish Config Language (VCL): Backend Backends where the actual content are present. Use backend to create a named backend object.
backend some_backend { .host = &amp;quot;x.x.x.x&amp;quot;; .port = &amp;quot;1234&amp;quot;; .probe = some_probe; } Probe Queries backend to check if the backend is up. Can query a particular url (default: /) to see if backend is up.
probe some_probe { .url = &amp;quot;/test&amp;quot;; .timeout = 300 s; .interval = 10s; } Access Control List (ACL) Create an ACL which can be used to match client addresses.</description></item><item><title>Short Notes: Apache JMeter</title><link>/notes/jmeter/</link><pubDate>Thu, 18 Jul 2019 00:00:00 +0000</pubDate><guid>/notes/jmeter/</guid><description>Used for Performance testing Use virtual users which concurrently perform requests/transactions on the website. Use scripts to model these requests. Can group multiple scripts to perform a single test. All tests running together constitute the &amp;ldquo;workload&amp;rdquo;. KPI (Key Performance Indicators) Response Time: Time taken by the request to travel over the network, the preocessing time by the server, and the time taken by the server to send the response back to the client.</description></item><item><title>Short Notes: Routing Protocols</title><link>/notes/routing-protocols/</link><pubDate>Sun, 26 Aug 2018 00:00:00 +0000</pubDate><guid>/notes/routing-protocols/</guid><description>Interior vs. Exterior Routing Protocols Interior Gateway Protocols (IGPs) handle routing within an Autonomous System. Eg. RIP,IGRP,OSPF etc. Exterior Gateway Protocols handle routing outside an Autonomous Systems, such as connecting different Autonomous systems, forming the Internet. Eg. BGP. Distance Vector vs. Link State Protocols Distance Vector Protocols
Distance vector protocols use distance to work out the best path for packets within a network. These protocols measure the distance based on how many hops data has to pass to get to its destination.</description></item><item><title>Short Notes: Network Devices and Protocols</title><link>/notes/network-devices-and-protocols/</link><pubDate>Wed, 11 Jul 2018 00:00:00 +0000</pubDate><guid>/notes/network-devices-and-protocols/</guid><description>Networking Devices Hub Contains multiple ports; When a packet arrives at one port, it&amp;rsquo;s sent to all the other ports. Acts as a common connection point for devices in a network. Non Intelligent device working on physical layer; Transmission units are signals/bits. Switch Intelligent device working at the data link layer (and sometimes the network layer). Transmission units are frame/packet. Contains multiple ports; it is the device that filters and forwards packets between LAN segments.</description></item><item><title>Short Notes: Computer Networks</title><link>/notes/computer-networks/</link><pubDate>Sun, 24 Jun 2018 00:00:00 +0000</pubDate><guid>/notes/computer-networks/</guid><description>Application Architectures and Protocols There are 2 possible structure of applications working over the internet:
client-server server: always-on host, permanent IP address, data centers for scaling clients: communicate with server, may be intermittently connected,may have dynamic IP addresses do not communicate directly with each other
peer-to-peer (p2p) no always-on server; arbitrary end systems directly communicate; peers request service from other peers, provide service in return to other peers  self scalability – new peers bring new service capacity, as well as new service demands; peers are intermittently connected and change IPn addresses; complex management.</description></item></channel></rss>