汇编指令与linux系统原理
来源:互联网 发布:重庆外包seo找谁好 编辑:程序博客网 时间:2024/06/05 18:35
汇编指令速查
Delphi 2010 VCL、JCL 源码中用到的汇编指令(只是粗略统计):
转载地址:
http://www.cnblogs.com/del/archive/2010/03/16/1687665.html
Linux在实现move一个文件到另一文件夹时,操作系统内部是怎么实现的?
1.把文件系统中新目录的文件指向更改至该文件的物理地址,删除原目录对该文件的指向。
2.以流方式在新目录中生成该文件,结束后删除原目录下的文件。
到底是以上哪种实现方式?
另外,我在网上也看到有说move时如果是在不同的文件系统之间操作,则系统是使用第二种方式完成move操作的。对这话我也想加问一句,这里的“不同文件系统”是指类似windows下的fat32和ntfs这样的文件系统?
那如果move是在同一文件系统下操作时,操作系统内部到底用上面哪种方式完成的?
如果是同一个文件系统进行mv,操作系统会在产生新的目录块,然后指向原来文件的i节点,然后删除旧的目录块,不会对文件数据进行访问。
Linux系统的shell作为操作系统的外壳,为用户提供使用操作系统的接口。它是命令语言、命令解释程序及程序设计语言的统称。
shell是用户和Linux内核之间的接口程序,如果把Linux内核想象成一个球体的中心,shell就是围绕内核的外层。当从shell或其他程序向Linux传递命令时,内核会做出相应的反应。
shell是一个命令语言解释器,它拥有自己内建的shell命令集,shell也能被系统中其他应用程序所调用。用户在提示符下输入的命令都由shell先解释然后传给Linux核心。
有一些命令,比如改变工作目录命令cd,是包含在shell内部的。还有一些命令,例如拷贝命令cp和移动命令rm,是存在于文件系统中某个目录下的单独的程序。对用户而言,不必关心一个命令是建立在shell内部还是一个单独的程序。
shell首先检查命令是否是内部命令,若不是再检查是否是一个应用程序(这里的应用程序可以是Linux本身的实用程序,如ls和rm,也可以是购买的商业程序,如xv,或者是自由软件,如emacs)。然后shell在搜索路径里寻找这些应用程序(搜索路径就是一个能找到可执行程序的目录列表)。如果键入的命令不是一个内部命令并且在路径里没有找到这个可执行文件,将会显示一条错误信息。如果能够成功找到命令,该内部命令或应用程序将被分解为系统调用并传给Linux内核。
shell的另一个重要特性是它自身就是一个解释型的程序设计语言,shell程序设计语言支持绝大多数在高级语言中能见到的程序元素,如函数、变量、数组和程序控制结构。shell编程语言简单易学,任何在提示符中能键入的命令都能放到一个可执行的shell程序中。
当普通用户成功登录,系统将执行一个称为shell的程序。正是shell进程提供了命令行提示符。作为默认值(TurboLinux系统默认的shell是BASH),对普通用户用“$”作提示符,对超级用户(root)用“#”作提示符。
一旦出现了shell提示符,就可以键入命令名称及命令所需要的参数。shell将执行这些命令。如果一条命令花费了很长的时间来运行,或者在屏幕上产生了大量的输出,可以从键盘上按ctrl+c发出中断信号来中断它(在正常结束之前,中止它的执行)。
当用户准备结束登录对话进程时,可以键入logout命令、exit命令或文件结束符(EOF)(按ctrl+d实现),结束登录。
shell是用户和Linux内核之间的接口程序,如果把Linux内核想象成一个球体的中心,shell就是围绕内核的外层。当从shell或其他程序向Linux传递命令时,内核会做出相应的反应。
shell是一个命令语言解释器,它拥有自己内建的shell命令集,shell也能被系统中其他应用程序所调用。用户在提示符下输入的命令都由shell先解释然后传给Linux核心。
有一些命令,比如改变工作目录命令cd,是包含在shell内部的。还有一些命令,例如拷贝命令cp和移动命令rm,是存在于文件系统中某个目录下的单独的程序。对用户而言,不必关心一个命令是建立在shell内部还是一个单独的程序。
shell首先检查命令是否是内部命令,若不是再检查是否是一个应用程序(这里的应用程序可以是Linux本身的实用程序,如ls和rm,也可以是购买的商业程序,如xv,或者是自由软件,如emacs)。然后shell在搜索路径里寻找这些应用程序(搜索路径就是一个能找到可执行程序的目录列表)。如果键入的命令不是一个内部命令并且在路径里没有找到这个可执行文件,将会显示一条错误信息。如果能够成功找到命令,该内部命令或应用程序将被分解为系统调用并传给Linux内核。
shell的另一个重要特性是它自身就是一个解释型的程序设计语言,shell程序设计语言支持绝大多数在高级语言中能见到的程序元素,如函数、变量、数组和程序控制结构。shell编程语言简单易学,任何在提示符中能键入的命令都能放到一个可执行的shell程序中。
当普通用户成功登录,系统将执行一个称为shell的程序。正是shell进程提供了命令行提示符。作为默认值(TurboLinux系统默认的shell是BASH),对普通用户用“$”作提示符,对超级用户(root)用“#”作提示符。
一旦出现了shell提示符,就可以键入命令名称及命令所需要的参数。shell将执行这些命令。如果一条命令花费了很长的时间来运行,或者在屏幕上产生了大量的输出,可以从键盘上按ctrl+c发出中断信号来中断它(在正常结束之前,中止它的执行)。
当用户准备结束登录对话进程时,可以键入logout命令、exit命令或文件结束符(EOF)(按ctrl+d实现),结束登录。
阅读全文
0 0
- 汇编指令与linux系统原理
- Linux系统的GNU下的ARM汇编指令详解
- linux汇编指令
- Linux 汇编指令集
- 汇编指令与机器码
- 汇编转移指令的原理
- 汇编转移指令jmp原理
- 20120330工作日记——Linux指令与汇编编写
- 【嵌入式Linux+ARM】ARM体系结构与编程(ARM汇编指令)
- Linux系统与指令那些事儿
- 汇编学习-汇编指令与C语言
- 汇编指令与对应的机器指令
- 汇编指令表与花指令大全
- 汇编lea 指令与 mov 指令
- 汇编Lea 指令与 Mov 指令
- 汇编Lea 指令与 Mov 指令
- 汇编Lea 指令与 Mov 指令区别
- 汇编Lea 指令与 Mov 指令
- POST multipart/form-data 上传多个文件
- 书单
- POJ 1177 Picture
- 关于Spring+mybatis+PageHelper分页插件PageHelper的使用策略
- VR游戏公司Playsnak融资250万美元,新作即将发布
- 汇编指令与linux系统原理
- java中的异常
- Spring MVC入门
- 关于Date类型的常见问题及处理方法
- 476. Number Complement
- Oracle数据库分区表
- javaIO(4):Reader,InputStreamReader和FileReader源码分析
- 对于Http的编码统一
- python中的dir()和__dict__