LPIC 3 -303 برای متخصصان لینوکسی که حداقل 4 سال سابقه کار در سطح پیشرفته را دارند طراحی شده که به بررسی و آموزش ماژول های امنیتی، آشنایی با رمزنگاری، ایجاد امنیت برای سرویسها و امنسازی سیستم عامل و شبکه می پردازد.
متخصصان لینوکس
توانایی Hardening سرویس ها، سیستم عامل ، توانایی کانفیگ ماژولهای امنیتی و فایروال، آشنایی با Cryptography
آزمایشگاه یادگیری فناوری اطلاعات دانشگاه صنعتی شریف به منظور توسعه منابع انسانی متخصص و ماهر در زمینه سیستم عامل لینوکس و کاربری آن در زمینههای تخصصی، نسبت به برگزاری دورههای آموزشی و آزمونهای استاندارد و صدور گواهینامه حرفهای شریف اقدام مینماید.
راهبران سرورهای لینوکس و کارشناسان شبکه و دانشجویان فناوری اطلاعات و کامپیوتر
1- System Architecture
Determine and configure hardware settings
Boot the system
Change runlevels / boot targets and shutdown or reboot system
2- Linux Installation and Package Management
Design hard disk layout
Install a boot manager
Manage shared libraries
Use Debian package management
Use RPM and YUM package management
3- GNU and Unix Commands
Work on the command line
Process text streams using filters
Perform basic file management
Use streams, pipes and redirects
Create, monitor and kill processes
Modify process execution priorities
Search text files using regular expressions
Perform basic file editing operations using vi
4- Devices, Linux Filesystems, Filesystem Hierarchy Standard
Create partitions and filesystems
Maintain the integrity of filesystems
Control mounting and unmounting of filesystems
Manage disk quotas
Manage file permissions and ownership
Create and change hard and symbolic links
Find system files and place files in the correct location
5- Shells, Scripting and Data Management
Customize and use the shell environment
Customize or write simple scripts
SQL data management
6- User Interfaces and Desktops
Install and configure X11
Setup a display manager
Accessibility
7- Administrative Tasks
Manage user and group accounts and related system files
Automate system administration tasks by scheduling jobs
Localisation and internationalisation
8- Essential System Services
Maintain system time
System logging
Mail Transfer Agent (MTA) basics
Manage printers and printing
9- Networking Fundamentals
Basic network configuration
Basic network troubleshooting
Configure client side DNS
10- Security
Perform security administration tasks
Setup host security
Securing data with encryption
1- Capacity Planning
Measure and Troubleshoot Resource Usage
Predict Future Resource Needs
2- Linux Kernel
Kernel Components
Compiling a kernel
Kernel runtime management and troubleshooting
3- System Startup
Customizing SysV-init system startup
System Recovery
Alternate Bootloaders
4- Filesystem and Devices
Operating the Linux filesystem
Maintaining a Linux filesystem
Creating and configuring filesystem options
5- Advanced Storage Device Administration
Configuring RAID
Adjusting Storage Device Access
Logical Volume Manager
6- Network Configuration
Basic networking configuration
Advanced Network Configuration and Troubleshooting
Troubleshooting Network Issues
7- System Maintenance
Make and install programs from source
Backup operations
Notify users on system-related issues
8- Domain Name Server
Basic DNS server configuration
Create and maintain DNS zones
Securing a DNS server
9- Web Services
Implementing a web server
Apache configuration for HTTPS
Implementing a proxy server
Implementing Nginx as a web server and a reverse proxy
10- File Sharing
SAMBA Server Configuration
NFS Server Configuration
دوره برنامهنویسی درایور و ماژول کرنل لینوکس با تمرکز بر روی درونیترین جز سیستمعامل پر کاربرد و قدرتمند لینوکس، سعی دارد تا با استفاده از به روز ترین و استانداردترین APIهای موجود در زمینه توسعه هسته این سیستمعامل، راه را برای توسعه ابزارهایی در پایینترین سطوح عملکرد سیستم فراهم آورد تا برنامهنویسان و سازندگان سختافزارهای اختصاصی برنامه پذیر قادر باشند داریورهای اختصاصی خود را تولید کرده، شبکه سیستم را در سطحی به مراتب موثرتر از هر دیواره آتشی مدیریت کرد، و حتی با دستکاری فراخوانیهای سیستمی اقدام به تغییر روند اجرایی مرسوم برنامه های سطح کاربرد نمایند که تا پیش از این و در هیچ دوره یا با استفاده از هیچ ابزار برنامهنویسی دیگری امکان آن را نداشتهاند.
متخصصان شبکه و سیستمعامل، توسعه دهندگان نرمافزارهای سیستمی
لازم به ذکر است این دوره به صورت کاملا حرفه ای و برای دانشجویانی که دوره لینوکس مقدماتی و پیشرفته را گذرانده اند برگزار می گردد.
1. Part One: An Introduction To Linux Kernel Programming
1.1. Linux Kernel programming Intro
1.1.1. History Behind Linux Kernel
1.1.2. Linux Kernel Versions
1.1.3. Monolithic Architecture Vs. Micro-Kernel
1.1.4. Kernel Modules Vs. User-Space Programs
1.1.5. Loadable Kernel Modules Vs. Drivers
1.1.6. Kernel Subsystems and Driver Types
1.1.7. Setting Up an Environment
1.1.8. Compiling a Fresh Kernel
1.1. Make Your First Loadable Kernel Module
1.2.1. Anatomy of a Loadable Kernel Module
1.2.2. Writing Your First Kernel Module
1.2.3. Using Kernel Logs To Communicate With User
1.2.4. Defining Command Line Arguments
1.2.5. Adding Pesudo Information
1.2.6. Building a Kernel Module with Makefiles
1.2.7. Installing, Removing and Reviewing a Module’s Info
1.2.8. How It Actually Works
1.3. Kernel Space - User Space Interfaces
1.3.1. Using Proc File System and Seq-Files
1.3.2. Using Device Files, Major and Minor Numbers
1.3.3. Communicating with User-Space Through Charachter Devices
1.3.4. Facilitate a Charachter Driver with IOCTL Commands
1.3.5. Checking User-Space Capability and Permission
1.3.6. Making Device Node Dynamically
1.3.7. Using Attributes of Sys File System with Kobjects
1.3.8. Putting All Toghether
1.4. Linux Kernel Programming Concepts
1.4.1. Debugging Techniques
1.4.2. Atomic Context Vs. Process Context
1.4.3. Kernel Data Structures
1.4.4. System Call Interface
2. Part Two: Linux Kernel Programming ToolBox
2.1. Concurrency Handling
2.1.1. Semaphores and Mutexes
2.1.2. Spin-Locks and Completions
2.1.3. Atomic Variables and Lock-Free Algorithms
2.2. Time, Delay, Deffered Works and Timers
2.2.1. Timesamps and Jiffies
2.2.2. Long Delays Vs. Short Delays
2.2.3. Busy-Waiting Vs. Sleep Based Delay
2.2.4. Workqueues and Deffered Works
2.2.5. Fantastic Kernel Timers
2.2.6. Blocking I/O
2.3. Interrupt Handling
2.3.1. Interrpts Concepts and Vectors
2.3.2. Using hard Interrupts
2.3.3. Using Softirqs
2.3.4. Interrupt Handlers
2.3.5. Slow and Fast Handlers, Top and Bottom Halves
2.3.6. Tasklets and Workqueues
2.4. Memory Allocation
2.4.1. Kmalloc Function and Memory Allocation Concept
2.4.2. Linux Memory management Subsystem
2.4.3. Memory Pools Data Structure and Functions
2.4.4. Lookaside Chaches Data Structure and Functions
2.4.5 Kfifo Data Structure and Functions
2.4.6. Page Allocations and Obtaining Large Buffers
2.4.7. Per-CPU Variables
2.4.8. Virtual Addresses and Memory Remap
2.5. Process Management
2.5.1. Process, Threads and Kthreads Concepts
2.5.2. Systemd Vs. Initd
2.5.3. Process Data Structures
2.5.6. Check and Set Process States
2.5.7. Send Signals to a Process
2.5.8. Moving Around System Process Tree
2.5.8. Process Creation and Termination
2.5.9. Multi tasking, Parallelism and Processes
2.5.10. Process Scheduling Concepts and Linux CFS Scheduler
2.6. Communicating With Hardwares
2.6.1. I/O Ports and I/O Memories
2.6.2. I/O Ports Registration
2.6.3. Data Transfer Via an I/O port
2.6.4. I/O Memory Registration
2.6.5. Data Transfer Via an I/O Memory
2.6.6. I/O Ports mapped On I/O Memory
3. Part Three: Driver Programming Tutorials
3.1. Parallel Port Dirvers
3.1.1. Paralle Port Structures and Concepts
3.1.2. Preparing a Parallel Port
3.1.3. Parallel Port Interrupt Line Probing
3.1.4. Parrallel Port Interrupt Handler
3.1.5. Data Transfer
3.1.6 Creating a Parallel Port Driver
3.2. PCI Port Drivers
3.2.1. PCI Interface Concepts and Structure
3.2.2. PCI Adresses and Regions
3.2.3. PCI Registration and Probing
3.2.4. Accessing PCI Configuration Space
3.2.5. Accessing PCI I/O Port and I/O Memory
3.2.6. PCI Interrupts
3.2.7. Data Transfer
3.2.8. Creating a PCI Driver
3.3. USB Port Drivers
3.3.1. USB Ports and Devices Concepts
3.3.2. USB Drivers, Core Drivers and Host-Controllers
3.3.3. Using USB URBs
3.3.4. Using USB Notifiers
3.3.5. Probbing, Connect and Disconnect Operations
3.3.6. Data Transfer Without URBs
3.3.7. USB Data Structures and Data Functions
3.3.8. Creating an Adequate USB Driver
3.4. TTY Drivers
3.4.1. TTY Driver Data Structures
3.4.2. Buffering and Other Functions
3.4.3. Seting and Using Termios
3.4.4. Device Access
3.4.5. Creating a TTY Driver
3.5. Block Drivers
3.5.1. Block Device Drivers Data Structures
3.5.2. Block Requests and Gen-Disks
3.5.3. Request Queues
3.5.4. DMA Access
3.5.5. Creating a Practical Block Driver
3.6. VFS Interface
3.6.2. Common Filesystem Layes
3.6.2. Filesystem Abstraction Layer
3.6.3. Unix Filesystems
3.6.4. VFS Objects and Data Structures
3.6.5. Super Block Object and Operations
3.6.6. Inode Object and Operations
3.6.7. Dentry Object and Operations
3.6.8. File Object and Operations
3.6.9. Creating a Simple Filesystem
3.7. Network Drivers
3.7.1. Network Addresses, Protocols and Interfaces
3.7.2. Network Stack and Its Data Structures
3.7.3. Packet Transfer and Acceptance
3.7.4. Concurrency, Scatter/Gather I/O, Timeouts and Interrupts
3.7.5. Link States, Socket Buffers, Data-Linke Layer
3.7.6. Creating a Basic Network Driver
3.8. Net-Filter Hooks
3.8.1. Iptables and Net-Filter
3.8.2. Hook Chaines, Priority and Position
3.8.3. Protocols, Addresses and Interface Filtering
3.8.4. Intercepting a Packet Content
3.8.5. Creating a Rule-Based Firewall
4. References
4.1. Linux Device Drivers, 3rd Edition, By Greg Kroah-Hartman, Alessandro Rubini & Jonathan Corbet, O'REILLY
4.2. Linux kernel Development, 3rd Edition, By Robert Love, Developer’s Library
4.3. Professional Linux Kernel Architecture, By Wolfgang Mauerer, Wiley Publishing
4.4. Understanding the Linux Kernel, 3rd Edition, By Daniel P. Bovet, O’Reilly
4.5. The Linux Programming Interface, By Michael Kerrisk, No Strach Press
4.6. Linux Kernel Networking Implementation, By Rami rosen, Apress
4.7. Linux Kernel Module Programming Guide, By Peter Jay Salzman, Michael Burian & Ori Pomerantz
4.8. Advanced Linux Progrmming Guide, By Mark Mitchell, Jeffrey Oldham & Alex Samuel, New Riders Publishing
4.9. Modern Operating Systems, 4th Edition, By Andrew S. Tanenbaum & Herbert Bos, Person Education Inc.
4.10. Operating System Concepts, 9th Edition, Abraham Silberschatz & Peter Baer Galvin, Wiley Publishing
آزمایشگاه یادگیری فناوری اطلاعات دانشگاه صنعتی شریف به منظور توسعه منابع انسانی متخصص و ماهر در زمینه سیستم عامل لینوکس و کاربری آن در زمینههای تخصصی، نسبت به برگزاری دورههای آموزشی و آزمونهای استاندارد و صدور گواهینامه حرفهای شریف اقدام مینماید.
راهبران سرورهای لینوکس و کارشناسان شبکه و دانشجویان فناوری اطلاعات و کامپیوتر
1- System Architecture
Determine and configure hardware settings
Boot the system
Change runlevels / boot targets and shutdown or reboot system
2- Linux Installation and Package Management
Design hard disk layout
Install a boot manager
Manage shared libraries
Use Debian package management
Use RPM and YUM package management
3- GNU and Unix Commands
Work on the command line
Process text streams using filters
Perform basic file management
Use streams, pipes and redirects
Create, monitor and kill processes
Modify process execution priorities
Search text files using regular expressions
Perform basic file editing operations using vi
4- Devices, Linux Filesystems, Filesystem Hierarchy Standard
Create partitions and filesystems
Maintain the integrity of filesystems
Control mounting and unmounting of filesystems
Manage disk quotas
Manage file permissions and ownership
Create and change hard and symbolic links
Find system files and place files in the correct location
5- Shells, Scripting and Data Management
Customize and use the shell environment
Customize or write simple scripts
SQL data management
6- User Interfaces and Desktops
Install and configure X11
Setup a display manager
Accessibility
7- Administrative Tasks
Manage user and group accounts and related system files
Automate system administration tasks by scheduling jobs
Localisation and internationalisation
8- Essential System Services
Maintain system time
System logging
Mail Transfer Agent (MTA) basics
Manage printers and printing
9- Networking Fundamentals
Basic network configuration
Basic network troubleshooting
Configure client side DNS
10- Security
Perform security administration tasks
Setup host security
Securing data with encryption
برنامه نويسي در شل يکي از مباحث مهم براي کارشناسان لينوکس محسوب مي شود. در این دوره شما با برنامه نویسی در محیط لینوکس آشنا می شوید.
نوشتن اسکریپت ها برای راهبری و اتوماتیک نمودن فعالیتها
دپارتمان لینوکس سعی دارد در طول سه سطح شرکت کنند گان را برای کسب درآمد بالا و موقعیت های کاری مناسب آماده کند، سرفصلهای انتخاب شده و نوع تدریس هماهنگی بسیاری با نیاز بازار فعلی کسب و کار دارد و سعی می شود. این سه سطح به صورت زیر می باشد:
گفتنی است برای تکمیل مباحث، گذراندن دو دوره دیگر زیر نیز پس از دوره لینوکس مقدماتی پیشنهاد می شود: