<?xml version="1.0" encoding="UTF-8"?><rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:atom="http://www.w3.org/2005/Atom" version="2.0"><channel><title><![CDATA[Devops With Nithish]]></title><description><![CDATA[Devops With Nithish]]></description><link>https://blogs.devopswithnithish.in</link><generator>RSS for Node</generator><lastBuildDate>Sat, 16 May 2026 06:16:01 GMT</lastBuildDate><atom:link href="https://blogs.devopswithnithish.in/rss.xml" rel="self" type="application/rss+xml"/><language><![CDATA[en]]></language><ttl>60</ttl><item><title><![CDATA[AWS - Identity Access Management]]></title><description><![CDATA[Introduction
AWS Identity and Access Management, commonly known as AWS IAM, is a service that allows you to control who can access your AWS services and what actions they can perform.
Simple Example:Imagine you own a mobile phone. You have full contr...]]></description><link>https://blogs.devopswithnithish.in/aws-identity-access-management</link><guid isPermaLink="true">https://blogs.devopswithnithish.in/aws-identity-access-management</guid><category><![CDATA[AWS]]></category><category><![CDATA[IAM]]></category><category><![CDATA[Cloud Computing]]></category><dc:creator><![CDATA[Nithish S]]></dc:creator><pubDate>Tue, 28 Jan 2025 22:22:32 GMT</pubDate><content:encoded><![CDATA[<h3 id="heading-introduction"><strong>Introduction</strong></h3>
<p>AWS Identity and Access Management, commonly known as <strong>AWS IAM</strong>, is a service that allows you to control <strong>who can access your AWS services</strong> and <strong>what actions they can perform</strong>.</p>
<p><strong>Simple Example</strong>:<br />Imagine you own a mobile phone. You have full control over who can access it and at what level. For instance:</p>
<ul>
<li><p>Some people can only view your phone (e.g., notifications or the screen lock).</p>
</li>
<li><p>Others might have deeper access, like viewing your photos or contacts.</p>
</li>
</ul>
<p>Similarly, AWS IAM helps you define who can access your AWS resources and <strong>sets permissions at the required levels</strong> to ensure security.</p>
<h3 id="heading-iam-users"><strong>IAM Users</strong></h3>
<p>An <strong>IAM User</strong> is an individual identity you create within your AWS account for a specific person or application that needs access to AWS services.<br />For example:<br />If someone needs access to manage an EC2 instance, you can create a <strong>user</strong> for them and attach the required <strong>IAM Policy</strong> that defines their permissions.</p>
<h3 id="heading-iam-policy"><strong>IAM Policy</strong></h3>
<p>An <strong>IAM Policy</strong> is a document that specifies the permissions for a user, group, or role in <strong>JSON format</strong>.<br />You can think of it as an <strong>agreement document</strong> that defines <strong>what the user is allowed or restricted from doing</strong> within AWS.</p>
<ul>
<li>For instance, an IAM Policy might specify that a user can "Start/Stop EC2 instances" but not "Delete S3 buckets."</li>
</ul>
<h3 id="heading-policy-structure"><strong>Policy Structure</strong></h3>
<p>An IAM Policy typically includes the following elements:</p>
<ol>
<li><p><strong>Effect</strong>: Specifies whether the policy allows or denies access.<br /> Example: <code>"Effect": "Allow"</code> or <code>"Effect": "Deny"</code></p>
</li>
<li><p><strong>Action</strong>: Lists the actions the policy allows or denies.<br /> Example: <code>"Action": "ec2:StartInstances"</code></p>
</li>
<li><p><strong>Resource</strong>: Specifies the resources the actions apply to.<br /> Example: <code>"Resource": "arn:aws:ec2:region:account-id:instance/instance-id"</code></p>
</li>
</ol>
<p><img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1738102823811/8236d238-d67a-4fd3-8e5a-b54345e4e3bb.png" alt class="image--center mx-auto" /></p>
<h3 id="heading-iam-groups"><strong>IAM Groups</strong></h3>
<p>An <strong>IAM Group</strong> is a collection of users that share the same set of permissions.<br /><strong>Example Scenario</strong>:<br />If multiple users require the same permissions, such as access to EC2 instances, you can create a group (e.g., "EC2Admins") and attach the required policy to the group. Instead of individually attaching the policy to each user, you simply add them to the group.</p>
<p><strong>Note</strong>:</p>
<ul>
<li><p>A user can belong to multiple groups.</p>
</li>
<li><p>However, <strong>groups cannot contain other groups</strong>.</p>
</li>
</ul>
<h3 id="heading-automation-of-aws-iam-and-other-aws-services"><strong>Automation of AWS IAM and Other AWS Services</strong></h3>
<p>You can automate the creation of IAM users, policies, and other AWS resources using the following tools:</p>
<ol>
<li><p><strong>AWS CLI</strong>:<br /> The Command Line Interface is used for performing smaller tasks, such as creating IAM users or launching EC2 instances.</p>
</li>
<li><p><strong>AWS SDK (e.g., Boto3 for Python)</strong>:<br /> The SDK provides programmatic access to AWS services and is particularly useful for serverless application development.<br /> <strong>Why prefer AWS SDK over AWS CLI?</strong><br /> While both serve similar purposes, the SDK is more versatile, enabling you to write code for serverless services and integrate AWS with custom applications.</p>
</li>
<li><p><strong>AWS CloudFormation (CFT)</strong>:<br /> CFT enables you to define your infrastructure as code, automating the creation and management of AWS resources.</p>
</li>
<li><p><strong>Terraform</strong>:<br /> Like CloudFormation, Terraform is used for Infrastructure as Code (IaC) but is platform-agnostic, meaning it supports multiple cloud providers.</p>
</li>
</ol>
<p><strong>Use Cases</strong>:</p>
<ul>
<li><p>AWS SDK/CLI: Automating smaller tasks like creating users or managing instances.</p>
</li>
<li><p>AWS CloudFormation/Terraform: Automating infrastructure provisioning for larger deployments.</p>
</li>
</ul>
<h3 id="heading-final-thoughts">Final Thoughts</h3>
<p>AWS IAM is a cornerstone of security in AWS, helping you ensure that only authorized users can access specific resources. By combining IAM with automation tools like AWS CLI, SDKs, and Infrastructure as Code solutions, you can manage access efficiently and scale your AWS environment securely.</p>
]]></content:encoded></item><item><title><![CDATA[Day 2: DevOps Challenge with COZY Cloud - Oh My Lucky Day! 🍀]]></title><description><![CDATA[After completing my first project, I was filled with excitement about what Day 2 would bring. What challenge would I face today? But instead of just sitting idly waiting, I decided to take the opportunity to restart my DevOps journey. And guess what?...]]></description><link>https://blogs.devopswithnithish.in/day-2-devops-challenge-with-cozy-cloud-oh-my-lucky-day</link><guid isPermaLink="true">https://blogs.devopswithnithish.in/day-2-devops-challenge-with-cozy-cloud-oh-my-lucky-day</guid><category><![CDATA[DevOpsAllStarsChallenge]]></category><dc:creator><![CDATA[Nithish S]]></dc:creator><pubDate>Wed, 08 Jan 2025 18:41:19 GMT</pubDate><content:encoded><![CDATA[<p>After completing my first project, I was filled with excitement about what Day 2 would bring. What challenge would I face today? But instead of just sitting idly waiting, I decided to take the opportunity to restart my DevOps journey. And guess what? I’m still progressing on that path! 🚀</p>
<p>But then, a thought crossed my mind: <strong>Why not push myself a little harder?</strong> 💭</p>
<p>Initially, I hesitated. After all, today was also a working day, and I had to dedicate 9 hours to my regular job. But I made a decision—<strong>let’s give it a try.</strong> And boy, did it pay off!</p>
<hr />
<h2 id="heading-the-morning-grind-devops-learning">The Morning Grind: DevOps Learning 🖥️💡</h2>
<p>The first thing I did was jump back into DevOps learning before diving into the project. I started at 6 AM, diving into AWS theory, specifically AWS SNS and AWS Route 53. 📚</p>
<p>I also tried my hand at some architecture design, including load balancing with NLB and ALB. And while I was at it, I spent about 3 hours trying to wrap my head around <strong>Route 53</strong>. And let me tell you, I didn’t manage to finish it. 😅</p>
<p>But you know what? <strong>I didn’t give up.</strong> Sometimes, it’s not about finishing everything immediately. I reminded myself, "Hey man, heroes don’t win all the time!"</p>
<hr />
<h2 id="heading-work-hours-a-break-and-the-job">Work Hours: A Break and the Job 🧑‍💻</h2>
<p>By 12 PM IST, it was time for my regular work shift. So, I took a one-hour break to recharge before diving into my job, which runs from <strong>12:00 PM IST to 9:00 PM IST</strong>. 🕛</p>
<p>After work, I returned to the challenge and watched the video. And you know what? I was <strong>ecstatic</strong>! 😁 All my tiredness melted away when I saw AWS SNS featured in the project. I know it may seem like a small thing to others, but for a beginner like me, it was HUGE! 💥</p>
<hr />
<h2 id="heading-reflecting-on-the-journey-is-it-all-worth-it">Reflecting on the Journey: Is It All Worth It? 🤔</h2>
<p>During my work hours, a lot of questions popped up in my mind. <strong>Am I doing the right thing?</strong> Should I stop my regular learning and just focus on the DevOps challenge? I wondered if it would be more effective to concentrate on just one thing. But then, as I thought about how the theory I learned in the morning linked to the project in the evening, everything started to make sense. 🧠✨</p>
<hr />
<h2 id="heading-key-takeaways-from-day-2">Key Takeaways from Day 2 📌</h2>
<ol>
<li><p><strong>Believe in the journey, not the destination.</strong></p>
<ul>
<li>If you trust the process, you’ll get there. It might take time, but you’ll reach your goal eventually. 💪</li>
</ul>
</li>
<li><p><strong>Push yourself beyond your limits.</strong></p>
<ul>
<li>I realized that opportunities like this may not come every day. Even when things seem difficult, you need to keep pushing yourself. 💯</li>
</ul>
</li>
</ol>
<hr />
<h2 id="heading-conclusion-a-day-of-growth">Conclusion: A Day of Growth 🌱</h2>
<p>Looking back, today was a day of learning, progress, and reflection. I’ve learned that <strong>success is a journey, not a sprint</strong>. Whether it’s DevOps, programming, or any challenge in life, <strong>perseverance</strong> is key. Today, I pushed myself further than before—and it was worth it. 😊</p>
<hr />
<p>Thanks for reading my journey on Day 2! I hope you find motivation in this story. If you're also in the middle of your learning journey, remember to <strong>believe in yourself and keep pushing forward</strong>. The rewards will follow. 🔥</p>
<hr />
<h3 id="heading-feel-free-to-leave-a-comment-or-share-your-thoughts-lets-keep-learning-and-growing-together">Feel free to leave a comment or share your thoughts. Let’s keep learning and growing together! 🌍</h3>
]]></content:encoded></item><item><title><![CDATA[My 30-Day DevOps Challenge Journey - Day 1 with Cozy Cloud Crew]]></title><description><![CDATA[Welcome back to my blog!
Today, I want to share my experience from the first day of my 30-day DevOps challenge, sponsored by the Cozy Cloud Crew. To give you some context, I was a complete beginner with no clue about what I was about to dive into. At...]]></description><link>https://blogs.devopswithnithish.in/my-30-day-devops-challenge-journey-day-1-with-cozy-cloud-crew</link><guid isPermaLink="true">https://blogs.devopswithnithish.in/my-30-day-devops-challenge-journey-day-1-with-cozy-cloud-crew</guid><category><![CDATA[DevOpsAllStarsChallenge]]></category><dc:creator><![CDATA[Nithish S]]></dc:creator><pubDate>Tue, 07 Jan 2025 09:50:05 GMT</pubDate><content:encoded><![CDATA[<p>Welcome back to my blog!</p>
<p>Today, I want to share my experience from the first day of my 30-day DevOps challenge, sponsored by the Cozy Cloud Crew. To give you some context, I was a complete beginner with no clue about what I was about to dive into. At first, it felt like an impossible challenge, and I had no idea where to begin. People in the community were talking about their accomplishments, like completing the AWS SAA certification, which made me feel lost and discouraged.</p>
<p>Honestly, on my first day in the community, I thought about quitting. Everyone seemed so far ahead, and I didn't know what I was doing. I was stuck in what’s often referred to as "tutorial hell," where you watch videos, repeat exercises, and feel too scared to actually show your work. But then, I decided to take a step back. I turned off my laptop for a moment, paused, and thought: <em>What am I really doing here?</em></p>
<p>I realized that I didn’t want to stay stuck in that cycle forever. I didn’t want to keep watching videos without gaining any real experience. This time, I decided, I would make a change.</p>
<h3 id="heading-the-decision-to-keep-going">The Decision to Keep Going</h3>
<p>I had a moment of clarity. No more skipping through content or copying and pasting code just for the sake of completing tasks. This time, I would truly understand what I was doing, even if it took longer.</p>
<p>I had a great resource to help me — ShaeInTheCloud, who explains each step of the project clearly. But instead of just copying the code, I told myself I would learn and understand it fully. This would be a journey of true learning.</p>
<h3 id="heading-day-1-the-analogy">Day 1: The Analogy</h3>
<p>To stay motivated and focused, I created a story around my Day 1 challenge. I imagined this as a movie where I am the hero, and the project is the goal I need to accomplish. Of course, there are obstacles in the way, but I was determined to face them head-on.</p>
<p>So, what were the problems I had to solve?</p>
<ol>
<li><p><strong>Python</strong> - I had never worked with Python before.</p>
</li>
<li><p><strong>APIs</strong> - I knew very little about APIs.</p>
</li>
</ol>
<p>I knew I couldn’t master Python in one day, but I made it my goal to at least understand the code I was working with. To do this, I needed to break down the task into smaller pieces and figure out exactly what I needed to learn.</p>
<h3 id="heading-the-plan-understanding-python">The Plan: Understanding Python</h3>
<p>Python was unfamiliar to me. I didn’t know where to start, so I turned to my trusty friend — ChatGPT.</p>
<p>I asked ChatGPT, <em>"Hey buddy, can you tell me the Python topics that are covered in the code I’m working with?"</em> And voilà, I got a list of topics.</p>
<p>I decided not to rush this part. I copied each topic and searched for tutorials in my native language to understand Python’s syntax and use cases. By taking this approach, I covered the basics of Python one step at a time.</p>
<h3 id="heading-diving-into-the-code">Diving Into the Code</h3>
<p>Once I understood the syntax, it was time to read the code. I took my time, analyzing each line. Whenever I didn’t understand something, I went back to ChatGPT to clarify.</p>
<p>For about 4 hours, I slowly worked through the code, asking questions, and learning. By the end of that time, I was able to understand the project.</p>
<h3 id="heading-the-next-obstacle-apis">The Next Obstacle: APIs</h3>
<p>The next challenge was understanding APIs. I wasn’t familiar with them at all, so I asked ChatGPT again, <em>"What is an API, and what types are there?"</em> I also wanted to know what type of API the project was using, and it turned out to be the OpenWeather API.</p>
<p>I spent an hour reading up on APIs and learning how they work. Once I understood the basics, I was ready to move forward.</p>
<h3 id="heading-the-struggles-and-errors">The Struggles and Errors</h3>
<p>Once I felt prepared, I began executing the project, but, as expected, I ran into errors. Here are the main ones I encountered:</p>
<ol>
<li><p><strong>Unable to install via pip</strong> – This error said the environment was externally managed. The solution: I needed to install the packages system-wide.</p>
</li>
<li><p><strong>AWS key not configured correctly</strong> – I hadn’t set up my AWS credentials properly, so I fixed that.</p>
</li>
<li><p><strong>S3 bucket name declaration issue</strong> – I forgot to declare the bucket name correctly.</p>
</li>
<li><p><strong>Region not configured properly</strong> – I didn’t set the correct AWS region.</p>
</li>
</ol>
<p>For every error, I went back to ChatGPT and asked, <em>"What is this error, and why is it happening?"</em> Slowly but surely, I managed to solve each issue.</p>
<h3 id="heading-10-hours-later">10 Hours Later...</h3>
<p>After about 10 hours of hard work, I completed the project. It wasn’t easy, but it was worth it. I didn't regret a single moment spent learning and troubleshooting.</p>
<h3 id="heading-lesson-learned">Lesson Learned</h3>
<p>The biggest lesson from Day 1: <strong>Don’t compare yourself to others.</strong></p>
<p>At the beginning of the day, I was discouraged by seeing how much more experienced everyone else seemed. I thought I wouldn’t be able to finish the challenge in 30 days. But by the end of the day, I had a new mindset. I told myself, <em>"From now on, it’s going to be me vs. yesterday’s me. Not me vs. others."</em></p>
<p>I also realized that I don't have to finish the challenge in 30 days. The goal is to learn and grow, even if it takes time. I’m in this for the long run, and I’m committed to pushing myself forward, even if I stumble along the way.</p>
<h3 id="heading-final-thoughts">Final Thoughts</h3>
<p>I’m proud of myself for taking this challenge head-on, and I’m excited to see where the next 29 days take me. I know there will be more challenges, but I’m ready to face them with the same determination.</p>
<p>I encourage anyone reading this to stop comparing yourself to others and start focusing on your personal growth. We all have different learning speeds and journeys, but as long as we keep moving forward, we’re on the right path.</p>
<hr />
<p>That’s the first day of my DevOps challenge journey with Cozy Cloud Crew. I hope this inspires you to take on your own challenges and keep pushing yourself to learn, no matter where you start!</p>
]]></content:encoded></item><item><title><![CDATA[How I Spent a Whole Day on AWS VPC 🥲]]></title><description><![CDATA[Introduction
Hello Everyone! Welcome to my blog! Yesterday, I embarked on an exciting yet challenging journey—implementing an AWS VPC three-tier architecture. Along the way, I made plenty of mistakes, learned a lot, and ended the day with a big smile...]]></description><link>https://blogs.devopswithnithish.in/how-i-spent-a-whole-day-on-aws-vpc</link><guid isPermaLink="true">https://blogs.devopswithnithish.in/how-i-spent-a-whole-day-on-aws-vpc</guid><category><![CDATA[AWS VPC]]></category><category><![CDATA[aws vpc beginners]]></category><dc:creator><![CDATA[Nithish S]]></dc:creator><pubDate>Sat, 04 Jan 2025 03:58:33 GMT</pubDate><content:encoded><![CDATA[<h1 id="heading-introduction">Introduction</h1>
<p>Hello Everyone! Welcome to my blog! Yesterday, I embarked on an exciting yet challenging journey—implementing an AWS VPC three-tier architecture. Along the way, I made plenty of mistakes, learned a lot, and ended the day with a big smile (and a lot of new knowledge). Let me walk you through my day, mistakes included!</p>
<hr />
<h2 id="heading-the-cidr-block-saga">The CIDR Block Saga 💨</h2>
<p>My first struggle started with CIDR blocking. Honestly, I kind of skipped that part initially (big mistake 😅). When I attempted to create subnets, I ran into the dreaded <strong>subnet overlap</strong> issue. At that moment, I paused and thought, <em>"Wait, what does subnet overlapping even mean?"</em></p>
<p>I went back to the basics and spent time learning how to split subnets and calculate IP ranges using binary values. It took me two hours to understand CIDR blocks properly, but hey, it was worth it! 🚀</p>
<hr />
<h2 id="heading-back-to-the-console">Back to the Console 🚒</h2>
<p>Armed with my newfound CIDR knowledge, I went back to the AWS Console and successfully set up:</p>
<ul>
<li><p>VPC</p>
</li>
<li><p>Route tables</p>
</li>
<li><p>Internet Gateway</p>
</li>
</ul>
<p>I even created a jump server to access the web server in my private subnet. At this point, I thought, <em>"Wow, I’m a cloud engineer now!"</em> 😎 But reality hit me hard when my EC2 instance in the private subnet couldn’t access the internet. 🙄</p>
<hr />
<h2 id="heading-enter-the-nat-gateway">Enter the NAT Gateway 🌐</h2>
<p>This problem led me to learn about the <strong>NAT Gateway</strong>. I went back to my resources, studied how it works, and returned to the console to set it up. Success! My EC2 instance could now access the internet. Feeling confident, I installed Jenkins on the private subnet and thought everything was perfect.</p>
<p>But…</p>
<hr />
<h2 id="heading-the-load-balancer-revelation">The Load Balancer Revelation 🤦‍♂️</h2>
<p>When I tried to access Jenkins from my browser, nothing worked. <em>"Why?!"</em> I spent three hours troubleshooting, scratching my head, and Googling. Finally, after seeking help from the community (thank you, amazing people! 💖), I learned about the <strong>Load Balancer</strong>.</p>
<p>I researched Load Balancers, re-architected my design, and added one to my setup. Finally, I was able to access Jenkins, which was running in my private subnet. Victory at last! 🎉</p>
<h2 id="heading-before">Before</h2>
<p><img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1735962078329/52b90b1c-ade5-453d-bf12-597c13b9faa1.png" alt class="image--center mx-auto" /></p>
<h2 id="heading-ia"> </h2>
<p>At last</p>
<p><img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1735962123579/c925c691-1966-4d8d-8eb0-ae6d4b4acdf4.png" alt class="image--center mx-auto" /></p>
<hr />
<h2 id="heading-key-takeaways">Key Takeaways 🎡</h2>
<ol>
<li><p><strong>Learn by Doing</strong>: This experience taught me that hands-on practice is incredibly powerful. Watching tutorials alone doesn’t work for me; doing things step by step taught me far more.</p>
</li>
<li><p><strong>Embrace Mistakes</strong>: Mistakes are opportunities to learn. Every error pushed me to dig deeper into concepts.</p>
</li>
<li><p><strong>Community is Everything</strong>: The DevOps community’s support and insights were invaluable.</p>
</li>
</ol>
<hr />
<h2 id="heading-final-thoughts">Final Thoughts</h2>
<p>Spending an entire day on AWS VPC might sound intense, but for me, it was worth every second. This marks a significant step in my restarted journey towards DevOps. If you’re on a similar path, don’t be afraid to dive in and make mistakes. The lessons you learn will stick with you forever.</p>
<p>Keep learning and keep building! 🚀</p>
]]></content:encoded></item><item><title><![CDATA[The What, Why, And How Of Virtual Machines]]></title><description><![CDATA[Hello everyone! In this blog, we will learn about Virtual Machines (VMs).
Introduction:
A Virtual Machine (VM) is a virtual computer that allows multiple applications to run on a single physical machine.

Why Did VMs Come Into the Tech World?
To unde...]]></description><link>https://blogs.devopswithnithish.in/the-what-why-and-how-of-virtual-machines</link><guid isPermaLink="true">https://blogs.devopswithnithish.in/the-what-why-and-how-of-virtual-machines</guid><dc:creator><![CDATA[Nithish S]]></dc:creator><pubDate>Thu, 21 Nov 2024 15:22:55 GMT</pubDate><content:encoded><![CDATA[<p><strong>Hello everyone! In this blog, we will learn about Virtual Machines (VMs).</strong></p>
<h3 id="heading-introduction">Introduction:</h3>
<p>A <strong>Virtual Machine (VM)</strong> is a virtual computer that allows multiple applications to run on a single physical machine.</p>
<hr />
<h3 id="heading-why-did-vms-come-into-the-tech-world">Why Did VMs Come Into the Tech World?</h3>
<p>To understand the need for VMs, let’s first look at how applications were traditionally hosted in data centers.</p>
<p><strong>What is a Data Center?</strong><br />A data center is essentially a collection of physical systems (servers) located in one place, used to host applications and services.</p>
<h3 id="heading-the-problem-with-traditional-hosting">The Problem with Traditional Hosting</h3>
<p>In the early days, companies would buy space in data centers to deploy their applications. Here’s an example:</p>
<ul>
<li><p>Imagine your company developed a software application and needed to deploy it on a server.<br />  <strong>Scenario 1:</strong></p>
<ul>
<li><p>You estimate that your application requires <strong>8 GB of RAM</strong> and <strong>1 TB of disk space</strong>.</p>
</li>
<li><p>So, you purchase that capacity from a data center.</p>
</li>
</ul>
</li>
</ul>
<p>    <strong>Scenario 2:</strong></p>
<ul>
<li><p>Later, you develop another application, but this one requires a <strong>Linux environment</strong>.</p>
</li>
<li><p>You end up buying additional server space to host it, even though it doesn’t need as many resources.</p>
</li>
</ul>
<h3 id="heading-disadvantages-of-the-traditional-approach">Disadvantages of the Traditional Approach</h3>
<ol>
<li><p><strong>Underutilized Resources:</strong></p>
<ul>
<li><p>Your first application might only use <strong>300 GB of disk space</strong> during peak times, while your second application uses just <strong>100 GB</strong>.</p>
</li>
<li><p>However, you purchased <strong>2 TB</strong> of space in total, wasting significant resources.</p>
</li>
</ul>
</li>
<li><p><strong>One Application, One Server Model:</strong></p>
<ul>
<li>This was the standard in the early days of the software industry. Each server hosted a single application, leading to inefficiencies and high costs.</li>
</ul>
</li>
</ol>
<p>    <img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1732202176872/d6e811f3-3238-47af-bc9a-9cd821cbea86.png" alt class="image--center mx-auto" /></p>
<hr />
<h3 id="heading-the-solution-virtual-machines">The Solution: Virtual Machines</h3>
<p><strong>How can we run multiple applications on a single machine?</strong><br />That’s where <strong>Virtual Machines (VMs)</strong> come into play! VMs enable multiple applications to run on the same physical server by isolating them into virtual environments. This approach maximizes resource utilization and reduces costs.</p>
<p><img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1732202245556/69ad57c0-f1be-42cf-a0d5-9dc3cefee21a.png" alt class="image--center mx-auto" /></p>
<p><strong>Hypervisor</strong>  </p>
<p>A hypervisor (like VMware, Hyper-V, or KVM) creates and manages VMs.The hypervisor acts as a bridge between the physical hardware and the virtual machines.Each VM is isolated and runs its own operating system and applications.</p>
<h3 id="heading-benefits-of-virtual-machines"><strong>Benefits of Virtual Machines</strong></h3>
<ol>
<li><p><strong>Cost Efficiency:</strong></p>
<ul>
<li>By utilizing the same hardware for multiple applications, companies save money on hardware and energy costs.</li>
</ul>
</li>
<li><p><strong>Resource Optimization:</strong></p>
<ul>
<li>VMs allocate only the required amount of resources to each application, minimizing wastage.</li>
</ul>
</li>
<li><p><strong>Flexibility:</strong></p>
<ul>
<li>Different operating systems (e.g., Windows, Linux) can run on the same physical server using separate VMs.</li>
</ul>
</li>
<li><p><strong>Scalability:</strong></p>
<ul>
<li>New VMs can be easily created to accommodate additional applications or workloads.</li>
</ul>
</li>
<li><p><strong>Testing and Development:</strong></p>
<ul>
<li>VMs are ideal for creating isolated environments for testing without affecting the main system.</li>
</ul>
</li>
<li><p><strong>Disaster Recovery:</strong></p>
<ul>
<li>Snapshots of VMs can be created to restore the system in case of failure.</li>
</ul>
</li>
</ol>
<h3 id="heading-challenges-and-limitations-of-vms"><strong>Challenges and Limitations of VMs</strong></h3>
<ol>
<li><p><strong>Performance Overhead:</strong></p>
<ul>
<li>VMs can have slower performance compared to running directly on hardware due to the hypervisor's overhead.</li>
</ul>
</li>
<li><p><strong>Resource Contention:</strong></p>
<ul>
<li>Multiple VMs on the same hardware may compete for resources, leading to performance degradation if not managed well.</li>
</ul>
</li>
<li><p><strong>Complexity in Management:</strong></p>
<ul>
<li>Managing a large number of VMs requires expertise and additional tools.</li>
</ul>
</li>
</ol>
<h3 id="heading-conclusion"><strong>Conclusion</strong></h3>
<p>    Virtual Machines revolutionized the way we utilize physical hardware, enabling better resource optimization, flexibility, and scalability. They addressed the inefficiencies of the "one application, one server" model, making them a cornerstone of modern IT infrastructure. Whether for hosting multiple applications, testing, or cloud computing, VMs play a critical role in the tech ecosystem. As technology evolves, VMs continue to coexist with newer innovations like containers, ensuring businesses have robust solutions to meet diverse needs.</p>
<p>    Thank you for reading! Feel free to share your thoughts or questions in the comments. Let’s keep learning together!</p>
]]></content:encoded></item><item><title><![CDATA[Getting Started with Version Control: Everything You Need to Know About Git]]></title><description><![CDATA[Welcome to this blog! In this post, we’ll explore the concept of a Version Control System (VCS).
Introduction:
A Version Control System (VCS), like Git, is an essential tool in modern software development. It allows developers to track and manage cha...]]></description><link>https://blogs.devopswithnithish.in/getting-started-with-version-control-everything-you-need-to-know-about-git</link><guid isPermaLink="true">https://blogs.devopswithnithish.in/getting-started-with-version-control-everything-you-need-to-know-about-git</guid><category><![CDATA[version control]]></category><category><![CDATA[Git]]></category><dc:creator><![CDATA[Nithish S]]></dc:creator><pubDate>Tue, 12 Nov 2024 07:01:42 GMT</pubDate><content:encoded><![CDATA[<p><strong>Welcome to this blog! In this post, we’ll explore the concept of a Version Control System (VCS).</strong></p>
<h3 id="heading-introduction"><strong>Introduction:</strong></h3>
<p>A <strong>Version Control System</strong> (VCS), like <strong>Git</strong>, is an essential tool in modern software development. It allows developers to track and manage changes in their code over time. By using a version control system, developers can store their code in a central place called a <strong>repository</strong>, collaborate with others, and easily revert back to previous versions of their code when needed.</p>
<h3 id="heading-so-what-does-version-control-actually-mean"><strong>So, what does Version Control actually mean?</strong></h3>
<p>Let’s use a simple analogy:</p>
<p>Imagine you’re a farmer growing various products, such as vegetables, wheat, and fruits. When it’s time to deliver these products to your customers, you need to gather everything and put it all into one vehicle for transportation. This ensures the delivery process is organized and efficient.</p>
<p>In software development, developers work on different features or modules of an application. These pieces of code are stored in one common location called a <strong>repository</strong> (or <strong>repo</strong>). This is similar to the farmer's delivery vehicle — it holds all the code that makes up the application.</p>
<p><strong>Version control</strong> helps you keep track of changes to your code. If something goes wrong, you can go back to previous versions and see exactly what was changed. This makes it easy to undo mistakes or figure out what caused an issue in the code.</p>
<h3 id="heading-why-is-version-control-important"><strong>Why is Version Control Important?</strong></h3>
<ol>
<li><p><strong>Track Changes:</strong> Version control helps you keep track of all changes made to your code. Every time you make a change and save it, Git records that change, creating a version. You can look back at previous versions to see what was changed, when, and by whom.</p>
</li>
<li><p><strong>Collaboration:</strong> When working in teams, version control allows multiple developers to work on the same project at the same time without interfering with each other’s work. Git allows developers to create <strong>branches</strong> where they can work independently, and later merge their changes into the main project.</p>
</li>
<li><p><strong>Backup and Restore:</strong> If you accidentally break something in your code, version control acts as a safety net. You can always roll back to a previous, working version. It’s like having an automatic backup for your code.</p>
</li>
<li><p><strong>Code Quality:</strong> By using version control, you can review each other’s changes. This makes it easier to maintain high-quality code and identify potential issues before they become bigger problems.</p>
</li>
</ol>
<h3 id="heading-if-git-is-a-version-control-system-then-what-are-github-gitlab-bitbucket-etc"><strong>If Git is a Version Control System, then what are GitHub, GitLab, Bitbucket, etc.?</strong></h3>
<p><strong>Git</strong> is the version control system that tracks and manages your code on your local machine. <strong>GitHub</strong>, <strong>GitLab</strong>, <strong>Bitbucket</strong>, and similar platforms are services that host your Git repositories online. These platforms provide additional features like:</p>
<ul>
<li><p><strong>Collaboration Tools:</strong> You can work on projects with others, making it easy to track who’s working on what.</p>
</li>
<li><p><strong>Issue Tracking:</strong> You can report and manage bugs or new features directly within the platform.</p>
</li>
<li><p><strong>Pull Requests (PRs):</strong> Before changes are merged into the main codebase, developers can create pull requests, allowing teammates to review and discuss changes before accepting them.</p>
</li>
</ul>
<p>These platforms also allow you to back up your code in the cloud, which ensures it’s safe and accessible from anywhere.</p>
<hr />
<h3 id="heading-how-does-git-work-basic-git-commands"><strong>How Does Git Work? (Basic Git Commands)</strong></h3>
<p>Now, let’s go over some basic <strong>Git commands</strong> that developers use every day:</p>
<ol>
<li><p><strong>git init:</strong><br /> This command initializes a new Git repository in your project folder. It creates a <code>.git</code> directory where Git will store all the version history of your project.</p>
</li>
<li><p><strong>git clone:</strong><br /> Use this command to clone (copy) a remote repository (like one on GitHub) to your local machine.</p>
<p> <strong>Syntax : git clone &lt;repository URL&gt;</strong></p>
</li>
<li><p><strong>git status:</strong><br /> This command shows you the current state of your working directory, including which files are modified or not yet tracked by Git.</p>
</li>
<li><p><strong>git add:</strong><br /> Before committing changes, you need to add files to the staging area. This command tells Git to include your changes in the next commit.</p>
<p> <strong>Syntax: git add &lt;file_name&gt;</strong></p>
</li>
<li><p><strong>git commit:</strong><br /> A commit is like saving a snapshot of your project. After adding files, you can commit them with a message describing the changes you made.</p>
<p> <strong>Syntax: git commit -m "Your commit message here"</strong></p>
</li>
<li><p><strong>git push:</strong><br /> After committing your changes, you use <code>git push</code> to upload them to a remote repository (like GitHub).</p>
<p> <strong>Syntax: git push origin main</strong></p>
</li>
<li><p><strong>git pull:</strong><br /> This command is used to download changes from the remote repository to your local machine, ensuring you have the latest version of the project.</p>
<p> <strong>syntax: git pull origin main</strong></p>
</li>
<li><p><strong>git branch:</strong><br /> Git allows you to create different branches to work on features or bug fixes without affecting the main codebase. Use this command to list or create branches.</p>
<p> <strong>syntax: git branch &lt;branch_name&gt;</strong></p>
</li>
<li><p><strong>git merge:</strong><br /> When your feature or bug fix is ready, you can merge your branch back into the main project (usually <code>main</code> or <code>master</code> branch) using this command.</p>
<p> <strong>syntax: git merge &lt;branch_name&gt;</strong></p>
</li>
</ol>
<hr />
<h3 id="heading-conclusion"><strong>Conclusion:</strong></h3>
<p>Version control systems like Git are essential tools for managing and tracking code changes in modern software development. Whether you’re working alone or with a team, version control helps you stay organized, avoid mistakes, and collaborate more effectively. Platforms like GitHub, GitLab, and Bitbucket make it easy to store and share your code, collaborate with others, and track changes over time.</p>
<p>By learning the basics of Git and version control, you can improve your workflow, keep your projects organized, and reduce the chances of errors in your code. As you gain experience with Git, you’ll become more comfortable with advanced features and workflows that make team collaboration even smoother.</p>
]]></content:encoded></item><item><title><![CDATA[Understanding Linux File Permissions]]></title><description><![CDATA[Hey everyone in the last blog we've seen about the basic filesystem in the linux and some basics commands in this blog we will see more about permission and ownership of the linux system
Linux file permissions are a critical part of system security, ...]]></description><link>https://blogs.devopswithnithish.in/understanding-linux-file-permissions</link><guid isPermaLink="true">https://blogs.devopswithnithish.in/understanding-linux-file-permissions</guid><dc:creator><![CDATA[Nithish S]]></dc:creator><pubDate>Tue, 05 Nov 2024 12:45:52 GMT</pubDate><content:encoded><![CDATA[<p>Hey everyone in the last blog we've seen about the basic filesystem in the linux and some basics commands in this blog we will see more about permission and ownership of the linux system</p>
<p>Linux file permissions are a critical part of system security, allowing administrators and users to control who can read, write, or execute files. Let’s break down how these permissions work and how to modify them.</p>
<p>So what is permission exactly and what we are talking about now?</p>
<p>For example we take our smart phones</p>
<p>As the owner of the phone you have full access to your mobile like you can delete the files create the files updating the system etc simply you can do whatever you want since it was your</p>
<p>for the scenario lets say your friend ask your phone for one 30 mins, what we will do? for security purpose we will keep passwords to our phones and the applications inside in it so that your friend doesn't change anything without your knowledge</p>
<p>Same thing applies here</p>
<p>in Linux system the owner is root</p>
<p>root user can do any configuration related to the system</p>
<p>so what about the other users? how the system admin will change the files and how they configure the things ?</p>
<p>Lets say your friend wants to install one application so he will ask your permission can i install it ? and you say okay it doesn't affect anything to my phone go ahead</p>
<p>and you give your access to install it</p>
<p>In linux system as the normal user you don't have access to the entire system in that cases you will use the command called sudo</p>
<p><strong>sudo -&gt; Super User Do</strong></p>
<p>this command allows you to perform the action with the root access like changing the permissions to the files</p>
<p>CHMOD</p>
<p>You can change the permission of the file using the command called chmod</p>
<h3 id="heading-breaking-down-the-permission-structure">Breaking Down the Permission Structure</h3>
<p>When you view a file's details using <code>ls -l</code>, you’ll see something like:</p>
<p><img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1730809923908/235ad801-57fc-4872-b330-49d43a09dd87.png" alt class="image--center mx-auto" /></p>
<p>This line can be broken down as follows:</p>
<h4 id="heading-1-file-type">1. File Type</h4>
<ul>
<li><p><strong>File Type</strong>: The first character indicates the type of file:</p>
<ul>
<li><p><code>-</code> for a regular file</p>
</li>
<li><p><code>d</code> for a directory</p>
</li>
<li><p><code>l</code> for a symbolic link</p>
</li>
</ul>
</li>
</ul>
<h4 id="heading-2-permissions">2. Permissions</h4>
<ul>
<li><p><strong>Permissions</strong>: The next nine characters represent the permissions, divided into groups of three:</p>
<ul>
<li><p><strong>First Set</strong> (rwx): Permissions for the owner of the file.</p>
</li>
<li><p><strong>Second Set</strong> (r-x): Permissions for the group that owns the file.</p>
</li>
<li><p><strong>Third Set</strong> (r-x): Permissions for others (anyone else on the system).</p>
</li>
</ul>
</li>
</ul>
<p><strong>Example Breakdown</strong>:</p>
<ul>
<li><p>The <strong>owner</strong> has read (<code>r</code>), write (<code>w</code>), and execute (<code>x</code>) permissions.</p>
</li>
<li><p>The <strong>group and others</strong> has read (<code>r</code>) and execute (<code>x</code>) permissions.</p>
</li>
</ul>
<hr />
<h3 id="heading-changing-permissions-with-chmod">Changing Permissions with <code>chmod</code></h3>
<p>To modify permissions, you use the <code>chmod</code> command, which allows changes in either <strong>symbolic</strong> or <strong>numeric</strong> mode.</p>
<h4 id="heading-symbolic-mode">Symbolic Mode</h4>
<p>In <strong>symbolic mode</strong>, you specify:</p>
<ul>
<li><p><strong>Who</strong>: <code>u</code> (user/owner), <code>g</code> (group), <code>o</code> (others), or <code>a</code> (all).</p>
</li>
<li><p><strong>Operation</strong>: <code>+</code> (add), <code>-</code> (remove), <code>=</code> (set).</p>
</li>
<li><p><strong>Permission</strong>: <code>r</code> (read), <code>w</code> (write), or <code>x</code> (execute).</p>
</li>
</ul>
<p>Example</p>
<p>Syntax  </p>
<p>chmod &lt;permission&gt; &lt;file name &gt;</p>
<p>Kindly please note below the other dont have access to write and excute the file</p>
<p><img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1730810263040/48622087-cc1f-492e-bc36-d028dbe557a2.png" alt class="image--center mx-auto" /></p>
<p>Now im going to give write and excute permissions to the other users  </p>
<p>for that im going to excute the command<br />chmod o+wx file.txt  </p>
<p>now we will see the file below</p>
<p><img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1730810349790/dbb0a096-4f8e-4190-9856-5d9251297818.png" alt class="image--center mx-auto" /></p>
<h4 id="heading-numeric-mode">Numeric Mode</h4>
<p>In <strong>numeric mode</strong>, each permission is represented by a number:</p>
<ul>
<li><p><strong>Read (r) = 4</strong></p>
</li>
<li><p><strong>Write (w) = 2</strong></p>
</li>
<li><p><strong>Execute (x) = 1</strong></p>
</li>
</ul>
<p>The sum of these values represents different permission levels:</p>
<ul>
<li><p><strong>7</strong> (4+2+1) for read, write, execute</p>
</li>
<li><p><strong>6</strong> (4+2) for read and write</p>
</li>
<li><p><strong>5</strong> (4+1) for read and execute</p>
</li>
<li><p><strong>4</strong> for read-only</p>
</li>
</ul>
<p>To set permissions, use a <strong>three-digit number</strong> where:</p>
<ul>
<li><p>The <strong>first digit</strong> is for the owner.</p>
</li>
<li><p>The <strong>second digit</strong> is for the group.</p>
</li>
<li><p>The <strong>third digit</strong> is for others.</p>
<p>  syntax for this mode is  </p>
<p>  chmod &lt;permission in numbers&gt; &lt;filename&gt;</p>
</li>
</ul>
<p>By understanding these commands and concepts, you’ll have greater control over file security and permissions on a Linux system!</p>
]]></content:encoded></item><item><title><![CDATA[Introduction to the Linux Filesystem and Basic Commands]]></title><description><![CDATA[Introduction
"Hello everyone! In this blog, we’ll cover the basics of the Linux filesystem and introduce a few essential commands."
Filesystem Concept
"The filesystem in Linux is organized as a hierarchical tree starting from the root (/), branching ...]]></description><link>https://blogs.devopswithnithish.in/introduction-to-the-linux-filesystem-and-basic-commands</link><guid isPermaLink="true">https://blogs.devopswithnithish.in/introduction-to-the-linux-filesystem-and-basic-commands</guid><category><![CDATA[linux-file-system]]></category><category><![CDATA[#linuxbasiccommands]]></category><dc:creator><![CDATA[Nithish S]]></dc:creator><pubDate>Fri, 01 Nov 2024 06:03:08 GMT</pubDate><content:encoded><![CDATA[<h1 id="heading-introduction"><strong>Introduction</strong></h1>
<p>"Hello everyone! In this blog, we’ll cover the basics of the Linux filesystem and introduce a few essential commands."</p>
<h1 id="heading-filesystem-concept"><strong>Filesystem Concept</strong></h1>
<p>"The filesystem in Linux is organized as a hierarchical tree starting from the root (<code>/</code>), branching out into various directories. Navigating and understanding this structure is crucial for deepening your Linux knowledge."</p>
<h1 id="heading-default-directories-in-linux"><strong>Default Directories in Linux</strong></h1>
<p>"These directories are set up automatically when you install Linux:"</p>
<ul>
<li><p><code>/bin</code>: Contains essential binaries needed to boot your system.<br />  <strong>What are binaries?</strong> Think of them like executable files for your operating system (OS). When you install Linux, it’s similar to installing any software on your computer. You download an ISO image, which extracts files and organizes them in specific locations. After installation, each time the OS runs, it triggers certain files to operate, which are stored in the <code>/bin</code> directory.</p>
</li>
<li><p><code>/home</code>: The home directory, similar to the Desktop folder on Windows. When you log in to Linux, this is your landing point, where you’ll store personal documents and downloads.</p>
</li>
<li><p><code>/etc</code>: Stores configuration files for the system and applications.<br />  <strong>Example</strong>: This is similar to the installation paths chosen on Windows. When software is installed, configuration files are stored here.</p>
</li>
<li><p><code>/var</code>: Contains variable files, like logs.<br />  <strong>Example</strong>: For instance, <code>/var/log</code> holds system log files where you can track actions taken on your system.</p>
</li>
<li><p><code>/tmp</code>: A temporary file storage area, automatically cleared on reboot.</p>
</li>
<li><p><code>/dev</code>: Contains device files (e.g., hard drives, USB devices).<br />  This directory holds details about your hardware components.</p>
</li>
<li><p><code>/proc</code>: Contains information about system processes.</p>
</li>
<li><p><code>/mnt</code> and <code>/media</code>: Default mount points for external devices like USBs and DVDs.</p>
</li>
</ul>
<h1 id="heading-filesystem-types"><strong>Filesystem Types</strong></h1>
<ul>
<li><p><strong>Ext4</strong>: The most widely used on Linux, reliable and high-performing.</p>
</li>
<li><p><strong>XFS</strong>: Optimized for large files, often used in enterprise environments.</p>
</li>
<li><p><strong>Btrfs</strong>: Supports advanced features like snapshots, which allow you to save the filesystem’s state.</p>
</li>
<li><p><strong>FAT32/exFAT</strong>: Commonly used on USB drives to ensure compatibility with Windows.</p>
</li>
</ul>
<h1 id="heading-basic-commands-in-linux"><strong>Basic Commands in Linux</strong></h1>
<p><strong>For navigating and managing files:</strong></p>
<ul>
<li><p><code>ls</code>: Lists directory contents</p>
<ul>
<li><p><code>ls -l</code>: Shows a detailed list</p>
</li>
<li><p><code>ls -a</code>: Includes hidden files</p>
</li>
</ul>
</li>
<li><p><code>cd</code>: Changes directory</p>
<ul>
<li><p><code>cd ..</code>: Goes up one level</p>
</li>
<li><p><code>cd ~</code>: Returns to the home directory</p>
</li>
</ul>
</li>
<li><p><code>pwd</code>: Prints the current directory path</p>
</li>
</ul>
<p><strong>For working with files and directories:</strong></p>
<ul>
<li><p><code>touch filename.txt</code>: Creates an empty file or updates the timestamp</p>
</li>
<li><p><code>mkdir new_folder</code>: Creates a directory</p>
<ul>
<li><code>mkdir -p /path/to/multiple/folders</code>: Creates nested folders</li>
</ul>
</li>
<li><p><code>rm filename.txt</code>: Deletes a file</p>
<ul>
<li><code>rm -r folder_name</code>: Deletes a directory and its contents</li>
</ul>
</li>
<li><p><code>cp file1 file2</code>: Copies a file</p>
<ul>
<li><code>cp -r folder1 folder2</code>: Copies a folder</li>
</ul>
</li>
<li><p><code>mv oldname.txt newname.txt</code>: Moves or renames a file</p>
</li>
</ul>
<p><strong>For viewing and editing files:</strong></p>
<ul>
<li><p><code>cat file.txt</code>: Displays file contents</p>
</li>
<li><p><code>less file.txt</code>: Opens a file in a scrollable view</p>
</li>
<li><p><code>head -n 10 file.txt</code>: Shows the first 10 lines</p>
</li>
<li><p><code>tail -n 10 file.txt</code>: Shows the last 10 lines</p>
<ul>
<li><code>tail -f logfile.log</code>: Follows real-time updates (useful for logs)</li>
</ul>
</li>
</ul>
<h1 id="heading-conclusion"><strong>Conclusion</strong></h1>
<p>"Understanding the Linux filesystem is the backbone of system administration. If you’re going to work with Linux, start by understanding the system’s structure. In the next blog, we’ll cover permissions and delve into more filesystem commands."</p>
]]></content:encoded></item><item><title><![CDATA[Getting Started with Linux: A Beginner's Guide to Exploring the Basics]]></title><description><![CDATA[If you've ever been curious about Linux but unsure where to start, this guide is for you!
What is the First Thing to Do?
Just Install Linux!
We all started using computers without knowing how an operating system works. We logged in, played games, mov...]]></description><link>https://blogs.devopswithnithish.in/getting-started-with-linux-a-beginners-guide-to-exploring-the-basics</link><guid isPermaLink="true">https://blogs.devopswithnithish.in/getting-started-with-linux-a-beginners-guide-to-exploring-the-basics</guid><category><![CDATA[linux for beginners]]></category><dc:creator><![CDATA[Nithish S]]></dc:creator><pubDate>Tue, 29 Oct 2024 16:51:20 GMT</pubDate><enclosure url="https://cdn.hashnode.com/res/hashnode/image/upload/v1730220468012/d2e7bb8e-7ed6-4e8b-88b5-5172b7dcd8c1.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>If you've ever been curious about Linux but unsure where to start, this guide is for you!</p>
<h3 id="heading-what-is-the-first-thing-to-do">What is the First Thing to Do?</h3>
<p><strong>Just Install Linux!</strong></p>
<p>We all started using computers without knowing how an operating system works. We logged in, played games, moved video files, and browsed the internet—all by doing. So, stop thinking about what to learn to start with Linux OS; just install it! There are many videos on how to install it; visit one, install, and start playing around. For beginners, choosing a user-friendly distribution like <strong>Ubuntu</strong> or <strong>Linux Mint</strong> can make the process smoother.</p>
<h3 id="heading-basic-understanding-of-linux">Basic Understanding of Linux</h3>
<p><strong>What is Linux? Is it an Operating System? What Does Kernel Mean?</strong></p>
<p>Actually, Linux itself is technically just the kernel. A kernel is the core part of an operating system that manages hardware resources and allows applications to communicate with the hardware.</p>
<p><strong>So What Does "Linux OS" Mean?</strong></p>
<p>Different companies bundle the Linux kernel with other software components. This bundle makes a full-fledged operating system. That’s why we often refer to Linux distributions as "Linux OS" or just "Linux."</p>
<p>You can even create your own Linux OS using the Linux kernel!</p>
<h3 id="heading-what-is-a-linux-distribution">What is a Linux Distribution?</h3>
<p>To create a complete operating system, companies and communities take the Linux kernel and combine it with additional software (like the command line interface, graphical interface, and other utilities) to create what’s called a distribution or <em>distro</em>. There are lots of distros out there. Here are some of the most popular:</p>
<ul>
<li><p><strong>Ubuntu</strong></p>
</li>
<li><p><strong>Debian</strong></p>
</li>
<li><p><strong>Fedora</strong></p>
</li>
<li><p><strong>CentOS</strong> (or its successors: <strong>Rocky Linux</strong> and <strong>AlmaLinux</strong>)</p>
</li>
<li><p><strong>Red Hat Enterprise Linux (RHEL)</strong></p>
</li>
</ul>
<h3 id="heading-understanding-the-kernel">Understanding the Kernel</h3>
<p><strong>So we are talking more about the kernel. What actually is it, and what kind of work does it do?</strong></p>
<p>The kernel is the program that acts as a bridge between you and your hardware.</p>
<p><strong>Confusing?</strong></p>
<p>Let’s make it clearer!</p>
<ul>
<li><p>Imagine you are going to a restaurant.</p>
</li>
<li><p>You request food via the server.</p>
</li>
<li><p>The server goes to the kitchen and informs the chef what the customer is asking for.</p>
</li>
<li><p>The chef prepares the food and gives it to the server.</p>
</li>
<li><p>who then takes the food and serves it to you.</p>
</li>
</ul>
<p>It’s exactly the same with the kernel. When you request something, like creating a file, the kernel takes that request to the hardware and creates the file.</p>
<h3 id="heading-communication-with-your-computer">Communication with Your Computer</h3>
<p>Linux offers two ways of communicating with the hardware: <strong>GUI (Graphical User Interface)</strong> and <strong>CLI (Command Line Interface)</strong>.</p>
<ul>
<li><p><strong>GUI</strong>: This is what we’re mostly used to, similar to Windows, where we do everything visually.</p>
</li>
<li><p><strong>CLI</strong>: This allows you to give instructions to the system directly. It’s like you and your computer are talking to each other. Imagine how fun it would be!</p>
</li>
</ul>
<h3 id="heading-how-will-you-communicate-with-your-computer">How Will You Communicate with Your Computer?</h3>
<p>You can speak to it by using the <strong>Terminal Application</strong>.</p>
<p><strong>Okay, Nithish, just before you said the kernel acts as a bridge and helps us talk to the system. But how can the terminal be used to talk to the system?</strong></p>
<p>To answer this, let’s imagine a complete scenario:</p>
<ul>
<li><p><strong>Terminal App (Restaurant)</strong>: This is where everything happens. Just like a restaurant is where you sit down and make requests, the terminal is where you enter commands and interact with the system.</p>
</li>
<li><p><strong>Shell (Menu Card)</strong>: The shell (like Bash or Zsh) provides you with a list of “commands” or “dishes” that you can execute, similar to how a menu card lists what you can order. It interprets the commands you type and makes sure they’re properly formatted, then sends them to the kernel.</p>
</li>
<li><p><strong>Kernel (Server)</strong>: The kernel is like the server who takes your order, interprets your needs, and decides what resources are needed. It communicates your commands to the hardware, making sure your request is properly handled.</p>
</li>
<li><p><strong>Hardware (Chef)</strong>: The hardware (CPU, memory, storage, etc.) is the chef that does the work behind the scenes to fulfill your order. It processes data, performs calculations, and returns the result to you via the kernel.</p>
</li>
</ul>
<p>Now you understand how Linux operates at a basic level!</p>
<p><img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1730220425462/e529d9d4-4b0d-45fb-85b5-8e786d3249ca.png" alt class="image--center mx-auto" /></p>
<h3 id="heading-conclusion">Conclusion</h3>
<p>That’s it for today! Tomorrow we will discuss how the file system in Linux works, and we will go through the commands slowly. Before that, if you’re curious, just install Linux and play around. Try simple tasks like navigating around or creating a new folder, then come back and see what you’ve done and what it really does.</p>
]]></content:encoded></item></channel></rss>