MenuetOS 1.23.60 released
MenuetOS 1.23.60 released
Recent additions include SMP support for upto 32 processors and 32GB of ram, support for time-critical, non-preempting processes, additions to window transparency, improved usb webcam and storage support, context-mixing compressor, WebCall (IP to IP with audio and video), Streaming audio (Internet radio) and video support, all written 100% in 64bit x86 assembly.
http://www.menuetos.net
http://www.menuetos.net
Re: MenuetOS 1.23.60 released
Cool!
I can't believe that one could create such advanced and successful OS written entirely in fllat assembler.
I'm suprised that your OS supports Serbian language. Why?
Seems that wikipedia MenuetOS page needs to be updated.
I can't believe that one could create such advanced and successful OS written entirely in fllat assembler.
I'm suprised that your OS supports Serbian language. Why?
Seems that wikipedia MenuetOS page needs to be updated.
- BrightLight
- Member
- Posts: 901
- Joined: Sat Dec 27, 2014 9:11 am
- Location: Maadi, Cairo, Egypt
- Contact:
Re: MenuetOS 1.23.60 released
I've not tried this release, but I'll assume it's impressive just as all the others I've tried.
One of my inspirations to write my OS entirely in assembly language was Menuet, by the way.
One of my inspirations to write my OS entirely in assembly language was Menuet, by the way.
You know your OS is advanced when you stop using the Intel programming guide as a reference.
- MichaelFarthing
- Member
- Posts: 167
- Joined: Thu Mar 10, 2016 7:35 am
- Location: Lancaster, England, Disunited Kingdom
Re: MenuetOS 1.23.60 released
This is uplifting. I've felt quite exposed on here with all this talk of C and the disadvantages of assembler. Glad I'm not alone!
To my mind programming in a high level language takes you away from what is going on and half your OS has really been coded by someone else. Added to that there is the wasted time with all those innumerable compiler directives that consistently throw problems at you. At least my problems are all of my own making, which speeds up the process of resolving them quite considerably.
It does require (self-)discipline in that to avoid a spaghetti mess it is helpful to have principles of coding, conventions of register use, and a readiness for that boring concept of documentation. But if you have those in place you will be streets ahead of the C men, who undoubtedely won't have done this..*
*Some of them take a pride in not doing. One of the first C books I encountered had a 'helpful' table of indirection interpretations with the C syntax and helpul translations such as:
"Pointer to an array of pointers to functions returning arrays of pointers to arrays of functions".
I used that ever so often
To my mind programming in a high level language takes you away from what is going on and half your OS has really been coded by someone else. Added to that there is the wasted time with all those innumerable compiler directives that consistently throw problems at you. At least my problems are all of my own making, which speeds up the process of resolving them quite considerably.
It does require (self-)discipline in that to avoid a spaghetti mess it is helpful to have principles of coding, conventions of register use, and a readiness for that boring concept of documentation. But if you have those in place you will be streets ahead of the C men, who undoubtedely won't have done this..*
*Some of them take a pride in not doing. One of the first C books I encountered had a 'helpful' table of indirection interpretations with the C syntax and helpul translations such as:
"Pointer to an array of pointers to functions returning arrays of pointers to arrays of functions".
I used that ever so often
-
- Member
- Posts: 1146
- Joined: Sat Mar 01, 2014 2:59 pm
Re: MenuetOS 1.23.60 released
There's no such thing as an array of functions in C. But a pointer to an array of pointers to functions returning arrays of pointers to functions? Suppose your driver architecture involves each driver having a function to return an array of pointers to the various functions in the driver (note: bad driver architecture) - that's a function returning an array of pointers to functions. Let's call this function "getFunctionPointers()". Now we'll have an array containing a pointer to each driver's "getFunctionPointers()" function so that we can get its function pointers whenever we need to call one of its functions (note: should store them locally to avoid a redundant call into the driver each time) - that's an array of pointers to functions returning arrays of pointers to functions. Then we want to pass this array to another part of our kernel, and the simplest way would be to pass a pointer to it (note: should make kernel more modular) - that's a pointer to an array of pointers to functions returning arrays of pointers to functions. (Just messing around lol.)MichaelFarthing wrote:"Pointer to an array of pointers to functions returning arrays of pointers to arrays of functions".
I used that ever so often
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
Syntax checkup:
Wrong: OS's, IRQ's, zero'ing
Right: OSes, IRQs, zeroing
- MichaelFarthing
- Member
- Posts: 167
- Joined: Thu Mar 10, 2016 7:35 am
- Location: Lancaster, England, Disunited Kingdom
Re: MenuetOS 1.23.60 released
The book went on to concede (as I recall) 'Even experienced C programmers can occasionally get confused'onlyonemac wrote: There's no such thing as an array of functions in C.
I cite that as my defence.
- jojo
- Member
- Posts: 138
- Joined: Mon Apr 18, 2016 9:50 am
- Libera.chat IRC: jojo
- Location: New York New York
Re: MenuetOS 1.23.60 released
Pointers, arrays, function pointers, and compositions thereof, to be clear, have zero to do in particular with C. You have to deal with that stuff just as much in assembly, and in the context of assembly you don't have nice(r) idiomatic typing tools to help you wrangle them, so I'd argue that handling an array of function pointer pointers returning arrays of function pointer pointers would be an even more difficult construct to manage in assembly (though to me, and I feel like to you as well, that's kind of the point and fun of the exercise).
Regardless, I sincerely appreciate the endeavor of writing in assembly (we're here to let our programming freak flag fly, right?), so definitely don't construe this as me being critical.
Regardless, I sincerely appreciate the endeavor of writing in assembly (we're here to let our programming freak flag fly, right?), so definitely don't construe this as me being critical.
- MichaelFarthing
- Member
- Posts: 167
- Joined: Thu Mar 10, 2016 7:35 am
- Location: Lancaster, England, Disunited Kingdom
Re: MenuetOS 1.23.60 released
I didn't take any offence from you (nor, indeed, from onlyonemac's delightful post).jojo wrote: Regardless, I sincerely appreciate the endeavor of writing in assembly (we're here to let our programming freak flag fly, right?), so definitely don't construe this as me being critical.
My venture into this arena is purely for fun and I have set myself a (seemingly) ridiculous task. I have often mused on how the first computers ever got off the ground in much the same way as how DNA ever first got its act together to replicate itself (and being told it was actually RNA that did the job first does not diminish the achievement of whatever molecule it was).
So.. I have allowed myself 512 bytes of hand-coding that I have dumped into the first cluster of a hard disk partition. I also allowed myself to use grub to chainload that cluster. My aim was then to develop everything entirely from those 512 bytes - no assembler, no compiler. The 512 bytes gave me the ability to load a larger block of data from my partition, display it on screen as a series of hex-represented bytes, navigate and edit those bytes and save them back again. What's more, I had three bytes spare. I now have an assembler, disassembler, text editor and an elementary file system that enables me to store documentation in my partition and gives me a backup boot option for when I mess up. There have been just a few occasions (surprisingly few as it happens) when I have had to cheat and use external tools to doctor a few mis-written bytes in my private partition, but once I had taken the precaution of keeping two independently bootable versions I haven't had to do that. I don't recommend it, but it has been (and continues to be) a lot of fun and a satisfying thing to do.
-
- Member
- Posts: 1146
- Joined: Sat Mar 01, 2014 2:59 pm
Re: MenuetOS 1.23.60 released
All I'm saying is, you didn't look that up in the book.MichaelFarthing wrote:The book went on to concede (as I recall) 'Even experienced C programmers can occasionally get confused'onlyonemac wrote: There's no such thing as an array of functions in C.
I cite that as my defence.
Also, I remember a website and equivalent Linux command-line utility to give a formal definition of a C type based on it's declaration as it would appear in code (so you could type in "char* character" and it would say "character is a pointer to a value of type char" or something like that). I think it could also do the reverse (to some extent, if you were exact with your wording) so you could type in "character is a pointer to a value of type char" and it would output "char* character" to give you the correct way to declare what you've requested. Unfortunately I can't remember what it's called.
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
Syntax checkup:
Wrong: OS's, IRQ's, zero'ing
Right: OSes, IRQs, zeroing
-
- Member
- Posts: 5512
- Joined: Mon Mar 25, 2013 7:01 pm
-
- Member
- Posts: 1146
- Joined: Sat Mar 01, 2014 2:59 pm
Re: MenuetOS 1.23.60 released
Thanks. Yes, there is a Linux version available as well. I had it installed before I upgraded to Ubuntu 16.04 and was quite useful (but evidently not useful enough for me to have needed to install it again yet lol - I think at the time I was trying to sort out a particularly complicated section of code and needed a quick way to easily determine exactly what type of variable I was dealing with).Octocontrabass wrote:It's cdecl.org.
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
Syntax checkup:
Wrong: OS's, IRQ's, zero'ing
Right: OSes, IRQs, zeroing
- MichaelFarthing
- Member
- Posts: 167
- Joined: Thu Mar 10, 2016 7:35 am
- Location: Lancaster, England, Disunited Kingdom
Re: MenuetOS 1.23.60 released
Fair cop, guv. I should have put in a 'such as' and it probably didn't do pointers to functions. Got carried away.onlyonemac wrote:All I'm saying is, you didn't look that up in the book.MichaelFarthing wrote:The book went on to concede (as I recall) 'Even experienced C programmers can occasionally get confused'onlyonemac wrote: There's no such thing as an array of functions in C.
I cite that as my defence.
.