草庐IT

我和 chatGPT 对线操作系统!

cxuan 2023-03-31 原文

大家都知道现在 chatGPT 已经在多个领域展现了及其强大的工地,比如文案策划,毕业论文方便,甚至很多程序员都直接让 chatGPT 帮忙写代码了,在一些模板化的代码方面,chatGPT 更展示了优秀的能力。

所以我突然迸发了一个想法,我让 chatGPT 教我学一下操作系统怎么样?

这里的我是一个懂点操作系统但却装成小白兔的人(这样的人在职场中是不是最心机了 狗头保命)

梭哈开始!

问题一:什么是操作系统?

嗯。。。。。。这个回答很像百度百科的官方回答。看起来没啥意思,让人昏昏欲睡。

我想用 chatGPT 的回答来继续问他,看看能不能让他犯一些错误。

问题二:操作系统的这些服务和接口是什么意思?

操作系统的这些接口本质是为应用程序服务的,方便应用程序进行 API 调用来使用。对于一些宽泛性的问题,操作系统回答的还算不错。

后面稍微提升一下难度。

问题三:请你按照时间的顺序来回答一下都诞生过哪些著名的操作系统?

这里的回答有几个疑问点:

  • 首先,UNIVAC 是不是第一代操作系统存疑,因为 WIKI 上说 UNIVAC 的全称是 UNIVersal Automatic Computer 它是一个 UNIVA 的第一代大型自动计算机,并没有特指某一代操作系统,难道 chatGPT 理解为 UNIVAC 上的系统了?这个计算机是为了预测美国人口普查而闻名,因为它预测了艾森豪威尔当选美国总统,1951 年在我国也有很深的根源,这个就不多说了。
  • 第二个问题,我让 chatGPT 以时间顺序回答,为什么 1984 年的 Mac OS 会排在 1985 年 Windows 的后面?????????????
  • 第三个问题,作为一个 AI 大规模数据训练模型,它竟然不知道 MINIX 3 ,对于程序员的我们来说这个回答稍微欠佳,我问他的这种方式大家不要学,这不过是用的一种比较非常规的问法。

还有,它竟然不知道鸿蒙 OS ??????

问题四:操作系统的结构都有哪些?

如果说上面那个问题我有点计较的话,那 gpt 的这个回答就有点很不充分了,它竟然没有回答宏内核结构。

ßΩ我之前的文章中就解释过什么是宏内核和微内核,详见

https://mp.weixin.qq.com/s/qwlif22TskeGYLh5FpV9Pg

一句话解释:宏内核和微内核最大的区别就是,宏内核的用户服务和内核服务都保存在相同的地址空间中,它们都由内核进行统一管理,而微内核的用户服务和内核服务会保存在不同的地址空间中

其实宏内核和单体结构的区别不是很大,但这还是两ß种不同的内核结构,区别在于宏内核可以动态加载,实现可插拔。

问题五:为什么 Windows 的程序在 Linux 上无法运行?

gpt 又给我道歉了,我都不习惯了。它这道歉的速度和频率比我媳妇多了好几倍。

它漏答了指令集架构,这是很重要的一点。

其中一点是因为 Linux 系统和 Windows 系统的格式不同,格式就是协议,就是在固定位置有意义的数据。Linux 下的可执行程序文件格式是 elf,可以使用 readelf 命令查看 elf 文件头。

而 Windows 下的可执行程序是 PE 格式,它是一种可移植的可执行文件。

还有一点是因为 Linux 系统和 Windows 系统的 API 不同,这个 API 指的就是操作系统的 API,Linux 中的 API 被称为系统调用,是通过 int 0x80 这个软中断实现的。而 Windows 中的 API 是放在动态链接库文件中的,也就是 Windows 开发人员所说的 DLL ,这是一个库,里面包含代码和数据。Linux 中的可执行程序获得系统资源的方法和 Windows 不一样,所以显然是不能在 Windows 中运行的。

问题六:请你解释一下什么是系统调用?

这个问题回答的还是很不错的。

问题七:请你描述一下 Ext2 文件系统?

问题八:请你描述一下实模式和保护模式的区别

这个回答没有太大问题。

问题九:x86 寄存器有哪些?

我问它系统控制指令的时候它又答错了,而且它还漏答了非常重要的几个寄存器。

问题十:请你描述一下中断产生的条件 && 中断是如何产生的?

总结

以上基于 chatGPT 3.5 测试,问了 10 个问题,答错 6 个,如果没有一定的只是储备,很容易被这些答案带偏,我不知道它的训练模型是怎样的,就比如操作系统结构的那个问题,你拿 WIKI 百科的答案喂,都不会只产生两个结构。

有部分小伙伴建议我使用 4 测试,这个需要开 plus ,我目前还没有开通,有兴趣的小伙伴可以把我的问题方式问一下 GPT-4 ,看看会不会有奇妙的东西发生。

另外,还有部分小伙伴让我用英文问或者懂 prompt (基于 AI 提问的一种语言)来问,我不想那么麻烦,既然你都 AI 了,为什么不能更好的服务我们这种 懒人呢?我还要懂你提问的语言?要是我请教的对象是人,我可能需要了解一下提问的艺术,毕竟双方的时间都很宝贵,你是一个机器,一种训练模型,我为什么还要懂你的语言,你不是为了人类服务的吗?

我感觉我说的应该没错吧?

所以我得出了比较浅显的结论,这个东西的专业性有限,不过它很能提高文字编写、策划、法律、编辑的工作效率,对基于办公室劳动密集型工种来说,确实应该有危机感了。

原文链接:我和 chatGPT 对线操作系统!

欢迎关注我的个人微信公众号:程序员cxuan

有关我和 chatGPT 对线操作系统!的更多相关文章

  1. 亚特兰蒂斯的回声(中文版): chatGPT 的杰作 - 2

    英文版英文链接关注公众号在“亚特兰蒂斯的回声”中踏上一段难忘的冒险之旅,深入未知的海洋深处。足智多谋的考古学家AriaSeaborne偶然发现了一件古代神器,揭示了一张通往失落之城亚特兰蒂斯的隐藏地图。在她神秘的导师内森·兰登教授的指导和勇敢的冒险家亚历克斯·默瑟的帮助下,阿丽亚开始了一段危险的旅程,以揭开这座传说中城市的真相。他们的冒险之旅带领他们穿越险恶的大海、神秘的岛屿和充满陷阱和谜语的致命迷宫。随着Aria潜在的魔法能力的觉醒,她被睿智勇敢的QueenNeria的幻象所指引,她让她为即将到来的挑战做好准备。三人组揭开亚特兰蒂斯令人惊叹的隐藏文明,并了解到邪恶的巫师马拉卡勋爵试图利用其古

  2. 电脑0x0000001A蓝屏错误怎么U盘重装系统教学 - 2

      电脑0x0000001A蓝屏错误怎么U盘重装系统教学分享。有用户电脑开机之后遇到了系统蓝屏的情况。系统蓝屏问题很多时候都是系统bug,只有通过重装系统来进行解决。那么蓝屏问题如何通过U盘重装新系统来解决呢?来看看以下的详细操作方法教学吧。  准备工作:  1、U盘一个(尽量使用8G以上的U盘)。  2、一台正常联网可使用的电脑。  3、ghost或ISO系统镜像文件(Win10系统下载_Win10专业版_windows10正式版下载-系统之家)。  4、在本页面下载U盘启动盘制作工具:系统之家U盘启动工具。  U盘启动盘制作步骤:  注意:制作期间,U盘会被格式化,因此U盘中的重要文件请注

  3. 【鸿蒙应用开发系列】- 获取系统设备信息以及版本API兼容调用方式 - 2

    在应用开发中,有时候我们需要获取系统的设备信息,用于数据上报和行为分析。那在鸿蒙系统中,我们应该怎么去获取设备的系统信息呢,比如说获取手机的系统版本号、手机的制造商、手机型号等数据。1、获取方式这里分为两种情况,一种是设备信息的获取,一种是系统信息的获取。1.1、获取设备信息获取设备信息,鸿蒙的SDK包为我们提供了DeviceInfo类,通过该类的一些静态方法,可以获取设备信息,DeviceInfo类的包路径为:ohos.system.DeviceInfo.具体的方法如下:ModifierandTypeMethodDescriptionstatic StringgetAbiList​()Obt

  4. kvm虚拟机安装centos7基于ubuntu20.04系统 - 2

    需求:要创建虚拟机,就需要给他提供一个虚拟的磁盘,我们就在/opt目录下创建一个10G大小的raw格式的虚拟磁盘CentOS-7-x86_64.raw命令格式:qemu-imgcreate-f磁盘格式磁盘名称磁盘大小qemu-imgcreate-f磁盘格式-o?1.创建磁盘qemu-imgcreate-fraw/opt/CentOS-7-x86_64.raw10G执行效果#ls/opt/CentOS-7-x86_64.raw2.安装虚拟机使用virt-install命令,基于我们提供的系统镜像和虚拟磁盘来创建一个虚拟机,另外在创建虚拟机之前,提前打开vnc客户端,在创建虚拟机的时候,通过vnc

  5. ruby - 如何使用 Selenium Webdriver 根据 div 的内容执行操作? - 2

    我有一个使用SeleniumWebdriver和Nokogiri的Ruby应用程序。我想选择一个类,然后对于那个类对应的每个div,我想根据div的内容执行一个Action。例如,我正在解析以下页面:https://www.google.com/webhp?sourceid=chrome-instant&ion=1&espv=2&ie=UTF-8#q=puppies这是一个搜索结果页面,我正在寻找描述中包含“Adoption”一词的第一个结果。因此机器人应该寻找带有className:"result"的div,对于每个检查它的.descriptiondiv是否包含单词“adoption

  6. ruby-on-rails - 如何处理 Grape 中特定操作的过滤器之前? - 2

    我正在我的Rails项目中安装Grape以构建RESTfulAPI。现在一些端点的操作需要身份验证,而另一些则不需要身份验证。例如,我有users端点,看起来像这样:moduleBackendmoduleV1classUsers现在如您所见,除了password/forget之外的所有操作都需要用户登录/验证。创建一个新的端点也没有意义,比如passwords并且只是删除password/forget从逻辑上讲,这个端点应该与用户资源。问题是Grapebefore过滤器没有像except,only这样的选项,我可以在其中说对某些操作应用过滤器。您通常如何干净利落地处理这种情况?

  7. ruby-on-rails - 在 Ruby on Rails 中发送响应之前如何等待多个异步操作完成? - 2

    在我做的一些网络开发中,我有多个操作开始,比如对外部API的GET请求,我希望它们同时开始,因为一个不依赖另一个的结果。我希望事情能够在后台运行。我找到了concurrent-rubylibrary这似乎运作良好。通过将其混合到您创建的类中,该类的方法具有在后台线程上运行的异步版本。这导致我编写如下代码,其中FirstAsyncWorker和SecondAsyncWorker是我编写的类,我在其中混合了Concurrent::Async模块,并编写了一个名为“work”的方法来发送HTTP请求:defindexop1_result=FirstAsyncWorker.new.async.

  8. ruby - 在没有基准或时间的情况下用 Ruby 测量用户时间或系统时间 - 2

    因为我现在正在做一些时间测量,我想知道是否可以在不使用Benchmark类或命令行实用程序time的情况下测量用户时间或系统时间。使用Time类只显示挂钟时间,而不显示系统和用户时间,但是我正在寻找具有相同灵active的解决方案,例如time=TimeUtility.now#somecodeuser,system,real=TimeUtility.now-time原因是我有点不喜欢Benchmark,因为它不能只返回数字(编辑:我错了-它可以。请参阅下面的答案。)。当然,我可以解析输出,但感觉不对。*NIX系统的time实用程序也应该可以解决我的问题,但我想知道是否已经在Ruby中实

  9. ruby - 在 Ruby 中是否有一种惯用的方法来操作 2 个数组? - 2

    a=[3,4,7,8,3]b=[5,3,6,8,3]假设数组长度相同,是否有办法使用each或其他一些惯用方法从两个数组的每个元素中获取结果?不使用计数器?例如获取每个元素的乘积:[15,12,42,64,9](0..a.count-1).eachdo|i|太丑了...ruby1.9.3 最佳答案 使用Array.zip怎么样?:>>a=[3,4,7,8,3]=>[3,4,7,8,3]>>b=[5,3,6,8,3]=>[5,3,6,8,3]>>c=[]=>[]>>a.zip(b)do|i,j|c[[3,5],[4,3],[7,6],

  10. ruby-on-rails - 如何让 Rails View 返回其关联的操作名称? - 2

    我有一个非常简单的Controller来管理我的Rails应用程序中的静态页面:classPagesController我怎样才能让View模板返回它自己的名字,这样我就可以做这样的事情:#pricing.html.erb#-->"Pricing"感谢您的帮助。 最佳答案 4.3RoutingParametersTheparamshashwillalwayscontainthe:controllerand:actionkeys,butyoushouldusethemethodscontroller_nameandaction_nam

随机推荐