sda问题

unbutun 2009-11-02 08:10:08
想知道sda的命名是在哪里做的,还有就是/dev这个目录是在哪里建的,源文件是哪个?
...全文
265 16 打赏 收藏 转发到动态 举报
写回复
用AI写文章
16 条回复
切换为时间正序
请发表友善的回复…
发表回复
zkuang82 2009-11-06
  • 打赏
  • 举报
回复
[Quote=引用 12 楼 unbutun 的回复:]
引用 11 楼 elfirex 的回复:
引用 6 楼 unbutun 的回复:
引用 5 楼 elfirex 的回复:
2.6之后的Linux /dev下的文件由udev负责创建。内核通过/sys下的文件到处设备相关的信息,udev运行在用户空间,它会通过netlink收到内核新增设备的通知,然后在/sys中查找相关信息,调用mknod来创建设备文件。2.4的udev支持似乎是可选的,如果没有,那么/dev下的文件是预先建好的。


我看了一下udev 0.1 好像没有你说的什么netlink等东西,还有地方不明白,他在代码里是先通过open /dev下的设备后才mknod,而且我也没看到建/dev这个目录的东西,不知道这块谁明白,来说说?


有阿:
grep -r "NETLINK_KOBJECT_UEVENT" *
ChangeLog:  #define NETLINK_KOBJECT_UEVENT
libudev/libudev-monitor.c: udev_monitor->sock = socket(PF_NETLINK, SOCK_DGRAM, NETLINK_KOBJECT_UEVENT);
libudev/libudev-monitor.c: dbg(udev, "monitor %p created with NETLINK_KOBJECT_UEVENT (%u)\n", udev_monitor, group);

不过我的版本是146



那可能是版本的事。
[/Quote]

Warning....
旧的方式不一定会有netlink喔,很早很早以前,(开始讲故事了),Hotplug需要的变量是通过环境变量的方式传递的(现在似乎Netlink里面都有),当时通过调用一个hotplug的脚本,脚本通过环境变量得知设备所属子系统,然后调用各个子系统的helper。最终达成目的。
所以久版本的确可能没有netlink。
steptodream 2009-11-06
  • 打赏
  • 举报
回复
/dev/ 下面不都是设备文件吗
难道楼主在看内核 上网搜搜就会有吧
zkuang82 2009-11-06
  • 打赏
  • 举报
回复
[Quote=引用 15 楼 unbutun 的回复:]
我想知道/dev这个目录是在哪里被创建的,源码位置,像sysfs在内核fs下就有源码的
[/Quote]

不能很确定地回答这个问题。个人认为只是一个普通目录,没有必要在内核特别留代码来处理。
ls为什么会认为它有什么特别之处呢?普通一个目录不可以吗?

像/proc /sys这些目录,是为了用户空间和内核空间可以进行交流而创建的。但对于设备,用VFS的整套机制就能工作的很好。不需要另外再多加代码吧。
unbutun 2009-11-06
  • 打赏
  • 举报
回复
我想知道/dev这个目录是在哪里被创建的,源码位置,像sysfs在内核fs下就有源码的
unbutun 2009-11-05
  • 打赏
  • 举报
回复
[Quote=引用 11 楼 elfirex 的回复:]
引用 6 楼 unbutun 的回复:
引用 5 楼 elfirex 的回复:
2.6之后的Linux /dev下的文件由udev负责创建。内核通过/sys下的文件到处设备相关的信息,udev运行在用户空间,它会通过netlink收到内核新增设备的通知,然后在/sys中查找相关信息,调用mknod来创建设备文件。2.4的udev支持似乎是可选的,如果没有,那么/dev下的文件是预先建好的。


我看了一下udev 0.1 好像没有你说的什么netlink等东西,还有地方不明白,他在代码里是先通过open /dev下的设备后才mknod,而且我也没看到建/dev这个目录的东西,不知道这块谁明白,来说说?




有阿:
grep -r "NETLINK_KOBJECT_UEVENT" *
ChangeLog:  #define NETLINK_KOBJECT_UEVENT
libudev/libudev-monitor.c: udev_monitor->sock = socket(PF_NETLINK, SOCK_DGRAM, NETLINK_KOBJECT_UEVENT);
libudev/libudev-monitor.c: dbg(udev, "monitor %p created with NETLINK_KOBJECT_UEVENT (%u)\n", udev_monitor, group);

不过我的版本是146
[/Quote]


那可能是版本的事。
zkuang82 2009-11-05
  • 打赏
  • 举报
回复
[Quote=引用 6 楼 unbutun 的回复:]
引用 5 楼 elfirex 的回复:
2.6之后的Linux /dev下的文件由udev负责创建。内核通过/sys下的文件到处设备相关的信息,udev运行在用户空间,它会通过netlink收到内核新增设备的通知,然后在/sys中查找相关信息,调用mknod来创建设备文件。2.4的udev支持似乎是可选的,如果没有,那么/dev下的文件是预先建好的。


我看了一下udev 0.1 好像没有你说的什么netlink等东西,还有地方不明白,他在代码里是先通过open /dev下的设备后才mknod,而且我也没看到建/dev这个目录的东西,不知道这块谁明白,来说说?

[/Quote]


有阿:
grep -r "NETLINK_KOBJECT_UEVENT" *
ChangeLog: #define NETLINK_KOBJECT_UEVENT
libudev/libudev-monitor.c: udev_monitor->sock = socket(PF_NETLINK, SOCK_DGRAM, NETLINK_KOBJECT_UEVENT);
libudev/libudev-monitor.c: dbg(udev, "monitor %p created with NETLINK_KOBJECT_UEVENT (%u)\n", udev_monitor, group);

不过我的版本是146
zkuang82 2009-11-05
  • 打赏
  • 举报
回复
http://thread.gmane.org/gmane.linux.kernel/556485
文档似乎还没真正放出来,但已经在讨论了。这里说了sysfs + hotplug怎么替换掉devfs的,还有netlink跟uevent。
unbutun 2009-11-04
  • 打赏
  • 举报
回复
[Quote=引用 8 楼 abc00000001 的回复:]
想知道sda的命名是在哪里做的,
------------------
scsi 驱动架构中做的

还有就是/dev这个目录是在哪里建的,源文件是哪个?
----------
在文件系统中先 mkdir /dev/,再 mknod
或建好 /dev/之后,在 /etc/fstab 中 mount 设备文件系统到 /dev/

[/Quote]


哥们,第二条, 难道/dev是自己建的吗,我感觉是个虚拟的,应该是程序中写的?
abc00000001 2009-11-04
  • 打赏
  • 举报
回复
想知道sda的命名是在哪里做的,
------------------
scsi 驱动架构中做的

还有就是/dev这个目录是在哪里建的,源文件是哪个?
----------
在文件系统中先 mkdir /dev/,再 mknod
或建好 /dev/之后,在 /etc/fstab 中 mount 设备文件系统到 /dev/
zkuang82 2009-11-03
  • 打赏
  • 举报
回复
2.6之后的Linux /dev下的文件由udev负责创建。内核通过/sys下的文件到处设备相关的信息,udev运行在用户空间,它会通过netlink收到内核新增设备的通知,然后在/sys中查找相关信息,调用mknod来创建设备文件。2.4的udev支持似乎是可选的,如果没有,那么/dev下的文件是预先建好的。
sanitizer 2009-11-03
  • 打赏
  • 举报
回复
/dev应该是内存在文件系统的一个映像
你要搞清楚这个过程,可以到/etc下跟踪启动脚本,认真看
或者找本linux内核的书来看
我也不是太懂
hefuhua 2009-11-03
  • 打赏
  • 举报
回复
Linux From Scratch有篇文章不错,我以前是从这个里入手的

LFS 系统的设备和模块处理
http://www.svn8.com/shouce/Linux/LFS-6.2/chapter07/udev.html

unbutun 2009-11-03
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 elfirex 的回复:]
2.6之后的Linux /dev下的文件由udev负责创建。内核通过/sys下的文件到处设备相关的信息,udev运行在用户空间,它会通过netlink收到内核新增设备的通知,然后在/sys中查找相关信息,调用mknod来创建设备文件。2.4的udev支持似乎是可选的,如果没有,那么/dev下的文件是预先建好的。
[/Quote]

我看了一下udev 0.1 好像没有你说的什么netlink等东西,还有地方不明白,他在代码里是先通过open /dev下的设备后才mknod,而且我也没看到建/dev这个目录的东西,不知道这块谁明白,来说说?

jxtx0517 2009-11-03
  • 打赏
  • 举报
回复
sda 是你linux安装的第一块Sica硬盘,将它分的区就是sda1,sda2。。。。。
sdb
sdc
这样下去的就是你挂的第二块,第三块硬盘。
xiaocai0001 2009-11-02
  • 打赏
  • 举报
回复
是在问Linux内核源代码么?
wxdcxp 2009-11-02
  • 打赏
  • 举报
回复
不明白楼主问的是什么啊

4,438

社区成员

发帖
与我相关
我的任务
社区描述
Linux/Unix社区 内核源代码研究区
社区管理员
  • 内核源代码研究区社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧