Nachos 实验报告
- 格式:doc
- 大小:1.50 MB
- 文档页数:54
一、实验目的1. 学习并掌握乙酰磺胺钠的合成原理及实验操作步骤。
2. 掌握有机合成实验中常用的实验仪器和操作技术。
3. 熟悉有机合成实验中的安全注意事项。
二、实验原理乙酰磺胺钠是一种常用的磺胺类药物,具有抗菌、消炎等作用。
本实验采用磺胺与乙酰化试剂反应,通过成盐反应合成乙酰磺胺钠。
三、实验仪器与试剂1. 仪器:三颈瓶、搅拌器、温度计、球形冷凝管、量筒、烧杯、抽滤瓶、布氏漏斗、电热套、pH计等。
2. 试剂:磺胺、乙酸酐、氢氧化钠、浓盐酸、冰水等。
四、实验步骤1. 准备工作:将三颈瓶、搅拌器、温度计、球形冷凝管、量筒、烧杯、抽滤瓶、布氏漏斗、电热套等仪器清洗干净,备用。
2. 磺胺的制备:在250mL三颈瓶中加入17.2g磺胺,加入22mL 22.5%氢氧化钠溶液,搅拌加热至50℃左右,待磺胺溶解。
3. 乙酰化反应:向反应瓶中加入3.6mL乙酸酐,然后逐滴加入2.5mL 77%氢氧化钠溶液,保持反应温度在50~55℃之间。
每隔5分钟分次交替加入乙酸酐和氢氧化钠,每次各2mL。
加毕后继续保温搅拌30分钟。
4. 中和反应:将反应液倒入烧杯中,加入20mL水,搅拌下用浓盐酸调pH至7~8。
然后放入冰浴中冷却30分钟,使乙酰磺胺钠析出。
5. 抽滤、洗涤与干燥:将析出的固体用抽滤瓶抽滤,并用适量冰水洗涤固体。
将固体合并滤液,弃去滤饼。
将滤液用浓盐酸调pH至4~5,过滤。
将滤饼压干,得到乙酰磺胺钠。
五、实验结果与讨论1. 实验结果:成功合成了乙酰磺胺钠,产率为85%。
2. 讨论与分析:(1)实验过程中,温度控制对反应的进行和产率有很大影响。
本实验中,反应温度控制在50~55℃之间,有利于提高产率。
(2)pH值对反应也有一定影响。
本实验中,pH值控制在7~8之间,有利于反应进行。
当pH值过高或过低时,反应速率会降低,产率也会降低。
(3)实验过程中,应注意反应液的搅拌和保温,以保证反应均匀进行。
(4)实验结束后,对产物进行洗涤和干燥,可以去除杂质,提高产品的纯度。
2021亚硝酸盐检验实验报告实验目的:本实验的目的是学习利用化学方法检测水中亚硝酸盐的含量。
亚硝酸盐是一种常见的水污染物,如果超标会对人体健康造成严重的影响。
因此,准确测定水中亚硝酸盐的含量对于保障水环境的安全和人类健康至关重要。
实验步骤:1.制备样品:依据实验要求,用一定体积的纯净水制备出不同浓度的亚硝酸盐标准溶液。
2.检验亚硝酸盐:将待测样品取一定量,加入硫酸磁铁粉,摇匀,加入亚硝酸铵试液,摇匀。
观察样品变化并进行分析比较。
3.制备标准曲线:以已知亚硝酸盐浓度为横坐标,检测结果为纵坐标,绘制标准曲线。
4.检测含量:使用标准曲线计算待测样品中亚硝酸盐的含量。
实验结果:使用上述方法对不同浓度的亚硝酸盐标准溶液进行检验,可以得到样品颜色变化的结果如下表所示。
亚硝酸盐标准溶液浓度试验结果0mg/L 无颜色1mg/L 浅粉色2mg/L 比1mg/L深3mg/L 比2mg/L深4mg/L 比3mg/L深5mg/L 比4mg/L深通过上述结果可以很明显地看出,随着亚硝酸盐溶液浓度的增大,试验结果的颜色也会相应加深。
因此,这个方法是适用于亚硝酸盐含量检测的。
依据实验中制备的标准曲线,我们可以计算出不同样品中亚硝酸盐的含量。
例如,某个待测样品的检测结果为3.5mg/L,根据标准曲线可以计算出该样品中亚硝酸盐的含量为3mg/L。
通过本实验,我们学习了利用化学方法检测水中亚硝酸盐含量的方法。
我们发现,这种方法可以简单可靠地检测亚硝酸盐含量,并且可以得到较为准确的结果。
因此,它在实际的水环境监测中得到了广泛的应用,保障了人类健康和水环境的安全。
第1篇一、实验目的1. 了解碱解氮测定原理及其在土壤肥力分析中的应用。
2. 掌握碱解氮测定的实验操作步骤。
3. 学习使用扩散皿和滴定仪进行碱解氮的测定。
二、实验原理碱解氮测定是土壤氮素分析的重要方法之一,主要用于测定土壤中易被植物吸收利用的氮素形态。
碱解氮是指土壤在碱性条件下,易水解的有机氮和铵态氮转化为氨气,通过吸收和滴定测定氨气的量,从而计算出土壤中碱解氮的含量。
实验原理如下:1. 土壤样品与氢氧化钠溶液混合,加热碱解,使土壤中的易水解有机氮和铵态氮转化为氨气。
2. 氨气被硼酸溶液吸收,生成硼酸氨。
3. 使用标准盐酸溶液滴定硼酸氨,根据消耗的标准盐酸溶液的体积计算出土壤中碱解氮的含量。
三、实验仪器与试剂1. 仪器:扩散皿、滴定仪、天平、加热装置、烧杯、移液管、容量瓶等。
2. 试剂:氢氧化钠溶液(0.1mol/L)、硼酸溶液(0.1mol/L)、盐酸标准溶液(0.01mol/L)、甲基红指示剂等。
四、实验步骤1. 准备土壤样品:称取5g土壤样品,放入扩散皿内。
2. 加入氢氧化钠溶液:向扩散皿中加入5ml氢氧化钠溶液。
3. 密封扩散皿:用毛玻璃片盖住扩散皿,并密封。
4. 加热碱解:将扩散皿放入加热装置中,加热至40℃左右,保持24小时。
5. 冷却扩散皿:将加热后的扩散皿取出,冷却至室温。
6. 加入硼酸溶液:向扩散皿中加入5ml硼酸溶液。
7. 密封扩散皿:用毛玻璃片盖住扩散皿,并密封。
8. 滴定:使用盐酸标准溶液滴定硼酸溶液,直至溶液颜色由黄色变为粉红色。
9. 计算碱解氮含量:根据消耗的盐酸标准溶液的体积,计算出土壤中碱解氮的含量。
五、实验结果与分析1. 实验结果:本次实验测得土壤碱解氮含量为30mg/kg。
2. 分析:根据实验结果,该土壤碱解氮含量处于中等水平,表明土壤氮素供应状况良好。
六、实验总结1. 本次实验成功完成了碱解氮的测定,掌握了碱解氮测定的实验操作步骤。
2. 碱解氮测定是土壤氮素分析的重要方法,对于了解土壤氮素供应状况具有重要意义。
实验二一.实验目的将nachos 中的lock 和condition 类的实现补充完整,并利用这些同步机制实现两个基础功能。
二.实验内容1) 实现syncy.h 中的Lock 和Condition 类,并利用这些同步机制将实验一中所双向有序链表类修改成可以在多线程线程环境下运行。
2) 实现一个线程安全的Table 。
Table 有一个固定大的Entery 数组。
3) 实现一个大小受限的BoundBuffer ,可以完成读.写功能,其中读写的size 可以超过设定的buffer 大小,当读的东西太快或写的太慢时,就将其挂起。
当buffer 里重新有写的空间或读的空间时在将其线程放入就绪队列中。
三.实验结果1.锁机制的实现 **因为lock 和condition 都有两个版本,所以当调用取得锁和释放锁的函数时我 用的是GetLock()和ReleaseLock(),而不是lock->Acquire(),Condition 同理用的是Signal ()和Wait ()。
这些函数会根据运行程序时输入的参数来决 定用哪个版本的锁或者不用锁。
a)主要代码分析 Lock 类的主要成员{public : void Acquire(); // 得到锁 void Release(); // 解放锁private: Thread *LockedThread ; // 用于储存现在拥有 lock 的线程 LockStatus status ; // 表示此时lock 的状态(Busy ,Free ) List *queue // 用于保存挂起的 线程}Lock 类中Acquire 函数得到锁,如果此时别的线程拥有锁,则此时线程被 挂起放在queue 队列中,直到有人释放锁时,Release 函数将queue 中的一 个线程加入就绪队列,每次只能由一个线程得到锁。
Condition 类主要成员{ public: void Wait(LockO *conditionLock); void Signal(LockO *conditionLock); private:List *queue ; char* name;}Condition 类的所有操作都在线程得到锁时进行操作,且运行其函数时,都 先检测 lock 是否被currentThread 锁拥有。
第1篇一、实验目的1. 了解碳酸钠的物理性质和化学性质;2. 探究碳酸钠在日常生活中的应用;3. 培养学生动手操作能力和实验观察、分析能力。
二、实验原理碳酸钠(Na2CO3),俗称纯碱,是一种白色固体,易溶于水,水溶液呈碱性。
碳酸钠具有以下性质:1. 与酸反应:碳酸钠与酸反应生成二氧化碳气体、水和相应的盐;2. 与金属离子反应:碳酸钠与某些金属离子反应生成沉淀;3. 与有机物反应:碳酸钠与某些有机物反应,可使其发生水解、皂化等反应。
三、实验器材1. 碳酸钠粉末;2. 稀盐酸;3. 氢氧化钙溶液;4. 酚酞试液;5. 烧杯;6. 试管;7. 胶头滴管;8. 玻璃棒;9. 量筒;10. 滤纸;11. 滤液;12. 滤渣。
四、实验步骤1. 取少量碳酸钠粉末放入烧杯中,加入适量水溶解,观察溶液颜色变化;2. 取一支试管,加入少量碳酸钠溶液,滴加几滴酚酞试液,观察溶液颜色变化;3. 取一支试管,加入少量碳酸钠溶液,滴加稀盐酸,观察气泡产生;4. 取一支试管,加入少量碳酸钠溶液,滴加氢氧化钙溶液,观察沉淀生成;5. 将上述实验中产生的沉淀过滤,观察沉淀颜色和溶解性;6. 取一支试管,加入少量碳酸钠溶液,滴加酚酞试液,观察溶液颜色变化;7. 将上述实验中产生的沉淀过滤,观察沉淀颜色和溶解性;8. 将碳酸钠溶液加入含有有机物的溶液中,观察有机物变化。
五、实验现象及结果1. 碳酸钠溶解后,溶液呈无色;2. 加入酚酞试液后,溶液呈红色;3. 加入稀盐酸后,产生大量气泡;4. 加入氢氧化钙溶液后,产生白色沉淀;5. 过滤后,沉淀为白色,不溶于水;6. 再次加入酚酞试液后,溶液呈红色;7. 过滤后,沉淀为白色,不溶于水;8. 将碳酸钠溶液加入含有有机物的溶液中,有机物发生水解、皂化等反应。
六、实验讨论与分析1. 碳酸钠溶解后,溶液呈无色,说明碳酸钠是一种无色固体;2. 加入酚酞试液后,溶液呈红色,说明碳酸钠水溶液呈碱性;3. 加入稀盐酸后,产生大量气泡,说明碳酸钠与酸反应生成二氧化碳气体;4. 加入氢氧化钙溶液后,产生白色沉淀,说明碳酸钠与氢氧化钙反应生成碳酸钙沉淀;5. 过滤后,沉淀为白色,不溶于水,说明碳酸钙是一种不溶于水的白色固体;6. 再次加入酚酞试液后,溶液呈红色,说明碳酸钠水溶液呈碱性;7. 过滤后,沉淀为白色,不溶于水,说明碳酸钙是一种不溶于水的白色固体;8. 将碳酸钠溶液加入含有有机物的溶液中,有机物发生水解、皂化等反应,说明碳酸钠具有催化作用。
文件系统实习报告目录内容一:总体概述......................................... 错误!未定义书签。
内容二:任务完成情况..................................... 错误!未定义书签。
任务完成列表(Y/N).................................. 错误!未定义书签。
具体Exercise的完成情况.............................. 错误!未定义书签。
内容三:遇到的困难以及解决方法........................... 错误!未定义书签。
内容四:收获及感想....................................... 错误!未定义书签。
内容五:对课程的意见和建议............................... 错误!未定义书签。
内容六:参考文献......................................... 错误!未定义书签。
内容一:总体概述本次实习的主要内容是在nachos文件系统的基础上进行相关的优化。
目前,nachos的文件系统不甚完善,比如说文件属性的缺失,文件长度的限制,目录结构的缺失(只有根目录)以及同步互斥机制的缺失。
第一部分,我们关心文件系统基础功能,我们需要了解nachos的文件系统并实现文件属性的完善,文件长度的扩展,多级目录以及文件长度的动态调整。
第二部分,我们关心文件访问的同步互斥,我们需要了解nachos磁盘工作原理并实现文件系统的同步互斥访问机制。
Challenge部分,我们关心文件系统的优化,我们需要实现文件位置的合理分布,cache机制以及pipe机制。
内容二:任务完成情况任务完成列表(Y/N)具体Exercise的完成情况一、文件系统的基本操作Exercise 1 源代码阅读阅读Nachos源代码中与文件系统相关的代码,理解Nachos文件系统的工作原理。
nachos实验报告nachos实验报告一、引言操作系统是计算机系统中的核心软件之一,它负责管理计算机的硬件资源和提供各种服务。
为了更好地理解操作系统的原理和设计,我们在课程中进行了一系列的实验,其中之一就是使用nachos操作系统进行实验。
本报告将对我们在nachos实验中的学习和体验进行总结和分享。
二、nachos简介nachos是一个教学用的操作系统,它是为了帮助学生更好地理解操作系统的原理和设计而开发的。
nachos的设计简单、模块化,易于理解和扩展。
通过使用nachos,我们可以深入了解操作系统的各个组成部分,如进程管理、内存管理、文件系统等,并通过实验来加深对这些概念的理解。
三、实验一:进程管理在第一个实验中,我们学习了进程管理的基本原理和实现。
通过使用nachos,我们可以创建和管理多个进程,并学习它们之间的通信和同步机制。
我们了解了进程的状态转换、进程调度算法以及进程间通信的方法,如共享内存和消息传递等。
通过实验,我们更深入地理解了进程管理的重要性和挑战。
四、实验二:内存管理在第二个实验中,我们学习了内存管理的原理和实现。
nachos提供了虚拟内存的支持,我们可以通过设置页表和实现页面置换算法来管理内存。
我们了解了内存分页和分段的概念,以及常见的页面置换算法,如FIFO、LRU等。
通过实验,我们深入了解了内存管理的工作原理和性能优化方法。
五、实验三:文件系统在第三个实验中,我们学习了文件系统的原理和实现。
nachos提供了一个简单的文件系统接口,我们可以通过创建、读取和写入文件来学习文件系统的操作。
我们了解了文件系统的组织结构,如目录、文件和索引节点等,并学习了文件系统的一致性和恢复机制。
通过实验,我们更好地理解了文件系统的工作原理和性能优化方法。
六、实验四:网络通信在第四个实验中,我们学习了网络通信的原理和实现。
nachos提供了一个简单的网络模拟器,我们可以创建和管理多个网络节点,并通过网络进行通信。
大学化学-酸碱中和反应的实验报告
实验目的
本实验的目的是研究酸碱中和反应的特点和性质,了解中和反
应的化学方程式和反应类型。
实验原理
酸和碱的中和反应是一种重要的化学反应。
在酸碱中和反应中,酸和碱反应生成盐和水。
中和反应是一个化学方程式中酸碱质子转
移的过程。
本实验中使用了一种酸和一种碱进行中和反应。
在反应过程中,酸和碱的质子转移会导致溶液pH值的变化,从而达到酸碱中和的
目的。
实验步骤
1. 首先,准备好实验装置和试剂。
2. 用试管或容量瓶分别取一定量的酸和碱溶液。
3. 将酸溶液慢慢滴加到碱溶液中,同时用pH试纸或指示剂测
试溶液的pH值。
4. 当溶液pH值接近中性时,停止滴加,记录酸和碱的质量和滴加的体积。
5. 观察溶液颜色的变化和反应产物的形态。
实验结果
根据实验步骤和记录的数据,得到以下实验结果:
- 酸和碱的中和反应产生了盐和水。
- 反应过程中溶液的pH值逐渐接近中性。
- 反应结束后,观察到溶液颜色的变化。
实验讨论
通过本实验,我们观察到了酸和碱的中和反应的特点和性质。
酸和碱的中和反应是一种重要的化学反应,可以通过质子转移来实现。
在实验过程中,我们发现了溶液pH值的变化以及溶液颜色的变化。
这些变化表明酸和碱的中和反应是一个化学方程式中有序的质子转移过程。
结论
通过本实验,我们了解了酸碱中和反应的特点和性质,学会了观察酸碱反应的现象和记录实验数据。
参考文献。
第1篇一、实验背景金属钠是化学元素周期表中的一种碱金属,具有极高的化学活性。
在本次实验中,我们主要研究了金属钠的物理性质和化学性质,通过一系列实验,深入了解了金属钠的特性和反应规律。
二、实验目的1. 了解金属钠的物理性质,如颜色、硬度、密度、熔点等。
2. 掌握金属钠的化学性质,如与水、氧气、酸、碱的反应。
3. 分析金属钠在不同条件下的反应现象,总结其反应规律。
三、实验仪器与试剂1. 仪器:烧杯、试管、酒精灯、镊子、剪刀、玻璃棒、滤纸等。
2. 试剂:金属钠、蒸馏水、稀盐酸、氢氧化钠溶液、酚酞指示剂等。
四、实验步骤1. 观察金属钠的外观、颜色、硬度等物理性质。
2. 将金属钠切成小块,用滤纸吸干表面的煤油。
3. 将金属钠投入装有蒸馏水的烧杯中,观察反应现象。
4. 将金属钠投入装有稀盐酸的试管中,观察反应现象。
5. 将金属钠投入装有氢氧化钠溶液的试管中,观察反应现象。
6. 将金属钠加热至熔化,观察熔化过程中的现象。
五、实验结果与分析1. 物理性质:金属钠呈银白色,硬度较低,密度为0.97g/cm³,熔点为97.8℃。
2. 与水的反应:金属钠与水反应剧烈,产生氢气和氢氧化钠,同时放出大量热量。
反应方程式为:2Na + 2H₂O → 2NaOH + H₂↑。
实验现象为:钠块在水面上迅速游动,产生大量气泡,同时溶液变红。
3. 与盐酸的反应:金属钠与盐酸反应生成氯化钠和氢气,反应方程式为:2Na + 2HCl → 2NaCl + H₂↑。
实验现象为:钠块在盐酸中迅速溶解,产生大量气泡。
4. 与氢氧化钠溶液的反应:金属钠与氢氧化钠溶液反应生成氢气和氢氧化钠,反应方程式为:2Na + 2NaOH → 2Na₂O + H₂↑。
实验现象为:钠块在氢氧化钠溶液中溶解,产生大量气泡。
5. 加热熔化:金属钠加热至熔化时,表面出现熔融的钠滴,反应方程式为:Na → Na(l)。
实验现象为:钠块在加热过程中熔化,表面出现熔融的钠滴。
四川大学操作系统课程设计报告学院:软件学院专业:软件工程专业年级:06级组编号:第25组组成员:王鑫0643111082刘世彬0643111杨斌0643111244王秀才0643111090提交时间:2008年6月16日指导教师评阅意见:.. . . .指导教师评阅成绩:王鑫:王秀才:杨斌:刘世彬:实验项目一项目名称:开发Shell程序试验背景知识Shell文字操作系统与外部最主要的接口就叫做shell。
shell是操作系统最外面的一层。
shell 管理你与操作系统之间的交互:等待你输入,向操作系统解释你的输入,并且处理各种各样的操作系统的输出结果。
shell提供了你与操作系统之间通讯的方式。
这种通讯可以以交互方式(从键盘输入,并且可以立即得到响应),或者以shell script(非交互)方式执行。
shell script是放在文件中的一串shell和操作系统命令,它们可以被重复使用。
本质上,shell script是命令行命令简单的组合到一个文件里面。
Shell基本上是一个命令解释器,类似于DOS下的。
它接收用户命令(如ls等),然后调用相应的应用程序。
较为通用的shell有标准的Bourne shell (sh)和C shell (csh)。
交互式shell和非交互式shell交互式模式就是shell等待你的输入,并且执行你提交的命令。
这种模式被称作交互式是因为shell与用户进行交互。
这种模式也是大多数用户非常熟悉的:登录、执行一些命令、签退。
当你签退后,shell也终止了。
shell也可以运行在另外一种模式:非交互式模式。
在这种模式下,shell不与你进行交互,而是读取存放在文件中的命令,并且执行它们。
当它读到文件的结尾,shell也就终止了。
实验目的:Shell是一个命令处理器(command processor)——是一个读入并解释你输入的命令的程序,它是介于使用者和操作系统之核心程序(kernel)间的一个接口。
它是一个交互性命令解释器。
shell 独立于操作系统,这种设计让用户可以灵活选择适合自己的shell。
shell 让你在命令行键入命令,经过shell 解释后传送给操作系统(内核)执行。
参与人员及分工:王鑫:书写代码王秀才:查资料,组织代码和报告的书写工作杨斌:书写代码刘世彬:平台的搭建和调试运行实验环境:Redhat Enterprise Linux 12.0NachOS-4.1>试验环境的搭建:Vmware的安装,linuxd的安装,sin sight的安装Vmware的安装Vmware是一个虚拟机软件,它可以在windows平台上虚拟出真实机器的硬件环境的,使得我们可以在不购买新机器的情况下就可以在一个机器上运行多个操作系统。
Vmware的安装和普通的windows应用程序安装没有太大的差别,是一个相当“傻瓜”的过程,只要按照提示,依次点击“下一步”就可顺利地完成vmware的安装了。
虚拟机的创建i.如果所示,在file中选择new——新虚拟机ii.然后选择定制创建虚拟机——选择操作系统类型(linux-redhat linux)——虚拟机名称和虚拟机文件安放的路径——虚拟机器模拟内存——网络选择——选择I/O适配器——硬盘创建——设置虚拟机器硬盘名称如果所示:定制虚拟机器操作系统类型以及虚拟机名称和虚拟机文件安放的路径虚拟机器模拟内存网络选择选择I/O适配器硬盘创建虚拟机器搭建完成以后,然后安装linux.虚拟机创建完成后vmware 的主窗口就会多出一个标签页,这页的内容正式我们所创建的虚拟机的信息。
(如图1-12)图1-12 新建虚拟机信息点击标签页上的“start this virtual machine”就可以启动我们刚刚创建的虚拟机,但是由于我们只是让vmware帮我们模拟出了一个硬件机器,我们还没有向这个机器上安装任何软件,所以我们的机器运行后除了一些BIOS程序的输出外别的什么也没有,也什么都不能干,所以我们需要进行下一步,向虚拟机上安装OS和应用程序。
虚拟机上linux的安装虚拟机创建好了,vmware只是按照我们的要求模拟出了一个硬件机器,到目前位置这个虚拟机上并没有安装任何软件,也不能做任何事情。
这一步的目的就是要向虚拟的硬件机器上安装linux操作系统,进而安装其他应用程序。
在虚拟机上安装linux和在真实机器上由光驱安装linux是相同的过程。
首先需要把安装光盘放到光驱中,双击主界面上的CD-ROM,弹出如图1-13对话框:图1-13 CD-ROM对话框如果你有光驱,也有linux的安装光盘就可以选择“Use physical drive”;如果有linux 的ISO映象,就需要选“Use ISO image”,并且指定好映像的位置。
安装光盘设置好后我们就可以启动虚拟机器进行安装了。
机器正常从光驱启动就会出现如图1-14的画面:Rat Hat安装界面nachos用来分析源码,所以随便你放在linux下面的都可以。
在windows下面直接用winrar就可以解压。
在linux下面用命令 tar -zvxf nachos-3.4.1.tar.Z解压。
重要的是nachos4.1及其交叉编译工具的安装。
1 把nachos4.1下载到/usr/local目录2 tar -zvxf nachos-4.1.tgz3 进入解压后的目录,其中有code子目录,再进入其中的build.linux子目录4 输入 make depend5 输入 make 看看结束有没有错误,如果没有,那么就成功了。
编译好的nachos系统镜像就在build.linux目录下,运行时直接 . / nachos 就可以了。
如果要到其他目录下运行的话,还要export才行。
nachos详细运行参数可以用. / nachos -u 得到。
交叉编译工具的搭建。
把下载的交叉编译工具放到 / 目录下,即根目录下然后用tar -zvxf 命令解压即可。
必须放到根目录下,因为压缩包里面包含了/usr/local的目录层次。
另外还需要编译测试程序转换工具,进入 nachos4.1/code/coff2noff运行 . / configuremake 即可。
然后在Rat Hat上编译出nachos,其系统结构如下图所示:Si35Setup.rar的安装虽然在linux我们可以高效地完成所有开发所需的任务,但是对于刚刚开始接触unix/linux的同学,一下子用熟那么多的工具还是有些困难的。
正是基于这一点我们的教学网站上也提供了在windows下用来阅读代码的工具Source Insight,借助于它我们可以加快代码阅读速度。
这个软件的安装是个很简单的过程只要运行setup一路next下去就可以了。
代码阅读时要先建工程,点击project-new project,然后按照要求回答源代码的位置,工程就会顺利的建成。
代码阅读时如果需要一些功能比如想要查找某个符号的定义只要在选定的符号上点右键就会弹出菜单,选择相应的命令就可以了。
Nachos的介绍Nachos的全称是“Not Another Completely Heuristic Operating System”,它是一个可修改和跟踪的操作系统教学软件。
它给出了一个支持多线程和虚拟存储的操作系统骨架,可让学生在较短的时间内对操作系统中的基本原理和核心算法有一个全面和完整的了解。
Nachos的目录结构以上操作系统可以发现在工作目录下生成一个名为nachos-3.4 的目录。
该目录中含有:copyright 文件 Nachos 的版权信息readme 文件 Nachos 的readme 信息nachos.ps 文件 Nachos 的介绍文档(Postscript 格式)c++example 目录有关C++介绍和实例doc 目录 Nachos 各个部分介绍和原有的作业要求code 目录 Nachos 各个部分的源代码最主要的部分是Nachos 的源代码部分。
它的目录结构是:MakefilemonMakefile.dep文件文件文件Nachos 的Makefile 文件。
当Nachos 需要移植到其它系统时,可以修改Makefile.dep 中的HOST 参数machine 目录 Nachos 虚拟机模拟部分源代码threads 目录 Nachos 线程管理部分源代码filesys 目录 Nachos 文件系统管理部分源代码userprog 目录 Nachos 用户程序部分源代码network 目录 Nachos 网络管理部分源代码vm 目录 Nachos 虚拟内存管理部分源代码test 目录一些测试用应用程序bin 目录包含有用户程序目标码变换的程序三、各个部分的编译运行Nachos的各个部分都可以独立编译运行,也可以同时编译各个部分。
全部编译可以采用如下命令:~/nachos-3.4$ make当需要单独编译线程管理部分时,先进入threads 目录,然后采用如下命令:~/nachos-3.4/threads$ make depend~/nachos-3.4/threads$ make nachos实际上,各部分目录下都有一个Makefile 文件,内容大体相同,区别在于一些条件编译的参数。
比如在单独编译线程管理部分时,文件管理部分就被屏蔽了,这样读者读者就可以专心于线程管理部分的调试。
四、应用程序的编译由于Linux 指令集和R2/3000 指令集不同,用户编写的应用程序用Linux 系统中标准gcc 编译后,不能直接在Nachos 虚拟机环境下运行。
所以需要采用交叉编译技术。
所谓交叉编译技术是在一个操作系统下将源码编译成另一个操作系统的目标码,这里就是在Linux 下通过gcc 交叉编译版本将用户程序的源码编译成R2/3000 指令集的目标码。
在Linux 中,没有缺省的交叉编译工具。
读者可以到上海交通大学计算机系FTP 服务器上下载,URL 为:ftp:///linux/cross-compiler.tgz该文件的解开需要有超级用户的权利,将解开至/usr/local/目录下:/# gzip -dc cross-compiler.tgz | tar xf -在编译用户程序时,用交叉编译器将源码编译成R2/3000 指令集的目标代码,再经过一个简单的转换就可以在Nachos 虚拟机上运行。
注意,在读者实现虚拟存储之前,有些应用程序可能会因为使用过多的内存而不能运行。
实验内容:本项目在实践的过程中需要注意以下要点:Shell项目的要求一、设计一个简单的命令行shell,满足下面的属性并且可以在指定的UNIX平台下执行。