Linux内核
星星浩然
本人理工男,计算机科学技术专业,主要研究图像识别、机器学习方面。从事电信相关行业,个人喜欢阅读、历史、投资、IT技术。
请各位朋友多加关照!欢迎扫描头像二维码关注微信订阅号(或微信搜索“星星浩然”)。
展开
-
[Linux内核设计与实现]Linux内核编译
今天编译安装了Linux 2.6.34.13版本的内核(此前内核版本是2.6.32.5)。由于采用了原来系统的配置项,所以配置时比较省事。新内核启动运行之后,目前声卡,网卡等都工作正常。 编译安装Linux 2.6.34.13版本的内核过程如下: 1、下载内核 http://www.kernel.org/pub/linux/kernel/v2.6/longterm/v2.6.34/l原创 2012-12-16 11:56:01 · 952 阅读 · 0 评论 -
[Linux内核设计与实现]Linux内核简介
<!-- @page {margin:0.79in} p {margin-bottom:0.08in} --> 1969年,Dennis Ritchie和Ken Thompsond等人发布Unix系统,它是从贝尔实验室一个失败的多用户操作系统Multics发展而来。1979年起加州大学伯克利分校开始推出Berkeley Software Distribution原创 2012-12-14 21:34:43 · 1011 阅读 · 0 评论 -
[Linux内核设计与实现]Linux内核开发特点
Linux内核开发特点: 内核编程时不能访问标准C库;内核编程时必须使用GNU C;内核编程时缺乏像用户空间那样的内存保护机制;内核编程时浮点数很难使用;内核只有一个很小的定长堆栈;由于内核支持异步中断,抢占和SMP,因此必须时刻注意同步和并发控制;内核编程要考虑可移植性。 没有libc库 与用户空间的应用程序不同,内核不能链接使用标准C函数库,其他函数库也不能使用。对于内核来说,完整的原创 2012-12-16 18:58:18 · 838 阅读 · 0 评论 -
Linux设备驱动开发之hello, world
Linux内核编译 一文中介绍了Linux 2.6内核的编译与安装工作,今天介绍一下Linux设备驱动开发的hello, world程序。 进行Linux设备驱动开发必须准备好Linux内核编译环境,设备驱动程序依赖于这个环境。 下面是一个完整的hello, world驱动程序。 #include #include static int __init hello_init(vo原创 2013-01-02 19:31:52 · 1930 阅读 · 0 评论 -
[Linux内核设计与实现]Linux进程调度
进程调度可以看作在可运行态进程之间分配有限处理器时间资源的内核子系统。最大限度利用处理器时间的原则是,只要有可以执行的进程,那么总会有进程在运行。但是,只要系统中可运行状态的进程数量大于处理器个数,就会有进程不能运行,这些进程在等待运行。在一组处于可运行状态的进程中选择一个来执行,是调度程序所需要完成的基本任务。多任务系统可以分为两类:非抢占式多任务(cooperative multitaskin原创 2013-01-01 13:41:47 · 1292 阅读 · 0 评论 -
[Linux内核设计与实现]Linux系统调用
系统调用在用户空间与硬件设备之间添加一个中间层。该中间层主要作用有三个。第一,它为用户空间提供了一种硬件的抽象接口。第二,系统调用保证了系统的稳定和安全。第三,每个进程都运行在虚拟的系统中,而在用户空间和系统的其余部分提供这样一层公共接口,也是处于这种考虑。在Linux世界中,系统调用是用户空间访问内核的惟一手段;除异常和陷入外,它们是内核惟一的合法入口。x86系统上,Linux系统大约有250个原创 2013-01-01 18:45:53 · 1285 阅读 · 2 评论 -
[Linux内核设计与实现]Linux进程管理
进程描述符及任务结构 进程是Unix操作系统最基本的抽象之一(另一个抽象是文件)。进程是正在执行的程序代码的活标本,不但包括正在执行的代码还包括其他资源。比如打开的文件、挂起的信号、内核内部数据、处理器状态、地址空间及一个或者多个执行线程(thread of executing)、存放全局变量的数据段等。执行线程简称线程,是在进程中活动的对象。Linux线程是一种特殊的进程(共享资源原创 2012-12-24 23:19:48 · 1694 阅读 · 0 评论