有一种豁达叫开源

人们对软件的态度是经历过很多次变化的。

在现代计算机研发初期,核心问题是硬件,寻找实现记忆的方式,建造庞大的机器。那时的大牛们都不太重视软件,把编程的事情交给女生去做,因为此,早期大型机上的程序员都是以女生为主,比如ENIAC上的六朵玫瑰。

5e916d7c598eec8770cf42ec066f891e.png

在ENIAC上编程的女程序员(六朵玫瑰中的两位) (美国陆军档案照片)

在现代计算机商业化之后,越来越多的人意识到了软件的重要性。但是大多数计算机公司仍是以销售硬件为主的,当然上面一般都是要包含软件的,因为没有任何软件,那么计算机就是废物,不如砖头。

据说,比尔•盖茨的名言中有一句是:软件创造价值。不要小看这句话,在微软成立的70年代里,很多人还是认识不到这句话的重要性和伟大的。即使是当时做软件的人,对这句话的认识也不够深刻。比如和比尔盖茨一起创业的保罗•艾伦据说就坚持要做硬件。微软早期也确实做了一些硬件,包括给苹果电脑使用所谓软卡,名字叫Z-80 SoftCard。

1543e0344412b7d648d731a303a093ca.png

微软的成功,让更多人意识到了软件的价值。

当很多人都认可软件的价值后,软件便可以独立销售而且卖很高的价格了。在PC鼎盛的90年代里,一些普通的个人用户也愿意掏钱来买软件。当时销量很高的一种软件便是杀毒软件,一张3寸的可启动软盘,售价在100元到几百元之间,今天想想都觉得有点神奇。

正当人们慢慢习惯要为软件付钱的时候,软件团队内部杀出了一路新的人马,他们打着自由的大旗,高声说:我的软件免费。

免费的力量太强大了,在免费面前,任何收费的店铺都将面临破产。

今天,软件开源已经成为一种不可阻挡的潮流,一股不可撼动的力量。

软件太复杂了,软件太庞大了,必须要全社会一起来做。对于根本无法完全用文档描述的软件来说,开放源代码是最高效的全社会协作方式。

但是开放源代码也意味着把最核心的资产公之于众,“啥都说出去了”,不仅自己的用户会用,自己的竞争对手也会用。

于是,对于很多商业公司来说,便有一种纠结,是否要开源,是开,还是不开。

很长一段时间里,Intel的软件部门主管就是Linux基金会的主席,因为此,Intel做为开源软件的旗手,是要做好模范带头作用的。事实上,Intel也确实开放了大量的源代码,甚至文档,包括内部都曾比较敏感的GPU设计文档(在01.org上)。

但也有一些公司,是不愿意开源的。比如Nvidia便一直不肯把GPU的内核驱动源代码开放出来。为此,Linus大神曾经公开叫板,说Nvidia是“The single worst company”,并动粗口痛骂。

a3da1784f65579f0aa133a4b6707d2c6.png

569e9e4cbe5026bb3239196f309bbf1b.png

其实不愿意开源的不仅仅是Nvidia。在有开源旗手称号的Intel公司内部也有一些部门和人是不愿意开源的。愿意开源的主要是软件部门,而芯片设计部门对开源是有顾虑的,所以为了防止软件部门把东西都开放出去,有时硬件团队就不愿意把资料给到软件部门去。

在中国,不愿意开源的公司就更多了。明明是属于开源范围内的Linux内核驱动,有些公司就是不愿意开放。有时是这样的理由,有时是那样的理由。有的是要先谈商务,有的可能是要上门自取。

于是便有了科技网红上门自取源代码的故事。

399c1fcacbefaef10254e493742ce8a9.png

在昨天完成了GDK8的新版本镜像后,格蠹的小伙伴们便都放假了。今天一早,我一个人到办公室,要做的第一件事就是要开放源代码。

在开源这件事上,大多数人都是要求别人开源时说的震天响,轮到自己开源时慢慢腾腾,但是格蠹不要这样做。11月份发布GDK8的初始版本后,我就想把源代码上传到github开源出去,但是因为代码量很大,当时又在外面出差,让小伙伴打包发给我后,我上传几次都失败了。

有了上次的积累,这一次进展的顺畅很多。但在尝试以老的git信息基础上操作时失败了。

git branch -M main

error: refname refs/heads/master not found

fatal: Branch rename failed

于是我把.git目录移动到其它地方,准备以全新的方式提交。

先git  init,再提交一个简单的readme。

git   add README.md

git  commit -m "initial commit for WUCHENG release of YANZI series for GDK8"

因为github不再接受密码方式登录:

remote: Support for password authentication was removed on August 13, 2021. Please use a per                                                                   sonal access token instead.

remote: Please see https://github.blog/2020-12-15-token-authentication-requirements-for-git-                                                                   operations/ for more information.

fatal: Authentication failed for 'https://github.com/gdk8/kernel.git/'

所以花了一些时间在产生RSA token和注册上。关键的步骤是:

先用sshgen产生好RSA的密钥对,再启动ssh agent。

 eval "$(ssh-agent -s)"

然后把密钥加给ssh agent:

ssh-add id_yanzi

可以使用ssh-add -l来观察是否加成功。

而后很关键的另一个动作是把git的远程方式从https改为ssh,即:

git remote set-url origin git@github.com:gdk8/kernel.git

接下来增加所有文件:

git add -A

下达提交命令:

git commit -m “”

最后发布push,推上互联网:

git push

可能是因为很多公司都放假了,所以今天的网络很给力,我转身倒茶回来就上传完毕了。

a894afaaa2d263a0dc76a078b0bd134b.png

7万7千多个文件,247MB的压缩包,里面包含了Linux内核、硬件设备的驱动程序,还有固件源代码(DTS),脚本文件等。

d44b7b003e204fc2e4ec4abe024c3df0.png

其中也有格蠹修改过的代码,以及新增的模块,比如用来辅助内核调试的NDB模块。

e2e5b91f963a6dc131cfed6d81877167.png

软件庞大而且复杂,必须要全社会一起来做。有一种纠结,叫要不要开源,也有一种豁达,叫我要开源。^_^

(写文章很辛苦,恳请各位读者点击“在看”,也欢迎转发)

*************************************************

正心诚意,格物致知,以人文情怀审视软件,以软件技术改变人生

扫描下方二维码或者在微信中搜索“盛格塾”小程序,可以阅读更多文章和有声读物

b31c33decaf38460c1e1b0f57c3e9061.png

也欢迎关注格友公众号

a9ee8c667b23942d2ebc2616bde6ad41.png

喜欢此内容的人还喜欢

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值