<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: Rupendra choudhary</title>
    <description>The latest articles on DEV Community by Rupendra choudhary (@rupendra).</description>
    <link>https://dev.to/rupendra</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F559191%2F6d44b85b-b59e-4675-b38d-08f339343cf9.jpg</url>
      <title>DEV Community: Rupendra choudhary</title>
      <link>https://dev.to/rupendra</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/rupendra"/>
    <language>en</language>
    <item>
      <title>What Happens after you power on your Computer System?</title>
      <dc:creator>Rupendra choudhary</dc:creator>
      <pubDate>Wed, 14 Apr 2021 05:18:16 +0000</pubDate>
      <link>https://dev.to/rupendra/what-happens-after-you-power-on-your-computer-system-29ha</link>
      <guid>https://dev.to/rupendra/what-happens-after-you-power-on-your-computer-system-29ha</guid>
      <description>&lt;p&gt;In this article we’ll discuss about the booting process of our computer system. Our Computer system is just the combination of hardware and software. The team work of software and hardware is the way our life becoming easy and easy. The point any member of this team denies to cooperate , we’re left with just a piece of electronic , inert in nature.&lt;/p&gt;

&lt;p&gt;In our computer system we consider our hardware(keyboard , mouse , memory chip , monitor , disk etc)as a resource and we’re being provided a manager who’s job is to manage those resources in an effective manner.So who’s this resource manager? ‘Operating System’ is this resource manager. Operating system is actually combination of several software modules which are being developed for any specific task(We’ll go deeper into operating system someday later). This operating system somewhat works like an intermediary between user and hardware.We store it on some permanent storage like our hard disk.So basically for faster processing we load it(not entirely but only the module we need at present) to RAM(Volatile memory) during execution.&lt;/p&gt;

&lt;p&gt;So the interesting thing is , when our computer system is in shut-down state.We can guess when system is off , our RAM must be totally empty(due to volatile nature)So here comes our main point. You power on your Computer and RAM is empty and to load operating system from Hard drive to RAM you need to execute some piece of code (there must be some program who perform this loading job) but RAM is empty so you can’t anymore use your computer system unless you’ve found some way to tell CPU how to load operating system (booting) without RAM in initial phase(startup) until RAM comes into picture after booting.&lt;/p&gt;

&lt;p&gt;If you’ve studied about &lt;a href="https://laymentogeeks.wordpress.com/2020/07/20/firmware/" rel="noopener noreferrer"&gt;Firmware&lt;/a&gt; you can guess how can we solve this issue. &lt;a href="https://en.wikipedia.org/wiki/BIOS" rel="noopener noreferrer"&gt;BIOS&lt;/a&gt; is the firmware responsible for basic hardware diagnostics and utilities necessary for loading operating system , without a BIOS no computer system can ever function. Now we’ll discuss the entire &lt;a href="https://en.wikipedia.org/wiki/Booting" rel="noopener noreferrer"&gt;Booting&lt;/a&gt; process step by step. We’re dividing the boot process in different stages , albeit the actual implementation of those stages highly depends on the hardware and Operating system but still basic functionality and protocol won’t change.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fi%2F71n3d3rx41wljq24ym2x.jpeg" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fi%2F71n3d3rx41wljq24ym2x.jpeg" alt="Alt Text"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  1)Pressing power on button
&lt;/h2&gt;

&lt;p&gt;As soon as we press power on button , it’s &lt;a href="https://en.wikipedia.org/wiki/Power_supply_unit_(computer)" rel="noopener noreferrer"&gt;Power supply unit(PSU)&lt;/a&gt; that receives the power and as we know computer is an electronic device and electronic devices work on stable DC voltage so it’s responsibility of PSU to inform the processor to start the booting work when it has done with all its internal self-tests and the output power stability work. PSU do it using &lt;a href="https://en.wikipedia.org/wiki/Power_good_signal" rel="noopener noreferrer"&gt;Power good signal&lt;/a&gt;. PG signal is +5V signal through which PSU tells processor that the magnitude of output voltage and current won’t rise or fall to any abnormal level and now system may proceed to boot(PSU takes almost some milliseconds to generate it).Until Processor Timer chip receives this PG Signal they keep on applying RESET signal to processor and this stops processor to boot prematurely.&lt;br&gt;
&lt;/p&gt;

&lt;p&gt;&lt;code&gt;in the x86 architecture, asserting the RESET line halts the CPU; this is done after the system is switched on and before the power supply has asserted “power good” to indicate that it is ready to supply stable voltages at sufficient power levels.&lt;/code&gt;&lt;br&gt;
&lt;/p&gt;

&lt;p&gt;Wiki:- &lt;a href="https://en.m.wikipedia.org/wiki/Reset_(computing)" rel="noopener noreferrer"&gt;Reset line&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Now as soon as the voltage is stabilized and Motherboard is being told by PSU(by PG Signal) that System may now happily proceed to boot(RESET Signal disabled now) , Firmware(&lt;a href="https://en.wikipedia.org/wiki/BIOS" rel="noopener noreferrer"&gt;ROM BIOS&lt;/a&gt; or &lt;a href="https://en.wikipedia.org/wiki/Unified_Extensible_Firmware_Interface" rel="noopener noreferrer"&gt;UEFI&lt;/a&gt;) comes into picture , that’s the actual program(coded on main memory non volatile chip) behind all booting process. So let’s discuss it , dig it ( again a reminder that actual booting is entirely architecture dependent , we’ll only discuss the rudimentary paradigm)&lt;/p&gt;

&lt;h2&gt;
  
  
  Booting (Bootstrapping)
&lt;/h2&gt;

&lt;p&gt;At this very moment when processor just received the green signal to start bootstrapping the system , our system is unaware of any operating system, any RAM or hard disk but we as a user know it that Operating system is installed on hard disk(for a time suppose, albeit Firmware is coded properly to find the bootable device) and RAM is empty then how to load OS without RAM?&lt;/p&gt;

&lt;p&gt;Ofcourse program the motherboard’s non-volatile chip with initial instructions (those would help the processor to test all the available hardware and make them workable).Processor is programmed (&lt;a href="https://en.wikipedia.org/wiki/Microcode" rel="noopener noreferrer"&gt;Microcode&lt;/a&gt;) to execute it’s very first instruction from a fix location in ROM(Address of this location is again architectural specific) and this location is known as &lt;a href="https://en.wikipedia.org/wiki/Reset_vector" rel="noopener noreferrer"&gt;Reset vector&lt;/a&gt;.&lt;br&gt;
&lt;/p&gt;

&lt;p&gt;&lt;code&gt;When a computer is powered on, the processor first accesses a predetermined area of the system BIOS ROM to access the BIOS boot program. This location is at memory offset OxFFFFO, sixteen bytes below the top of real mode memory. Real mode is the default operating mode for modern Intel-architecture processors, allowing the processor to mimic the 8088 chip. Offset OxFFFFO is not located in RAM, but actually on the BIOS ROM chip. This location contains a jump instruction to a memory offset that contains the BIOS startup code.&lt;/code&gt;&lt;br&gt;
&lt;/p&gt;



&lt;p&gt;&lt;code&gt;A processor starts it’s booting in Real mode and stays in this mode until operating system is loaded enough modules that can make it possible to switch to Protected mode.Now if you’re going to ask why doesn’t processor start immediately in 32-bit protected mode then it’s Backward compatibility.&lt;/code&gt;&lt;br&gt;
&lt;/p&gt;

&lt;p&gt;Just a matter of architecture , the Reset vector might guide us to the very first instruction(&lt;a href="https://en.wikipedia.org/wiki/Power-on_self-test" rel="noopener noreferrer"&gt;POST&lt;/a&gt;)address of the Firmware (BIOS or UEFI) or it may itself contain this.&lt;/p&gt;

&lt;h2&gt;
  
  
  Shadowing
&lt;/h2&gt;

&lt;p&gt;A technique used to increase a computer’s speed by using high-speed RAM memory in place of slower ROM memory (RAM is about three times as fast as ROM). On PCs, for example, all code to control hardware devices, such as keyboards, is normally executed in a special ROM chip called the BIOS ROM. However, this chip is slower than the general-purpose RAM that comprises main memory. Many PC manufacturers, therefore, configure their PCs to copy the BIOS code into RAM when the computer boots. The RAM used to hold the BIOS code is called shadow RAM.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;1) POST :-&lt;/strong&gt;  without any external help(that’s why call ‘Self Test’) the firmware(UEFI or BIOS) performs the routine diagnostic power test on the hardware. It’s the first code BIOS runs and after the successful completion of this test BIOS can start to bootstrap operating system. Till the Video card is being tested and activated properly , POST uses different beep signals to alert the user about fatal errors being encountered during the process.As soon as video card is activated(by running it’s firmware) now user can see booting process on monitor and all fatal errors would be displayed on the screen now onwards.For more details about the POST Hardware test read &lt;a href="http://www.bitsavers.org/pdf/solbourne/101486-AC_System_Power-on_Self_Test_Manual_Aug89.pdf" rel="noopener noreferrer"&gt;this&lt;/a&gt; and &lt;a href="https://docs.oracle.com/cd/E19464-01/820-6850-11/POST.html#50602040_20571" rel="noopener noreferrer"&gt;this&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;2) Loading Boot loader :-&lt;/strong&gt; The very last step of POST procedure is to execute INT 0x19 instruction. This very last instruction actually find the &lt;a href="https://simple.wikipedia.org/wiki/Boot_device" rel="noopener noreferrer"&gt;Boot device&lt;/a&gt; (consider Hard disk as our boot device) using bootstrap sequence and then it reads 512B(in hard disk we call this 512B sector &lt;a href="https://en.wikipedia.org/wiki/Master_boot_record" rel="noopener noreferrer"&gt;MBR&lt;/a&gt;) from the first sector of (&lt;a href="https://en.wikipedia.org/wiki/Track0" rel="noopener noreferrer"&gt;Track0&lt;/a&gt; sector 0) of Boot device into RAM at absolute address 0x7C00(not boot device specific).&lt;br&gt;
&lt;/p&gt;

&lt;p&gt;&lt;code&gt;The GUID Partition Table(GPT)was introduced as part of the Unified Extensible Firmware Interface (UEFI) initiative. GPT provides a more flexible mechanism for partitioning disks than the older Master Boot Record (MBR) partitioning scheme that was common to PCs.&lt;/code&gt;&lt;br&gt;
&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fi%2F7bntuol05l19la2i83ii.gif" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fi%2F7bntuol05l19la2i83ii.gif" alt="Alt Text"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Stage 1 Bootloader :-&lt;/strong&gt;  As soon as MBR is loaded to physical memory , BIOS (with the help of 2B boot signature) identifies the boot loader code at the beginning of MBR and then BIOS starts scanning MBR’s partition table to identify the active(bootable)partition. Bootable partition possess copy of operating system installed and in case of multiple operating system installed (&lt;a href="https://en.wikipedia.org/wiki/Multi-booting" rel="noopener noreferrer"&gt;Multi booting&lt;/a&gt; like windows and linux) there can be multiple active partitions. MBR boot code isn’t big enough to contain a boot loader supporting complex and multiple file systems so such boot loaders are split into pieces. MBR code possess the smallest piece of boot loader and other pieces are placed with the boot loader of active partition.After execution of MBR boot code(stage1 completion), control is transferred to active partition boot code(stage2 bootloader) ,which possess rest of the kernel code.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Stage 2 Bootloader :-&lt;/strong&gt;  Primary bootloader (MBR bootloader stage-1) loads the additional bootstrap loader (stage-2 booting) and this provides user an option for multibooting. &lt;a href="https://en.wikipedia.org/wiki/GNU_GRUB" rel="noopener noreferrer"&gt;GNU GRUB&lt;/a&gt; and &lt;a href="https://en.wikipedia.org/wiki/LILO_(boot_loader)" rel="noopener noreferrer"&gt;LILO&lt;/a&gt; are to most common bootstrap loaders. GRUB gives us freedom for &lt;a href="https://en.wikipedia.org/wiki/Chain_loading" rel="noopener noreferrer"&gt;Chain loading&lt;/a&gt; while lilo is Linux specific. With the help of file system stage-2 bootloader loads the default kernel image and initrd image into memory. With the images ready, the stage 2 boot loader invokes the kernel image.&lt;br&gt;
As soon as &lt;a href="https://en.wikipedia.org/wiki/Graphical_user_interface" rel="noopener noreferrer"&gt;GUI&lt;/a&gt; appears the boot process is fully completed and now user can interact with the system happily&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fi%2Fsc3nc1xc4uelngazvlyz.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fi%2Fsc3nc1xc4uelngazvlyz.png" alt="Alt Text"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Visit my &lt;a href="https://laymentogeeks.wordpress.com/" rel="noopener noreferrer"&gt;Blog&lt;/a&gt; for more such in depth articles and don't forget to share your valuable feedback.&lt;/p&gt;

&lt;p&gt;Thanks!&lt;/p&gt;

</description>
      <category>bios</category>
      <category>bootstrapping</category>
      <category>kernelloading</category>
      <category>operatingsystem</category>
    </item>
    <item>
      <title>A brief history of Linux</title>
      <dc:creator>Rupendra choudhary</dc:creator>
      <pubDate>Wed, 13 Jan 2021 15:45:52 +0000</pubDate>
      <link>https://dev.to/rupendra/a-brief-history-of-linux-3lcm</link>
      <guid>https://dev.to/rupendra/a-brief-history-of-linux-3lcm</guid>
      <description>&lt;p&gt;To know &lt;strong&gt;Linux history&lt;/strong&gt; we have to know the history of &lt;strong&gt;Unix&lt;/strong&gt; and to know history of Unix we have to know the history of &lt;strong&gt;Multics&lt;/strong&gt; so let's move about 25 years back like 1964 from the birth year of Linux(1991).&lt;/p&gt;

&lt;h1&gt;
  
  
  MULTICS
&lt;/h1&gt;

&lt;p&gt;In 1965 &lt;a href="https://www.mit.edu/" rel="noopener noreferrer"&gt;MIT&lt;/a&gt; , &lt;a href="https://en.m.wikipedia.org/wiki/General_Electric" rel="noopener noreferrer"&gt;General Electric&lt;/a&gt; and &lt;a href="https://en.m.wikipedia.org/wiki/Bell_Labs" rel="noopener noreferrer"&gt;Bell labs&lt;/a&gt; started working on a joint project to develop a time-sharing OS (MULTICS). The project didn't work well as MULTICS turned out to be too much complex and took too much time and money hence Bell labs withdrew in 1969 from development efforts.&lt;/p&gt;

&lt;p&gt;To know more about MULTICS read &lt;a href="https://multicians.org/history.html" rel="noopener noreferrer"&gt;this&lt;/a&gt;&lt;/p&gt;

&lt;h1&gt;
  
  
  UNIX
&lt;/h1&gt;

&lt;p&gt;Some researchers (&lt;a href="http://www.linfo.org/thompson.html?fbclid=IwAR2Ph_yS7lDRpyZ-LIb54GQkKg-1RhjTT7UEUC9XRuWn8QV7pBPYHYny7NE" rel="noopener noreferrer"&gt;Thompson&lt;/a&gt; ,&lt;a href="https://www.bell-labs.com/usr/dmr/www/" rel="noopener noreferrer"&gt;Ritchie&lt;/a&gt; , &lt;a href="https://www.princeton.edu/~hos/frs122/precis/mcilroy.htm" rel="noopener noreferrer"&gt;Mcilroy&lt;/a&gt; and &lt;a href="http://cm.bell-labs.co/who/dmr/hist.html" rel="noopener noreferrer"&gt;J.F Ossanna&lt;/a&gt;   from &lt;em&gt;bell labs&lt;/em&gt; didn't want to go those all efforts in vain and continued to work on developing a multiuser time-sharing OS.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fi%2Feizfa18mze5qy5d99obn.jpeg" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fi%2Feizfa18mze5qy5d99obn.jpeg" alt="Alt Text"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Meanwhile &lt;em&gt;Ken Thompson&lt;/em&gt; developed a video game &lt;a href="//cm.bell-labs.co/who/DMR/spacetravel.html"&gt;Space Travel&lt;/a&gt;(he developed for MULTICS later ported to &lt;a href="https://en.m.wikipedia.org/wiki/Gecos" rel="noopener noreferrer"&gt;GECOS&lt;/a&gt; and the again later ported to &lt;a href="//www.linfo.org/pdp-7.html"&gt;PDP-7&lt;/a&gt; as that was the only then available cost friendly system for Thompson and team)in 1969. &lt;/p&gt;

&lt;p&gt;To run the game on PDP-7 minicomputer Thompson wrote his own file system , assembler and then this all lead to a complete OS which they named UNICS (Uniplexed Operating and computing system)a pun to MULTICS.&lt;/p&gt;

&lt;p&gt;So we can say 1969 is the birth year of UNIX   (Noone knows how the spelling UNICS morphed into UNIX).It was all written in assembly language until the arrival of &lt;a href="https://www.bell-labs.com/usr/dmr/www/chist.html?fbclid=IwAR3Rp_GpHDR0KEfNK9l0bB1Kp46rCYfVDtH971mIIIe5RaQiruNDpMmlX3c" rel="noopener noreferrer"&gt;C language&lt;/a&gt; (early 1970) which after getting properly matured (about 1973) became the best available system language and thus UNIX version 4 was written in C.&lt;/p&gt;

&lt;p&gt;Read &lt;a href="http://www.unix.org/what_is_unix/history_timeline.html?fbclid=IwAR3Ax8NgteKUaf2zTe_lItwGdLwnulr7hrFRbldy90NszjfslKSpIaWtisI" rel="noopener noreferrer"&gt;this&lt;/a&gt; for detailed history of different UNIX versions&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fi%2Fvhi2i6kvbm2avvi5dsq5.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fi%2Fvhi2i6kvbm2avvi5dsq5.jpg" alt="Alt Text"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h1&gt;
  
  
  GNU Project
&lt;/h1&gt;

&lt;p&gt;It was about 1975 when &lt;a href="https://stallman.org/" rel="noopener noreferrer"&gt;Richard Stallman&lt;/a&gt; left Harvard to join &lt;a href="https://en.m.wikipedia.org/wiki/MIT_Computer_Science_and_Artificial_Intelligence_Laboratory" rel="noopener noreferrer"&gt;MIT AI laboratory&lt;/a&gt; to rather focus on his programming.He was quite unhappy with proprietary softwares and restricted computer access during his hacking days at MIT and in February 1984 he left MIT to work full time on his &lt;a href="https://www.gnu.org/gnu/gnu-history.en.html" rel="noopener noreferrer"&gt;GNU project&lt;/a&gt; (which he announced on 27 sep 1983) for which he published &lt;a href="https://www.gnu.org/gnu/manifesto.en.html" rel="noopener noreferrer"&gt;GNU Manifesto&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;The first goal of GNU project was to develop a whole free OS compatible to UNIX.&lt;br&gt;
In 1985 , Stallman founded &lt;a href="https://www.fsf.org/appeal?pk_campaign=frfall2020&amp;amp;pk_kwd=learn-more&amp;amp;pk_source=modal" rel="noopener noreferrer"&gt;FSF&lt;/a&gt; a non-profit organisation to support GNU project as well as the development of free software in general.&lt;br&gt;
One of the important results of the GNU project was the development of the &lt;a href="https://en.m.wikipedia.org/wiki/GNU_General_Public_License" rel="noopener noreferrer"&gt;GNU GPL&lt;/a&gt; the legal embodiment of stallman's notion of free software.&lt;/p&gt;

&lt;p&gt;By 1992 GNU Project has completed all of major OS utilities except the OS Kernel &lt;a href="https://www.gnu.org/software/hurd/.html" rel="noopener noreferrer"&gt;GNU Hurd&lt;/a&gt; itself. Among the very well known programs produced by GNU project are the Emacs text editor, GCC , Bash shell and glibc.&lt;/p&gt;

&lt;h1&gt;
  
  
  Linux
&lt;/h1&gt;

&lt;p&gt;In 1991 &lt;a href="https://en.m.wikipedia.org/wiki/Linus_Torvalds" rel="noopener noreferrer"&gt;Linus torvalds&lt;/a&gt; , a computer science student at University of Helsinki was inspired to write an OS for his &lt;a href="https://en.m.wikipedia.org/wiki/Intel_80386" rel="noopener noreferrer"&gt;Intel 80386 PC&lt;/a&gt; , this IBM-compatible PC has MS-DOS OS with which torvalds wasn't satisfy and UNIX was a proprietary OS and had huge cost so he decided to create his own OS with the help of &lt;a href="https://en.m.wikipedia.org/wiki/MINIX" rel="noopener noreferrer"&gt;MINIX&lt;/a&gt; created by &lt;a href="https://www.computer.org/csdl/magazine/co/2014/07/mco2014070007/13rRUwx1xMi" rel="noopener noreferrer"&gt;Andrew Tanenbaum&lt;/a&gt; for educational purpose( he made complete source code available in his textbook OS: Design and implementation 1987).Over a few months, Torvalds developed a basic kernel that allowed him to compile and run various GNU Programs.&lt;/p&gt;

&lt;p&gt;On 25 August 1991 he announced this system in a &lt;a href="https://www.cs.cmu.edu/~awb/linux.history.html" rel="noopener noreferrer"&gt;Usenet posting&lt;/a&gt; to the newsgroup 'comp.os.minix'.&lt;/p&gt;

&lt;p&gt;Initially Linux was placed under a more restrictive licence , but Torvalds soon made it available under the GNU GPL.&lt;/p&gt;

&lt;p&gt;Many programmers joined him in developing Linux which resulted in addition of several features like improved file system , networking support, device drivers and multiprocessor support.&lt;/p&gt;

&lt;p&gt;PS:- if you like reading it , enjoy reading more &lt;a href="https://laymentogeeks.wordpress.com/" rel="noopener noreferrer"&gt;here&lt;/a&gt;&lt;/p&gt;

</description>
      <category>linux</category>
      <category>computerscience</category>
      <category>opensource</category>
    </item>
  </channel>
</rss>
