????????????CUSEC?????????????????????μ??????£??????????????
?????????????????ο?????????????????????????????????????????????????????????????????????????????Linux???????б??????????????????????д???Linux???????????????????
??????Щ????????????????С??????????????о????Щ???е?????????????й????????Linux??????????????????﹤??????????????????????????ò??????????????????Щ??????????
???????????????????????????????ЩC???????????????????????????????д?ЩС??C????????????????Σ??????Щ??????ò??????
?????????????д????????????
????????????????????μ????????????????????????rustboot???????????????????????????????????????????Щ???????飬??????????????????????????????????????????????ж?????????
????MikeOS??????????????????????????????????б?????ú?????——????????????????????????????????????????????????????????
????????????????????????????????????????????qemu??OSDev wiki??????????????????——?????к????????????????????
??????????????дд?Щ?????飡
???????????????????Linux????????д?Щ??????????????????????????????????????
???????????????????“Hello?? hacker school!”???????????????????????18?д?????????????????д???init????????cleanup???????????????????__init??_exit????????????????Щ???????????????????
??????д?????????????????????????????????????????????????????????????????????????????????????????????????????ЩKernel Newbies?????????????????ù????????????????????????????????????????????????д?????????м???????????????????????????kernel-module-fun?????
?????????????μ????Linux???????
????Linux???????????GNOME????????????????????????????????????????????????ζ?????????????????????????????????????????????????????????????????????κε???飬???????Щ????5000?????????Kernel Newbies???й???????????
?????????????????????????????????——???????????????????????????????????Sarah Sharp?????Linux???????????????Э??????????????????????????????????????????????????£???????????????137????????????????????????????????Щ?????????????????????????????
?????????????????????????????Google Summer of Code????????????????????仰???????????????????У?
????????????????????
???????????????????????——“??????????????ι??????????????????”
???????????????????????????????????????ж???????????????????????????е??????????????????????????????????????“??????????е?Linux??????????????????”
???????????Dave??????????????LXR????????????????????????????????????????????????????????磬???????????chmod??????????????????????the chmod_common definition??濴???й???????Linux????????壡
?????????????chmod_common???????????????Щ??д??????

 

static int chmod_common(struct path *path?? umode_t mode)
{
struct inode *inode = path->dentry->d_inode;
struct iattr newattrs;
int error;
// ??????????????
error = mnt_want_write(path->mnt);
if (error)
return error;
// ?????????????????????!=D
mutex_lock(&inode->i_mutex);
// ???????????????????chmod
error = security_path_chmod(path?? mode);
if (error)
goto out_unlock;
// ???????????mode???
newattrs.ia_mode = (mode & S_IALLUGO) | (inode->i_mode & ~IALLUGO);
newattrs.ia_valid = ATTR_MODE | ATTR_CTIME;
error = notify_change(path->dentry?? &newattrs);
out_unlock:
mutex_unlock(&inode->i_mutex); // ?????????????
mnt_drop_write(path->mnt); // ???
return error;
}