Linux OS in Embedded Systems & Linux Kernel Internals(2/2)
4.4 (20 ratings)
Instead of using a simple lifetime average, Udemy calculates a course's star rating by considering a number of different factors such as the number of ratings, the age of ratings, and the likelihood of fraudulent ratings.
463 students enrolled
Wishlisted Wishlist

Please confirm that you want to add Linux OS in Embedded Systems & Linux Kernel Internals(2/2) to your Wishlist.

Add to Wishlist

Linux OS in Embedded Systems & Linux Kernel Internals(2/2)

Memory Management, Paging, Virtual Memory, File system and its implementation, Secondary Storage(HDD), I/O systems
4.4 (20 ratings)
Instead of using a simple lifetime average, Udemy calculates a course's star rating by considering a number of different factors such as the number of ratings, the age of ratings, and the likelihood of fraudulent ratings.
463 students enrolled
Created by Andrew Joseph
Last updated 9/2017
English
Current price: $10 Original price: $200 Discount: 95% off
5 hours left at this price!
30-Day Money-Back Guarantee
Includes:
  • 2.5 hours on-demand video
  • 3 Articles
  • 1 Supplemental Resource
  • Full lifetime access
  • Access on mobile and TV
  • Certificate of Completion
What Will I Learn?
  • This subject, being it a core of computer science, is divided into two parts(Courses). This is the second course in the series.
  • It will help students understand the more advanced concepts and intricacies of OS and interface and execution systems that are needed for product development
  • Memory Management
  • Paging
  • Virtual Memory
  • File system and its implementation
  • Secondary Storage(HDD)
  • I/O systems
  • More about Linux OS.
  • To receive certification that you have completed the course, you must attend the course in full.
  • You will be able to apply the roles of OS in products and various components and algorithms in OS.
  • Learn the operation of Linux OS which is commonly used in most of the products being it Open source. Please be well acquainted with the objectives of this course and take it seriously.
  • When you complete this course, you will be able to understand the basic terminologies and concepts of OS for software development.
  • It will also let you improve the software quality of the product.
  • For college going students, this course will help in improving grades in college curriculum.
View Curriculum
Requirements
  • A spare working computer with gcc compiler or visualization software like VMware Fusion or Virtual Box(if u don't have Linux OS)
Description

What is the course about?
This subject, being it a core of computer science, is divided into two parts(Courses). This is the second course in the series. Here, We will focus on UNIX-based operating systems, though we will also learn about alternative operating systems, including Windows. Over the course of the subsequent units, analyze in detail each of the major components of an operating system, Memory management, Paging, Memory Management in Intel 80386, Virtual Memory, Demand Paging, , Page Fault, Belady’s Anomaly, Stack Replacement Algorithms, Thrashing, File Concept, Directory Structure, File System, Mounting, File Sharing and Protection, Space Allocation Techniques, Disk Structure and Scheduling, Free Space Management. The class will conclude with a discussion of various system-related security issues. This comprehensive course will give you enough understanding on OS from where you can take yourself to higher level of expertise. 

Various exercises are required to do by students. Please remember that this is a serious course on Operating systems. I believe that Subject like OS cannot be learned in few hours. It requires continuous practice and learning. Students may have to put a lot of efforts in order to become expert in this core area of computer science and make the best use of this course.

First course discusses about Operating system components and services, Operating system structures, Process concept, Inter-process communication (IPC) and process synchronization, UNIX/Linux IPC tools and associated system calls, Use of FIFOs in a program, Thread models, Schedulers, Dispatcher, Algorithm evaluation, Process synchronization, The Critical Section Problem, The Bakery Algorithm, Deadlock and Starvation, Deadlock handling, Detections and Recovery.

When you complete this course, you will be able to understand the terminologies and concepts of Linux OS in embedded systems and Linux Kernel Internals.

1. Tired of finding good learning resources on Linux OS & Kernel Internals?
2. Do you want to become a expert level System Engineer ?
3. Are you ready to learn the concepts of Memory management, Paging, Memory Management in Intel 80386, Virtual Memory, Demand Paging, , Page Fault, Belady’s Anomaly, Stack Replacement Algorithms, Thrashing, File Concept, Directory Structure, File System, Mounting, File Sharing and Protection, Space Allocation Techniques, Disk Structure and Scheduling, Free Space Management ?
4. As a Bonus, get a complimentary consultation about Algorithms, Data Structures, HTML, C and Java Programming languages.
5. So if you’re looking for knowledge, a rewarding adventure, and the advantage a future perspective can offer, I’m excited to tell you more about my step-by-step training program for Linux OS and kernel.

What kind of material is included?
1. This course consists of high quality training content using quality videos with industry oriented hands-on examples.
2. I have tried to include the juice of my 10 years of experience in this course.
3. The focus is on giving real life essential tricks and skills.
4. I suggest students to take this course with pen and paper handy. Note the important points and take part in discussions. I advise students to take the problems after each section.

How long will the course take to complete?
1. This is the second course in the series of two part comprehensive course covering almost all the topics of Operating system.
2. The course is around 2.5 hours in duration. I advise students to cover not more than one lesson/section per day and do not move to the next lesson/section without doing the exercise.

How is the course structured?
1. Lectures, Classroom Discussions at the end of each chapter.
2. A perfect blend of theory and real world examples.

Why take this course?
1. This is the second course in the series of two part comprehensive course covering almost all the topics of Operating system.
2. This course will tends to replace text books on Operating system ie it will be a complete reference of OS.
3. You will learn about Operating system components and services, Operating system structures, Memory management, Paging, Memory Management in Intel 80386, Virtual Memory, Demand Paging, , Page Fault, Belady’s Anomaly, Stack Replacement Algorithms, Thrashing, File Concept, Directory Structure, File System, Mounting, File Sharing and Protection, Space Allocation Techniques, Disk Structure and Scheduling, Free Space Management.
4. For the college going students, this course helps in improving grades in college curriculum and increases the chances at the final Campus Interview.

When does the course start and finish?
The course starts now and never ends! It is a completely self-paced online course - you decide when you start and when you finish.

How long do I have access to the course?
How does lifetime access sound? After enrolling, you have unlimited access to this course for as long as you like - across any and all devices you own.

What if I am unhappy with the course?
We would never want you to be unhappy! If you are unsatisfied with your purchase, contact us in the first 30 days and we will give you a full refund.

Join worldwide learners who uses Linux OS and Kernel Internals as part of their curriculum and Job.

Visit my website eLearningMedium to get discounts on my courses + additional free resources + discounted course bundles.

Who is the target audience?
  • This is a course for professionals and students in occupational group in any organization or academics to help them to understand the basics of operating systems that they should know well.
  • The learning targets of this course are software developers, computer science engineers and students who wish to strengthen their concepts of Operating system specifically Linux.
  • IT professionals with little or no Linux, OS experience.
  • Computer and IT hobbyists
Students Who Viewed This Course Also Viewed
Curriculum For This Course
46 Lectures
02:36:27
+
Orientation
1 Lecture 01:04

Intro and warming up, Course Introduction and contents, Learning structures and preparations. This course studies fundamental design and implementation ideas in the engineering of operating systems. Lectures are based on a study of UNIX and research papers. Topics include Memory Management, Paging, Virtual Memory, File system and implementation, Secondary storage(HDD), I/O systems, coordination, and the interaction between software and hardware.

Preview 01:04
+
Memory Management Basics
4 Lectures 12:33

Intro and Learning objectives

Intro and Learning objectives
00:33

Computer memory uses both logical addresses and physical addresses. Address binding allocates a physical memory location to a logical pointer by associating a physical address to a logical address, which is also known as a virtual address. Address binding is part of computer memory management and it is performed by the operating system on behalf of the applications that need access to memory.

Preview 05:39

A memory management unit (MMU), sometimes called paged memory management unit (PMMU), is a computer hardware unit having all memory references passed through itself, primarily performing the translation of virtual memory addresses to physical addresses.

MMU(Memory Management Unit)
01:55

Contiguous memory allocation is a classical memory allocation model that assigns a process consecutive memory blocks (that is, memory blocks having consecutive addresses).

Contiguous Allocation
04:26
+
Paging and Segmentation
4 Lectures 15:00

Intro and Learning objectives

Intro and Learning objectives
00:23

In computer operating systems, paging is one of the memory management schemes by which a computer stores and retrieves data from the secondary storage for use in main memory. In the paging memory-management scheme, the operating system retrieves data from secondary storage in same-size blocks called pages.

Paging
06:07

Page table is kept in main memory.
Page-table base register (PTBR) points to the page table.
Page-table length register (PRLR) indicates size of the page table.
In this scheme every data/instruction access requires two memory accesses. One for the page table and one for the data/instruction.
The two memory access problem can be solved by the use of a special
fast-lookup hardware cache called associative memory or translation look-aside buffers (TLBs)

Implementation of Page Table
05:59

Memory segmentation is the division of a computer's primary memory into segments or sections. In a computer system using segmentation, a reference to a memory location includes a value that identifies a segment and an offset within that segment. Segments or sections are also used in object files of compiled programs when they are linked together into a program image and when the image is loaded into memory.

Segmentation
02:31
+
Virtual Memory
4 Lectures 17:34

Intro and Learning objectives

Intro and Learning objectives
00:34

In virtual memory systems, demand paging is a type of swapping in which pages of data are not copied from disk to RAM until they are needed.

Demand Paging
05:57

Page replacement algorithms decide which memory pages to page out (swap out, write to disk) when a page of memory needs to be allocated.

Preview 07:54

In a virtual storage system (an operating system that manages its logical storage or memory in units called pages), thrashing is a condition in which excessive paging operations are taking place. A system that is thrashing can be perceived as either a very slow system or one that has come to a halt.

Thrashing
03:09
+
File System Interfaces
7 Lectures 11:21

Intro and Learning objectives

Intro and Learning objectives
00:33

A filesystem is the methods and data structures that an operating system uses to keep track of files on a disk or partition; that is, the way the files are organized on the disk. The word is also used to refer to a partition or disk that is used to store the files or the type of the filesystem.

File System
02:13

File is nothing but a container.

File Concepts
03:02

An access method defines the way processes read and write files.

Access Methods
01:04

In computing, a directory is a file system cataloging structure which contains references to other computer files, and possibly other directories.

Directory
01:26

Mount (computing) Mounting takes place before a computer can use any kind of storage device (such as a hard drive, CD-ROM, or network share). The user or their operating system must make it accessible through the computer's file system. A user can only access files on mounted media.

What is a pointer?
01:44

File protection aims to prevent programs from replacing critical system files.

File Protection
01:19
+
File System Implementation
6 Lectures 15:02

Intro and Learning objectives

Intro and Learning objectives
00:32

File systems store several important data structures on the disk:
A boot-control block
A volume control block
The File Control Block

File System Implementation
03:25

File Allocation Table (FAT) is a computer file system architecture and a family of industry-standard file systems utilizing it. The FAT file system is a legacy file system which is simple and robust.

File Allocation
05:24

Since there is only a limited amount of disk space, it is necessary to reuse the space from deleted files for new files. To keep track of free disk space, the system maintains a free-space list.

Free Space Management
01:50

Directory Implementation

Directory Implementation
01:07

Performance and Reliability

Performance and Reliability
02:44
+
Secondary Storage
5 Lectures 17:33

Intro and Learning objectives

Intro and Learning objectives
00:34

Hard Disk is a sealed aluminum box with controller electronics attached to one side. The electronics control the read/write mechanism and the motor that spins the platters. The electronics also assemble the magnetic domains on the drive into bytes (reading) and turn bytes into magnetic domains (writing). 

Hard Disk Internals
02:37

First Come-First Serve (FCFS)
Shortest Seek Time First (SSTF)
Elevator (SCAN) 
Circular SCAN (C-SCAN)
LOOK
C-LOOK

Disk Scheduling Algorithms
10:52

Disk formatting is the process of preparing a data storage device such as a hard disk drive, solid-state drive, floppy disk or USB flash drive for initial use. In some cases, the formatting operation may also create one or more new file systems.

Disk Formatting
02:12

Swap space is a generic term for disk storage used to increase the amount of apparent memory available on the system.

Swap Space Management
01:18
+
I/O Systems
4 Lectures 14:12

Intro and Learning objectives

Intro and Learning objectives
00:26

>- I/O devices can be roughly categorized as storage, communications, user-interface, and other
>- Devices communicate with the computer via signals sent over wires or through the air.
>- Devices connect with the computer via ports, e.g. a serial or parallel port.
>- A common set of wires connecting multiple devices is termed a bus.

I/O Hardware
05:08

Application I/O Interface represents the structuring techniques and interfaces for the operating system to enable I/O devices to be treated in a standard, uniform way.

Application I/O Interface
02:50

Kernel I/O Subsystem is responsible to provide many services related to I/O. 

Kernel I/O Subsystem
05:48
+
Linux System
8 Lectures 34:30

Intro and Learning objectives

Intro and Learning objectives
00:28

Linux is a UNIX-base operating system. Its original creator was a Finnish student name Linus Torvalds, although being ‘open source’ it has change a great deal since its original conception. It belongs to nobody, and is free to download and use.

Introduction to Linux
05:57

>- For every task the kernel maintains a task_struct
>- task_struct contains all relevant information about a task.

Task Structure
04:31

Process scheduling is an essential part of a Multiprogramming operating system. Such operating systems allow more than one process to be loaded into the executable memory at a time and loaded process shares the CPU using time multiplexing.

Process Scheduling
06:38

Physical memory is the actual real memory used in RAM. 

Physical Memory Management
06:22

Virtual memory as the name suggests is not real. The OS uses virtual memory as a memory management technique in which non-contiguous memory is presented to software as contiguous memory. If the RAM falls short of memory to accommodate more running processes, the OS allocates a portion of your hard drive to act as though it were RAM. That's what is referred to as virtual memory.

Virtual Memory Management
03:54

A virtual file system (VFS) or virtual filesystem switch is an abstraction layer on top of a more concrete file system. The purpose of a VFS is to allow client applications to access different types of concrete file systems in a uniform way.

Virtual File System
02:30

The extended file system, or ext, was implemented in April 1992 as the first file system created specifically for the Linux kernel. It has metadata structure inspired by the traditional Unix File System (UFS) and was designed by Rémy Card to overcome certain limitations of the MINIX file system.

EXT File System
04:10
+
Exercise
2 Lectures 16:44

Exercise

Exercise 1
08:18

Exercise 2

Exercise 2
08:25
1 More Section
About the Instructor
Andrew Joseph
4.2 Average rating
90 Reviews
1,923 Students
2 Courses
Linux Enthusiast,Software Programmer,Consultant

As an programming enthusiast, I want to share my knowledge and interests here.

My name is Andrew Joseph 

I started learning about programming since high school, dived in "Basic" first, which eventually made me major in Electronics and Communications.

After completing the college, in 2005, I started working in the software and system departments at large corporations. Since then I have grown my Linux skills at various levels. Through the years I've worked in many positions as a Linux and system engineer, a programmer, a debugger and a consultant.

I have been working with C, C++ and Linux since 12 years. Its great to work with different Linux distributions and I find them really powerful. You see most of the supercomputers are based on Linux OS.

I find myself an accomplished software engineer specializing in object-oriented approaches. Extensive background in full life-cycle of software development process including requirements gathering, design, coding, testing, debugging and maintenance. My technical skills include:

C, C++

OS: Unix/Linux, Windows

Android Binder IPC

Few years ago, I forwarded myself for a position of training software engineers in a technical training center in my organization. It was there that I came to know about my passion towards teaching computer science subjects. Today I am one of the top technical trainers of my organization. Now, In addition to traditional classroom training and consulting, I am releasing video tutorial training for aspiring programmers, engineers or students.

I've been lucky enough to teach many people through my career. Some have gone on to become professional system engineers, some are software engineers or coders, and some are networking people. All have said that my teaching style is effective and approachable, so I've tried to capture that here.

I've plans of making some of the courses about operating systems, linux kernel, device drivers etc. I give all my heart into creation of courses. I always try to explain everything the easiest possible way. I'm sure that my courses will help you in the adventure.

I offer a range of high quality training content using quality videos backed-up with industry oriented hands-on examples. My main emphasis is to teach technology the way it is used in professional world. The focus is on giving real life skills that are essential in today's environment. My courses on Technology includes everything ranging from Programming, Operating Systems, Linux kernel, Linux device drivers to Android Binder.

It is so great be here and share knowledge with you.

Have fun and learn enough!