Linux OS in Embedded Systems & Linux Kernel Internals(1/2)
4.1 (73 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.
1,781 students enrolled
Wishlisted Wishlist

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

Add to Wishlist

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

Major components of an operating system (from processes to threads), and CPU scheduling, Synchronization and Deadlocks.
4.1 (73 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.
1,781 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 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 first course.
  • It will help students to understand Basic concepts and principles of OS and interface and execution systems
  • OS structures
  • Process
  • Threads
  • Scheduling
  • Synchronization
  • Deadlocks
  • 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 virtualization software like VMWare Fusion or Virtual Box
Description

What is the course about?
This subject, being it a core of computer science, is divided into two parts(Courses). This is the first course. This course will introduce you to modern operating systems. We will focus on UNIX-based operating systems, though we will also learn about alternative operating systems, including Windows. The course will begin with an overview of the structure of modern operating systems. Over the course of the subsequent units, we will discuss the history of modern computers, analyze in detail each of the major components of an operating system (from processes to threads), and CPU scheduling, Synchronization and Deadlocks. 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.

Second course discusses 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

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 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 ?
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 first 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 first 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, 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.
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
Compare to Other Linux Courses
Curriculum For This Course
41 Lectures
02:28:04
+
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 Process, Threads, context switches, kernels, interrupts, system calls, interprocess communication, coordination, and the interaction between software and hardware.

Preview 01:04
+
Introduction to Operating System
5 Lectures 22:10

Intro and Learning objectives

Intro and Learning objectives
00:32

The operating system is the most important program that runs on a computer. Every general-purpose computer must have an operating system to run other programs and applications.

Operating System Definition
04:10

An operating system (OS) is system software that manages computer hardware and software resources and provides common services for computer programs. The operating system is a component of the system software in a computer system. Application programs usually require an operating system to function.

Preview 10:45

The design of an operating system architecture traditionally follows the separation of concerns principle. This principle suggests structuring the operating system into relatively independent parts that provide simple individual features, thus keeping the complexity of the design manageable.

Operating System Structure
03:25

>- Computer = HW + OS + Apps + Users
>- OS serves as interface between HW and ( Apps & Users )
>- OS provides services for Apps & Users
>- OS manages resources ( Government model, it doesn't produce anything. )
>- Debates about what is included in the OS - Just the kernel, or everything the vendor ships?

Operating System Operations
03:18
+
Operating System Structure
5 Lectures 20:39

Intro and Learning objectives

Intro and Learning objectives
00:33

A user interface (UI) is the part of an operating system, program or device that the user uses to input and receive data. A text user interface (TUI, see the image to the left below) shows text, and its commands are usually written from the keyboard to the command line. The functions of graphical user interfaces (GUI, right-hand image below) are carried out by clicking and moving buttons, icons and menus with the mouse.

User Interface
02:35

In computing, a system call is how a program requests a service from an operating system's kernel. This may include hardware-related services (for example, accessing a hard disk drive), creation and execution of new processes, and communication with integral kernel services such as process scheduling. System calls provide an essential interface between a process and the operating system.

System Call Handling
09:20

>- Memory management
>- Process management
>- Job scheduling
>- Resource allocation strategies
>- Swap space / virtual memory in physical memory
>- Interrupt handling
>- File system management
>- Protection and security
>- Inter-process communications

Operating System Design and Implementation
04:10

The design of an operating system architecture traditionally follows the separation of concerns principle. This principle suggests structuring the operating system into relatively independent parts that provide simple individual features, thus keeping the complexity of the design manageable.

Operating System Structures
04:01
+
Processes
5 Lectures 17:58

Intro and Learning objectives

Intro and Learning objectives
00:23

In computing, a process is an instance of a computer program that is being executed.

Preview 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
03:10

Process management is an integral part of any modern-day operating system (OS). The OS must allocate resources to processes, enable processes to share and exchange information, protect the resources of each process from other processes and enable synchronisation among processes. To meet these requirements, the OS must maintain a data structure for each process, which describes the state and resource ownership of that process, and which enables the OS to exert control over each process.

Process Management
05:16

In computer science, inter-process communication (IPC) is the activity of sharing data across multiple and commonly specialized processes using communication protocols. Typically, applications using IPC are categorized as clients and servers, where the client requests data and the server responds to client requests.

Inter-process Communication
04:38
+
Threads
5 Lectures 12:58

Intro and Learning objectives

Intro and Learning objectives
00:18

In computer science, a thread of execution is the smallest sequence of programmed instructions that can be managed independently by a scheduler, which is typically a part of the operating system.

Thread Concept
06:20

A process is an executing instance of an application. A thread is a path of execution within a process. Also, a process can contain multiple threads.

Threads vs. Processes
02:16

The thread function library to implement user-level threads usually runs on top of the system in user mode.On the other hand, kernel-level threads will guarantee multiple processor access but the computing performance is lower than user-level threads due to load on the system.

User Threads vs. Kernel Threads
00:52

In the Linux operating system, LinuxThreads was a partial implementation of POSIX Threads. It has since been superseded by the Native POSIX Thread Library (NPTL).

Linux’s Threads
03:12
+
CPU Scheduling
8 Lectures 22:13

Intro and Learning objectives

Intro and Learning objectives
00:26

>- Almost all programs have some alternating cycle of CPU number crunching and waiting for I/O of some kind. ( Even a simple fetch from memory takes a long time relative to CPU speeds. )
>- In a simple system running a single process, the time spent waiting for I/O is wasted, and those CPU cycles are lost forever.
>- A scheduling system allows one process to use the CPU while another is waiting for I/O, thereby making full use of otherwise lost CPU cycles.

CPU Scheduler
03:43

The challenge is to make the overall system as "efficient" and "fair" as possible, subject to varying and often dynamic conditions, and where "efficient" and "fair" are somewhat subjective terms, often subject to shifting priority policies.

CPU Scheduling Algorithm’s Goals
01:31

Scheduling Technique

FCFS
02:52

Scheduling Technique

SJF
07:11

Scheduling Technique

Priority Scheduling
01:25

Scheduling Technique

Round Robin
03:35

Scheduling Technique

Multilevel Feedback Queue
01:30
+
Synchronization
5 Lectures 17:20

Intro and Learning objectives

Intro and Learning objectives
00:32

The critical section problem refers to the problem of how to ensure that at most one process is executing its critical section at a given time.

Critical Section Problem
04:48

Many systems provide hardware support for critical section code. The critical section problem could be solved easily in a single-processor environment if we could disallow interrupts to occur while a shared variable or resource is being modified.

Synchronization Hardware
01:37

In 1965, Dijkstra proposed a new and very significant technique for managing concurrent processes by using the value of a simple integer variable to synchronize the progress of interacting processes. This integer variable is called semaphore. So it is basically a synchronizing tool and is accessed only through two low standard atomic operations, wait and signal designated by P() and V() respectively.

Semaphore
06:56

In computing, the producer–consumer problem (also known as the bounded-buffer problem) is a classic example of a multi-process synchronization problem. The problem describes two processes, the producer and the consumer, who share a common, fixed-size buffer used as a queue.

Bounded Buffer Problem
03:27
+
Deadlocks
4 Lectures 16:04

Intro and Learning objectives

Intro and Learning objectives
00:25

A deadlock is a situation in which two computer programs sharing the same resource are effectively preventing each other from accessing the resource, resulting in both programs ceasing to function. The earliest computer operating systems ran only one program at a time.

Deadlock Concept
01:43

1.  Mutual exclusion: only one process at a time can use a resource.
2.  Hold and wait: a process holding at least one resource is waiting to acquire additional resources held by other processes.
3.  No preemption: a resource can be released only voluntarily by the process holding it, after that process has Completed its task.
4. Circular wait: there exists a set {P0, P1, …, P0} of waiting processes such that P0 is waiting for a resource that is held by P1, P1 is waiting for a resource that is held by P2, …, Pn–1 is waiting for a resource that is held by Pn, and P0 is waiting for a resource that is held by P0. Deadlock can arise if four conditions hold simultaneously.

Deadlock Characterization
05:47

Deadlock Prevention.
Deadlock Avoidance.
Deadlock Detection.
Ignore the problem.

Methods for Handling Deadlocks
08:09
+
Exercise
2 Lectures 16:44
Exercise 1
08:18

Exercise 2

Exercise 2
08:25
+
Bonus
1 Lecture 02:25

Finally, you have reached to the Last Lecture of the course. Great !!
Its time to move on to another course to Skill-Up.
Get Huge Discount on Courses on Linux, Algorithms, Software Project Management, Mobile APP Development, Java and Software Engineering:
  
1. Linux
  
a. Linux OS in Embedded System & Linux Kernel Internals(1/2)

https://www.udemy.com/becoming-linux-expert-series-install-linux-operating-system/?couponCode=DOLLARTEN
Overview of the structure of modern operating systems. Over the course of the subsequent units, we will discuss the history of modern computers, analyze in detail each of the major components of an operating system (from processes to threads), and CPU scheduling, Synchronization and Deadlocks
 
b. Linux OS in Embedded System & Linux Kernel Internals(2/2)
https://www.udemy.com/c-complete-reference/?couponCode=DOLLARTEN
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.
  
2. Algorithms and Data Structures
  
a. Algorithms and Data Structures Training Program (1/4)

https://www.udemy.com/oops-java-object-oriented-programming/?couponCode=DOLLARTEN
Introduction to Algorithms, Arrays, Search, Greedy Algorithm, Sort, Subset, Stack Data Structures, Memoization, backtracking, Dynamic Programming, Depth First Search (DFS), Divide and Conquer,Pattern matching,Queue,Breadth First Search(BFS),List,Insertion,Merge,Tree(Binary & Expression),Binary search Tree,Heap
  
b. Algorithms and Data Structures Training Program (2/4)
https://www.udemy.com/java-oops-object-oriented-programming/?couponCode=DOLLARTEN
SW Problem Solving, Algorithm Complexity, Bit Operations, Number Bases, Floating Point Numbers, O(Big-Oh)-Notation, (Big-Omega)-Notation, (Theta)-Notation, Endianness, Exhaustive Search Method, Combinatorial Problem, Baby, Gin Problem, Brute-Force, Permutation, Lexicographic–Order, Johonson-Trotter, Combination, Minimum-exchange Requirement, Subset, Knapsack Problem and Fractional Knapsack Method, Greedy Algorithm and Application of Greedy, Approach, Recursive Algorithm Applying Greedy Method, Comparison of Greedy Method and Dynamic Programming, Representative Algorithms of Greedy Methods, Huffman coding, Change Reducing Problem, Meeting Room Scheduling, Divide and Conquer, Merge Sort, Quick sort, Hoare Partition, Lomuto Partition, Binary Search and Power Set,Backtracking, Maze Finding, State Space Tree, 8-Queens Problem, Subset, Power Set, Permutation, Graphs, Search, Disjoint Sets, Expression of Linked List, Minimum Spanning Tree, Prim Algorithm, Kruskal Algorithm, Shortest, Path, Dijkstra Algorithm, Bellman-Ford Algorithm and Floyd-Warshall Algorithm.
  
c. Algorithms and Data Structures Training Program (3/4)
https://www.udemy.com/algorithms-data-structures-programming/?couponCode=DOLLARTEN
Hashing,Collision,Pattern Matching,Brute Force,Karp–Rabin,KMP(Knuth-Morris-Pratt),Boyer-Moore,Trie,Compressed Trie,Suffix Tree,Suffix Array,Compression,LCP Array,Run-Length Encoding,Huffman Coding,Lampel-Ziv-Welch Encoding,Arithmetic Coding,Dynamic Programming,Fibonacci Number,Mathematical Induction,Pigeon Hole Principle,Memoization,Binomial Theorem,Pascal's Triangle,Knapsack Problem,Search of State Space Tree,Branch and Bound, Pruning (Backtracking),Best-First Search
  
d. Algorithms and Data Structures Training Program (4/4)
https://www.udemy.com/algorithms-programming-data-structures/?couponCode=DOLLARTEN
Dynamic Programming,Longest Increasing Sequence,All Pairs Shortest Path,Weighted directed graph,Floyd-Warshall Algorithm,Traveling Salesman Problem,NP-Complete,Deterministic, Nondeterministic,Polynomial Time Conversion,NP-Hard,SAT,Boolean Expression,Partition,Vertex Cover,Independence Set,Clique,Graph Coloring,Set Cover,Longest Path,Hamiltonian Cycle,Bin Packing,Job Sheduling,Approximation Algorithm,Job Scheduling,Simulated Annealing,Graph of Search Process,Number Theory and Optimization,Probability,GCD,Euclid Algorithm,LCM,Modulo Operation
  
3. Software Project Management
  
a. Software Project Management Training Program(1/4)

https://www.udemy.com/software-engineering-software-architecture/?couponCode=DOLLARTEN
Software Life Cycle Models & Development Methodology, Integration, Stakeholder, Scope, Resource, Time, Cost, Risk, Quality, Procurement, Communication, software Engineering
  
b. Software Project Management Training Program(2/4)
https://www.udemy.com/software-engineering-management/?couponCode=DOLLARTEN
Integration Management,Time Management,Risk Management,Scope Management,Work and Change Control,Extraction & Analysis of Requirements,WBS,Scope Creep and Gold Plating, Scope and Quality
  
c. Software Project Management Training Program(3/4)
https://www.udemy.com/programming-algorithm/?couponCode=DOLLARTEN
Project Resource Management,Resource Estimation,Project Cost Management,Develop Budget and Cost Baseline,Earned Value Method,Project Procurement Management
  
d. Software Project Management Training Program(4/4)
https://www.udemy.com/programming-algorithms-data-structure/?couponCode=DOLLARTEN
Project Quality Management,Characteristics and Assessment of Software Quality,Quality Plan Process,Quality Assurance Process,Software test,White box tests,Black,box tests,Regression tests,Software test case Design and Components,Software test Automation,Configuration Management,Baseline,Maintenance,Project,Communication Management,Communication Network
  
4. Software Development Process and Software Engineering
   
a. Software Development - Software Architecture & Software Engineering, UML(1/3)

https://www.udemy.com/uml-software-engineering/?couponCode=DOLLARTEN
Software Platform: External and Internal, Software Architecture: Style and Documentation, Software Development Process, Software Development Model, Software Requirement Specification, Software Design Document, API Specification, Unified Modeling Language UML, UML Basic Building Blocks, UML Modeling Rules, UML Modeling Tool and Modeling with UML Diagram
  
b. Software Development - Coding Appearance & Idioms, Design Patterns(2/3)
https://www.udemy.com/object-oriented-programming-java-io/?couponCode=DOLLARTEN
Coding Appearance, File Organization, Declaration and Statements, Indentation Style and Comments, Naming Convention, Coding Idiom, Memory Management, Security, Exception Handling, Concurrency / Parallelism, Type Safety, Performance, Code Review: Gerrit - Google Code review System, Code Review: Gerrit - Review Board, Design Patterns, Creational Pattern, Structural Pattern, Behavioral Pattern, Code Refactoring Methods.
  
c. Software Development - Software Testing, Configuration Management & Open Source License(3/3)
https://www.udemy.com/software-architecture-software-engineering/?couponCode=DOLLARTEN
Software Testing and Software Test Levels, Testing Techniques, Intuition and Experience-Based Technique, Specification-Based Technique, Code-Based Technique, Software Configuration Management, Issue Tracking, Version Control, Understanding of Open Source, Open Source License, GPL Violation Watchdogs, Open Source Contribution, Main Obligations of GPL 2.0, GPL3.0, Main Obligations of LGPL 2.1, AGPL, Main Obligations of MPL1.1, EPL, Main, Obligations of Apache2.0, BSD2.0, Open Source Instructions for Developers, Instructions to Adopt Open Source, Instructions to Use Open Sources, Instructions to Distribute Open Sources
  
5. HTML5 : Mobile App Development
https://www.udemy.com/data-structure-algorithms/?couponCode=DOLLARTEN
HTML5, Tags, CSS, Responsive Web, JavaScript, DOM, jQuery, Selectors, Mobile App Development
  
Visit my website eLearningMedium to get additional free resources + discounted course bundles.
 

Preview 02:25
About the Instructor
Andrew Joseph
4.2 Average rating
93 Reviews
1,927 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!