OSDev.org

The Place to Start for Operating System Developers
It is currently Tue Apr 16, 2024 12:18 pm

All times are UTC - 6 hours




Post new topic Reply to topic  [ 20 posts ]  Go to page 1, 2  Next
Author Message
 Post subject: The Path to Total Freedom - a thought experiment
PostPosted: Mon Dec 14, 2015 7:44 am 
Offline
User avatar

Joined: Tue Sep 08, 2015 6:53 pm
Posts: 6
What one osdevver need to do, to create a truly free OS?
By free, I don't just mean money, but legal obligations. We all know those free licenses, MIT, GPL, Apache, but by using them, you inherit some legal obligations, as in some derivatives should be free too.
In the real world, it's logical, useful, and we're all grateful for those licenses, and the people who create programming material, and share them under those licenses. But a thought experiment came up to my mind: What should I do, to achieve true freedom?

To be hundred percent sure, that you've achieved total freedom from money and legal obligations, you should
1. Create your own programming language, using another one.
2. Write your own compiler for it.
3. Rewrite your compiler using your own language.
4. Develop your OS using that language.

Note: This came up to my mind, when I started to develop some PIC handling in Rust. Someone more adequate to that task wrote one, and it's under GPL, but basically it would be illogical to write a different one, because PIC, and Interrupt handling doesn't give much space to that, that's how it works. So does the "General Public" owns all PIC-related stuff in Rust from now onto forever, can the license apply to such a thing? That's what lead me to this true freedom question.

Discuss.


Top
 Profile  
 
 Post subject: Re: The Path to Total Freedom - a thought experiment
PostPosted: Mon Dec 14, 2015 9:06 am 
Online
Member
Member
User avatar

Joined: Sat Mar 31, 2012 3:07 am
Posts: 4594
Location: Chichester, UK
Why stop there? Why not develop your own processor and peripherals too.

That makes as much sense as creating your own programming language and compiler. Using C and GCC (for example) places no legal or monetary restrictions upon your program. The same goes for Rust or any other GPL compiler.


Top
 Profile  
 
 Post subject: Re: The Path to Total Freedom - a thought experiment
PostPosted: Mon Dec 14, 2015 11:26 am 
Offline
Member
Member
User avatar

Joined: Mon Mar 05, 2012 11:23 am
Posts: 616
Location: Germany
iansjack wrote:
Using C and GCC (for example) places no legal or monetary restrictions upon your program. [...] or any other GPL compiler.

^ This. See for example the LGPL appendix of GCC license.

I would for example say that the core of my OS has barely any legal restrictions. Only thing is musls math library that I use as a part of my C library.

_________________
Ghost OS - GitHub


Top
 Profile  
 
 Post subject: Re: The Path to Total Freedom - a thought experiment
PostPosted: Mon Dec 14, 2015 11:56 am 
Offline
Member
Member
User avatar

Joined: Sat Jan 15, 2005 12:00 am
Posts: 8561
Location: At his keyboard!
Hi,

Synapse wrote:
What one osdevver need to do, to create a truly free OS?
By free, I don't just mean money, but legal obligations. We all know those free licenses, MIT, GPL, Apache, but by using them, you inherit some legal obligations, as in some derivatives should be free too.
In the real world, it's logical, useful, and we're all grateful for those licenses, and the people who create programming material, and share them under those licenses. But a thought experiment came up to my mind: What should I do, to achieve true freedom?


In my opinion; the obligations imposed by some licenses (e.g. BSD, MIT, Apache) are relatively insignificant; and obligations imposed by compatibility are far more significant.

For one of many examples; poor ancient language design (e.g. how awkward it is to return multiple values from a function in C) paves the way for poor work-arounds (e.g. having "errno" because it's too awkward to return the cause of an error from a function directly) which leads to even worse work-arounds (abusing thread local storage as a hack to make "errno" usable for multi-threaded software); where to actually fix the problem and create a clean programming environment that isn't crippled by "historical idiocy" you have to replace the language, its library, and all software that used either.

Synapse wrote:
To be hundred percent sure, that you've achieved total freedom from money and legal obligations, you should
1. Create your own programming language, using another one.
2. Write your own compiler for it.
3. Rewrite your compiler using your own language.
4. Develop your OS using that language.


In my case (where "plain text as source code file format" is part of the historical idiocy I'm trying to fix) this isn't enough.

I tried to design and create my own source code file format, but to avoid writing a full IDE for another OS (a huge amount of work that would've been useless/discarded later) I started with a "pre-translator" to convert plain text into my source code file format. What I discovered is that my mind is cursed - even when deliberately trying to avoid obligations imposed by "plain text as source code file format" I still made design decisions (in both the language and in my source code file format) that were tainted by "plain text".

Mostly what I'm getting at here is that (in addition to the obvious problems of replacing languages and all software) there's a less obvious problem, which could be described as "breaking through a mental barrier of preconceived ideas originating from existing software".

Note that if you write your own code in your own language without ever even seeing anyone else's code, then you still have to worry about infringing patents. For this reason I'd be tempted to say "true freedom" is unobtainable.


Cheers,

Brendan

_________________
For all things; perfection is, and will always remain, impossible to achieve in practice. However; by striving for perfection we create things that are as perfect as practically possible. Let the pursuit of perfection be our guide.


Top
 Profile  
 
 Post subject: Re: The Path to Total Freedom - a thought experiment
PostPosted: Mon Dec 14, 2015 3:14 pm 
Offline
Member
Member

Joined: Sat Mar 01, 2014 2:59 pm
Posts: 1146
Sometimes for me I think about developing a computing platform that is completely independent of all other platforms. So that means, designing my own CPU, writing my own operating system for it, defining my own filesystems, file formats, networking protocols, and so on. I don't intend on doing this, but sometimes I think about it when I get frustrated at "big names" driving people to upgrade or change their computing systems in some way just because they feel like it (as an extreme example, Microsoft "forcing" people to upgrade their operating systems, and by implication their hardware, or being "forced" to upgrade one's web browser regularly because of rapidly-changing web standards).

_________________
When you start writing an OS you do the minimum possible to get the x86 processor in a usable state, then you try to get as far away from it as possible.

Syntax checkup:
Wrong: OS's, IRQ's, zero'ing
Right: OSes, IRQs, zeroing


Top
 Profile  
 
 Post subject: Re: The Path to Total Freedom - a thought experiment
PostPosted: Mon Dec 14, 2015 3:53 pm 
Online
Member
Member
User avatar

Joined: Sat Mar 31, 2012 3:07 am
Posts: 4594
Location: Chichester, UK
Nobody can force you to upgrade. If you think your computer and software are good today they are just as good tomorrow. So if you don't want the improvements provided by new hardware and new software, just stick with the old stuff. A 5250 is as powerful today as when it was first made.


Top
 Profile  
 
 Post subject: Re: The Path to Total Freedom - a thought experiment
PostPosted: Mon Dec 14, 2015 4:07 pm 
Offline
Member
Member

Joined: Sat Mar 01, 2014 2:59 pm
Posts: 1146
iansjack wrote:
Nobody can force you to upgrade. If you think your computer and software are good today they are just as good tomorrow. So if you don't want the improvements provided by new hardware and new software, just stick with the old stuff. A 5250 is as powerful today as when it was first made.
I can't say I appreciate your sarcasm. One is forced to upgrade simply because the rest of the world moves forward (driven mostly by "big name" companies) and one needs to keep up with it. I still can't get my head around the fact that I installed an *up to date* Linux system a year ago, and today the supplied browser renders about 10% of pages incorrectly. That's in one year, and already I've had to upgrade my browser. I hate having to upgrade my browser every three months, bringing with it subtle but significant interface changes, just because Google can't decide what version of CSS they want to use for their Android developer website (it's not like they even changed the layout, just "updated" the code because basing responsive style sheets on standards more than three months old is just so uncool for someone as big as Google). And we had to buy a whole new computer a few years ago because the Windows XP computer didn't have enough RAM to run Windows 7, and Windows XP didn't support a newer version of Internet Explorer and there were so many pages that displayed badly that we had to upgrade the entire operating system, and thus the entire computer, just to be able to read a news article.

_________________
When you start writing an OS you do the minimum possible to get the x86 processor in a usable state, then you try to get as far away from it as possible.

Syntax checkup:
Wrong: OS's, IRQ's, zero'ing
Right: OSes, IRQs, zeroing


Top
 Profile  
 
 Post subject: Re: The Path to Total Freedom - a thought experiment
PostPosted: Mon Dec 14, 2015 4:39 pm 
Online
Member
Member
User avatar

Joined: Sat Mar 31, 2012 3:07 am
Posts: 4594
Location: Chichester, UK
No sarcasm was intended. Please don't be so over-sensitive as to suppose that if someone presents an alternative point of view they are being sarcastic.

I was simply stating my belief that people upgrade not because they are forced to but because they want more out of their computers. But if you are happy to stick with what you have got, then do so. I haven't upgraded my computer hardware significantly for at least 5 years (although I did buy an SSD because I wanted better performance - a deliberate choice, not something foisted upon me) and the only updates that I have done to software have been free ones.

The browser problem is something else entirely - and designing your own computer and writing your own OS is only going to make it more of a problem. Again, it is not forced upon us by big business but is in response to user demand; we want more capable web pages. But I've not had to upgrade my hardware, or pay for new software, to take advantage of newer web standards.


Top
 Profile  
 
 Post subject: Re: The Path to Total Freedom - a thought experiment
PostPosted: Mon Dec 14, 2015 8:01 pm 
Offline
Member
Member
User avatar

Joined: Sun Jan 13, 2013 6:24 pm
Posts: 90
Location: Grande Prairie AB
Synapse wrote:
What should I do, to achieve true freedom?

Digress from all known methodologies and development paradigms. This means not using ELF, FAT or anything that is GPL'd, or has any sort of licencing component. Maybe even replace BIOS and/or UEFI.

This is my focus of attention and therefore there is only one program in my toot box, NASM and all I do is produce flat binary files. Will there be some means by which to link or utilize a relocating loader, maybe, but it will be of my own design. Is it my intention to be unique amongst developers, no, it is just simply a hobby for me and algorithm design and learning the instruction set and architecture is.

The point I'm making here is that when I sit back and think about it, there will be zero licencing restrictions of my work as from my perspective it will be unique. I'm sure from others points of view the first word they'd think of is unorthodox, maybe even bizarre.

Maybe that's the Achilles' heel in developing an operating system that has some sort of compatibility with M$ or Nix. From what I understand, Microsoft owns fat.


Top
 Profile  
 
 Post subject: Re: The Path to Total Freedom - a thought experiment
PostPosted: Tue Dec 15, 2015 1:01 am 
Online
Member
Member
User avatar

Joined: Sat Mar 31, 2012 3:07 am
Posts: 4594
Location: Chichester, UK
Microsoft holds patents on some aspects of FAT only; all relate to long file names. So don't avoid FAT because of licensing concerns. Avoid it because it is a poor file system.


Top
 Profile  
 
 Post subject: Re: The Path to Total Freedom - a thought experiment
PostPosted: Tue Dec 15, 2015 1:27 am 
Offline
Member
Member

Joined: Sat Mar 15, 2014 3:49 pm
Posts: 96
Synapse wrote:
What one osdevver need to do, to create a truly free OS?
By free, I don't just mean money, but legal obligations. We all know those free licenses, MIT, GPL, Apache, but by using them, you inherit some legal obligations, as in some derivatives should be free too.
In the real world, it's logical, useful, and we're all grateful for those licenses, and the people who create programming material, and share them under those licenses. But a thought experiment came up to my mind: What should I do, to achieve true freedom?


We must have very different definitions of 'freedom'. See http://www.gnu.org/philosophy/free-sw.en.html

We must also have very different understandings of licenses such as MIT and Apache as these are examples of licenses that don't specify that derivatives should be free too.

In fact, not specifying a license is one way to ensure that it is in no sense 'free'. See http://choosealicense.com/


Top
 Profile  
 
 Post subject: Re: The Path to Total Freedom - a thought experiment
PostPosted: Tue Dec 15, 2015 9:53 am 
Offline
User avatar

Joined: Tue Sep 08, 2015 6:53 pm
Posts: 6
MIT: "The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software."

Apache: "You must give any other recipients of the Work or Derivative Works a copy of this License;"

If I want to sell my OS (it does nothing important yet, just boots the machine up, and check the memory) I would actually have more characters in redistributed licenses, than in the code itself, because I followed some tutorials, and tried some example codes. If I ever got to fire up a working shell, filesystem, and whatnot, it could increase exponentially. While the question remains a theoretical one, and I think nobody ever checked these hobby OS-es for patent infringement (notable exception's being the ReactOS) somehow I prefer to use clean reimplementations because of this phantom legal wieght on my shoulders.

Your answers are enlightening and discouraging at the same time, but what can a hobby OS developer do? What would be the steps to at least reduce this legal weight?


Top
 Profile  
 
 Post subject: Re: The Path to Total Freedom - a thought experiment
PostPosted: Tue Dec 15, 2015 11:41 am 
Offline
Member
Member

Joined: Sat Mar 01, 2014 2:59 pm
Posts: 1146
Synapse wrote:
Your answers are enlightening and discouraging at the same time, but what can a hobby OS developer do? What would be the steps to at least reduce this legal weight?
Just have fun, write your own code where you're not comfortable reusing someone else's, and don't worry so much about legal issues. If you're copying someone else's code for your own personal project, and they've made their code freely available under their choice of licence, there's probably nothing to worry about. If you're writing your own code to implement something that's covered by patents or is non-open (e.g. NTFS), there's again probably nothing to worry about - ntfs3g has been around for years and so far Microsoft haven't managed to stop it (and it's perfectly legal, too, due to being a "clean room" reverse-engineer; if it was based on leaked documents from Microsoft and disassembles of the Windows kernel then that would be a different matter). Your project's probably not going to be so big that people start worrying about legal issues - there are more issues surrounding the code in various parts of a typical Linux operating system that a lot of people just turn a blind eye to anyway.

_________________
When you start writing an OS you do the minimum possible to get the x86 processor in a usable state, then you try to get as far away from it as possible.

Syntax checkup:
Wrong: OS's, IRQ's, zero'ing
Right: OSes, IRQs, zeroing


Top
 Profile  
 
 Post subject: Re: The Path to Total Freedom - a thought experiment
PostPosted: Tue Dec 15, 2015 12:19 pm 
Online
Member
Member
User avatar

Joined: Sat Mar 31, 2012 3:07 am
Posts: 4594
Location: Chichester, UK
Synapse wrote:
Your answers are enlightening and discouraging at the same time, but what can a hobby OS developer do? What would be the steps to at least reduce this legal weight?

If you want to port or redistribute programs with your OS then of course you need to attribute them. But if you just want to use an editor, a language, and a compiler to produce your OS then there are no such requirements.


Top
 Profile  
 
 Post subject: Re: The Path to Total Freedom - a thought experiment
PostPosted: Wed Dec 16, 2015 4:20 pm 
Offline
Member
Member

Joined: Wed Sep 07, 2011 3:34 pm
Posts: 112
"If you wish to make an apple pie from scratch, you must first invent the universe." And Sagan didn't even have to think about writing drivers for closed source hardware!


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

All times are UTC - 6 hours


Who is online

Users browsing this forum: Bing [Bot] and 28 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