一直以来都认为精通linux是大牛的基本功,但是自己却总是懒于去认真的学习,只想不做假把式,现在的工作就是完全基于linux,感觉很是吃力。幸好,我没有很强的自觉性,却有很强的适应力和抗压力。既然工作就是这个,那我就拼力学就是,呵呵,现在把这几天的心得留下,最好以后别忘,但就是忘记了也能找到记忆
首先,linux是一个真正的多任务多用户的操作系统,允许多个用户同时登录操作,甚至同一个用户也能同时多次登录,互相之间并不影响。但是作为一个稳定的操作系统,必须保护唯一的内核能够不受冲突的正常工作。于是就有了内核态与用户态这样两个概念,简单的说,就是内核和用户分别占用不同的内存空间独立工作,互不干扰。如果用户需要进行底层操作,则必须向内核发出请求,等内核接受了才由内核接过任务,执行完毕后,返回结果。
这里一个很重要的地方是用户态和内核态的通讯,网上看到大概有九种方式。目前了解的只有一种:netlink。首先由kernel_netlink_create()创建,kernel中响应用户态请求的程序以module形式存在,在Makefile中要增加编译module的语句,然后通过insmod把module安装上,这样module才可以正常使用。在用户态中可以做循环等待,条件满足的时候用socket()把消息打包,然后发送给内核态,内核态接受消息后就运行module。这样就实现了用户态和内核态的通讯。
关于linux学习的一点心得关于linux学习的一点心得关于linux学习的一点心得关于linux学习的一点心得关于linux学习的一点心得关于linux学习的一点心得关于linux学习的一点心得关于linux学习的一点心得关于linux学习的一点心得关于linux学习的一点心得
阅读(194) | 评论(0) | 转发(0) |