1.LINUXåUNIXçåºå«åèç³»
2.开源运动发展史与开源许可证(BSD、源码GPL、源码Apache、源码MIT、源码木兰(中国))的源码那些事儿
3.Unix与Linux的区别?
4.puttyè½è£
å¨linuxç¯å¢ä¸å
5.MIT 6.S081-2022 Lab1: Xv6 and Unix utilities
6.开源协议专题(七):BSD、MIT、源码进口红酒都有海关溯源码吗ApacheL
LINUXåUNIXçåºå«åèç³»
linuxå°±æ¯æ¨¡ä»¿unixçé¢ååè½çæä½ç³»ç»ï¼ä½æ¯æºä»£ç åunixä¸ç¹å ³ç³»é½æ²¡æï¼
æ¢å¥è¯è®²ï¼linuxä¸æ¯unixï¼ä½åunixï¼ï¼ï¼
开源运动发展史与开源许可证(BSD、源码GPL、源码Apache、源码MIT、源码木兰(中国))的源码那些事儿
开源运动始于上世纪年代末期,随着Unix系统的源码诞生,源代码的源码开放成为了可能。Unix的源码发明者之一肯·汤普森,为了提高编程效率,源码设计了C语言。随后,Unix逐渐商业化,自由软件的概念随之诞生。理查德·斯托曼于年发起自由软件运动,创建了GNU项目,并引入了Copyleft的概念,通过GPL(GNU通用公共许可证)来保护软件的自由使用和分发。年,Linux的linux如何调出源码诞生标志着开源软件进入了新的阶段,它遵循了GPL许可,并于年加入GNU项目。开放源代码(Open Source)的概念在年由埃里克·雷蒙德提出,他倡导共享源代码可以产生更好的结果,促使了开放源代码促进会(OSI)的成立,以协调不同的开源许可标准,使得商业公司也能使用开源软件,而无需公开源代码。
开源许可证大致分为两大类:Copyleft(如GPL)和Permissive(如MIT、BSD)。Copyleft许可证要求任何基于该许可证软件的修改和衍生作品也必须遵循相同的许可证,以保持代码的自由性和可访问性。Permissive许可证则给予用户更大的灵活性,允许软件被自由地使用、修改和分发,但不强制要求开源或提供源代码。常见的Copyleft许可证有GPL,而MIT、BSD和Apache许可证属于Permissive类型。
在中国互联网出海背景下,开源合规成为重要议题。无论是使用开源代码还是计划将自己的软件以开源方式发布,都需要了解开源软件及其许可证的相关知识。中国开放原子基金会和木兰(中国)开源许可证的个人网站 php源码出现,旨在为中国开发者提供一个既符合国际标准又适应当地法律和文化背景的开源许可选择。木兰许可证的引入,为解决中国开发者在使用开源代码时遇到的特定法律问题提供了解决方案,同时满足了国际开源社区的需求,促进了全球开源生态的发展。
Unix与Linux的区别?
1、开源情况:UNIX是商业化的,而Linux是开源的,提供免费且公开的源代码。
2、硬件适用性:UNIX系统通常与特定的硬件配套,这意味着像AIX、HP-UX这样的UNIX系统不能在不支持的硬件上安装,而Linux能够运行在多种硬件平台上。对于初学者来说,可以先学习Linux,因为Linux容易在虚拟机上安装,减少了新手误操作的风险。在选择Linux发行版本时,可以考虑Ubuntu、Linux Mint等。
3、历史背景:UNIX诞生于年,当时贝尔实验室(Bell Labs)参与了由通用电气(General Electric)和麻省理工学院(MIT)共同发起的假x站源码计划,目的是开发一套支持多用户、多任务、多层次的MULTICS操作系统。到了年,尽管那台PDP-7计算机只能支持两个用户,但Brian Kernighan戏称他们的系统为"UNiplexed Information and Computing Service",缩写为"UNICS",后来这个名字因谐音被大家接受,并正式称为"UNIX"。年也因此被定为UNIX的元年。
puttyè½è£ å¨linuxç¯å¢ä¸å
puttyå¼å§ççæ¬åªæ¯æWindowsç³»ç»ï¼åæ¥ççæ¬å¼å§æ¯æUnixç³»ç»ï¼puttyå®æ¹ç½ç«ä¹è¯´å®æ¯ä¸ªWindows客æ·ç«¯ï¼ä¸è¿å®ç½ä¸æUnixçæ¬çæºä»£ç æä¾ä¸è½½ãèä¸puttyæ¯MITåè®®çå¼æºè½¯ä»¶ï¼æ以å¯ä»¥ç¨å®ç½ä¸éè¿çUnixçæ¬çæºä»£ç å¨Linuxç³»ç»ä¸ç¼è¯å®è£ ï¼æ¹æ³æ¯å ä¸è½½å¹¶è§£åæºä»£ç å ï¼ç¶åç¨cdå½ä»¤åæ¢å°æºä»£ç ç®å½ï¼ååæ¢å°unixåç®å½ï¼å¨è¿ä¸ªunixåç®å½ä¸è¿è¡ç¼è¯ï¼ç¼è¯æ¹æ³æ¯å æ§è¡ï¼./configureï¼åæ§è¡ï¼makeï¼å¦æç¼è¯æåï¼å¨ç®å½ä¸ä¼æä¸ä¸ªå为puttyçäºè¿å¶æ件ï¼ç¨å½ä»¤ï¼./puttyæ§è¡å°±å¯ä»¥å¯å¨puttyäºã
MIT 6.S- Lab1: Xv6 and Unix utilities
开始实验前,建议参考知乎上某同学的教程安装实验环境,成功后,验证环境可用,通过运行ls命令。
进入第一个任务:实现sleep功能
在user/sleep.c文件中编写代码,模拟Unix中的sleep功能,程序运行后应如图所示,注意argv[0]通常为程序名,实际参数从argv[1]开始传递。
接下来是任务二:pingpong
任务要求父进程负责数据传递,子进程负责接收。运行时应达到预期的交互效果。
第三个挑战是usb视频输出 源码素数计算,当第一个进程达到时,应等待整个管道(包括所有子进程和孙子进程)终止。确保主进程在所有输出打印完毕、其他素数进程退出后才退出。筛法求素数的思路是通过递归和管道,删除特定倍数的数,形成进程树。删除第行的wait(0)会导致程序结构问题,孤儿进程管理需保持wait(0)以确保正确结束。
第四个任务:find功能的实现
最后,你需要实现一个类似xarg的功能模块。xarg是Linux命令行工具,用于从标准输入读取参数并传递给其他命令。与管道的不同在于,xarg能处理多行输入,提供便捷的命令参数传递方式。你可以参考知乎用户xiaochong的解释和示例来理解其用法。
开源协议专题(七):BSD、MIT、ApacheL
上篇文章介绍了 GPL、MPL、LGPL ,本文继续介绍剩下的三个许可证 BSD、MIT、Apache License。
四、BSD 许可证:
1、概念:
BSD 许可协议,即 Berkeley Software Distribution license 的简称,是由加州大学伯克利分校发布并维护的开源软件许可证。BSD许可证是自由软件中使用最广泛的许可协议之一。
2、两个概念:
BSD:人们常说的BSD,指的是 Berkeley Software Distribution,即伯克利软件套件,是加州大学伯克利分校在AT&T贝尔实验室的Unix操作系统基础上,开发打包的操作系统及相关软件套件。
BSD许可协议:BSD套件遵循某种开源许可证的方式发布,这种许许可证因此而得名,被叫做 BSD许可证。
3、BSD协议特点:
BSD开源协议是一个给予使用者很大自由的协议,可以自由的使用、修改源代码,也可以将修改后的代码作为开源或者专有软件再发布。
4、版本演进历史:
BSD协议的初稿内含有一项额外的条款,要求所有从以BSD许可证授权的软件派生著作,都必须要包含一段文字以交代源代码的来源。该条文列于原BSD许可证的第三条。
GNU项目将这个称为“令人感到不舒服的BSD交代条款”,GNU工程认为存在两个问题:
应自由软件基金会和GNU计划的发起者斯托曼的请求,年7月日,伯克利技术许可办公室的主管 William Hoskins 删除了BSD许可证的第三条。从此以后,自由软件作者就可以方便地采用BSD许可证下的软件,从而跟GPL下的作品融合。
原来的许可证有时被称为“BSD-old”(老BSD)或“4-clause BSD”(四句版BSD),当前的BSD许可证有的被称为“BSD-new”(新BSD)、“revised BSD”(修订的BSD)或“3-clause BSD”(三句版BSD)。
5、协议分析:
当发布使用了BSD协议的代码或以BSD协议代码为基础做二次开发自己的产品时,需满足以下三个条件:
BSD协议鼓励项目代码共享,但需要尊重作者的著作权。BSD协议由于允许使用者修改和重新发布代码,也允许在BSD代码上开发商业软件发布和销售,因此是对商业集成很友好的协议。
很多公司在选用开源产品的时候都首选BSD协议,因为可以完全控制这些第三方的代码,在必要的时候可以修改或者二次开发。遵守BSD 协议的软件,允许用作商业用途,甚至可按照专属许可证进行再发布。
五、MIT 协议:
1、概念:
MIT 许可协议:即 The MIT License,该许可协议之名源自麻省理工学院(Massachusetts Institute of Technology, MIT),又称“X许可协议”(X License)或“X许可协议”(X License)。
2、版本演进历史:
,由自麻省理工学院(MIT)发布。
3、协议特点:
MIT许可协议是许多软件许可条款中被广泛使用的其中一种。与其他常见的软件许可协议(如GPL、LGPL、BSD)相比,MIT是相对宽松的软件许可协议,赋予软件被许可人更大的权利与更少的限制。
4、协议分析:
5、其他重要特性:
有许多团体均采用MIT许可证,例如著名的SSH连线软件PuTTY与X窗口系统、Expat、Mono开发平台库、Ruby on Rails、Lua等等也都采用MIT许可协议。
六、Apache 许可协议:
1、概念:
Apache许可证,即 Apache License,是一个由Apache软件基金会(ASF)发布的自由软件许可证。
Apache许可证最初为 Apache Web 服务器而撰写,Apache许可证在Apache社区内外被广泛使用;Apache基金会下属所有项目都使用Apache许可证;许多非Apache基金会项目也使用了Apache许可证。
官网: apache.org/licenses/
2、版本演进历史:
Apache License 1.0,年发布。
apache.org/licenses/LIC...
Apache License 1.1,年发布。 apache.org/licenses/LIC...
Apache License 2.0,年发布。 apache.org/licenses/LIC...
3、协议要求:
Apache许可证,具体要求如下:
对所有未修改的部分应用相同的许可证,并且在每个许可文件中,必须保留再分发代码中的任何原始著作权、专利、商标和归属通知(不需要包括任何部分的派生作品);
在每个更改的许可文件中,都必须添加一条通知,说明对该文件进行了更改。
不强制要求派生和修改产物使用相同的许可证进行发布。
4、协议分析说明:
如果声明文本文件是作为原始作品发布的一部分,则派生作品必须包含该通知文本文件的可读副本,可以是文档或显示在软件中。
声明文件的内容不会修改许可证,因为它们仅用于提供信息,并且可以在许可证文本中添加更多属性声明,前提是这些声明不能被理解为修改许可证。修改可能有适当的著作权声明,并可能为修改提供不同的许可条款。
七、许可证的对比与总结:
对于一个开源协议来说,规定得太宽松,会导致作者丧失对开源软件的很多权利,规定的太严格,又不利于开源软件的使用和传播。用一张图总结以上介绍的几个主流开源许可证的权限宽松情况:
我们在选择使用开源软件、或者准备开源自己的软件时,一定要明白自己的用途,选择合适的许可证。希望我们站在巨人肩膀上前行的同时,不忘用法律的武器来为我们自身保驾护航。
UNIXç³»ç»çå«ä¹ï¼
UNXI(表示ä¸ç±»ï¼å æ¬ä¸äºå·¨åï¼å¤§å计ç®æºå家çä¸ç¨æä½ç³»ç»ï¼ï¼ç±UNXIæ´¾ççèªç±è½¯ä»¶æLinuxã
UNIXæä½ç³»ç»è¯çäºå¹´ï¼å®ç第ä¸ä¸ªçæ¬æ¯å¹´ç±Dennis RitchieåKen Thompsonå¨AT& Tè´å°å®éªå®¤å®ç°çï¼æåçUNXIçæ¬æ¯ç¨æ±ç¼è¯è¨ç¼åçï¼å¼å§é常çç²ç³ï¼AT&Tå°å®ååç»å个å¦æ ¡åç§ç æºæï¼ä»¥ä¾¿å¤§å®¶ä½¿ç¨è¿ç¨ä¸å 以æ¹è¿ã年代æ«ï¼å å·å¤§å¦ä¼¯å å©åæ ¡è®¡ç®æºç³»ç»ç 究å°ç»ï¼CSRGï¼ä½¿ç¨Unix对æä½ç³»ç»è¿è¡ç 究ï¼å¹¶ä¸æ¹è¿äºUnixï¼å¢å äºå¾å¤å½æ¶é常å è¿çç¹æ§ï¼å æ¬æ´å¥½çå å管çï¼å¿«éä¸å¥å£®çæ件系ç»çï¼å¤§é¨ååæçæºä»£ç é½è¢«éæ°åè¿ï¼ä»¥æ¯æè¿äºæ°ç¹æ§ã