Presentation is loading. Please wait.

Presentation is loading. Please wait.

Linux Kernel 101 Sriram Sundararajan. Linux : /lee'nuhks/ or /li'nuks/, not /li:'nuhks/ n. /lee'nuhks/ or /li'nuks/, not /li:'nuhks/ n. The free Unix.

Similar presentations


Presentation on theme: "Linux Kernel 101 Sriram Sundararajan. Linux : /lee'nuhks/ or /li'nuks/, not /li:'nuhks/ n. /lee'nuhks/ or /li'nuks/, not /li:'nuhks/ n. The free Unix."— Presentation transcript:

1 Linux Kernel 101 Sriram Sundararajan

2 Linux : /lee'nuhks/ or /li'nuks/, not /li:'nuhks/ n. /lee'nuhks/ or /li'nuks/, not /li:'nuhks/ n. The free Unix workalike created by Linus Torvalds and friends starting about 1991 – The Jargon File Resources, compiled by ESR et al. The free Unix workalike created by Linus Torvalds and friends starting about 1991 – The Jargon File Resources, compiled by ESR et al.

3 Why Linux? Copious Documentation Copious Documentation Free Source Free Source Fully Customizable Fully Customizable All you need is a 386 + 4MB All you need is a 386 + 4MB Powerful Powerful

4 Contd…. Great technical Support Great technical Support POSIX compliant POSIX compliant And It’s a Great OS anyways And It’s a Great OS anyways

5 Dig This Linux and other OSS advocates are making a progressively more credible argument that OSS software is at least as robust -- if not more -- than commercial alternatives. Linux and other OSS advocates are making a progressively more credible argument that OSS software is at least as robust -- if not more -- than commercial alternatives. -- Halloween Docs.

6 Linus on Linux The power of Linux is as much about the community of cooperation behind it as the code itself. The power of Linux is as much about the community of cooperation behind it as the code itself.

7 The Process Ok I know that you all know what it is…. Ok I know that you all know what it is…. Fundamental abstraction Fundamental abstraction Process/kernel model Process/kernel model

8 Linux Vs.*nix Monolithic Kernel Monolithic Kernel Support for modules Support for modules Kernel Threading Kernel Threading Multithreaded application support Multithreaded application support

9 Contd… Nonpreemptive kernel Nonpreemptive kernel Multiprocessor Support Multiprocessor Support File System File System STREAMS I/O STREAMS I/O

10 On Kernels Mono and Micro… Linux Linux Solaris Solaris AIX AIX BSD BSD System V System V SCO SCO Mach Minix …. ???

11 The Bootstrap BIOS BIOS Boot Loader Boot Loader Floppy / Hard Disk Floppy / Hard Disk setup( ) setup( ) startup_32( ) startup_32( ) start_kernel( ) start_kernel( )

12 BIOS Test Hardware (POST) Test Hardware (POST) Initialize Hardware Initialize Hardware Boot from FDD/CD/HDD Boot from FDD/CD/HDD Copy sector 1 to 7c00 Copy sector 1 to 7c00

13 Boot Loader Floppy Floppy bootsect.S bootsect.S Move to 0009 0000 Move to 0009 0000 Setup real mode stack from 0000 3ff4 Setup real mode stack from 0000 3ff4 Display “Loading…” Display “Loading…” Load setup( ) to 90200 Load setup( ) to 90200 Load rest of kernel and jump to setup( ) Load rest of kernel and jump to setup( ) Hard disk MBR Move to 0009 a000 Setup real mode stack from 9b000 to 9a200 Display “Loading…” Load setup( ) to 90200 Load rest of kernel and jump to setup( )

14 setup( ) Initialize a load of Hardware devices Initialize a load of Hardware devices Adjust kernel image (low to high) Adjust kernel image (low to high) Reprograms PIC Reprograms PIC Switches CPU from real to protected mode Switches CPU from real to protected mode Jumps to startup_32( ) Jumps to startup_32( )

15 startup_32( ) Actually there are two of these Actually there are two of these  Initializes the segment registers and stack  Fills the uninitialized data area  Invokes decompress_kernel( )  Jump to 0010 0000

16 Contd.. The other startup_32( ) The other startup_32( )  Init segment regs with final values  Setup stack for process 0  Invokes setup_idt( )  Identifies processor model  Loads GDT and IDT  Jump to start_kernel( )

17 start_kernel( ) Finally…. Finally….  Initialize page tables  Initialize page descriptors  Final initialization of IDT  Initialize Slab allocator  Initialize system date and time  Create thread for Process 1

18 Next… Memory Management Memory Management

19 References Understanding the Linux Kernel Understanding the Linux Kernel Linux Resource Exchange Operating Systems comparison http://www.falconweb.com/~linuxrx/WS_Li nux/OS_comparison.html Linux Resource Exchange Operating Systems comparison http://www.falconweb.com/~linuxrx/WS_Li nux/OS_comparison.html http://www.falconweb.com/~linuxrx/WS_Li nux/OS_comparison.html http://www.falconweb.com/~linuxrx/WS_Li nux/OS_comparison.html The Jargon File http://www.tuxedo.org/~esr/jargon/quoting. html The Jargon File http://www.tuxedo.org/~esr/jargon/quoting. html http://www.tuxedo.org/~esr/jargon/quoting. html http://www.tuxedo.org/~esr/jargon/quoting. html


Download ppt "Linux Kernel 101 Sriram Sundararajan. Linux : /lee'nuhks/ or /li'nuks/, not /li:'nuhks/ n. /lee'nuhks/ or /li'nuks/, not /li:'nuhks/ n. The free Unix."

Similar presentations


Ads by Google