OSDev.org

The Place to Start for Operating System Developers
It is currently Thu Oct 19, 2017 7:21 pm

All times are UTC - 6 hours




Post new topic Reply to topic  [ 19 posts ]  Go to page 1, 2  Next
Author Message
 Post subject: Sortix 0.9
PostPosted: Mon Dec 29, 2014 10:11 pm 
Offline
Member
Member
User avatar

Joined: Wed Mar 21, 2012 3:01 pm
Posts: 920
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


Top
 Profile  
 
 Post subject: Re: Sortix 0.9
PostPosted: Tue Dec 30, 2014 3:35 am 
Offline
Member
Member
User avatar

Joined: Wed Oct 30, 2013 1:57 pm
Posts: 286
Location: Germany
Solid work - "except for a few bugs" :D

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

_________________
OSDev Discord
vineyard, a x86 OS.


Top
 Profile  
 
 Post subject: Re: Sortix 0.9
PostPosted: Tue Dec 30, 2014 6:29 am 
Offline
Member
Member
User avatar

Joined: Tue Oct 17, 2006 9:29 pm
Posts: 2423
Location: Canada
Nice work sortie.

_________________
Image
Twitter: @canadianbryan. Award by smcerm, I stole it. Original was larger.
UNIX&BSD's, your only aspirations, to be imitated! 8)
Windows, are an opening in an otherwise solid and opaque surface through which light and, sometimes, even air can pass through; nothing more.


Top
 Profile  
 
 Post subject: Re: Sortix 0.9
PostPosted: Tue Dec 30, 2014 10:29 am 
Offline
Member
Member

Joined: Sat Oct 09, 2010 3:35 am
Posts: 272
Hey,

Nice work, sortie!

=D>

Cheers,
Shikhin

_________________
http://shikhin.in/

Current status: Gandr.


Top
 Profile  
 
 Post subject: Re: Sortix 0.9
PostPosted: Tue Dec 30, 2014 10:50 am 
Offline
Member
Member
User avatar

Joined: Mon Jun 16, 2014 5:33 pm
Posts: 213
Location: Costa Rica
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?

_________________
Happy New Code!
Hello World in Brainfuck :D:
Code:
++++++++[>++++[>++>+++>+++>+<<<<-]>+>+>->>+[<]<-]>>.>---.+++++++..+++.>>.<-.<.+++.------.--------.>>+.>++.


Top
 Profile  
 
 Post subject: Re: Sortix 0.9
PostPosted: Tue Dec 30, 2014 11:10 am 
Offline
Member
Member
User avatar

Joined: Mon Mar 05, 2012 11:23 am
Posts: 551
Location: Germany
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 :)

_________________
-maxdev
Ghost OS / https://github.com/maxdev1/ghost


Top
 Profile  
 
 Post subject: Re: Sortix 0.9
PostPosted: Tue Dec 30, 2014 11:34 am 
Offline
Member
Member
User avatar

Joined: Mon Jun 16, 2014 5:33 pm
Posts: 213
Location: Costa Rica
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)

_________________
Happy New Code!
Hello World in Brainfuck :D:
Code:
++++++++[>++++[>++>+++>+++>+<<<<-]>+>+>->>+[<]<-]>>.>---.+++++++..+++.>>.<-.<.+++.------.--------.>>+.>++.


Top
 Profile  
 
 Post subject: Re: Sortix 0.9
PostPosted: Tue Dec 30, 2014 12:11 pm 
Offline
Member
Member
User avatar

Joined: Wed Mar 21, 2012 3:01 pm
Posts: 920
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.


Top
 Profile  
 
 Post subject: Re: Sortix 0.9
PostPosted: Tue Dec 30, 2014 2:36 pm 
Offline
Member
Member
User avatar

Joined: Mon Jun 16, 2014 5:33 pm
Posts: 213
Location: Costa Rica
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?

_________________
Happy New Code!
Hello World in Brainfuck :D:
Code:
++++++++[>++++[>++>+++>+++>+<<<<-]>+>+>->>+[<]<-]>>.>---.+++++++..+++.>>.<-.<.+++.------.--------.>>+.>++.


Top
 Profile  
 
 Post subject: Re: Sortix 0.9
PostPosted: Tue Dec 30, 2014 2:40 pm 
Offline
User avatar

Joined: Thu Oct 02, 2014 6:24 pm
Posts: 13
Location: Chicago
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!

_________________
Find me on Github and Bitbucket.


Top
 Profile  
 
 Post subject: Re: Sortix 0.9
PostPosted: Tue Dec 30, 2014 5:06 pm 
Offline
Member
Member
User avatar

Joined: Wed Mar 21, 2012 3:01 pm
Posts: 920
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.


Top
 Profile  
 
 Post subject: Re: Sortix 0.9
PostPosted: Mon Jan 05, 2015 8:08 am 
Offline
Member
Member

Joined: Thu Jul 05, 2012 5:12 am
Posts: 862
Location: Finland
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.

_________________
Undefined behavior since 2012


Top
 Profile  
 
 Post subject: Re: Sortix 0.9
PostPosted: Mon Jan 05, 2015 9:45 am 
Offline
Member
Member

Joined: Mon Mar 25, 2013 7:01 pm
Posts: 1161
Antti wrote:
Oh no! I could not extract the xz package!
Here, try this.


Top
 Profile  
 
 Post subject: Re: Sortix 0.9
PostPosted: Mon Jan 05, 2015 2:00 pm 
Offline
Member
Member
User avatar

Joined: Wed Mar 21, 2012 3:01 pm
Posts: 920
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.


Top
 Profile  
 
 Post subject: Re: Sortix 0.9
PostPosted: Mon Jan 05, 2015 3:23 pm 
Offline
Member
Member
User avatar

Joined: Mon Jun 16, 2014 5:33 pm
Posts: 213
Location: Costa Rica
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)

_________________
Happy New Code!
Hello World in Brainfuck :D:
Code:
++++++++[>++++[>++>+++>+++>+<<<<-]>+>+>->>+[<]<-]>>.>---.+++++++..+++.>>.<-.<.+++.------.--------.>>+.>++.


Top
 Profile  
 
Display posts from previous:  Sort by  
Post new topic Reply to topic  [ 19 posts ]  Go to page 1, 2  Next

All times are UTC - 6 hours


Who is online

Users browsing this forum: No registered users and 7 guests


You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot post attachments in this forum

Search for:
Jump to:  
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group