中国民工

顽石-滚过的路总该留下痕迹

导航

  • C++博客
  • 首页
  • 新随笔
  • 联系
  • 聚合
  • 管理
<2019年4月>
日一二三四五六
31123456
78910111213
14151617181920
21222324252627
2829301234
567891011

统计

  • 随笔 - 11
  • 文章 - 0
  • 评论 - 11
  • 引用 - 0

常用链接

  • 我的随笔
  • 我的评论
  • 我参与的随笔

留言簿(4)

  • 给我留言
  • 查看公开留言
  • 查看私人留言

随笔分类

  • Android(1) (rss)
  • C/C++(1) (rss)
  • Linux(1) (rss)
  • MFC(5) (rss)
  • Thread/Process(1) (rss)
  • 软件工程 (rss)

随笔档案

  • 2019年4月 (1)
  • 2012年4月 (3)
  • 2012年3月 (1)
  • 2007年11月 (4)
  • 2007年10月 (1)
  • 2007年8月 (1)

文章分类

  • Android (rss)
  • C++ (rss)
  • MFC (rss)
  • Thread/Process (rss)

相册

  • 1

搜索

  •  

最新评论

  • 1. re: Android环境搭建问题的解决:Failed to fetch URL http://dl-ssl.google.com/android/repository/addons_list-1.xml, reason: Connection to http://dl-ssl.google.com refused[未登录]
  • 评论内容较长,点击标题查看
  • --dd
  • 2. re: Android环境搭建问题的解决:Failed to fetch URL http://dl-ssl.google.com/android/repository/addons_list-1.xml, reason: Connection to http://dl-ssl.google.com refused
  • netstat:怎么知道哪一个是我的代理地址
  • --追问
  • 3. re: Android环境搭建问题的解决:Failed to fetch URL http://dl-ssl.google.com/android/repository/addons_list-1.xml, reason: Connection to http://dl-ssl.google.com refused
  • 1KB也敢出来丢人?
  • --啊
  • 4. re: Android环境搭建问题的解决:Failed to fetch URL http://dl-ssl.google.com/android/repository/addons_list-1.xml, reason: Connection to http://dl-ssl.google.com refused[未登录]
  • 怎么知道哪个地址是想要的呢?
  • --123
  • 5. re: Android环境搭建问题的解决:Failed to fetch URL http://dl-ssl.google.com/android/repository/addons_list-1.xml, reason: Connection to http://dl-ssl.google.com refused
  • 多谢,我只把force https to http 勾上就OK了
  • --jt

阅读排行榜

  • 1. Android环境搭建问题的解决:Failed to fetch URL http://dl-ssl.google.com/android/repository/addons_list-1.xml, reason: Connection to http://dl-ssl.google.com refused(45221)
  • 2. vc中error LNK2001:unresolved external symbol _WinMain@16的解决方法(11756)
  • 3. 带有CheckBox的CListCtrl中Check状态的获取(10950)
  • 4. error C2248: 'CObject::operator =' : cannot access private member declared in class 'CObject'(10496)
  • 5. java 提示找不到或无法加载主类(3279)

评论排行榜

  • 1. Android环境搭建问题的解决:Failed to fetch URL http://dl-ssl.google.com/android/repository/addons_list-1.xml, reason: Connection to http://dl-ssl.google.com refused(11)
  • 2. WARNING: Application does not specify an API level requirement!(0)
  • 3. Linux Kernel Teaching(0)
  • 4. 今日开张(0)
  • 5. 带有CheckBox的CListCtrl中Check状态的获取(0)

Linux Kernel Teaching

对于Linux初学者或者想系统了解Linux的同学,强烈推荐学习这篇教程。
教程来源:https://linux-kernel-labs.github.io/master/
以下是它的目录:
  • Sisteme de operare 2
    • The team
    • Where do we stand?
    • Resources
    • Community
    • Grading
    • Obiectivele cursului
    • Obiectivele laboratorului/temelor
    • Cursuri necesare
    • Despre curs
    • Despre curs (2)
    • Despre laborator
    • Despre teme
    • Despre teme (2)
    • Bibliografie curs
    • Bibliografie laborator
  • Introduction
    • Lecture objectives:
    • Basic operating systems terms and concepts
      • User vs Kernel
      • Typical operating system architecture
      • Monolithic kernel
      • Micro kernel
      • Micro-kernels vs monolithic kernels
      • Address space
      • User and kernel sharing the virtual address space
      • Execution contexts
      • Multi-tasking
      • Preemptive kernel
      • Pageable kernel memory
      • Kernel stack
      • Portability
      • Asymmetric MultiProcessing (ASMP)
      • Symmetric MultiProcessing (SMP)
      • CPU Scalability
    • Overview the of Linux kernel
      • Linux development model
      • Maintainer hierarchy
      • Linux source code layout
      • Linux kernel architecture
        • arch
        • Device drivers
        • Process management
        • Memory management
        • Block I/O management
        • Virtual Filesystem Switch
        • Networking stack
        • Linux Security Modules
  • System Calls
    • Lecture objectives:
    • Linux system calls implementation
      • System call table
      • System call parameters handling
    • Virtual Dynamic Shared Object (VDSO)
    • Accessing user space from system calls
  • Interrupts
    • Lecture objectives
    • What is an interrupt?
      • Exceptions
    • Hardware
      • Programmable Interrupt Controller
      • Advanced Programmable Interrupt Controller
      • Interrupt Descriptor Table
      • Interrupt handler address
      • Stack of interrupt handler
      • Interrupt handler execution
      • Returning from an interrupt
      • Nested interrupts and exceptions
    • Deferrable actions
  • Symmetric Multi-Processing
    • Lecture objectives:
    • Synchronization basics
    • Linux kernel concurrency sources
    • Atomic operations
    • Disabling preemption (interrupts)
    • Spin Locks
    • Cache coherency in multi-processor systems
    • Optimized spin locks
    • Process and Interrupt Context Synchronization
    • Mutexes
    • Per CPU data
    • Memory Ordering and Barriers
    • Read Copy Update (RCU)
  • Debugging
    • Lecture objectives:
    • Decoding an oops/panic
      • Decoding an oops
      • addr2line
      • objdump
      • gdb
      • Kernel panic
    • List debugging
    • Memory debugging
      • DEBUG_SLAB
      • KASAN
      • Comparison between memory debugging tools
      • kmemcheck
      • DEBUG_PAGEALLOC
      • SLUB_DEBUG
    • Kmemleak
    • Lockdep checker
    • Other tools
  • Virtual Machine Setup
    • Starting the VM
    • Connecting to the VM
    • Connecting a debugger to the VM kernel
    • Rebuild the kernel image
  • Exercises
  • Introduction
    • Lab objectives
    • Keywords
    • About this laboratory
    • Documentation
    • Source code navigation
      • cscope
        • Kscope
      • LXR Cross-Reference
      • SourceWeb
    • Debugging
      • gdb (Linux)
      • Getting a stack trace
    • Documentation
    • Exercices
      • Remarks
      • 1. Booting the virtual machine
      • 2. Adding and using a virtual disk
      • 3. GDB and QEMU
      • 4. GDB spelunking
      • 5. Cscope spelunking
  • Kernel modules
    • Lab objectives
    • Overview
    • An example of a kernel module
    • Compiling kernel modules
    • Loading/unloading a kernel module
    • Debugging
      • objdump
      • addr2line
      • minicom
      • netconsole
      • Printk debugging
      • Dynamic debugging
        • Dyndbg Options
    • Exercises
      • 0. Intro
      • 1. Module
      • 2. Printk
      • 3. Error
      • 4. Sub-modules
      • 5. Kernel oops
      • 6. Module parameters
      • 7. Proc info
    • Extra Exercises
      • 1. KDB
      • 2. PS Module
      • 3. Memory Info
      • 4. Dynamic Debugging
      • 5. Dynamic Debugging During Initialization
  • Kernel API
    • Lab objectives
    • Overview
    • Accessing memory
    • Contexts of execution
    • Locking
    • Preemptivity
    • Linux Kernel API
      • Convention indicating errors
      • Strings of characters
      • printk
      • Memory allocation
      • lists
      • Spinlock
      • mutex
      • Atomic variables
        • Use of atomic variables
      • Atomic bitwise operations
    • Exercises
      • 0. Intro
      • 1. Memory allocation in Linux kernel
      • 2. Sleeping in atomic context
      • 3. Working with kernel memory
      • 4. Working with kernel lists
      • 5. Working with kernel lists for process handling
      • 6. Synchronizing list work
      • 7. Test module calling in our list module
  • Character device drivers
    • Laboratory objectives
    • Overview
    • Majors and minors
    • Data structures for a character device
      • struct file_operations
      • inode and file structures
    • Implementation of operations
    • Registration and unregistration of character devices
    • Access to the address space of the process
    • Open and release
    • Read and write
    • ioctl
    • Waiting queues
    • Exercises
      • 0. Intro
      • 1. Register/unregister
      • 2. Register an already registered major
      • 3. Open and close
      • 4. Access restriction
      • 5. Read operation
      • 6. Write operation
      • 7. ioctl operation
  • I/O access and Interrupts
    • Lab objectives
    • Background information
    • Accessing the hardware
      • Request access to I/O ports
      • Accessing I/O ports
      • 5. Accessing I/O ports from userspace
    • Interrupt handling
      • Requesting an interrupt
      • Implementing an interrupt handler
      • Locking
      • Interrupt statistics
    • Further reading
      • Serial Port
      • Parallel port
      • Keyboard controller
      • Linux device drivers
    • Exercises
      • 0. Intro
      • Keyboard driver
      • 1. Request the I/O ports
      • 2. Interrupt handling routine
      • 3. Store ASCII keys to buffer
        • Reading the data register
        • Interpreting the scancode
      • 4. Store characters to the buffer
      • 5. Reset the buffer
  • Deferred work
    • Lab objectives
    • Background information
    • Softirqs
      • Tasklets
      • Timers
      • Locking
      • Workqueues
      • Kernel threads
    • Further reading
    • Exercises
      • 0. Intro
      • 1.Timer
      • 2. Periodic timer
      • 3. Timer control using ioctl
      • 4. Blocking operations
      • 5. Workqueues
      • 6. Kernel thread
      • 7. Buffer shared between timer and process
  • Block Device Drivers
    • Lab objectives
    • Overview
    • Register a block I/O device
    • Register a disk
    • struct gendisk structure
    • struct block_device_operations structure
    • Request queues
      • Create and delete a request queue
      • Useful functions for processing request queues
    • Requests for block devices
      • Create a request
      • Finish a request
      • Process a request
    • struct bio structure
      • Create a struct bio structure
      • Submit a struct bio structure
      • Wait for the completion of a struct bio structure
      • Initialize a struct bio structure
      • How to use the content of a struct bio structure
      • Free a struct bio structure
      • Set up a request queue at struct bio level
    • Further reading
    • Exercises
      • 0. Intro
      • 1. Block device
      • 2. Disk registration
      • 3. RAM disk
      • 4. Read data from the disk
      • 5. Write data to the disk
      • 6. Processing requests from the request queue at struct bio level
  • Memory mapping
    • Lab objectives
    • Overview
    • Structures used for memory mapping
      • struct page
      • struct vm_area_struct
      • struct mm_struct
    • Device driver memory mapping
    • Further reading
    • Exercises
      • 1. Mapping contiguous physical memory to userspace
      • 2. Mapping non-contiguous physical memory to userspace
      • 3. Read / write operations in mapped memory
      • 4. Display memory mapped in procfs
  • Linux Device Model
    • Overview
    • sysfs
    • Basic Structures in Linux Devices
      • The kobject structure
      • Buses
      • Devices
      • Drivers
      • Classes
      • Hotplug
      • Plug and Play
      • PNP bus
      • PNP operations
      • Add driver
    • Exercises
      • 0. Intro
      • 1. Bus implementation
      • 2. Add type and version device attributes
      • 3. Add del and add bus attributes
      • 4. Register the bex misc driver
      • 5. Register misc device in the bex_misc probe function
      • 6. Monitor uevent notifications
Next 

posted on 2019-04-02 07:26 中国民工 阅读(1228) 评论(0)  编辑 收藏 引用 所属分类: Linux


只有注册用户登录后才能发表评论。
【推荐】100%开源!大型工业跨平台软件C++源码提供,建模,组态!
网站导航: 博客园   IT新闻   BlogJava   博问   Chat2DB   管理


Powered by:
C++博客
Copyright © 中国民工