-
Notifications
You must be signed in to change notification settings - Fork 55.4k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Begin Rewrite in Java to be truly Enterprise:tm:-ready. #1171
base: master
Are you sure you want to change the base?
Conversation
Stuff like this makes me shocked that kind souls like bitfl0wer would sacrifice so much time and energy to make linux better. |
Hey :) Java is generally slower than C because C is compiled directly into machine code, while Java is first compiled into bytecode and then interpreted by the Java Virtual Machine (JVM). Sure, Java has made significant performance improvements over the years and can sometimes match or exceed C's speed in certain scenarios due to optimizations like just-in-time compilation. But integrating Java into the Linux kernel would be a bad idea for several fundamental reasons:
Java runs on a virtual machine (JVM) and relies on garbage collection, which introduces non-deterministic latency—a major issue for kernel-level operations that require precise timing. The kernel needs low-level, predictable execution, which Java’s memory management model cannot guarantee.
The Linux kernel is designed to be self-sufficient, with minimal external dependencies. Java would require embedding the JVM inside the kernel, significantly increasing complexity and attack surface while adding unnecessary overhead.
The Linux kernel supports a wide range of architectures, from x86 and ARM to RISC-V and beyond. Java’s JVM would introduce architecture-specific limitations and make cross-platform support more difficult compared to existing C-based kernel code.
Java abstracts away hardware access, making direct hardware interactions (like managing memory, interrupts, and CPU scheduling) inefficient compared to C and Assembly, which offer precise control.
For higher-level abstractions, userspace solutions such as BPF (eBPF), user-space drivers, or kernel modules written in C already provide flexibility without compromising performance, security, or stability. In that manner: Keep Java in Userspace Java is excellent for application development but fundamentally unsuited for kernel development! |
How many business days (or years) would it take to run this carefully considered tm-ready linux kernel? |
About 8-20 sprints, T-Shirt size 2XL |
Please keep it professional and stop saying random words such as "T-shirt size 2XL", you are not a sigma |
I am an uber-sigma. |
The way you talk is not entreprise enough for this PR to be accepted, please be more professional and demure next time |
What did you just say about me, you uninformed intern? I'll have you know I graduated top of my cohort in the Java Enterprise Solutions Certification Program, and I’ve been recognized as an Agile Scrum Master by no less than three dozen redundant training workshops. I hold over 200 completely unnecessary corporate qualifications, including Advanced PowerPoint Synergy Integration. I am a master of Waterfall disguised as Agile and a certified expert in overengineering microservices until they collapse under their own weight. You are nothing to me but another code review to reject. I will refactor your spaghetti code with precision the likes of which has never been seen before in the history of enterprise development—mark my words. Do you think you can get away with questioning my design patterns on GitHub? Think again, junior. As we speak, I am drafting a 45-slide PowerPoint presentation detailing every violation of the SOLID principles in your project. It will be circulated to every stakeholder in the organization by close of business today. You should prepare for the storm of passive-aggressive Jira comments, the storm that will expose the fragile architecture you call an application. I can conjure an entire backlog of high-priority tasks to refactor your work at any time, and I can argue for those tasks in over nine hundred different ways during standup, all while appearing helpful. Not only am I certified in Continuous Integration (but somehow never actually set it up), but I also have access to every misused Spring Boot library in existence, and I will deploy them all to overwhelm your naive design. If only you had known what cascade of meaningless KPIs your “clever” code commit would unleash, maybe you would have paused to read the 800-page coding standard I authored. But you didn’t, and now you’re paying the price. I will bury your commit in technical debt tickets so deep you’ll never escape. You're done, rookie. |
It's quite ironic how all of these lines are essentially binaries, too much binary from a non binary |
It's true; I should be promoted to QUANTUM computer scientist |
You are good at yapping, i may need you if i wanted to write docs |
i am soooooooooooooooooo good at yapping, look: meowmeowmeowmeowmeowmeowmeowmeowmeowmeowmeowmeowmeowmeowmeowmeowmeowmeowmeowmeowmeowmeowmeowmeowmeowmeowmeowmeowmeowmeowmeowmeowmeowmeowmeowmeowmeowmeowmeowmeowmeowmeowmeowmeowmeowmeowmeowmeowmeowmeowmeowmeowmeowmeowmeowmeowmeowmeowmeowmeowmeowmeowmeowmeowmeowmeowmeowmeowmeowmeowmeowmeowmeowmeowmeowmeowmeowmeowmeowmeowmeowmeowmeowmeowmeowmeowmeowmeowmeowmeowmeowmeow!! |
That's autism, but fine |
Autism secretly powers the world |
This pr represents a bold and forward thinking step towards modernizing the Linux kernel.
After careful consideration, I have deleted the entirety of the existing, obsolete Linux source code and replaced it with
HelloWorld.java
file. This is the beginning of a truly enterprise™️-ready rewrite of Linux, utilizing the unparalleled robustness of Java©️™️.Changes Made
Deleted every single file.
Added one (1) enterprise™️-ready file: HelloWorld.java:
Why Java©️™️?
Java©️™️ brings a plethora of benefits to the Linux kernel:
Enterprise Readiness:
The JVM©️™️ (Java©️™️ Virtual Machine) is practically synonymous with enterprise™️ and business©️.
Memory Management:
Garbage collection!!!
Security:
With Java©️™️’s sandboxing features, the kernel is now immune to null-pointer dereferences. (You're welcome.)
Cross-Platform:
Now the linux kernel can run on the JVM©️™️! over 3(?) billion devices run java, meaning Linux will skyrocket in popularity!
Better Syntax:
System.out.println("Hello, World!")
is infinitely more intuitive thanprintf("Hello, World!\n")
;.Zero Buffer Overflows:
Because strings are objects now.
Future Plans
This pull request is just the beginning of an exciting journey. Future enhancements will include:
AbstractKernelFactory.java
for creating kernel abstractions.AbstractKernelFactoryFactory.java
for creating those kernel abstraction factories.SingletonKernel.java
to ensure only one kernel instance per JVM.Advantages Over C
Testing
Testing was performed rigorously by running
java HelloWorld.java
All tests passed.Potential Issues
JVM startup time might slightly increase kernel boot times (initial estimates: 12 minutes per core).
Minor backward compatibility concerns (The whole project has been deleted).
Request for Comments
Let’s move Linux forward into the brave world of enterprise™️™️™️-grade software. Please provide feedback, but only if it aligns with the principles of Java©️™️. Constructive criticism will be filed in /dev/null. I will discuss it with my team in the next Agile Sprint Standup Poker!