Git Product home page Git Product logo

jn7163 / src_external_linux Goto Github PK

View Code? Open in Web Editor NEW

This project forked from clipos/src_external_linux

0.0 2.0 0.0 1.3 GB

Linux kernel for CLIP OS with additional patches

Home Page: https://clip-os.org

License: Other

Makefile 0.26% Roff 0.02% C 96.37% Assembly 1.35% C++ 1.35% Objective-C 0.31% Shell 0.10% Perl 0.13% Awk 0.01% Python 0.09% sed 0.01% Yacc 0.02% Lex 0.01% UnrealScript 0.01% Gherkin 0.01% XS 0.01% Perl 6 0.01% Clojure 0.01% M4 0.01%

src_external_linux's Introduction

CLIP OS Kernel

This repository holds the source code for the CLIP OS kernel.

Overview

The CLIP OS kernel is based on Linux. It also integrates:

  • existing hardening patches that are not upstream yet and that we consider relevant to our security model;
  • developments made for previous CLIP OS versions that we have not upstreamed yet (or that cannot be);
  • entirely new functionalities that have not been upstreamed yet (or that cannot be).

Documentation

See the CLIP OS documentation.

Git Workflow

The master branch is the main CLIP OS kernel branch. It is the repo branch and it should only contain merges of other branches, which can be:

  • upstream/<name> branches: those are regularly resynchronized with branches from corresponding upstream projects and thus only contain upstream work. They must be declared as repo metadata in manifest/sources.xml so that people can retrieve all of them using the pull-upstream recipe. Pushes to such branches obviously bypass Gerrit code reviews.
  • feature/<name> branches: those branches are either forked from upstream/ branches or from master, and contain added work. They are merged into master. Any work being merged into feature/ branches must have previously been validated. If such a branch contains work that should ultimately be upstreamed, it is rebased onto every new major kernel version to create a new feature/ branch suffixed with this version, that will also be merged into master. If, on the contrary, a feature/ branch contains work that is not intended for upstream, the new major kernel version (typically, tag v4.x) is merged into it, and the branch is then merged into master.

The master branch is a rolling release branch and must always be in a clean state. Stable branches may be forked from it at some point and supported for some time.

To keep all our history in the master branch even when updating to a new major Linux kernel version (e.g., going from 4.17 to 4.18), we do the following:

# For feature branches that are rebased onto the new major kernel version
$ git checkout -b feature/<branch>-4.18 feature/<branch>-4.17
$ git rebase v4.18
$ git merge --strategy=ours --edit feature/<branch>-4.17

# For feature branches that are not rebased
$ git checkout feature/<branch>
$ git merge --edit v4.18

# Merge (octopus) all feature branches into a temporary branch
$ git checkout -b master-tmp v4.18
$ git merge --edit feature/<branch1> feature/<branch2> ...

# "Import" this merge into the master branch
$ git checkout master
$ git merge --strategy=ours --no-commit feature/<branch1> feature/<branch2> ...
$ git read-tree -um master-tmp
$ git commit

# Delete temporary branch
$ git branch -D master-tmp

This results in a master branch updated to the 4.18 kernel and that can be forward-pushed.

Integration in CLIP OS

The kernel is incorporated into CLIP OS thanks to the clipos-kernel ebuilds located in src/portage/clipos/sys-kernel/clipos-kernel. The cros-workon eclass from Chromium OS is used to handle fetching sources from a Git repository. Different kernel versions can be managed by the use of symbolic links; see the clipos-portage tool located in src/platform/clipos-portage for more information on that.

The kernel is then built as part of the efiboot recipe (see the toolkit documentation for more information) and can be tested using the qemu recipe to fire a new CLIP OS virtual machine.

src_external_linux's People

Watchers

 avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.