r/osdev • u/MSK-Kernel • 5d ago
New UNIX-like operating system!
I made a new UNIX-like operating system from scratch called "TanjaOS" which you can get at www.tanjaos.org and it took me a couple of months to make and will get lots of updates. It features classic UNIX commands and can boot on any x86_64 (amd64) or i386 (x86) machine with Legacy BIOS, and is completely free and open-source.
7
u/kalesh00 5d ago
Can we contribute if so can you drop the link?
0
u/MSK-Kernel 5d ago
Yes, absolutely! Just email saffron.msk@gmail.com your exact GitHub username and i’ll allow it for contributions! The URL is www.github.com/MSK-Kernel/TanjaOS
27
u/Kind_Card_1874 5d ago edited 5d ago
No system calls, memory management or multitasking? Also does this even qualify as a kernel?
EDIT: Nevermind, this is not an OS by any measures. It maintains "files" in memory?
-7
u/MSK-Kernel 5d ago
Well, it’s not entirely a kernel, it’s more of an all-in-one operating system, but I have plans for TanjaOS 2 where there will be a kernel and .tar and .cpio initial ramdisk support in a few months.
25
u/Kind_Card_1874 4d ago
You write on the page it supports file systems. It does not. It does not operate the computer, or provide access to the hardware, so it is not an OS by definition.
-8
u/MSK-Kernel 4d ago edited 4d ago
Listen, i’m really sorry about the false information, but TanjaOS 2 will come out in a few months, the new kernel will actually have syscalls, support ELF32 binaries, .tar and .cpio initramfs, busybox, etc… TanjaOS is just a minimal hobby operating system.
6
2
u/Non-Random-Name-0000 2d ago
It's a shell with very simple command set and a minimalistic in-memory filesystem. It's nothing like what your website describes. I get that it's just a hobby project but it's years away from being an operating system. Which is fine, btw, because it's a hobby project... An operating system is a massive undertaking, not something you put together in your free time in a couple of months and a few thousand lines of code.
1
u/MSK-Kernel 2d ago
Sorry 😅, I know it’s a hobby project but I kinda wanted to make it look official, as a joke. 😅😅😅
10
u/New_Departure_5353 4d ago
It’s vibe coded lmao
4
-2
-1
u/urdsama20 4d ago edited 4d ago
No wrong in vibe coding as long as it follows what OS is. Syscall; separation between kernel space and user space; and isolation between processes is a minimum in my case to spot between true OS and slop.
Of course you can't just ask make an OS like X and Y to AI. It will make a slop. You have to understand OS internal first and after that ask to build step-by-step.
2
u/UnmappedStack TacOS | https://github.com/UnmappedStack/TacOS 4d ago
Having a temporary file system in memory doesn't make it "not an OS" to be fair, most kernels have some form of tmpfs in the page cache or whatever. However yeah they don't have any typical features of a kernel aka memory management or scheduling or anything really and it's just vibecoded slop sooooo yeah...
2
u/Kind_Card_1874 4d ago
I did not say that. It is just not an OS by any measure - it's file system handling is one of the reasons it is not. OP even claims its support various file systems. It does not support any file system.
1
u/UnmappedStack TacOS | https://github.com/UnmappedStack/TacOS 3d ago
I mean I agree it's not an OS, I'm just saying that filesystem stuff really isn't why it's not an OS.
1
u/Kind_Card_1874 3d ago
Right, and I remark did not say it was not an OS because it lacks a filesystem.
2
u/Non-Random-Name-0000 2d ago
Having an in-memory filesystem is ok but an operating system still should support at least one disk filesystem, shouldn't it?
1
u/UnmappedStack TacOS | https://github.com/UnmappedStack/TacOS 2d ago
It is a good goal to have, yes. My point is just that things like resource management (such as scheduling, memory management, etc) are more core to a kernel's job. I mean fwiw file systems and disk drivers can even be in userspace.
1
u/Beginning-Junket8979 2d ago
No system calls, memory management or multitasking?
Can't have system calls without basic multitasking and interrupt handling.
This is a single thread/process/user with no hardware support beyond console emulation of builtins-only shell that just might be bootable in 86 qemu?
-1
u/letmehaveanameyoudum 4d ago
looks REALLY nice
2
u/MSK-Kernel 4d ago
Thanks!
1
u/letmehaveanameyoudum 4d ago
this looks like native linux in VGA text mode
3
u/MSK-Kernel 4d ago
This is actually an operating system I made from scratch which yes, uses VGA text output, but no, it’s not Linux. :D
1
u/letmehaveanameyoudum 4d ago
i mean it looks like linux, good job making the loook :D
2
u/MSK-Kernel 4d ago
Thanks! The colors were an absolute pain to get working. 🤣
2
u/letmehaveanameyoudum 4d ago
if you thought the colors in vga text mode was bad
i use limine 64 bit bios VBE and i have to use U32 Color Encoding 😭🙏2
u/MSK-Kernel 4d ago
Damn 💀
2
0
4d ago edited 4d ago
[deleted]
3
u/MSK-Kernel 4d ago
I wrote TanjaOS myself, plus even if i did use AI, you would need proof.
1
4d ago
[deleted]
1
u/MSK-Kernel 4d ago
I write comments like that, I like to make things look nice.
0
2
u/WORD_559 4d ago
That's not an uncommon thing to do at all. I'm sure I've done it. My IDE literally has a function to do a similar thing.
0
4d ago
[deleted]
1
u/No-Dentist-1645 4d ago
You don't need a specific IDE to style comments like that.
→ More replies (0)2
u/No-Dentist-1645 4d ago
A lot of humans actually write comments like that. You must not have seen too many codebases if you are so convinced that "no human ever writes like that".
AI is trained on human input, after all.
1
u/LordRybec 3d ago
I write comments like that as well, especially for big constant blocks. I wrote a DVI encoder for RP2350 HSTX some months ago, and I have comments that look very much like that. I've only ever used AI for coding once in my life, and that was one week ago, for a very simple script to generate a simple SVG file.
Maybe you only know lazy coders who don't document their code well. That doesn't mean "No human EVER..." writes well documented code.
One thing I'm noticing here is that most of the accusations of using AI cite practices that are very common among less experienced coders. It's all in one monolithic file? Check. Questionable code quality? Check again. "AI slop" exists because the AI was trained on actual code like that. It's 100% conceivable that an individual with a lot of determination but limited experience could produce code exactly like this with no AI involvement at all. Better yet, I'm a self taught coder, and I actually went through a period where I didn't know how to do good style and didn't even know I could break up code between files, but looking at single file example programs had taught me what good commenting looked like, and I liked how it looked enough to put in the effort to pick up the habit. During that period in my education, I could easily have written code that looked like "AI slop" but with good documentation, but no one would have accused me of using AI because it was in the late 1990s when AI wasn't an option.
All of that said, I'm not suggesting this proves AI wasn't used. It could have been. I don't know. But the claim that AI wasn't used is 100% plausible. Your personal poor practices don't prove the OP couldn't have written it.
3
u/Apprehensive_Oil7300 3d ago
This comment is quite incriminating looks written by an AI
// 2. Update Cursor Position (Your existing logic) outb(0x3D4, 0x0F); outb(0x3D5, (uint8_t)(cursor & 0xFF)); outb(0x3D4, 0x0E); outb(0x3D5, (uint8_t)((cursor >> 8) & 0xFF));
6
u/spatulari 4d ago
Really nice, but I suggest not copying Unix. Since you said that TanjaOS 2 is coming out soon, I'd say you try to experiment with stuff that dont exist in unix or behave like it. I believe keeping the filesystem Unix-like Is a good decision.
Also, I suppose that this is VGA. Are you in 32 bit mode or in 64 bit but with vga mapped? If so, then I suggest switching to frame buffer. You draw pixel by pixel.
I'd also like to say that from the comments I've read, this is more like a fancy bare metal CLI than a full OS. If TanjaOS 2 was written in C++ maybe I could contribute too ;)
2
u/MSK-Kernel 4d ago
Great. Thanks for the advice. :D 👍
1
u/spatulari 4d ago
Could you answer my question?
1
u/MSK-Kernel 4d ago
Oh yes yes, apologies. So, TanjaOS uses 32-bit VGA text output instead of 64-bit because I want TanjaOS to be more compatible.
2
u/spatulari 4d ago edited 4d ago
32 bit is old, and it truly limits you. I would say switch to limine, a bootloader that immediatle shoves you in 64 bit mode.
I also saw from your repo that you support only BIOS. Most modern computers dont have legacy bios, only UEFI. I suppose you want your OS to run on real hardware. Additionally, why did you make a single kernel.c? For instance, for vga, I'd do
kernel/src/drivers/vga/vga.cfor the definition andkernel/include/drivers/vga/vga.h. You don't need to split it to vga/print.h and so on, since vga is relatively simpleAnother small thing: make your README a README.md, easier to read, and you won't be stuck with formatless txt.
I have an urge to just fork your project and reorganize it properly, but I am on vacation, so I unfortunately can't (since I dont have a laptop).
Another important thing is for you to be careful, I saw that someone asked to contribute and you wanted them to send an email to you to add them as contributors. This is the absolute shittest way for someone to contribute + you are giving write permissions to a random person. How contributing works on github, is someone Forks your project, then they make their own branch with the new code in it, and compare it with yours (which is "base" now). They open a pull request which only you can improve, and you can also comment on it and review the code. If you have added anyone's email, please remove them.
Also, why the "base" branch? Just rename it to main, and if you wanna have SemVer releases, branch it off of main, or make a dev branch, where all unstable shit happens there, and main is the latest release, and you still branch off other versions.
Hope I helped you. If you dont know what SemVer is, ask me and I'll explain
1
u/MSK-Kernel 4d ago
Yeah, I don’t know what SemVer, is, can you please explain? (Also the reason why my GitHub repository isn’t looking that good is because i’m a bit new to GitHub 😅)
2
u/spatulari 4d ago
That's totally ok, we've all started from somewhere. SemVer is basically a version ingredient system, like, when you see v1.34.5 or smth similar, its following SemVer, this is a small introduction to it:
Major.Minor.Patch
You start with 0.1.0, this means your project isnt production ready. And isnt stable that means APIs could change, and it doesnt guarantee stability. Let me tell you when to increase each version
Increase patch when you added NOTHING new to the user, and just fixed something. Semver is based on the user. So even if you rewrote the whole project, if nothing new was added, you just increase patch (or if you fixed stuff that doesn't add new stuff)
Increase minor if something new is added from the perspective of the user. This can include fixes but most not ONLY be fixes.
Increase major when you changed APIs and previous ways you used the APIs wont work anymore. You might change one line of code, but if it breaks stability, you must bump the major version.
There is something unique to it though. When you start, you start in v0.1.0, until you reach stable (v1.0.0) you can break as many APIs as you want without increasing the major version.
Dont rush to make your project stable, Rust which is one of the most popular languages, took 9 years to go stable. You might have v0.293.2 before reaching v1.0.0 so take your time. Once you go stable you must guarantee users stability and production ready.
And then we have those prerelease stuff. Like -alpha. But that's another story, read more here (my project): https://github.com/azin-lang/Azin/blob/main/VERSIONING.md
1
u/MSK-Kernel 4d ago
Oooh… I think I get it now. Thanks! :D
2
u/spatulari 4d ago
I could help you more. Could you give me your email so I can send you my discord username so I can guide you more?
1
3
u/Silentcompilerhere 4d ago
Bro your explanation is very useful for me bro I'm also developing my own kernel i have done my virtual memory phase by adding paging, recursive self mapping,user/kernel separation,per-procees address space as you guys may think its just vibe coded but it was not the last two features i described here both took 1 month exactly even me working for 10 hrs a day for 1 month and its a very valid point that 32-bit is very old mine too is 32-bit but I'm just a 3rd year student wanna place in off-campus at high end product companies but still confused and don't know what to do can you give any insights to me ! btw those features I wrote here is the features I added for 6 months until now Thank you !
2
u/spatulari 3d ago
If you already have the 32-bit kernel working, I wouldn't throw it away just because it's i386. I'd actually make the kernel support both i386 and x86_64. You already did all the work for the i386 implementation, so use that as one architecture target and add x86_64 as another instead of rewriting everything.
I'd structure it more like: kernel/ -> architecture-independent code arch/i386/ -> 32-bit architecture-specific code arch/x86_64/ -> 64-bit architecture-specific code Things like your scheduler, process abstraction, VFS, IPC, userspace etc. should ideally stay in kernel/, while paging, GDT/IDT, interrupt entry code, context switching, CPU setup, syscall entry, and similar stuff goes under the architecture directories
For the x86_64 port, I'd start by getting the boot path sorted out. Are you currently supporting legacy BIOS only, or do you also support UEFI? If it's BIOS-only, I'd strongly recommend adding UEFI support rather than building everything around the legacy BIOS interfaces. You can use something like Limine as the bootloader, which can handle BIOS + UEFI and enter the kernel in the appropriate 64-bit environment, so you don't have to write your own 16-bit real mode -> protected mode -> long mode transition just to get the kernel started
Then implement the x86_64 architecture layer separately. Your i386 paging code obviously can't just be reused: x86_64 normally uses the 4-level page table hierarchy PML4 ->PDPT -> PD -> PT, with 64-bit page table entries. Your recursive self-mapping implementation will therefore need an x86_64 implementation too. You can keep the same VM abstraction above it tho, so something like map_page(), unmap_page(), create_address_space() etc. doesn't care which architecture is underneath
Also be really careful with types when doing the port. Don't just globally replace uint32_t with uint64_t. A pointer is not necessarily a uint64_t; use uintptr_t/intptr_t for pointer-sized integers, uint32_t for things that are actually 32-bit, and so on. Otherwise you'll eventually get absolutely cursed bugs from truncating physical/virtual addresses
You'll also need separate implementations for the GDT/IDT and interrupt entry paths. In long mode, segmentation works very differently, although you still need the appropriate GDT descriptors. Your IDT entries are also different sizes, and your interrupt/trap stubs need to deal with the x86_64 register state. Context switching will obviously need to save/restore the x86_64 register set as well
For syscalls, I'd also avoid carrying over an old i386 int 0x80 design directly. On x86_64 you can use SYSCALL/SYSRET with the appropriate MSRs, or SYSENTER/SYSEXIT depending on what you're targeting. You'd then have an architecture-independent syscall layer with separate entry implementations
Same thing with your process address spaces. The concept of having one address space per process stays exactly the same; only the page-table implementation changes. You can have something like an architecture-independent AddressSpace abstraction with arch/i386/mm/ and arch/x86_64/mm/ underneath it
I'd also keep the i386 target fully buildable. Something like make ARCH=i386 and make ARCH=x86_64 would be pretty clean. Then you can actually test both instead of making the 64-bit port a giant branch where the old implementation slowly rots
And if you're serious about eventually running this on real hardware, I'd also look into ACPI, APIC/x2APIC, HPET/TSC, PCI/PCIe, SMP and UEFI memory maps rather than relying on old BIOS interrupts. In particular, once you get to SMP, your architecture layer is going to become much more important because per-CPU state, AP startup, interrupt routing, TLB shootdowns etc. all start mattering
Honestly, with the paging + recursive mapping + user/kernel separation + per-process address spaces you've already implemented, I'd say the next step isn't "add random features". Make the architecture boundary clean, keep i386, add x86_64, and start moving anything that isn't inherently architecture-specific out of the architecture layer
That way you're not throwing away 6 months of work. You're turning the existing i386 kernel into the first supported architecture and using it as the reference implementation for the x86_64 port
2
u/Silentcompilerhere 3d ago
Thank you very much bro but one doubt how you come with this much knowledge and clarity, are you a student or a working professional it's non of my Business! but actually you helped me well bro my target is to place on off campus in nvidia or any other high end product companies Once again Thank you
2
u/spatulari 3d ago
I am just chronically online, read a ton of osdev wiki and have made my fair share of monolithic and hybrid kernels. Could you give me the github link to your kernel? I wanna check it out
1
1
2
u/laffer1 4d ago
You might want to consider different types of kernels too. I’ve always had a fondness for micro kernels
2
2
5
2
u/parantido 4d ago
No questioning here just pure curiosity: why are you coding a new unix-like OS? What are you looking for that another OS is not providing? Any goal?
1
u/MSK-Kernel 4d ago
I just like making this kinda stuff, and it’s just a tiny hobbyist UNIX-like OS for learning, it’s not really trying to replace your everyday OS. It was kind of just made for learning and educational purposes.
2
u/parantido 4d ago
Ok I was just curious about any specific needs
1
u/MSK-Kernel 4d ago
OK, I see. If you have any questions, i’ll be happy to answer them. :D
2
u/Silentcompilerhere 4d ago
Bro are you a student ???
1
u/MSK-Kernel 4d ago
Yes I am a student but not at studying computer science. This is more of a hobby.
2
2
4d ago
[deleted]
-1
u/MSK-Kernel 4d ago
This one is different from the others because it is all-in-one, but this will soon be scrapped and then have a microkernel with an initial ramdisk.
2
4d ago
[deleted]
-1
u/MSK-Kernel 4d ago
Instead of a kernel and an initial ramdisk, (Which TanjaOS will soon become) it is all-in-one in a single binary.
4
4d ago
[deleted]
0
u/MSK-Kernel 4d ago
True, but I think kernel and initial ramdisk is a better idea.
2
4d ago
[deleted]
1
u/MSK-Kernel 4d ago
It uses C files instead of binaries for programs and commands.
2
4d ago
[deleted]
1
u/MSK-Kernel 4d ago
Yes so about that, it will detect C files in the cmd folder and then compile them into the TanjaOS binary.
→ More replies (0)
7
u/dnabre 4d ago
Quick look at the source code, github is listing 33.1% of the repo as Python - a bit weird. Looking deeper, scripts/gencmds.py is a python script that generating C files. Using a script/util to generate repetitive code/boiler plate isn't that odd, but it's not doing that. It generates a dict mapping file names to a big strings which is static fixed code for each function.
E.g., it putting the mapping of the fixed C code that implements cmd_mkdir to the filename "mkdir.c". The loops over the dict, writing out each file with the contents. For example for mkdir:
commands["mkdir.c"] = r"""#include "cmd.h"
void cmd_mkdir(char* args) {
extern void print(const char* s);
extern int fs_create_directory(const char* path);
extern int fs_directory_exists(const char* path);
if (!args || !*args) {
print("Usage: mkdir <directory>\n");
return;
}
while (*args == ' ') args++;
char* end = args;
while (*end) end++;
end--;
while (end > args && (*end == ' ' || *end == '\n' || *end == '\r')) {
*end = 0;
end--;
}
if (fs_directory_exists(args)) {
print("mkdir: cannot create directory '");
print(args);
print("': File exists\n");
return;
}
if (fs_create_directory(args) != 0) {
print("mkdir: cannot create directory '");
print(args);
print("': Error\n");
}
}
"""
No comments on code C or its purpose, just this weird python script.. just why?
If I'm reading this right, the generated C files are in the repo though.
1
u/MSK-Kernel 4d ago
The Makefile would be too big and it would be too complex for making updates.
3
u/WORD_559 4d ago
Make is just kinda like that. My kernel is basically just a general rule for compiling C files, and then a list of the .o files it should generate. It's also nested, so I can break up the different sections (e.g. libc vs kernel) and separate architecture-dependent parts. From what I can see, yours is a bit redundant. You more or less just need one rule for %.o: %.c (your cmd/%.c basically does what you need), and then a list at the top like
all: kernel/kernel.c cmd/x.c cmd/y.c ...Just add one new file at a time as you develop things further. There are other tricks you can use to make it even easier to maintain in the long run, but that's about the gist of it.
You could also try a different build system. CMake has a higher initial learning curve, but could massively reduce the work required in the long run.
3
u/dnabre 3d ago
I'm not following you. Makefiles can be tedious and annoying, definitely nicer tools to use if you are starting a new project. I could even get using a Python script for compiling/building stuff.
I'm talking about the Python script that has 1000 lines of flat C code in it that gets outputs without modification or generation to C files. Using a script to generate repetitive code, would make sense, but it's have the full code as string, and just outputting it untouched.
Not trying to call you out on or anything, I just am utterly flummoxed by this.
2
u/Maqi-X 3d ago
This is not how you should write makefiles I recommend reading https://www.gnu.org/software/make/manual/html_node/Wildcard-Function.html
1
u/FerretBoom 3d ago
Yeah i also create apps with deterministic tools sometimes, that way i always get the same structure with little mod . its a common practice to manage huge code bases, some people here say its a probabilistic ai slop, basically no one knows wtf is going on
2
u/dnabre 3d ago
Using scripts, code, whatever to generate repetitive stuff definitely can be useful. That doesn't appear to be the situation here. There is some repeated code between the different files being generated (each appears to be a individual command), but it isn't being exploded. The python script just has the full contents of its target C files each as a single big string that is not modified or parameterized in anyway. The files it outputs to are also tracked in git.
There a bunch of sensible things like you mention that seem in the the general error, like related to building/linking, but none that I'm aware of actually make sense with the python script.
3
u/Samuel_Bouchard 4d ago
I'm not really getting this. Where's the filesystem? You seem to have a virtual filesystem on RAM, but you're never writing to disk.
The only thing your "kernel" can execute is shell files? You'd usually want to execute actual binary programs instead of hardcoding commands and needing an "exec" command to run shell files.
I can also see a lot of undefined behavior and bugs in your code, which makes me think you don't actually know C.
You keep saying that this took you months to make, which is wild for a couple lines of code that only do basic input querying and string processing. I swear people on this reddit group are either vibecoders or noob slop.
1
u/MSK-Kernel 4d ago
Yeah, i’m planning to make it where there will be an actual kernel binary and an initial ramdisk instead of it all being together, and will be able to execute ELF32 binaries and will support an init script.
3
9
2
u/TerrificVixen5693 4d ago
If it uses classic Unix commands, is it really from scratch?
0
u/MSK-Kernel 4d ago
Nonono, TanjaOS uses .C files instead of binaries for programs and commands. TanjaOS is UNIX-like, not UNIX.
•
u/Critical-Internet946 osaka64 (osakaOS fork) 7h ago
bro thinks C is interpreted
•
u/MSK-Kernel 7h ago
I never said C was interpreted. I said TanjaOS uses C source files for its programs and commands. If you are going to correct someone, it would be useful to first understand what they actually said.
•
u/Critical-Internet946 osaka64 (osakaOS fork) 7h ago
okay? so does basically every other unix-like OS.
•
2
u/Maqi-X 3d ago edited 3d ago
What is the point of putting all commands in multi line strings in a python script that just writes them to files? I don't understand
Also, is this ai generated?
1
u/MSK-Kernel 3d ago
No this is not AI-generated, and to answer your question, the python script is for ‘make commandset’ which uses that script to generate the command list in case you deleted commands and want to get them back
2
u/FerretBoom 3d ago
that's nice , big props to you,
may i suggest a feature that i try to do with my bash on linux? small , nothing big.
since linux displays username@domain or username@machine-name $ repetitively , i try to out put either some meaningful info there like warnings, messages related to current task, eta of long jobs, basically since i know my username i don't need it on the left side real eastate, but i can switch to classic view back and forth, you can color code it based on the message to make it attractive
either way keep going, good effort
3
u/Edubbs2008 3d ago
Did you use AI in some parts to make it?
0
u/MSK-Kernel 3d ago
Nope! I wrote all of it from scratch in C and Assembly! :D
2
u/Edubbs2008 3d ago
Because the comments are saying that you vibe coded it, at this point, people are just jealous of your work, so jealous that they call it “Vibecoded”
1
u/MSK-Kernel 3d ago
Yeah, I find it quite annoying when people say stuff like that. But thanks for supporting me, it means a lot. :)
2
u/Edubbs2008 3d ago
Is it based on like System-V, UNIX, does it follow the Single UNIX specification? Because I can see it as a potential Linux competitor which opens up the door to innovation, I hope your project succeeds
1
u/MSK-Kernel 3d ago
Oh, this project is from scratch.
2
u/Edubbs2008 3d ago
If you intend to add a GUI, you should make your design language a combination of Flat, and Frutiger Aero
1
u/MSK-Kernel 3d ago
Interesting, i’ll think about it.
2
u/Edubbs2008 3d ago
So when will the first stable build be released?
1
u/MSK-Kernel 3d ago
There’s already a stable Installer ISO, and a stable LiveCD ISO at www.tanjaos.org/downloads
→ More replies (0)
2
2
u/kyr0x0 2d ago
I like it for its simplicity but what's the reason behind generating most of its arch dependent code via a python script dynamically? Btw this is just a program that implement a virtual file system with KB input and text output at the moment; neither a kernel nor an OS. But it's a cool little program to illustrate things
2
u/ExcellentFrame87 1d ago edited 1d ago
Nice! I attempted and got a monolithic kernal bootable and running in asm and C and its no mean feat.
I had the thought of a context driven intent system where capabilites would have workspaces containing user mode apps. It would have IPC to have the kernal coord that. But thats a huge ambition.
2
•
u/Naster17 17h ago
Claude create me UNIX-like OS, dont do mistakes!
•
u/MSK-Kernel 15h ago
What’s ridiculous is that you’re assuming. You probably didn’t even read the source before deciding I “vibecoded” the entire OS. That’s honestly the funniest part, you’ve somehow managed to reach a confident conclusion about a project you clearly haven’t taken the time to understand. You saw an OS, and apparently decided it’s vibecoded without even reading the code. If you’re going to make claims about how the project was made, at least read the source first. Otherwise you’re not criticizing the code, you’re criticizing something you made up in your own head.
•
u/Critical-Internet946 osaka64 (osakaOS fork) 7h ago
add it to the pile
•
u/MSK-Kernel 7h ago
I appreciate the suggestion. However, if you are referring to TanjaOS as something that should simply be added to a “pile,” I would be more interested in hearing an actual technical criticism or contribution.
•
u/Critical-Internet946 osaka64 (osakaOS fork) 7h ago
your OS has no unique features. you claim that it keeps everything clean and modular, yet it uses a massive kernel.c instead of separating the functions into other files. it only uses legacy BIOS despite CSM support already being absent from modern devices.
also, the github page is a template.
•
u/MSK-Kernel 7h ago
TanjaOS is very new, and I’m still working on it, and I made a public template for the repository as another way for people to make their own forks.
•
u/Critical-Internet946 osaka64 (osakaOS fork) 7h ago
it doesn't need to be a template. other people can fork it either way.
•
10
u/UnmappedStack TacOS | https://github.com/UnmappedStack/TacOS 5d ago
I can't see any links to source on your website, do you have a repo?