[linux] Linux Kernel one C program

Davensmith, Maximillian Christopher davenpom at oregonstate.edu
Sun Sep 19 19:15:27 PDT 2021


To my knowledge the linux kernel is a bit of a beast that linux distros 
are built upon.  The kernel likely is written in Assembly language, but 
could use C with bits of assembly in it.

I don't know if they've released the code in the kernel for anyone to 
peruse, but you could take a look at it if you wanted to check how it runs.
I'm not certain I know what you're trying to do either, but emulating 
would be an interesting task.

On 9/19/2021 1:42 PM, Ritter, Gabriel wrote:
> From my understanding, I do not think this would work as you are 
> describing it and in general is highly nontrivial.
>
> The Linux kernel is complicated, does not work like a regular 
> application, is closely tied to hardware (not sure if 
> quantumplayground has an emulator so would also need to supply that in 
> the code), and the size is probably too large to be accepted by 
> quantumplayground.
>
> Bitcode is a universal format used by the LLVM framework, and 
> Emscripten is based on LLVM, however cross language compilation 
> support is not really possible with the Linux kernel yet for any 
> language.
>
> The best approach would probably be to code a "simple" application 
> that mimics an simplified operating system. Maybe some implementations 
> already exist. It may be useful to read some textbooks on operating 
> systems and papers on minimal operating systems like microkernels, 
> unikernels, and rump kernels
>
> On 9/19/21 1:19 PM, Daniel Ortiz wrote:
>>
>> [This email originated from outside of OSU. Use caution with links 
>> and attachments.]
>>
>> Here is how I can use it the Linux Kernel one C program. I use 
>> Emscripten to convert it into JavaScript code, and then try to run it 
>> in Quantum Playground and if it doesn't for size or language 
>> compatibility issue(s) then it would need to be figured out later how 
>> to do with that/those issue(s). It is a uncommon use case. Please let 
>> me know if what you recommended earlier works for this if you want.
>>
>> Home page of Quantum Computing Playground: 
>> http://www.quantumplayground.net/#/home 
>> <http://www.quantumplayground.net/#/home>
>>
>> On Sun, Sep 19, 2021 at 3:05 PM Ritter, Gabriel 
>> <ritterg at oregonstate.edu <mailto:ritterg at oregonstate.edu>> wrote:
>>
>>     I'm not completely sure what you mean or what you are trying to
>>     do. Are
>>     you trying to compile a standalone Linux kernel and maybe run it
>>     with QEMU?
>>
>>     Otherwise the closest thing I can think of is using gllvm/wllvm to
>>     compile it into single bitcode file which you can load into LLVM and
>>     then modify and recompile to do whatever you want. This is technique
>>     used in many research papers. There are similar ways to do this at
>>     the
>>     source code level with Clang (the bitcode file is at a lower 
>> level of
>>     abstraction, some things are easier/harder to do there). Overall
>>     these
>>     compilation processes can be finicky and may require decent 
>> hardware,
>>     and applying modifications may be nontrivial.
>>
>>     https://github.com/SRI-CSL/gllvm <https://github.com/SRI-CSL/gllvm>
>>     https://clang-analyzer.llvm.org/scan-build
>>     <https://clang-analyzer.llvm.org/scan-build>
>>     https://github.com/ClangBuiltLinux/tc-build
>>     <https://github.com/ClangBuiltLinux/tc-build>
>>     https://github.com/ClangBuiltLinux/boot-utils
>>     <https://github.com/ClangBuiltLinux/boot-utils>
>>
>>
>>     On 9/19/21 11:48 AM, Daniel Ortiz wrote:
>>     > Hello everyone,
>>     > May someone tell me how to put the Linux Kernel into one C
>>     program? It
>>     > would take a lot of work to do, so unless you decide you are
>>     going to
>>     > do that work give me pointers on what to do.
>>     > From, Daniel Ortiz
>>     >
>>     > _______________________________________________
>>     > linux mailing list
>>     > http://lug.oregonstate.edu/ <http://lug.oregonstate.edu/>
>>     > http://lists.oregonstate.edu/mailman/listinfo/linux
>>     <http://lists.oregonstate.edu/mailman/listinfo/linux>
>>
>>     _______________________________________________
>>     linux mailing list
>>     http://lug.oregonstate.edu/ <http://lug.oregonstate.edu/>
>>     http://lists.oregonstate.edu/mailman/listinfo/linux
>>     <http://lists.oregonstate.edu/mailman/listinfo/linux>
>>
>
> _______________________________________________
> linux mailing list
> http://lug.oregonstate.edu/
> http://lists.oregonstate.edu/mailman/listinfo/linux


More information about the linux mailing list