Yet Another Hobbyist Toy OS

I'm currently making my own operating system. It's going to be a long time (like a year or two at least) before I release any of the source code with the proper docs. I'm not ready to deal with all the GitHub tards and licensing bullshit and versioning and correcting the grammar in my source comments, etc. So I am a few months into a kernel development and it's going well. Kernel is written in C primarily with a small amount of FASM. I'm also working on my own bootloader, and some other things to integrate into it to have a 95%+ independent software platform. I'm also working on a side project for a compatibility layer for Linux drivers, so that this can eventually be used on real, modern hardware. I eventually want to get to a point where it has a full GUI installer and desktop and it's as user friendly as Windows or OS X or Ubuntu. It will have my own userland with some GNU and BSD utilities sprinkled in for compatibility and convenience, and because I am not writing a fucking compiler.

Target Features:

Other urls found in this thread:

github.com/arsv/minibase)
wiki.osdev.org/
dwheeler.com/essays/fixing-unix-linux-filenames.html
wiki.osdev.org/Beginner_Mistakes
twitter.com/SFWRedditImages

The kernel itself is a hybrid, where the more monolithic part is meant to be close to the hardware, and the more high level microkernel stuff can be put in userspace for some added security and modularity, and can possibly be beneficial in the way updates are processed and even made in the first place. Though mostly, the monolithic part would mostly be there to start the microkernel services at boot and manage them to a certain extent, and control kernel space privs, so for example, you want to add another module to the kernel in user space, so you call the monolithic kernel in to help with managing it. Sounds convolluted but I think it's a good way to do it.

My goal is to make this OS as user friendly and as beautiful as possible. What some features in modern desktop environments that you guys really hate? I want to know what not to include here. Also, I will make sure to find a way to port Firefox to it in the first major release and finally get the fucking thumbnails in the file picker dialogue. I need ideas for the GUI of this thing, and also for the apps I should include or make myself. I like the idea of making a lot of the GUI tabbed in certain areas so that you aren't moving the mouse around so much. How about workspaces and switching between them? Since I'm making my own bootloader, should I provide a setting to add a custom splash screen like you can do in GRUB?

Also, what the fuck do I call this thing? Any good names?

make a true successor to Win XP

I'm not sure what you mean by this. React OS is already a thing if that's what you're looking for. This is going to be a UNIX-like OS.

Why not try to make something good instead?

call it CrimOS

NT is not good.


What's the significance of this name?

the new gender binary

The only ones that matter, yes. Just like males and females, faggot. Go be gay somewhere else.

The only way this operating system might be going to matter is as a vehicle for new ideas. Why remake Unix for the fiftieth time?

Think of it as being similar to Plan9 and friends, except I'm not a total dickhead and I actually want people to port software to it and use it.

When I saw this thread I was listening to Lacrimosa - Mozart... (La[CrimOS]a)

pick one

OpenSUSE patched Firefox to use the KDE filepicker, but somehow no other distro cares enough to adopt it. Don't put your tabs on top, that is absolute braincancer.

...

D-do you need a logo?

Hopefully it was indeed Mozart and not that half-haircut "goth" dude playing pseudo-metal

God forbid!

Definitely Mozart, I'm not sure who the half-haircut goth dude is.

get out
botnet
Terrydos

These hobbyist UNIX clones never get anywhere because they will always be behind the UNIX clones people care about. There's already Linux and BSD if you want something UNIX-like that's usable and Plan 9 if you want something UNIX-like that feels like a crappy hobbyist toy OS.

I want to see more ideas out there and not another POSIX-compatible, C-based UNIX clone. If you want make an OS clone that matters, copy VMS, Multics, Classic MacOS, or some other operating system that has a different philosophy. If you want to copy Windows, contribute to ReactOS.

Why not YAHOS, Yet Another Hobbist Operating System, and try some weird shit like said to see if it works out well

The difference between an amateur and a professional is that a professional develops a compiler.

Just use MIT or BSD license and don't worry about it. Give people as much freedom as possible.

I wish you good luck. That is a great project to do and something to be proud of.

If I was doing my own OS I would make it:
- mostly POSIX compliant
- easy to use mix of source based and package distro
- use very simple static linked userspace utilities (suckless, BSD utils, maybe something like that: github.com/arsv/minibase)
- everything that is not a static binary would be in a some kind of container (flatpak, snap, LXC whatever)
- package manager would download git source and compile. it would also track all dependencies so if there is a security fix for a library all other programs get recompiled too

That is called public domain. Contrary to retarded beliefs you can waive your copyright in Europe.
MIT/BSD still has requirements so it isn't maximum do whatever the fuck you want.

sad_but_true.mp3

You again? I have enough of your shit.

OUT OUT OUT OUT OUT OUT

What is the point of another Unix style OS besides as a learning project?

kys

no u

DO IT FAGGOT
No one will even know about your project. I have dozens of public repos on github that no one knows about. If you don't shill your shit it's essentially private.

Good. show us when its done op

Good. show us when its done op

POSIX isn’t secure? Can you give me some sources, I would like to know more.

Welcome aboard. I personally have a planned project like that which has gone into hiatus (dealing with other projects). It will be a microkernel with a tiny core (absolute time-critical stuff in the kernel and the rest is providers). I got so far as getting a PMM and a VMM working beforeI put it on the backburner. As always, wiki.osdev.org/ is a great place to learn,

and check out #osdev on Freenode for any questions, some really helpful people are there.

I got it OP: Yet Another Crappy Hobbyist Toy OS, i.e. YACHT OS. This is copyrighted now OP, pay the sum of $10billion in pepe cash to use.

I hope it's written in the only systems safe language Rust

oh shit nigga what are you doing

Interesting. But CrimOS reminds me of crimson, and so then I would feel like I have to make the UI red, and that's going to look like trash. I don't know, I'll consider it.


This thing is a hobbyist OS, not something that will get embedded in fighter jets.


I was going to put tabs on the top and bottom like in OS/2.


Eventually.


The compatibility layer will be optional.


Classic MacOS was a mess, and didn't even have a terminal application. The others are mostly irrelevant. I want my own flavor of UNIX that has sane defaults and is easy to use, sort of like Mac OS X, but without letting you mash on the keyboard and gain root access.


Writing my own compiler is a waste of time when good ones already exist. I also want to maintain control over my source code for the time being, because I haven't decided on a source model yet.


What if I just make application bundles like in OS X that all sit in one directory? That might be nice. For package management, it would be binary focused but I would also include options to compile from source, and have it spit out an app bundle that you can drag and drop in the applications folder, then run from there by double clicking it.


I'm trying to build something that I would want to use. I don't want to use Windows, OS X, Linux, or BSD because they all have major drawbacks that make them suck to use no matter which you pick.


Not until I have something more substantial.


Thanks. I'll look into that.


Yes, I am so pissed at Gnome and systemd retardation that I'm spending hundreds of hours building a new software platform. Bugs are not features, and they can lick my ass.

How_gnu_r_u.git ostensibly not very
There's also gitgud if you don't want to deal with socjus

No one is going to make fun of your incomplete code. Put your code up so people can learn/help.

I don't want help though, at least not until I have it at a point where it can boot to a desktop. I'm also not sure if I even want to open source it before releasing it initially. My problem is that open source is killing itself, and I'm not sure how to prevent this. Locking away my source code is shitty but at least fuckers like Poettering won't come along and mess it all up. I would like to think that I'm competent enough to filter that stuff out, but I don't want to be tricked into this mess all over again. I need to do this right the first time. I don't want anyone forking it or modifying it, because then they'll speed up development and get faster results, but it'll be a fucking turd in the long run. I'm trying to design this thing so that various components of the kernel and OS can't be mashed into a single subsystem, hence the focus on modules. But this is easier said than done, because if you can add and remove modules, you can remove some of them and replace them under one big bloated one that's similar to systemd. I'm trying to make it so that certain services must be run in their own module/container, so that there's a degree of isolation, and if this is modified, then you break the underlying design and everything that works with it, basically putting a lock on the way you can even modify the core system components without a major rewrite of it.

It hasn't even been a month since Terry went missing, and people are already forgetting his wisdom.

Terry is more insane than I am, and I'm literally making a new OS to compete with Windows, OS X, and Linux because I'm ass blasted over a few programs included in them.

Forbid \n in filenames.

for more detail dwheeler.com/essays/fixing-unix-linux-filenames.html

So forbid the backslash and limit file names to A-Z (upper/lower) and 1-9?

Should say 0-9, made a typo.

From your description of your goals, there's no reason for you to be writing a new OS. You should be working on improving the GUI and user-friendliness of an existing open-source POSIX OS, instead of writing "Bad reimplementation of Unix #134,238".

wiki.osdev.org/Beginner_Mistakes was written for you.

Well, too late to stop now.

It's never too late to stop.

It would be such a waste though. I think I'll continue.

You could have just said you're clinically retarded before starting this whole argument.

...

This is retarded. Poettering did nothing wrong.

...

...

Holy shit.

how exactly does your average joe brick his system in that scenario?

If you're going to waste your time on claiming it will be secure and user friendly, consider turning it into a RTOS, and actually make something with academic value.

I have no sympathy for anybody who uses rm -rf /

But rm -rf / is supposed to delete all your files, not brick your mobo.

It's your choice to brick your mobo. You didn't have to do it.

Are you dumb? If a certain functionality is not supposed to have a certain side effect, then that side effect should not occur. To blame the user for the side effect (even if the trouble the side effect yields only presents itself from the user's stupidity), is idiotic. A function's behavior should be as intended without any side effect (regardless of whether or not it requires the stupidity of the user to cause an issue).

All I see is a PEBCAK. rm -rf / does exactly what it should. If you know that there are mappings to the VFS, then don't do rm -rf /. Delete each directory one at a time.

...

But can it talk to God?

There is nothing wrong with running rm -rf / for fun right before installing a new distro.

fun fact
bsd doesn't have the rm -rf / problem

fun fact
bsd doesn't have users

I'd be willing to bet that it has a higher share of competent users though.

I am very happy when users want to run rm -rf /. I have no sympathy when something breaks when they willing choose to run it.

That used to be true.

FreeBSD is for servers that need good scaling like chat and streaming services.
OpenBSD is mainly a firewall OS that's utilized by foreign governments.

You are fucking retarded. Unless you add Pöttering as a contributor to your project, shit like this won't happen. If you do get a contributor that does shit like this, you can always boot them. What the fuck are you exactly talking about?

when's the contest? :'^)

No shit Sherlock, what if you don't?

That's all the more reason why you shouldn't rm -rf /. Delete each directory one at a time.

Why can't you use linux for the same job?

For any UNIX noob, it's obvious that something to delete file or directories shouldn't do anything else. Think of the main systemd consumers; Ubuntu lusers and all.
I mean, how are you supposed to know? Even I didn't knew about this systemd EFIvar bullshit, and you probably didn't before this Potter joke.

In what scenario would a noob delete from the root dir?

Fuck off

Shell script gone wrong

Okay then

Not gonna happen thanks to Windows 8++ devices (if they build their own PC then this is not a problem).
Don't know about OEM windows 10 yet. Haven't bought since and neither would I bother.
Things you should also look for after is ACPI clusterfuck. Maybe try to target few devices and make things werk especially hibernation.

rm -rf / usr/share/unwantedfile
Thankfully there is a safeguard now, at least.

That's still PEBCAK.

Between what chairs and keyboards? The ones at AT&T where this broken software originated. Cloning it is even worse than making it from scratch because there are years of known problems.

>On a old decstation 3100 I was deleting last semesters users to try to>dig up some disk space, I also deleted some test users at the same time.>>One user took longer then usual, so I hit control-c and tried ls.>"ls: command not found">>Turns out that the test user had / as the home directory and the remove>user script in ultrix just happily blew away the whole disk.>U...~Reminds me of a bit of local folk-lore (this happened before I was inthe admin group)...We have a home-grown admin system that controls accounts on all of ourmachines. It has a remove user operation that removes the user fromall machines at the same time in the middle of the night.Well, one night, the thing goes off and tries to remove a user withthe home directory '/'. All the machines went down, with varyingammounts of stuff missing (depending on how soon the script, rm, find,and other importing things were clobbered).Nobody knew what what was going on! The systems were restored frombackup, and things seemed to be going OK, until the next night whenthe remove-user script was fired off by cron again.This time, Corporate Security was called in, and the admin group'ssupervisor was called back from his vacation (I think there's something inthere about a helicopter picking the guy up from a rafting tripin the Grand Canyon).By chance, somebody checked the cron scripts, and all was well for thenext night...

I think I've identified the fundamental problem withunix. It's not that unix fellates worm-infested camels.It's that NO ONE DOES ANYTHING ABOUT IT. Unix is full of dumb bugs that any competent hackercould fix in ten minutes. But more than ten minutes iswasted by *every* hacker instead. ``Yup, that's anotherdumb unix bug. Sigh. Well, let's write an elaboratework-around...'' The problem is cultural: there seems to bean attitude of ``you can't fight city hall.'' ITS and the lispm are such wins not because they arebetter-designed (they may be, but god knows they have plentyof brain damage in them too) but because they have a cultureof ``That symbolics namespace editor sucks, so I spent tenminutes writing a better one and installed it on b:.'' What I can't figure out is why there isn't a giantmarket for improved unix software. For example, it seemslike it would be straightforward to write a decent C macroprocessor or garbage collector, and that you could make abundle of money selling them because everyone would wantthem. But no one does this. Why not? Maybe it's becauseweenies are so used to not fighting city hall that theycan't believe things could ever be better?

OP isn't showing any code. I call bs. He's just larp.

Here are some nice things to have in an OS, since I often think about how much each OS sucks in its own way:

Basic shit

Per-application volume mixer.
Built-in midi support, with option for specifying your own soundfont if the free one is shit.

File manager

Thumbnails in file picker, but also possible image preview pane in both file manager and file picker.
Control over thumbnail display, i.e. disable thumbnails for files over X MB/GB, etc. Possibly disable thumbnails for documents.
Breadcrumbs or path toggle.
Select multiple images and print from the file manager.
Hidden files setting in the file manager is linked to the file picker.
Sane file properties box that can handle permissions and ownership in a straight forward way.

Desktop environment

Perhaps the desktop environment could have a basic normalfag mode by default with a more customizable mode for powerusers, so that everyone is accommodated.
When installing the OS, you can choose from 3 preset panel setups: Windows (one opaque panel at the bottom with a menu, launcher, windows, and system tray), Mac (transparent panel of launchers at the bottom, opaque panel at the top), and Ubuntu style, and maybe a 4th original setup that distinguishes your OS. Helpful starting point for powerusers, and normalfags will just pick one and never touch the settings, just be happy with the hopefully unbloated desktop.
Desktop text color should be an option when changing the wallpaper.
Per-panel poweruser option for the desktop wallpaper to not go underneath the panel. Useful for opaque panels.
Optional window quicklist like Cinnamon desktop has, instead of having to click on each workspace (unless your OS won't have workspaces, then disregard).
Login customization, such as background, display or hide user pictures, that sort of thing, so people can have a nice login screen or a minimalist one if they'd prefer.