do_fork和jk98wkk05g110两位进来讨论一下

独孤过儿 2009-11-06 11:04:59
看两位吵了好几天了,而且还有那么多花粉在声嘶力竭的呐喊助威,俺也跟着凑个热闹,请教两个问题

to do_fork:

能用任何一门脚本语言给我实现下面几个问题吗?数据结构和算法什么的,随便用

1、实模式到保护模式的跳转

2、任务切换时候的处理代码

3、8253或8259可编程逻辑控制器的终端处理代码

to jk98wkk05g110:

诺基亚的Symbian OS是C++写的。虽然经过了nokia的定制,但无论怎么说,它也叫C++...

你能再找出来几个C++写的OS内核吗?

因为此贴纯是灌水,故不放技术区了,有兴趣的可以跟贴助威。只要不人身攻击,问候父母祖辈,可以随便掐
...全文
519 72 打赏 收藏 转发到动态 举报
写回复
用AI写文章
72 条回复
切换为时间正序
请发表友善的回复…
发表回复
CCCCCCCCCCCCCCC 2009-12-24
  • 打赏
  • 举报
回复
还有一点,边边角角的专利都给申请的差不多了,完全绕过这些专利另起炉灶又是不可能的事情,龙芯就是一个例子...
[Quote=引用 9 楼 xingzhe2001 的回复:]
大家还是来讨论一下为什么我国不能编出成功的PC操作系统呢?

我的观点是,关键不是技术门槛,而是市场和技术环境

1.现代操作系统没有国内公司有动机有市场有资金有能力组织几千人开发一个赔钱的操作系统
2.即使国家投资,没有统一的指挥很紧密地协调,也做不出来
3.即使以上两点没问题,由于一个能用的操作系统需要大量的硬件驱动支持,而windows和linux,mac等PC 操作系统由于历史和规模原因,得到大量硬件厂商的支持,帮助其写驱动程序。而我们自己没有这种能力,写一个小demo是很容易,但是想兼容各种硬件是不可能,硬件厂商不会花人力给你写一份驱动,有的设备连linux的驱动都没有。对于复杂的设备,比如显卡,没有厂商的支持自己基本不可能写出驱动。

所以民用的成功通用全新操作系统根本不可能在我国诞生。
[/Quote]
zgjxwl 2009-12-24
  • 打赏
  • 举报
回复
过儿。。。
qqwx_1986 2009-12-24
  • 打赏
  • 举报
回复
额,见识了,都是偶像
某某9 2009-11-10
  • 打赏
  • 举报
回复
  • 打赏
  • 举报
回复
凑个热闹
myhder 2009-11-10
  • 打赏
  • 举报
回复
接分
lxq301872 2009-11-10
  • 打赏
  • 举报
回复
好厉害啊
R9R9R9 2009-11-07
  • 打赏
  • 举报
回复
在CSDN能力跟星星个数原来没有多大的关系
独孤过儿 2009-11-06
  • 打赏
  • 举报
回复
mov $0x10, %edx

对应的机器指令是 0x000010ba

难道我直接写0x000010ba就算是依赖汇编了,你觉得这个合理吗?

是先有机器指令,后有汇编指令的,搞清楚先后关系好吧~~
Wolf0403 2009-11-06
  • 打赏
  • 举报
回复
[Quote=引用 15 楼 wolf0403 的回复:]
引用 7 楼 do_fork 的回复:
lz你能绝对不依赖汇编,输出一个hello world到console吗?


请清晰定义“依赖汇编”的含义,谢谢。
[/Quote]

do_fork, plz.
do_fork 2009-11-06
  • 打赏
  • 举报
回复
[Quote=引用 23 楼 fetag 的回复:]
第二步已经依赖汇编了
--------------------------------
我暴汗~~~

话说你知道汇编语言跟机器指令是什么关系吗?
[/Quote]

我不知道,你知道的话,不妨说来听听
独孤过儿 2009-11-06
  • 打赏
  • 举报
回复
第二步已经依赖汇编了
--------------------------------
我暴汗~~~

话说你知道汇编语言跟机器指令是什么关系吗?
  • 打赏
  • 举报
回复
[Quote=引用 16 楼 fetag 的回复:]
话说这个问题突然让我想起以前讨论过的一个问题:

数据结构和算法是思想,不依赖于语言,这个没错。

那可以试试用一种不支持递归的语言实现一个遍历树的操作~~
[/Quote]

不递归不就可以吗?
do_fork 2009-11-06
  • 打赏
  • 举报
回复
[Quote=引用 10 楼 fetag 的回复:]
引用 7 楼 do_fork 的回复:
lz你能绝对不依赖汇编,输出一个hello world到console吗?

哦,这个在Linux下我能。下面是具体的步骤:

1、先crack ELF可执行文件的格式,这个我已经做过了,以前还写过一篇文章专门分析ELF可执行文件的格式,

精确到每一个bit位,把这些写到一个二进制数据文件里去

2、查看根据write系统调用对应的汇编代码,查出来对应的机器指令,然后追加到前面那个二进制文件里面去

3、执行文件,就可以将hello world输出到屏幕上了。代码如下:

C/C++ code0000000: 7f45 4c46010101000000000000000000 .ELF............0000010:02000300010000007480040834000000 ........t...4...0000020:64010000000000003400200002002800 d.......4. ...(.0000030:09000600010000000000000000800408 ................0000040:00800408960000009600000005000000 ................0000050:00100000010000009800000098900408 ................0000060:98900408100000001000000006000000 ................0000070:00100000 ba100000 00b998900408 bb01 ................0000080:0000 00b804000000 cd80 bb000000 00b8 ................0000090:01000000 cd8000004865 6c6c 6f2c2077 ........Hello, w
00000a0: 6f72 6c64 215c 6e000100000000000900 orld!\n.........
00000b0:09000000010000006400000074800408 ........d...t...
00000c0:00000000440008007480040800000000 ....D...t.......
00000d0:4400090079800408000000004400 0a00 D...y.......D...
00000e0: 7e800408000000004400 0b0083800408~.......D.......
00000f0:000000004400 0c008880040800000000 ....D...........0000100:4400 0f00 8a8004080000000044001000 D...........D...0000110: 8f800408000000004400110094800408 ........D.......0000120:0068 656c 6c6f 2e730000 2e73 796d7461 .hello.s...symta0000130:6200 2e73747274616200 2e7368737472 b..strtab..shstr0000140:74616200 2e7465787400 2e6461746100 tab..text..data.0000150: 2e627373 002e73746162 002e73746162 .bss..stab..stab0000160:73747200000000000000000000000000 str.............0000170:00000000000000000000000000000000 ................0000180:000000000000000000000000 1b000000 ................0000190:01000000060000007480040874000000 ........t...t...
00001a0:22000000000000000000000004000000"...............00001b0:00000000210000000100000003000000 ....!...........
00001c0:98900408980000001000000000000000 ................
00001d0:00000000040000000000000027000000 ............'...00001e0:0800000003000000 a8900408 a8000000 ................
00001f0:00000000000000000000000004000000 ................0000200:00000000 2c0000000100000000000000 ....,...........0000210:00000000 a80000007800000005000000 ........x.......0000220:0000000004000000 0c00000032000000 ............2...0000230:03000000000000000000000020010000 ............ ...0000240:09000000000000000000000001000000 ................0000250:00000000110000000300000000000000 ................0000260:0000000029010000 3b00000000000000 ....)...;.......0000270:00000000010000000000000001000000 ................0000280:020000000000000000000000 cc020000 ................0000290: f000000008000000 0b00000004000000 ................
00002a0:10000000090000000300000000000000 ................
00002b0:00000000 bc0300002800000000000000 ........(.......
00002c0:00000000010000000000000000000000 ................
00002d0:00000000000000000000000000000000 ................
00002e0:74800408000000000300010000000000 t...............
00002f0:98900408000000000300020000000000 ................
这个就是最终的二进制码流了,反汇编能看到对应的汇编代码如下:
0x08048074 <_start+0>:  mov    $0x10,%edx
0x08048079 <_start+5>:  mov    $0x8049098,%ecx
0x0804807e <_start+10>: mov    $0x1,%ebx
0x08048083 <_start+15>: mov    $0x4,%eax
0x08048088 <_start+20>: int    $0x80
0x0804808a <_start+22>: mov    $0x0,%ebx
0x0804808f <_start+27>: mov    $0x1,%eax
0x08048094 <_start+32>: int    $0x80
如果你还要看ELF的文件格式分析,晚上回去我把文章贴上来

[/Quote]

第二步已经依赖汇编了
独孤过儿 2009-11-06
  • 打赏
  • 举报
回复
[Quote=引用 19 楼 do_fork 的回复:]
引用 16 楼 fetag 的回复:
话说这个问题突然让我想起以前讨论过的一个问题:

数据结构和算法是思想,不依赖于语言,这个没错。

那可以试试用一种不支持递归的语言实现一个遍历树的操作~~


一个几乎人人做过的数据结构作业,非递归的二叉树创建和遍历
[/Quote]
哎?哥们,别转移话题啊

你让我写的我已经写完了,现在轮到你了啊
do_fork 2009-11-06
  • 打赏
  • 举报
回复
[Quote=引用 16 楼 fetag 的回复:]
话说这个问题突然让我想起以前讨论过的一个问题:

数据结构和算法是思想,不依赖于语言,这个没错。

那可以试试用一种不支持递归的语言实现一个遍历树的操作~~
[/Quote]

一个几乎人人做过的数据结构作业,非递归的二叉树创建和遍历
Jinhao 2009-11-06
  • 打赏
  • 举报
回复
>>那可以试试用一种不支持递归的语言实现一个遍历树的操作~~

std::stack, HIA HIA HIA HIA
wushichao1987 2009-11-06
  • 打赏
  • 举报
回复
看热闹吧
独孤过儿 2009-11-06
  • 打赏
  • 举报
回复
话说这个问题突然让我想起以前讨论过的一个问题:

数据结构和算法是思想,不依赖于语言,这个没错。

那可以试试用一种不支持递归的语言实现一个遍历树的操作~~
Wolf0403 2009-11-06
  • 打赏
  • 举报
回复
[Quote=引用 7 楼 do_fork 的回复:]
lz你能绝对不依赖汇编,输出一个hello world到console吗?
[/Quote]

请清晰定义“依赖汇编”的含义,谢谢。C 编译器理论上可以不经过汇编,直接编译成目标代码。
加载更多回复(52)

15,440

社区成员

发帖
与我相关
我的任务
社区描述
C/C++ 非技术区
社区管理员
  • 非技术区社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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