更好的理解Linux计算机系统的趣味问答
各位,大家好:
作为一个新手,我学习Linux的初衷只是觉得与计算机沟通是很有意思的一件事,我不知道这个网站里有多少人像我一样是从完全不懂计算机开始学习的,如果真的有,我觉得我们都会碰到一个问题:计算机世界真的是太大,太复杂了!都说寓教于乐是最好的学习方式,所以为了更好的理解这个“完全基于人类的理性被人‘设计’出来的系统” 。我用下面这个生活中具体的实例提出这个问题,希望走过、路过的各位,能基于自己对计算机系统的理解,来给出回答。也欢迎像我一样的新手提出自己的疑问。
当然,化繁为简也是一个考验各位能力的指标啊。哈
“去银行取钱” 这一行为我可以这么理解吗:
大脑相当于一个shell,而银行相当于一个kernel,大脑给出“去银行取钱”的命令(jobs),人走到银行里(这一过程也应该是相当复杂的,有人想要给解释一下吗?)。由于银行是多任务的,同时有很多大脑(shell),也有很多其他取钱的(jobs),当然也有办理其他业务的(other jobs)。
银行(kernel)为了能让工作顺利有充的进行,把工作分类,然后采取了排号的方法(这个过程是否可以理解成把jobs分成很多process,然后给每个process分配一个PID),叫到号的到指定的窗口(?)办理业务。
“取钱”这个行为对于银行(kernel)来说是一样的,不同的只是取钱的人(拥有取钱这一行为的人)(user)和取的数量(输出结果?)。因此银行(kernel)怎么来对应“取钱”这一行为和拥用“取钱”这一行为的人的关系呢?(否则大家就可以随便取别人的钱了,共产主义就实现了)。对于银行来说比较简单,用身份证和密码就可以了(ATM话不用身份证也可以)。但对于计算机来说,怎么区分呢?
我的理解是给“取钱”这一行为(jobs)加上权限(permission),这就应该可以理解为密码吗?对于group(朋友)和others(诡异)来说,如果想让他们可以“取钱”的话,也可以给他们设置权限(把密码告诉他们)。
那setuid和setgid是不是可以理解为:我把银行卡和写有密码的纸放到的银行大厅的地上,谁都可以来取?
以上这一过程表面看是没有问题的,但我总感觉哪里不对!
下面比较有意思,如果这时有一个抢劫的闯入了银行(virus),他手里的枪是否可以理解为root的密码,可以威胁到所有的人。哈
各位对以上我的理解不知道有没有什么看法?
也欢迎各位对这一“取钱”活动填加各位认为有必要填加的环节,就像讲故事一样,不知道论坛里有没有相对应的版块可能提起这样类似的活动?
不管怎么样,谢谢各位花了这么长时间看这个。
谢谢!