linux的kernel是怎样工作的(TI_DM36X_ARM系统)(4)
2013-01-09 15:08
295 查看
start_kernel函数的最后调用rest_init函数来创建并启动内核线程
存档
static noinline void __init_refok rest_init(void) { int pid; rcu_scheduler_starting(); /* * We need to spawn init first so that it obtains pid 1, however * the init task will end up wanting to create kthreads, which, if * we schedule it before we create kthreadd, will OOPS. */ kernel_thread(kernel_init, NULL, CLONE_FS | CLONE_SIGHAND); numa_default_policy(); pid = kernel_thread(kthreadd, NULL, CLONE_FS | CLONE_FILES); rcu_read_lock(); kthreadd_task = find_task_by_pid_ns(pid, &init_pid_ns); rcu_read_unlock(); complete(&kthreadd_done); /* * The boot idle thread must execute schedule() * at least once to get things moving: */ init_idle_bootup_task(current); preempt_enable_no_resched(); schedule(); preempt_disable(); /* Call into cpu_idle with preempt disabled */ cpu_idle(); }
存档
相关文章推荐
- linux的kernel是怎样工作的(TI_DM36X_ARM系统)(2)
- linux的kernel是怎样工作的(TI_DM36X_ARM系统)(3)
- TI_DM36X_ARM系统的整个启动过程
- 如何在arm linux kernel(内核)中添加系统调用
- ARM SMP 系统启动linux (转载)---有加上自己的注释
- beaglebone black上使用TI sdk中的linux系统来编写spi驱动
- linux-arm中断系统之GIC
- ARM linux系统调用的实现原理
- Linux系统挂载NTFS分区(无kernel-ntfs对应版本包)
- 这只是个网站关于TI ARM linux移植
- Linux怎样修改系统时间
- 基于ARM Cortex-A8和Android 4.x的联动报警系统 (Android 、A8、Linux、驱动、NDK)
- ARM64 Linux kernel virtual address space
- arm linux kernel 从入口到start_kernel 的代码分析
- ARMlinux kernel 启动之start_kernel (二)
- Arm linux 内核移植及系统初始化过程分析
- 打造前端 Deepin Linux 工作环境——安装系统
- 怎样理解Linux的文件系统
- linux0.11系统调用的执行过程是怎样的?
- ffmpeg+ffserver搭建流媒体服务器 分类: arm-linux-Ubuntu ffmpeg-SDL-VLC-Live555 TI-AM335X 2015-08-04 09:35 6人阅读 评论(0) 收藏