linux-0.01

(2013-12-31 22:45:54)

转载
标签:

linux

kernel

 
Linux内核始于0.0.1, 代码行数分布如下:

wc -l `find -type f` | sort -n | nl  (序号 文件行数文件名)

1         1 ./lib/errno.c
     2         3 ./fs/file_table.c
     3         4 ./lib/close.c
     4         4 ./lib/dup.c
     5         4 ./lib/execve.c
     6         4 ./lib/setsid.c
     7         4 ./lib/write.c
     8         7 ./lib/_exit.c
     9         8 ./include/linux/kernel.h
    10         8 ./lib/string.c
    11        10 ./include/linux/mm.h
    12        10 ./lib/wait.c
    13        11 ./kernel/panic.c
    14        13 ./include/utime.h
    15        14 ./include/asm/memory.h
    16        15 ./include/const.h
    17        15 ./include/sys/times.h
    18        16 ./include/sys/utsname.h
    19        19 ./include/stddef.h
    20        19 ./lib/open.c
    21        20 ./include/linux/head.h
    22        23 ./include/sys/wait.h
    23        24 ./include/asm/io.h
    24        28 ./include/stdarg.h
    25        29 ./lib/ctype.c
    26        33 ./kernel/printk.c
    27        34 ./include/ctype.h
    28        34 ./mm/page.s
    29        37 ./mm/Makefile
    30        38 ./include/asm/segment.h
    31        40 ./fs/ioctl.c
    32        42 ./include/time.h
    33        44 ./lib/Makefile
    34        46 ./include/sys/types.h
    35        50 ./fs/char_dev.c
    36        51 ./fs/stat.c
    37        52 ./kernel/mktime.c
    38        53 ./include/linux/config.h
    39        53 ./kernel/serial.c
    40        55 ./include/fcntl.h
    41        58 ./include/sys/stat.h
    42        59 ./fs/truncate.c
    43        60 ./include/errno.h
    44        65 ./include/signal.h
    45        66 ./include/asm/system.h
    46        68 ./tools/build.c
    47        69 ./fs/fcntl.c
    48        74 ./include/linux/tty.h
    49        80 ./include/linux/sys.h
    50        84 ./fs/file_dev.c
    51        86 ./fs/block_dev.c
    52        90 ./kernel/Makefile
    53        92 ./fs/pipe.c
    54        95 ./fs/Makefile
    55        96 ./Makefile
    56        97 ./fs/read_write.c
    57        99 ./include/linux/hdreg.h
    58       102 ./fs/super.c
    59       135 ./kernel/exit.c
    60       136 ./kernel/fork.c
    61       141 ./kernel/rs_io.s
    62       147 ./init/main.c
    63       157 ./kernel/asm.s
    64       158 ./fs/bitmap.c
    65       166 ./fs/tty_ioctl.c
    66       175 ./boot/head.s
    67       185 ./include/linux/fs.h
    68       188 ./fs/open.c
    69       199 ./kernel/traps.c
    70       216 ./kernel/sys.c
    71       219 ./kernel/system_call.s
    72       220 ./include/a.out.h
    73       222 ./include/termios.h
    74       227 ./kernel/vsprintf.c
    75       230 ./include/linux/sched.h
    76       247 ./include/unistd.h
    77       254 ./fs/buffer.c
    78       254 ./kernel/sched.c
    79       264 ./mm/memory.c
    80       288 ./fs/inode.c
    81       306 ./fs/exec.c
    82       306 ./kernel/tty_io.c
    83       329 ./boot/boot.s
    84       405 ./include/string.h
    85       409 ./kernel/keyboard.s
    86       413 ./kernel/hd.c
    87       550 ./kernel/console.c
    88       678 ./fs/namei.c

10239 总用量

共88个文件, 10239行代码. 最大的文件namei.c也只有678行代码, 但这些可以组成一个正常运行的系统, 正所谓麻雀虽小, 五脏俱全.

系统的构建由96行的Makefile决定, 可以看到系统由boot, system, 和build tool 三部分组成.

boot 部分位于boot/boot.s, 从Makefile看出它由as86编译, ld86链接. 鉴于as86编译器的使
用普遍性较差, 可以考虑将代码稍作修改使其用nasm编译.
主要的改动如下:
1. 常量定义: a=b 换为 a equ b.
2. 注释: 由 "|" 换为 ";"
3. 段名: 由.text 改为 SECTION .text, 注释掉.data, .bss等暂且不用的段.
4. jmpi指令: 换为 jmp SEG:OFFSET 格式.
5. .word换为dw, .byte换为db, .string换为.db
6. inc xxx 换为 inc word [xxx]
7. lidt xxx, lgdt xxx 换为 lidt [xxx], lgdt [xxx]
8. mov mem,reg 换为 mov [mem],reg

然后用nasm -f bin boot/boot.s编译生成bin文件即可.

boot部分行使boot loader的功能, 从软盘装载system部分到内存0x10000, 然后再拷贝到0x00000000, 初始化为保护
模式, 跳转到system部分执行.

System部分由boot/head.s和所有其他部分组成. head.s被loader移动到物理地址0, 然后初始化页表, 1:1影射前8MB内存, 设置中断向量表, 启动分页机制, 然后跳转到main().

Paging:

pgdir:  phy 0x00000000, 4K length
pg0:    phy 0x00001000, 4K length
pg1:    phy 0x00002000, 4K lenght

only 8MB mapped, 3 pages used, addr: 800000

pgdir[0]=0x00001007 (present, rw, user)
pgdir[1]=0x00002007 (present, rw, user)

pg1[1023]=0x7ff000   (Last 4K)
pg1[1022]=0x7fe000  
....
pg0[0]   =0x000000   (first 4K)

补丁如下 (base64->tar.xz->patch)

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

补丁2:

/Td6WFoAAATm1rRGAgAhARYAAAB0L+Wj4Cf/A7hdADELiIbT19MqZQolIwjLpRiPutAOgiyFZ2qT
ImmeMzrM+j7gdkO71MerzlMBnE1P1jggdXI1n34y3vEp4YMUOm+UpQdEj8H9xSQfon54qHHjYPqc
q1moMZOk7pUcv+ih3rDdXyVGeMVXJZMkJCJNLrCssxPgcmypUKGTXK3rZvrN2ACjVl1c0GTMsCaO
vTrbeef43Pp7FDGpm0x+PiCPmxyyPPoaegl8yj5zTRQU5gnoXCT6N8afmBZM+f48Jvdi1HWrSofB
U+Mv1F44KJ1Z8t9uqZ+h64abEJH7a9ATG2kNQ8IR2dxmpxbOceB+P7eqqT+gf58Y5wiG7n8iPiRc
AxKhTzE7ECRZf9ISey16YTVa0AayhZ7NUUWCLeb9xEcPQ9zc79u8fXduFQYvmjBk3G5L6r519qX+
v1YjicWMz6hQ6+UmxK2bNYwKmDd8eB81yQKdHADHoUMRFKcBU5UCZSwpvdonI9nQd+CjjIX/Cv2z
3cmwJp3OuYxyhRR/mPJgGZzWh4w9eBcHyHTOU45He2KmXX18hd8GkwQ91KqupI+gxq8zpTwvFwyY
ZLTS1afrHT7F59oBy3a1oemSG8Gy3WLLypSlOLNhuNWZ0VilGusKkPzYmQY/Yqnw9Z+OMj1u+maJ
OZhPAjfJMu4EGb1h8Q70cqxOP8fP6nJzvfqjPbIi7Bvd2PKYjPrOVV/kb6YlNZW/p/Eivvbm1LQ+
WIh7zQ8tzYD1Vuyb0hfeR1ZKxbjE/EEzqJe7CLIxeJzyUpIFHo287Hf2efS2GwCKBaGdEh/YHdhu
myrpNXJx6oNxbyH2ZcPSbd8yeo4ktzbWRthKeNCGN9wLrGnV+2ODLC8OhdXJh1xiPwX99OXRqrc4
aZ1dA4wPADStCNsVsYlwdu0q3YZD/bdQB07r6dh2dwly8T1wnA/elozk4Z2RbGii9t7nGwxMmrVv
gxemPfRqIx+O94GsLlfUQ6WKCTTPyEf2VVzMzPl8uDXkiAPsJcBclZnogt/FueWOX26LCNEs8ITb
80fJxDWSqytKOTGHHgpDx+2ROJ7TQUQYQ/koeR22QfhgOjBBaauLMfJE/QGJ8KjJSFWR8HZhFETO
8vWQoTDGof3Rs4lj0cN+W+K59leg32jwUDzaVmItJTO8jTXebdXMkeT7iRQXiqPaCcZQ81+WKtp+
daCfSVAwUsHZ5dUpxSJE3lMuY5aQyZ+RR9wBppgvdooj5vJp8yJJUoWlv59JtynpD5youmQqifJC
YMYgp5mY2BigINtAcQAA/up9J+DiWg4AAdQHgFAAAH/OP3mxxGf7AgAAAAAEWVo=

-----------------------
PATCH 03
-----------------------

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
pSIjDUgAAd8NgFAAAB0mSFmxxGf7AgAAAAAEWVo=

分享:

0

喜欢

linux 0.0.1相关推荐

  1. Linux(centos6.0)下安装Node.js以及使用

    Linux下(centos6.0)安装Node.js 1.wget http://nodejs.org/dist/node-v0.6.9.tar.gz     tar  zxvf node-v0.6. ...

  2. nero linux iso,NeroLINUX下载_NeroLINUX官方下载_NeroLINUX4.0.0.0-华军软件园

    Nero Linux 3是Linux 操作系统上权威的刻录应用程序.采用业界领先的Nero Burning ROM引擎,Nero Linux 3成为Linux上最强大而多功能的刻录软件,而且也是唯一一 ...

  3. RedHat Enterprise Linux 5.0之LVM逻辑卷管理

    有关LVM的文章很多,小弟我竭尽全力的把LVM的流程化实验演示出来,还请高手指点 实验环境 1.RedHat Enterprise Linux 5.0 2.四块磁盘/dev/sdb----/dev/s ...

  4. linux 9.0挂载驱动

    下面以linux 9.0为例,挂技嘉 G41M-S2H,网卡是8110SC的,在网上找了一下,适合r1000_v1.07这种的驱动. mount   -t  vfat   /dev/sda1  /mn ...

  5. RED HAT LINUX 9.0的安装文本模式(2)

    boot: Chinese(Simplified) 接下来是RED HAT LINUX 9.0文本模式的安装,其实图形界面和文本界面的安装过程是一样的,不一样是模式不同. 本文转自 chen138 5 ...

  6. 红帽子RedHat Linux 9.0安装图解(图)

    RedHat Linux是目前世界上使用最多的Linux操作系统.因为它具备最好的图形界面,无论是安装.配置还是使用都十分方便,而且运行稳定,因此不论是新手还是老玩家都对它有很高的评价.现在,RedH ...

  7. 在Linux上编译LLVM/Clang 8.0.0等全部源代码

    2019独角兽企业重金招聘Python工程师标准>>> 本教程使用的操作系统是Ubuntu Linux 18.04.2 LTS版本,编译器是GCC 6.5.0(不用新版的原因是某些代 ...

  8. Linux redis安装教程,Linux 下redis5.0.0安装教程详解

    Linux redis5.0.0安装,教程如下所示: 1.从官网下载,然后传到服务器,tar -zxvf解压 2.进入redis ? 3.安装:make, (1)若提示:: gcc: Command ...

  9. turbolinux mysql 5.0 cluste,Debian -- 新聞 -- Debian GNU/Linux 5.0 發布

    Debian GNU/Linux 5.0 發布 2009年02月14日 Debian 計劃高興地宣佈,經過 22 個月的不斷開發下, Debian GNU/Linux 5.0 版(代號Lenny)正式 ...

  10. linux usb3.0改2.0,TX1入门教程硬件篇-切换USB2.0与USB3.0

    TX1入门教程硬件篇-切换USB2.0与USB3.0 说明: 介绍如何切换TX1USB口的为2.0或3.0版本 步骤: 编辑extlinux.conf文件,修改usb_port_owner_info= ...

最新文章

  1. 在el-table中使用el-popover,没法点击确定或取消来关闭
  2. 为啥不能用uuid做MySQL的主键!?
  3. java sql 参数_java jdbc连接数据库,Properties 属性设置参数方法
  4. 14寸笔记本电脑_纯小白预算5000到6000有什么好的笔记本电脑推荐吗?
  5. Android阅读手札:第一行代码(第一章)
  6. 2012写给自己的年度总结
  7. 【附源码】计算机毕业设计java业俊宾馆客房管理系统设计与实现
  8. Snapchat如何突出重围?
  9. 七夕,眼光长远点,聊点孩子的事?
  10. 语音处理工具:sox
  11. 基于单片机的电机转速测量设计
  12. 程序猿生存指南-11 入职朗云
  13. ubuntu下制作window启动盘(官方)
  14. 小程序毕设作品之微信疫苗预约小程序毕业设计(7)中期检查报告
  15. iOS开发-常用第三方开源框架介绍(你了解的ios只是冰山一角)--(转)
  16. 如何将vectror<char>转换成string(C++)
  17. L01n matlab,matlab常用语法
  18. 利用计算机专业送礼物,送计算机教师的礼物(搞计算机的送的礼物)
  19. uni-app VLC多媒体播放器、支持rtsp、rtmp、mms、ftp、udp/rtp等等大多数格式、截图、录制、速率、快进、倒退、音量、视频缩放、视频纵横比、音轨、亮度、全屏
  20. 使用 Iris 打造一款个人博客(视图路由篇)

热门文章

  1. 2020年11月连云港计算机考试,连云港2020年中级经济师考试时间及考试科目
  2. SimpleDateFormat 中的yyyy-MM-dd HH:mm:ss.SSS说明
  3. 如何批量删除Excel空行
  4. PHP个人发卡网源码支持当面付/码支付/易支付+免签即时到账全解密
  5. sim7600ce 拨号上网测试_sim7600ce拨号上网
  6. EDA硬件描述语言VHDL(一)
  7. NF5280M4 安装 Win2016 的方法
  8. 百度seo,时间因子有用吗?
  9. github_根据文件内容/文件名搜索文件
  10. linux 脚本编写基本命令,Linux Shell命令行及脚本编程实例详解