OSDev.org
https://forum.osdev.org/

Sortix 0.9
https://forum.osdev.org/viewtopic.php?f=2&t=28883
Page 1 of 2

Author:  sortie [ Mon Dec 29, 2014 10:11 pm ]
Post subject:  Sortix 0.9

I'd like to announce the availability of Sortix 0.9, a free Unix-like hobby operating system made from scratch.

Sortix is a small self-hosting Unix-like operating system developed since 2011 aiming to be a clean and modern POSIX implementation. There's a lot of technical debt that needs to be paid, but it's getting better. Traditional design mistakes are avoided or aggressively deprecated by updating the base system and ports as needed. The Sortix kernel, standard libraries, and most utilities were written entirely from scratch. The system is halfway through becoming multi-user and while security vulnerabilities are recognized as bugs, it should be considered insecure at this time.

This release is a very considerable improvement upon Sortix 0.8 and contains significant improvements all over the base system and ports. The previous release made Sortix self-building and this release works hard towards becoming fully self-hosting and installable. Several real-life prototype self-hosting installations of Sortix exists right now, I expect the following 1.0 release to make real Sortix installations available to the general public.

Highlights

This release contains a lot of notable new features:

  • Shell line editing, completion and history.
  • Pthreads.
  • Signals.
  • Unicode support.
  • Symbolic links.
  • Regression tests.
  • New utility programs.
  • New system interfaces.
  • Reduced memory consumption.
  • Same build system for native and cross building.
  • Incorporates Sortix libz, a clean fork of zlib.
  • Considerably improved ports tree.
  • And lot of miscellaneous improvements, cleaning up, and bug fixes.

For the full list of changes, see the CHANGES file in the release directory.

This release includes these ports of third party software: binutils, bison, bzip2, dash, diffutils, gawk, gcc, git, grep (GNU), gzip (GNU), hello (GNU), libffi, libgmp, libiconv, libmpc, libmpfr, libSDL, libstdc++, libz (GNU), make (GNU), patch (GNU), quake, sed (GNU), tar (GNU), and xz. More ports are available in source form only.

Installation and More Information

You can get more information about Sortix at the official website:

https://sortix.org/

You can download Sortix 0.9 for x86 or x86_64 from these locations:

https://users-cs.au.dk/~sortie/sortix/r ... .9/builds/

You can download the source code for this release (with or without included third party ports) at:

https://users-cs.au.dk/~sortie/sortix/r ... .9/source/

Or you can simply browse the git repository:

https://gitorious.org/sortix/sortix/source/sortix-0.9

Be sure to read the official user guide at:

/share/doc/user-guide
https://sortix.org/doc/user-guide
https://users-cs.au.dk/~sortie/sortix/r ... user-guide

Participation in Development

You can either attempt to develop the system using itself (not recommended) or by following this cross-development tutorial:

/share/doc/cross-development
https://sortix.org/doc/cross-development
https://users-cs.au.dk/~sortie/sortix/r ... evelopment

Development is coordinated in the #sortix IRC channel at irc.freenode.net

Missing Features

It's important to understand what limitations Sortix has. Most of these areas are being worked on, but their completion were cut from this release.

  • Lots of missing features in the shell.
  • No desktop environment with a graphical user interface.
  • No man pages (next release will use mdocml).
  • No mouse driver.
  • There is only a single terminal.
  • No SATA harddisk driver (support not merged yet).
  • No sound drivers.
  • No graphic drivers for real hardware.
  • No shared memory mapping mappings.
  • No networking except Unix sockets.
  • No Unicode font rendering (outside code page 437).
  • No proper terminal implementation (curses is not possible yet).
  • No real users and groups implementation.
  • No dynamic linking.
  • And a bunch of bugs.

Nonetheless, the underlying system is advanced and the standard library implements enough standard interfaces that has been possible to port a large amount of third party software.

Known Problems

There's a few important problems that you should know of:

  • GRUB may simply lock up with no message if you don't provide enough memory.
  • Quake save games doesn't work as printf doesn't support floating point numbers yet, you will be unable to load saved games.

Thanks

This release was primarily developed by me, but we'd like to thank all the people that helped test the release and gave advise.

Screenshot

Image

Author:  no92 [ Tue Dec 30, 2014 3:35 am ]
Post subject:  Re: Sortix 0.9

Solid work - "except for a few bugs" :D

Is there any reason for which you don't use GitHub but Gitourious?

Author:  Brynet-Inc [ Tue Dec 30, 2014 6:29 am ]
Post subject:  Re: Sortix 0.9

Nice work sortie.

Author:  shikhin [ Tue Dec 30, 2014 10:29 am ]
Post subject:  Re: Sortix 0.9

Hey,

Nice work, sortie!

=D>

Cheers,
Shikhin

Author:  KemyLand [ Tue Dec 30, 2014 10:50 am ]
Post subject:  Re: Sortix 0.9

Once Coreutils (easy), the GNU C Library (Oh my god...), the X Window System (WTF?!), and GNOME/XFCE/KDE ( :shock: ) are ported, you'll have all the full power of Unix \:D/ \:D/ \:D/.

Anyway, excellent work sortie, waiting for v0.10/1.0 [-o<

BTW, were does both the names sortie and thus sortie's Unix/sortix come from?

Author:  max [ Tue Dec 30, 2014 11:10 am ]
Post subject:  Re: Sortix 0.9

KemyLand wrote:
Once Coreutils (easy), the GNU C Library (Oh my god...), the X Window System (WTF?!), and GNOME/XFCE/KDE ( :shock: ) are ported, you'll have all the full power of Unix \:D/ \:D/ \:D/.
Eeww, nobody wants glibc or the X window system =P~

Nice work sortie :)

Author:  KemyLand [ Tue Dec 30, 2014 11:34 am ]
Post subject:  Re: Sortix 0.9

max wrote:
KemyLand wrote:
Once Coreutils (easy), the GNU C Library (Oh my god...), the X Window System (WTF?!), and GNOME/XFCE/KDE ( :shock: ) are ported, you'll have all the full power of Unix \:D/ \:D/ \:D/.
Eeww, nobody wants glibc or the X window system =P~


I don't like glibc, but it's almost essential to port everything GNU-related. X11 is just like Linux. It was tough to be small and efficient. Only one of them remainded; eventually the other one will disappear :( . (Let's go with Wayland :D)

Author:  sortie [ Tue Dec 30, 2014 12:11 pm ]
Post subject:  Re: Sortix 0.9

Thanks guys. :D

no92 wrote:
Is there any reason for which you don't use GitHub but Gitourious?


Gitorious is a free platform, unlike GitHub. That goes a bit better with the spirit of my project. Also, I use Gitorious for historical reasons. I may switch hosting provider in the future.

KemyLand wrote:
Once Coreutils (easy), the GNU C Library (Oh my god...), the X Window System (WTF?!), and GNOME/XFCE/KDE ( :shock: ) are ported, you'll have all the full power of Unix \:D/ \:D/ \:D/.


No.

I reject that premise, and for good reasons. GNU's code really isn't that good. In fact, much of it is terrible. Coreutils, I did do a little port of it once - before I discarded it, isn't very impressive and pretty bloated. The same applies to GNU libc, which also suffers from a good long list of design mistakes, many of which I simply don't know, because I don't attempt to care.

I'm writing my own command line utilities, porting a few things I don't want to implement myself, and I'm writing my own standard library. The job isn't finished, of course, but I learned some very interesting things. My simple operating system is occasionally better. I'm not making the same silly mistakes, I'm designing the system and keeping it simple. I'm pretty confident I can realistically aspire to outcompeting GNU easily in terms of quality.

Don't buy into the illusion that using GNU code is a must. You say GNU libc is essential to port everything GNU related? You know why? I read the source code. It's because those projects are fucking awful and do things they really shouldn't. If you read ./configure scripts, you'll notice they sometimes actively discriminate against systems that don't output the magic GNU string in version checks.

I can do better, and will do better, by going my own path here. I'm not weighed down by compatibility or demands that my system stay the same (and thus stay awful). I'm picking the best bits of Unix and keeping them, and getting rid of anything that's awful. It's my “Embrace or Fight” principle. Either I adopt things and integrate them well, or I fight them all the way and replace them with something better. Do note every time you fight something, you must be willing to pay the price.

Don't assume using X is a necessity, or GNOME/XFCE/KDE, or systemd, or any other must-haves. I'll adopt it if it's good, or likely, do my own better thing. You can do better if you go the hard route. I don't treat ports as something separate from the core system, which I just have to keep happy. I consider them parts of my system, and if they're awful, so is my system. I got a lot of GNU code in this release, and a lot of it is awful. Let's do better.

KemyLand wrote:
Anyway, excellent work sortie, waiting for v0.10/1.0 [-o<

It'll be 1.0 next time, btw. That's what the numbers tell me.

KemyLand wrote:
BTW, were does both the names sortie and thus sortie's Unix/sortix come from?

Sortix is really just Sortie with an X at the end instead. Sortie is the danish word for black with some letters appended. I like the name Sortix for my OS.

Author:  KemyLand [ Tue Dec 30, 2014 2:36 pm ]
Post subject:  Re: Sortix 0.9

sortie wrote:
I reject that premise, and for good reasons. GNU's code really isn't that good. In fact, much of it is terrible. Coreutils, I did do a little port of it once - before I discarded it, isn't very impressive and pretty bloated. The same applies to GNU libc, which also suffers from a good long list of design mistakes, many of which I simply don't know, because I don't attempt to care.

I'm writing my own command line utilities, porting a few things I don't want to implement myself, and I'm writing my own standard library. The job isn't finished, of course, but I learned some very interesting things. My simple operating system is occasionally better. I'm not making the same silly mistakes, I'm designing the system and keeping it simple. I'm pretty confident I can realistically aspire to outcompeting GNU easily in terms of quality.

Don't buy into the illusion that using GNU code is a must. You say GNU libc is essential to port everything GNU related? You know why? I read the source code. It's because those projects are fucking awful and do things they really shouldn't. If you read ./configure scripts, you'll notice they sometimes actively discriminate against systems that don't output the magic GNU string in version checks.

I can do better, and will do better, by going my own path here. I'm not weighed down by compatibility or demands that my system stay the same (and thus stay awful). I'm picking the best bits of Unix and keeping them, and getting rid of anything that's awful. It's my “Embrace or Fight” principle. Either I adopt things and integrate them well, or I fight them all the way and replace them with something better. Do note every time you fight something, you must be willing to pay the price.

Don't assume using X is a necessity, or GNOME/XFCE/KDE, or systemd, or any other must-haves. I'll adopt it if it's good, or likely, do my own better thing. You can do better if you go the hard route. I don't treat ports as something separate from the core system, which I just have to keep happy. I consider them parts of my system, and if they're awful, so is my system. I got a lot of GNU code in this release, and a lot of it is awful. Let's do better.


Really good reasons. I follow that same path, it's just that I though you were one of those GNU religious #-o . Let's sacrify the GNU :mrgreen: :mrgreen: :mrgreen: . BTW, where does that logo of yours comes from. It's a kind of cat or what?

Author:  cormacobrien [ Tue Dec 30, 2014 2:40 pm ]
Post subject:  Re: Sortix 0.9

If you're looking for a readline replacement, NetBSD has Editline under a more permissive BSD license, plus I think it's smaller.

Musl is a fantastic minimal libc. It's designed as a glibc replacement so there's probably some functionality to strip out.

Good luck with development going forward!

Author:  sortie [ Tue Dec 30, 2014 5:06 pm ]
Post subject:  Re: Sortix 0.9

KemyLand wrote:
BTW, where does that logo of yours comes from. It's a kind of cat or what?

It's a stylish cat, yes. I might just share the story another time.

cormacobrien wrote:
If you're looking for a readline replacement, NetBSD has Editline under a more permissive BSD license, plus I think it's smaller.

Musl is a fantastic minimal libc. It's designed as a glibc replacement so there's probably some functionality to strip out.

Good luck with development going forward!


Thanks! I haven't looked into libeditline. Is it API compatible with GNU's libreadline? I already follow musl, it's nice. I don't want it to the libc of my OS, but I certainly trust it to be a great Linux libc. dalias makes good decisions.

Author:  Antti [ Mon Jan 05, 2015 8:08 am ]
Post subject:  Re: Sortix 0.9

This is the best project in this genre.

One little story. I thought that why not, let's try Sortix on few test computers. I did not have a writable optical drive so I needed to burn the ISO on a computer that was not my own. Let's just download the ISO and burn it using Windows. Oh no! I could not extract the xz package! Please release the 1.0 ISO so that everyone can open and burn it.

Author:  Octocontrabass [ Mon Jan 05, 2015 9:45 am ]
Post subject:  Re: Sortix 0.9

Antti wrote:
Oh no! I could not extract the xz package!
Here, try this.

Author:  sortie [ Mon Jan 05, 2015 2:00 pm ]
Post subject:  Re: Sortix 0.9

Excellent compression is crucial to having Sortix releases of manageable size. The xz compression program very much wins against its competition (gzip, bzip2) by providing files half the size, a very significant gain. It's 2015, xz has won the battle of Unix compression, and even Windows software (7-zip) can decompress it. It's even present in Sortix 0.9. ;-) If you can't decompress it, I'll blame you for using bad software.

But I believe there's a better solution. I'll simply make the kernel or bootloader decompress the ramdisk. This way, I get the benefits of compression, but also the property that I can release raw .iso files that don't need to be decompressed.

Author:  KemyLand [ Mon Jan 05, 2015 3:23 pm ]
Post subject:  Re: Sortix 0.9

sortie wrote:
Excellent compression is crucial to having Sortix releases of manageable size. The xz compression program very much wins against its competition (gzip, bzip2) by providing files half the size, a very significant gain. It's 2015, xz has won the battle of Unix compression, and even Windows software (7-zip) can decompress it. It's even present in Sortix 0.9. ;-) If you can't decompress it, I'll blame you for using bad software.

But I believe there's a better solution. I'll simply make the kernel or bootloader decompress the ramdisk. This way, I get the benefits of compression, but also the property that I can release raw .iso files that don't need to be decompressed.

Just don't do what Linux does (decompress itself with a stub :roll: ). That would make debugging impossible, and would require a lot of black magic and games with the ELF format.

Personally, (although you didn't said anything about it) I prefer to have only drivers and executables on the ramdisk, and assets and that kind of stuff somewhere in a ext* filesystem 8)

Page 1 of 2 All times are UTC - 6 hours
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
http://www.phpbb.com/