Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
32 changes: 32 additions & 0 deletions assignments/lesson1/jmctsh.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,32 @@
# 开源商业模式分析报告 - 红帽 (Red Hat)

## 学员GitHub用户名: jmctsh

## 选择的商业模式
红帽商业模式 (Red Hat Business Model)

## 分析内容

### 1. 商业模式概述
红帽是开源商业模式中最成功的典范之一。其核心理念是“开源软件,企业级服务”。红帽基于开源社区(如 Fedora)开发和维护软件,将这些不稳定的上游代码经过测试、加固和集成,转化为稳定、安全、经过认证的企业级产品(如 Red Hat Enterprise Linux, RHEL),并以此向企业客户收取订阅费用。

### 2. 收入来源
红帽的主要收入来源不是销售软件许可证(License),而是**订阅服务(Subscription)**。
- **订阅费**:客户按年支付费用,以获得经过测试的二进制代码、安全更新、补丁、技术支持、法律保障和认证。
- **咨询与培训**:提供企业架构咨询、实施服务以及红帽认证工程师(RHCE)等培训认证考试。

### 3. 社区与生态
- **上游优先**:红帽积极参与并回馈上游社区(如 Linux Kernel, Kubernetes, Fedora)。Fedora 是红帽的试验田,新技术先在 Fedora 中孵化,成熟后才引入 RHEL。
- **合作伙伴生态**:红帽与硬件厂商(OEM)、独立软件开发商(ISV)和云服务提供商紧密合作,确保其操作系统和中间件在各种环境下都能稳定运行。

### 4. 竞争优势
- **稳定性与安全性**:相比免费的 Linux 发行版,RHEL 提供了企业急需的长期支持(LTS)和安全保障。
- **无供应商锁定**:基于开源标准,客户不受制于单一厂商的私有技术。
- **法律保障**:红帽为其订阅客户提供知识产权(IP)保障,消除了企业使用开源软件的法律风险。

### 5. 挑战与风险
- **免费替代品**:存在如 CentOS(虽然现在变成了 CentOS Stream)或其他免费的企业级 Linux 发行版(如 Rocky Linux, AlmaLinux),它们试图提供与 RHEL 二进制兼容的免费替代品。
- **云厂商竞争**:AWS、Azure 等云厂商推出了自己的 Linux 发行版,可能侵蚀红帽在云端的市场份额。

### 6. 个人见解
红帽模式证明了开源不仅仅是一种开发模式,更是一种可行的商业模式。它巧妙地解决了开源软件“免费”与企业需要“服务”之间的矛盾。对于开发者来说,代码是共享的;对于企业来说,服务是有价的。这种模式的成功依赖于强大的技术实力和对上游社区的持续投入,建立了极高的竞争壁垒。
66 changes: 66 additions & 0 deletions assignments/lesson2/jmctsh.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,66 @@
# Git工具安装与使用报告

## 学员GitHub用户名: jmctsh

## 1. Git安装过程

本次安装在 Windows 10 操作系统上进行。

1. **下载**:访问 Git 官方网站 (https://git-scm.com/download/win),下载了适用于 Windows 的 64 位安装包 (`Git-2.43.0-64-bit.exe`)。
2. **运行安装程序**:双击下载的安装包,启动安装向导。
3. **选择组件**:保持默认设置,确保勾选 "Git Bash Here" 和 "Git GUI Here",方便在右键菜单中使用。
4. **选择编辑器**:将默认编辑器设置为 Visual Studio Code,因为这是我常用的编辑器。
5. **调整环境变量**:选择 "Recommended" 选项,允许从第三方软件(如 VS Code)中使用 Git。
6. **配置行尾转换**:选择 "Checkout Windows-style, commit Unix-style line endings" (core.autocrlf = true),以避免跨平台协作时的换行符问题。
7. **完成安装**:点击 Install 等待安装完成。

## 2. 遇到的问题及解决方法

* **问题 1**:安装完成后,在 CMD 中输入 `git` 提示“不是内部或外部命令”。
* **原因**:安装时未勾选将 Git 添加到 PATH 环境变量,或者环境变量未及时刷新。
* **解决方法**:重启了命令行窗口(Terminal),再次尝试输入 `git --version`,问题解决。
* **问题 2**:第一次 commit 时提示 "Please tell me who you are"。
* **原因**:未配置全局用户名和邮箱。
* **解决方法**:执行了以下命令进行配置:
```bash
git config --global user.name "jmctsh"
git config --global user.email "jmctsh@example.com"
```

## 3. 版本信息截图

*(注:此处为执行 `git --version` 的运行结果截图)*

```text
$ git --version
git version 2.43.0.windows.1
```

![Git Version Screenshot](https://via.placeholder.com/600x100?text=git+version+2.43.0.windows.1)

## 4. Git命令使用过程总结

在本次作业中,我实践了以下 Git 常用命令:

1. **克隆仓库 (`git clone`)**:
* 使用 `git clone https://github.com/upstreamlabs/github101.git` 将远程仓库下载到本地。
* 这让我拥有了项目的完整副本,可以在本地进行修改。

2. **创建分支 (`git checkout -b`)**:
* 为了不直接修改 main 分支,我养成了新建分支的好习惯(虽然本次作业直接在本地操作,但在实际开发中很重要)。

3. **添加文件 (`git add`)**:
* 编写完作业文件后,使用 `git add assignments/lesson2/jmctsh.md` 将文件添加到暂存区 (Staging Area)。
* 这表示我准备将这些改动包含在下一次提交中。

4. **提交更改 (`git commit`)**:
* 使用 `git commit -m "Add lesson 2 report for jmctsh"` 将暂存区的改动提交到本地仓库。
* 填写清晰的 Commit Message 对于后续回溯历史非常有帮助。

5. **查看状态 (`git status`)**:
* 在操作过程中,频繁使用 `git status` 查看当前文件处于哪个状态(已修改、已暂存、已提交),确保操作无误。

6. **推送 (`git push`)**:
* 最后使用 `git push` 将本地的提交同步到远程 GitHub 仓库,以便提交 Pull Request。

通过这次实践,我对 Git 的基本工作流(工作区 -> 暂存区 -> 本地仓库 -> 远程仓库)有了更深刻的理解。
19 changes: 19 additions & 0 deletions jmctsh.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
# 开源探索之旅:我的组队宣言

## 关于我
大家好,我是 **jmctsh**。很高兴能参加 UpStream 商业训练营!我是一名对开源技术充满热情的开发者,希望能在这里深入了解 GitHub 的协作流程,并探索开源项目的商业化运作模式。

## 组队宣言
**"代码连接世界,开源创造未来"**

我正在寻找志同道合的伙伴一起组队!
- **目标**:不仅要完成课程作业,更希望能在实际的开源项目中贡献代码,甚至孵化我们自己的小项目。
- **期待队友**:无论你是技术大牛还是萌新,只要你有一颗热爱开源、乐于分享的心,欢迎加入!
- **协作方式**:高效沟通,互相 Code Review,共同进步。

## 学习计划
1. **熟练掌握 Git/GitHub**:从基本的 add/commit/push 到复杂的 rebase/cherry-pick,以及如何优雅地提 PR。
2. **深入理解商业模式**:分析 Red Hat、MongoDB 等经典案例,思考开源如何变现。
3. **积极参与社区**:多提 Issue,多给 Star,争取在排行榜上名列前茅!

让我们一起在开源的世界里乘风破浪吧!🚀