V2 OS
Blizzard-ahb writes "You may want to have a look at this 'still has that new car smell' operating system.
V2 OS is written entirely in ASM for x86 processors and aims to be the fastest OS around. Just needs some developers to start coding some applications for it.
It weighs in at a massive 37KB download. There is a SDK availible for download that uses C, or you could write in ASM as well. Did I mention that it was free?"
There was nothing particularly funny in the consept of of your statement, however, the way you said it just made me laugh. (You should have said (The moderators are so on crack, it hurts. , removing the 'high' part. oh well.)
and it's score 3 now...
ReadThe ReflectionEngine, a cyberpunk style n
They seem to be pushing it as if it will actually go into wide use.
It's a cool toy, but it is a toy, and it's not presented as one. All that stuff about performance is nonsense, because the overhead of even the current piggy in-use software isn't a big deal. What's the point of reducing task-switching overhead from 0.3% to 0.01%? You still gain less than 0.3%
Also, this would be a much, much cooler toy if it came with source. Why do you want a toy OS, except to tinker with its guts?
OTOH, it's good to be reminded now and then just how small code can be. I love coding in assembly and seeing just how much I can fit into a KB. Size-limited programming contests rule, especially game programming, especially with exotic platforms (nothing to stretch the old brain like learning to program an Atari 2600).
It really sounds like these guys wrote themselves a rather large and difficult to maintain and debug OS. That's what they said about Linux when it first came out.
PS: Hey, BTW, does anyone know of any attempts to put Linux on cell phones? (Just cause we can!) I've been looking around but haven't seen any info out there.
dude-- that's what EMULATORS are for!
-_-
i wonder how difficult it would be to write an assembler that translated between machine codes. If it's at all possible, i'd say it should be a _lot_ easier to go from a heavily CISC chip like the x86 to a heavily RISC one like the PPC than the other way around. But then again i wouldn't know-- i know next to nothing about assembly, and i don't know how things like different registers affect the basic way the code is written, never mind instruction sets.
Irritable, left-wing and possibly humorous bumper stickers and t-shirts
it's not portable, because it's pointless, because it's not Linux. Yet you seem to like Star Wars crap made out of legos...
... makes sense to me ;-)
But see, lego[s] are portable, are mostly-pointless except for creativity, and share the force with linux
"it's you, inside yourself"
Any idea where I can find info on PPC assembler? I seem to not be able to find reference to instructions or compilers...
Well, assembly is *NOT* hard to code with. Only the horrendous x86 architecture makes it seem so (Looking at all the exceptions and modes of the x86 makes my head spin). Basically, the x86 has a register set which is probably similar to a pocket calculator. [Honestly, certain instructions faster in say, AX rather than BX/CX/DX? Trying to optimize this is quite difficult. The 386 is popular because it generalized a few addressing modes across more registers (very helpful)]. Of course, MMX is a real mess (using the floating point register/stack for MMX manipulation, and having to reinitialize the registers if you want to do FP instructions (Intel tutorials)).
There *WERE* processors of the era that have a much nicer architecture (like the 68000), and many more registers [wow. 8 32-bit data registers, and 7+1 32 bit address registers...]. Yes, I'm biased. I love coding in assembly on a 68k processor. And I've found out how to code in assembly on a nice HC11 microcontroller [great fun! Register deprived, yes, but nothing too complicated, and very simple to code for].
Intel recognized this, which is why the later processors (Pentium II, Pentium III, etc) have more hardware-mapped registers that the hardware remaps to the x86 registers. (These registers can't be altered from software - they for out of order execution, etc).
People do program in assembly still, like Steve Gibson, and a link off of him has someone who *TRIED* to do DDE, and gave up after seeing its complexity. Still amazes me to see that SpinRite 5 is only 100k or so.
The site is Slashdotted heavily, but I downloaded the OS itself from the mirror some nice person posted above.
Note to the Mac users out there: yes, it does work in Virtual PC (though I needed to use a real PC to install the thing, it booted in VPC as well). I'd imagine it'll work with Bochs or MESS as well.
It's very pretty as command-lines go (though Darwin has the prettiest command-line I've ever seen, as if that matters at all). I don't see much use for it, but since I couldn't get into the site I could be missing something. It would have been nice if they had provided a PCX file on their demo disk to go with their PCX viewer, though. As it is I'm not sure how I'm supposed to put one on a V2-formatted disk so I can run the viewer.
Uh exactly what babble is this you're spewing?
"People in the lame NT world?" There is quite a large number of intelligent NT users, much like there is a large number of clueless Linux users. Save your self styled eliteness for someone who cares.
Secondly think for a minute, if people followed your suggestion and stuck to a single "Free OS" you'd be in front of a *BSD machine right now instead of your precious Linux. Interesting thought, ne?
I am a rabbit, patiently lathering my anus with my soft sof tongue. I feel a need for Natalie Portman and Drew Barrymore. I do not have a craving Dave Barry, however. At least not his body. His books, well maybe. In any case, Here i go running across the road.
(waits for the splat)
Hamsters are at least as feathery as penguins. HamLix
I WANT TO JOIN OPEN SOURCE CAROLINA KASTING
-- You are in a twisty maze of passages, all alike.
Exactly. It's yet another OS, and it's not open source. (I'm taking your word for this, their site appears to be /.ed and I can't check to look for source.)
// booted in only four seconds, off of a floppy no less, and the OS was under 8k!) then why would people switch to it and code apps for it when they'd have to reinvent the wheel just to eventually be where we already are.
Bear with me on this. If an application isn't open source, only that application and the users of it will suffer. If an OS isn't open source, all applications and all users suffer.
The OS is the one part that *must* be open source. If it's not, the whole house of cards might as well be built on prime Florida landfill.
And, why do we need another OS? This one seems to have one benefit, it's the easiest way to ship some piece of software that just plans on taking over the hardware as soon as it's loaded. If I was writing software to turn a PC into a network diagnostic unit or a robotics control station for an automated drill, this would be fine.
But for anything else, the network effect is the biggest problem. When Linux came out, it had TCP/IP networking and was a unix-like. You could network it with other OSes and didn't have to learn a new OS paradigm to use it. Does this 37k OS support that?
And, why do we need a new OS? Seriously. If this doesn't offer any improvements (other than size and speed, but my Apple
And then, even if they had a reason, why would they pick a closed source OS?
You are right, and the "Nerds" have spoken. The previous postings have pointed out the flaws in writing an operating system in hard to maintain assembly, writing for a processor that is in very few embedded devices, and the uphill battle the OS faces.
A lesser site would be talking about how 1337/Kool these programmers are, and predicting this OS might take over the world. The readers of Slashdot expect more. The thoughtful discussion that is taking place right now is a prime example.
Sig goes here
Uhh, code bloat, yes. But instability?? No way. It's WAY easier to screw up using assembler than using C, and in turn it's way easier to screw up using C than using some higher-level language like Lisp or Smalltalk.
Well, the app wasn't optimized for a cyrix, You'd probably notice more of an advantage on a pentium or similar
ReadThe ReflectionEngine, a cyberpunk style n
True, i can see and understand this, for IO ports one should be able to say, give me access to io ports in the range of xxxx-yyyy, if they are not hooked by the os (eg: so i cant take over the PIC and reprogram it, etc).
for things like memory mapped perhiperals, i'd say device drivers required etc ;)
I still think, having no memory protection is a feature.
I think if you want an Os that engineers can plug in custom boards, a protected os may not be the way to go, BUT after testing when the boards are in practice i think a protected os would be the way to go ^_^....
The pros/cons for having memory/app/io protection etc, _imo_, outweigh those for not having protection.
Write your Own Operating System [FAQ]!
no sig for you
But the keyboard is so small! I never got used to typing with both just two keys.
--
IMHO assembly is the right choice when it comes to speed, as i'm involved in game development and most of the time the extra speed is mandatory for complex algorithms and hardware tricks, but games are developed for common hardware and most of the time they don't really need to be very flexible.
:)
But in the OS side, speed is definitely not as important as a clever design. If these guys want their OS to lift off they better be very thoughtful, because it doesn't make any sense to code the fastest hack if you can't really extend its capabilities or program applications easily. I think a good example of what does a well-built, small, fast AND portable OS look like is QNX. OS, GUI, Web server, browser and some more stuff fits in a floppy, and most of it is written in C/C++.
Personally, I hate coding the same thing twice for two different platforms, I really like the idea of using my code for more than one thing, and that's what standards like ANSI C and POSIX are all about.
These guys might as well win some Assembly '00 award with amazing code like the V2, but let's be serious, assembly should be used only when needed.
That said, coding in assembly is really fun (except when you have to explain your code either to other person or to yourself after some weeks of working at something else
--------------------
- Otaku no naka no otaku, otaking da!!!
There was RSX-11, RT-11, DOS, IAS, RSTS, MUMPS and UNIX. It was probably IAS, a timesharing system if my memory is correct.
Mea navis aericumbens anguillis abundat
The helpful answer: Try the Motorola PowerPC 601 User's Manual to learn the instruction set and architecture. This is the definitive reference, nobody bothers to write anything after this. A PPCAsm compiler comes w/ Metrowerks' Discover Programming.
The discouraging answer: If you don't already own CodeWarrior, you probably have some other stuff to learn first.
The distrustful answer: Why is your homepage www.ms.com? Maybe I shouldn't tell you this...
Check out Project Upper/Mute, an all-around awesome compiler fra
That's not necessarily true. I've slipped comments into machine code before. Just make sure you JMP over them!
(Why put comments in machine code, you ask? Usually just to say "Hi!" or make a joke to cause the person looking at your raw machine code laugh.)
--
"Convictions are more dangerous enemies of truth than lies."
Dont be so jumpy for the first post.
But, before I forget, FIRST REPLY TO FIRST POST!!!!
(just kidding).
i dont display scores, and my threshhold is -1. post accordingly.
Your post was funny as hell
Thank you.
(licking their asses?)
As I was writing, I looked up and my cat was devotedly licking his ass. He's nice as hell, but he's not very bright. In fact, my characterization of the rabbits was based as much on him as on the AC. I also forgot to mention in the post that I lifted the rabbit metaphor from Hunter S. Thompson. He did it better than me, of course.
Without his work, I'd probably know a lot less Perl than I do now.
I don't doubt that he's far more technically accomplished than I am, nor that he's done some (or even many) worthwhile things, but not being a Perlist, all I've seen of him has been his public outbursts. Take for for example his advocacy of the "Demon Penguin" thing. He was demanding that the community "punish" Richard Stallman for the "GNU/Linux" thing. He wanted Stallman humiliated and brought to heel. This is childish. For God's sake, however endlessly annoying Stallman may be, he operates by trying to persuade people to agree with him. Christiansen operates by trying to kick people into submission, which annoys me a lot more. Christiansen has the same right to shoot his mouth off as Stallman does, but what he says doesn't tell me anything good about him. IIRC the project to replicate the GNU utils in Perl was similarly motivated. In the course of that discussion here on Slashdot, somebody posted some links to a couple of Christiansen's posts on a (the?) Perl mailing list, where he displayed a genuinely monumental self-regard (and he also posted an insufferably arrogant and rude but logically sound and convincing defense of useless time-wasting projects like the Perl/GNU utils thing -- which is why he popped into my head here). He seems to be a bit of a flamer in general. Also in the course of that discussion, he posted some bizarre screed wherein he tried to "prove" that Perl is a compiled language, in response to people who say it's interpreted. Apparently that really gets under his skin, though I'm not sure why anybody would care. It does what it does, and if that's good, it's good, regardless of what semantic sophistries you weave around it. It's just the most meaningless, perfect non-issue I've ever seen. There are some practical respects in which Perl behaves like an interpreted language, whether it's byte-compiled or not. One of these is the fact that a Perl program minimally requires far more elaborate runtime support than a compiled executable (minimally) does. Persuading people to call it "compiled" won't fix that. It's not a semantic issue, it's how the software works. Nevertheless, he seems to be locked into the "one true language" mentality.
Oh, yeah, Christiansen also objects stridently to GNU-style long commandline options ("--help" etc) on the grounds that they make UNIX "impure" or something, and presumably they lead to the sin of self-documenting scripts. He seems to be one of these self-appointed Old-Fashioned UNIX Gurus who thinks the users need to be kept in their place. In view of the currently perceived need to keep network protocols open by propagating non-MS operating systems and other software, "keeping the users in their place" is in fact a recipe for helping the more depressing elements of the proprietary software world to keep us in our place. It's not just mean-spirited and pointless; it's self-destructive as well. Friendly interfaces aren't inconsistent with good software (to the contrary!) and unless you're running a BBS in your basement, stupid users pay your bills. We're asking them to invite us to the party. When we get there, let's not shit on the rug and belch, even though "in principle" that may be the right thing to do.
>>even though Linux appears to be out selling the Mac, quiet an achievement for something that can be had for free...
Quite an unclear and ambiguous statement.
1. Linux is an operating "the Mac" can be interpreted as either a. a family of computers that sell for anywhere from $899-$3499 or b, an operating system that sells for $99 unless it comes bundled with one of the computers from (a.).
Or I suppose that you could mean computers with the OS installed for both, which I'd LOVE to see documented by a reputable source.
You can't compare sales of an OS to sales of hardware. If you mean the MacOS you must specify that.
2. Define "out selling" do you mean a. selling more copies, or b. selling more in terms of $$$.
Since linux CDs can be had for as cheap as $1.99 if you sell 100 of them, it's not the same volume of cash as 3 copies of the MacOS.
If you want to consider "out selling" to be simply selling more CD's containing the OS(without the hardware), I wouldn't be surprised if linux was "outselling" MS Windows products.
There are other ways that your statement could be interpreted which I shall not cover because I don't want ot take the time, however if I've misinterpreted your intent or meaning, please let me know.
LK
--Disclaimer(I use Linux, Windows, and the MacOS both at work and at home.)
"Hi. This is my friend, Jack Shit, and you don't know him." - Lord Kano
I had the honor of learning assembly from him (I'm a student at UCR). The guy knows everything there is to know about almost everything. You may also want to check out RATC, a pretty neat set of macros for C.
He has been in the business for a long time and knows a lot about the history of the industry.
His classes are a mixture of computing history and actual programming. It was the only CS class I attended constantly just because it was so damn interesting.
A lot of his students don't like him because he is so demanding, but you will definately learn a lot by reading anything he has written.
I heard that he is currently teaching his assembly language class using an assembler that he wrote himself.
Also, any budding assembly programmers probably want to check out the UCR Standard Library, also available from http://webster.cs.ucr.edu/
This makes programming assembly a lot easier.
All coders need this book, it is the most comprehensive book on assembly ever written. Even if you dont want to program an x86 architecture, the theory (optimization, memory alignment, etc.) still applies.
Yes, if you actually followed the link, it is free... its in the two lines of text on the main page...
:)
V2_OS offers more speed, expandability, and hardware control for adventurous projects and easy programming FOR FREE!
or were you just going for first post?
BeOS is highly portable... it can't be built on that much asm.
Check out Project Upper/Mute, an all-around awesome compiler fra
...throw it on a floppy and try it in VMWare
Just did that in VMware 1.1.2. Boots, but freezes whrn the "terminal screen" comes up, and trashes the screen. The boot process is pretty fast, though, even under the virtual machine.
Actually, you can just write a gcc machine specification on a supported machine, cross-compile gcc and whatever else you need for the new machine, and then figure out a way to initially load your new executables. No assembly required, except for the poor sap that makes the gcc spec work for the new machine.
Why not simply email the admins of these sites and ask them if they would like (1 Slashdot to go ahead and link to them, (2 Slashdot to not link to them, mention them, etc. or (3 Slashdot to mirror them temporarily. Seems like that could be helpful in minimizing the obscene amount of traffic a simple mention of a site on Slashdot can produce.
...so porting versus rewriting isn't that big of a deal.
- Schematics for the new IBM PowerPC Open Platform Reference Design
- The comp.sys.m68k FAQ: info about one of the first and most hacked on (and loved) Unix microprocessors. Cheap and well-documented.
- A picture of Ingo Cyliax's 68030 workstation, the CS335.
Sorry about the lousy formatting in the first post, btw.C code -> Preprocessed C code -> assembly code -> machine code -> linked code
.asm file you make turns into a seperate object. by linking code, you can write diffrent functions in diffrent files, and re-use them for other projects. With C, you can use header files, and other things, but linking is still used. There is no diffrence between 'linked code' and 'machine code'
No:
C code -> macnine code
asm code -> macnine code
When you link code, you connect the parts of the code you've already writen together
When you're doing asm programing, each
Assembly is just a human readable form of machine code, There is no reason for a compiler to create assembly, beacuse humans arn't going to be reading it. When you see the asm output in a debug window, its actualy just been unassembled
ReadThe ReflectionEngine, a cyberpunk style n
If you want, you can put comments in the output of a C compiler. just do somthing like this:
main(){ "Hello, this is a comment!!" cout "This program file has a comment!!"; }
ReadThe ReflectionEngine, a cyberpunk style n
I have to agree with the above post. Why is it whenever someone is doing something different and little bit out on the edge so many negitive comments pop up if its not specifically Linux. While some fair negitive comments were made (That coding effort should move towards embedded platforms) many more where "Why waste time on that its not Linux, its dead ix86 hardware, blah blah"
Why arn't more people supporting stuff like this? It keeps options open for hackers who do want to play with OS assembly on the ix86, who might find Linux not their cup of tea or who might have ideas about how to do ASM portably .
So why not show some support and have a look at the work (once the server gets a rest) for this and other 'alternative' projects!
WeirdArms
If you want, you can put comments in the output of a C compiler. just do somthing like this:
main(){
"Hello, this is a comment!!"
cout << "This program file has
a comment!!"; }
ReadThe ReflectionEngine, a cyberpunk style n
That I've noticed. When I did a program in VB (yes, yes I know, but it was easy and speed wasn't an issue [no one will notice if it took 1 second or .01 seconds to do what it had to do]), I spent far more time managing the windows than trying to do the actual code...
Something like 10% did the actual work, 90% just to manage the windows/buttons/etc portion.
try making it clear that you're joking, like putting another paragraph at the bottom, and using a ;)
It's hard to tell who really is that dumb, unless they give you some kind of clue that they have a clue. I didn't think about the fact that you weren't AC, and I bet most people didn't either.
#define X(x,y) x##y
#define X(x,y) x##y
Peter Cordes ; e-mail: X(peter@cordes ,
> When you have 512K of flash to store all your applications, and MAYBE
> another 256K of RAM, you have to squeeze everything that you can bare
> out of your software.
Spoiled brat! You'll have ample justification to bitch when you'll have to fit your controlling program into 2K bytes of ROM, whilst having only 127 bytes of RAM to play with...
-- ----------------------------------------------
Vive le logiciel... Libre!!!
Hey, I can't make it work on me puter! Don't think it likes having non-dos stuff... Or maybe it's the SCSI and multiprocessor setup... But then again, maybe it just didn't work. Anyone else have any problems?
Explain. Linux advocates are often critisized for their "one OS, one world - but my OS" mentality. The GPL helps them, because fragmentation, while plausable, is difficult. With Linux's "culture" very quick to attack anything people assume the majority may be queasy about, its rather the other way around. The BSDL has created fragmentation, or rather helped competing product development time through their code, which improves the entire community. Windows uses BSD code, most UNIX OSes use BSD code, etc. You even say "*BSD" meaning all bsds. There is no single free BSD OS that has become popular while the rest perish, where as with the GPL only Linux is noticed, others fall through the cracks.
So I'd say if you want a single OS, Linux is it. Its multi-platform, advocates pressure venders to ensure their product (OS, hardware, etc) is compatable, etc. Linux tries to be everything to everyone.. OSes like Windows, MacOS, BeOS, BSDs, etc. generally first try to be the best for one, and keep the rest satisfied.
"Open Source?" - Press any key to continue
Seems that the majority of readers are peeved when
Slashdot posts news that doesn't conform to an
X86-dominated society.
Now, here's some happy news about a new X86 OS
and it's getting knocked for not being portable to
other architectures.
Why are you unhappy? Are you jealous? Insulted?
I run an Amiga, which comes standard with an OS
written mostly in fast assembly. Apps for it can
be developed in a large number of languages, with
abundant resources for further assembly coding.
It doesn't have virtual memory. This means
that large apps don't freeze my system for a minute
upon closing, while they frantically chug my hard
drive. It also means that applications must make
efficient use of memory, because once all your RAM
is used up, you're done.
But apps wouldn't do that anyway, since they all
have an extremely small memory footprint. Chances
are that I can load my email program, web browser,
telnet app, irc client, and mp3 player in as much
time as it takes for most to load Netscape Communicator.
And in half as much memory. And with a tenth of the
disk chugging.
And since they're all in memory at the same time,
my hard drive won't even be touched as I rapidly
switch between all the different programs.
Oh! And I don't have memory protection. This means
that application developers have to be very careful
in debugging their software. They have to make sure
that there are no leaks, no stray pointers.
Yeah, in a system with no memory protection, software
_can_ overwrite important areas of memory.
But that's when you delete that software.
the plural of OS is OSii ?
Does that mean that the pural of "system" is Systei?
ReadThe ReflectionEngine, a cyberpunk style n
On the Cyrix 150 the assembly language version of mpg123 was about 5% faster than the pure gcc 2.8.1 version. Now on the celeron 550 with egcs 2.95.2 forget it. It makes me wonder what else the guy could have written if he didn't spend all that time debugging assembly language.
jeesum, he calls a lot of attention no matter what he says... look at this...
Moderation Totals:Offtopic=5, Interesting=2, Informative=2, Overrated=1, Total=10.
that's just one of many recent comments that's been moderated down. People stop wasting so many moderation points, just because of -who- you have personal gripes against!
Rob, (if you're reading this), can you make it so when you're a moderator signatures and authours are not visible? I think it would help all involved.
OFTC: By the community, for the community
why is slashdot illuminating this OS when it has yet to post a story about the new pineapple syphilitic pudding operating system that I have recently developed. Let me recite some of the technological innovations, lest you think I am merely fooling.
1) Coded entirely in new high-level object-oriented langauge called Nestea.
2) Supports one type (called OneType). This should simplify programming as it obviates need to think about which messy type to use to hold an integer or a linked list. Each OneType object is 17,294 bytes which has raised eyebrows in some circles. We have a supercool garbage collector that will make sure wasted memory is instantly reclaimed
3) Extensive API provided for developers. Already contains fibonnaci and bubblesort functions. Currently working on code to traverse a link (bi-directionally)
4) Works on every chip in existence. We achieve this by not making any assumptions about the underlying architecture. We have a huge virtual table which attempts to execute code against 1 of several hundered virtual chipsets. Each time we run into an exception, we just attempt to re-execute code against the next entry in the table. This may cause a slight drop in execution speed. There is no current method to tell the difference between an acceptable exception or a show-stopper so we ask all developers to make sure that their code is perfect.
There are numerous other things that I could detail. But I will share those if and when slashdot posts an article about this stunning technological revolution.
C{EIFO}O of Pineapple, Syphilitic Pudding, Inc.
Perhaps he is just trying to prove a point...
They use a zilog(sp?) z80. It was a pretty popular chip back in the day, Gameboy, NES atari... I think the apple two used one as well (but I'm not quite sure).
the z80 lives on today in the embeded market, a lot of people know how to code in it (All calculator games for the ti8x's are writen in pure assmbly).
Ahh... 8bit programing : )
ReadThe ReflectionEngine, a cyberpunk style n
You know, if it was coded in assembly, you have all the _source_ they have when you download the executable. Mind you, it doesn't have the comments or aliases, but hey, assembly code's damn near impossible to read anyway, even with those.
-----------
"
woxy.com - Bam! The Future of Rock and Roll
Use Delphi...
-- ----------------------------------------------
Vive le logiciel... Libre!!!
(You know, I'll feel the pin-prick when I get moderated -1 Off Topic and my Karma goes down, so don't do it lightly ;)
Assembly being hard to debug/write is just a myth. The only downside of assembly language is it's not portable and has a sharp learning curve. Asides from that assembly is not just history.
May I suggest that you get a copy of Computer Organization & Design by Patterson Hennessy. It takes a bottom down approach to teaching how a computer actually works using the MIPS as an example. It covers everything you need to know to write good asm programs including exception handling, pipelining and any other random thing you may encounter. Plus you can get the SPIM simulator to test your programs for free.
It's coded in ASM?
It's de facto open source.. Just disassemble...
chris
Surfing the net and other cliches...
Surfing the net and other cliches...
(Who Meta-Meta-Moderates the Meta-Moderators?)
I remember reading in some faq that I can't seem to find right now that they said that they used assembly when they needed the speed.
Of course, I could've been halloucinating.
bye
Dan
I think that programmers should take a little time and learn enough ASM as to not be completly stuck when the compiler or debugger lies to them.
Yep, that's right compilers, debuggers, bytecode interpreters, all of them can lie to you. ASM code and a debugger stepping through ASM code can still lie to you but it rare enough that in a ~12 year career I can think of only two times where ASM code lied. C/C++ compilers lie so often that it's not worth remembering.
So learn a little ASM. When someone gets stuck and you flip the debugger to disassembly and point out the problem right away, you will awe and amaze your co-workers.
A couple of C++ problems that are easy to see by stepping through the code in assembly:
1) Crushed VTables.
2) Multiple inheritence problems (what? a cast can change the value of a pointer)
3) Optimized build debugging (shudder!)
4) STL Unsafe iterator problems
5) A lot of C++ compilers have problems with temporary objects.
6) Believe it or not MS C++ has some problems with ternary operators.
Learn ASM -- saves time later.
You are not a beautiful or unique snowflake -- but you could be if you got off your ass.
I used to know this guy, Henry .. he wrote an asm-based os called synthetix.. him and some researcher, carlton pu .. either way I think this is the url : http://www.cse.ogi.edu/DISC/projects/synthetix/ I never saw much about it.. but apparently they wrote it out of asm for m68k's .. was supposed to be amazingly fast for it's time
"And how can this be? For he is the
The orgional quake, the accellerated versions came later.
ReadThe ReflectionEngine, a cyberpunk style n
And this will be current for how many months before the Itanium comes out? It amazes me that they're selling this.
;v>
;v>
Maybe it'll be a few more years
Besides, x86Asm isn't that much better than compiler-generated code on a Pentium II/III. Microcode, followed by rearrangement of the internal instructions, destroys any of the loving care that was put into writing this. On a 286, it should really fly, tho.
And if it's a few K, I can't imagine it provides too many services. I wrote a sprite graphics engine in PPCAsm, and was surprised by how much space it takes up. Once you unroll a few loops, the bytes start adding up.
Check out Project Upper/Mute, an all-around awesome compiler fra
Spoiled brat!!!
-- ----------------------------------------------
Vive le logiciel... Libre!!!
That's reaching a bit, of course...
If you're not part of the solution, you're part of the precipitate.
Seems to me you could be a lot more productive writing interesting comments than lambasting who I think is slashdot's most consistently interesting poster.
OFTC: By the community, for the community
If you have MacOS, try http://www.lightsoft.co.uk/Fantasm/fan t.html. They've got a good assembler, and it comes with great tutorial documentation (it'll teach you 68K assembly too, if you want).
If you don't have MacOS, I'm not sure where to look. Motorola's and IBM's Websites are probably good places to start, though.
Wow. so spacious! (keeping in line with this current thread)
Wait until you program for a system with either:
2k of ROM and a whopping *36* bytes of RAM (Basic Stamp II) or a nice 1k [= 1024 instructions] rom, 68 bytes of RAM (common PIC, I belive the 16F84). Of course, those who know PIC programming know we have a whopping 37 instructions with which to play with. >GG. Amazingly, the project fit in 5k of RAM (not counting the features we needed to add.)
Then again, having to do a processor in VHDL on a FPGA must be fun [my friends designed a processor (~10 instructions, 16 bits each), with "rom" of 256 instructions, and ram of 256 bytes... Even more fun.].
Do you not remember running Quake1 before they had any hardware accelerationa vailable? I know I remember, GlQuake didn't come until after Quake had been out for a little while..
XML is like violence. If it doesn't solve the problem, use more.
first, its NOT free. you dont get ALL the source. so its closed source. you get some example code and some binaries.
second, it has NO memory protection. NONE! (if you read their forum, in development, one of the v2 guys confirmed the question). no memory protect, so your app can crash the kernel (sounds like a mac os or dos)... Having no memory protection means you have to give 100% trust to all your programs + programmers to do the correct thing. heh and we all know that means nothing in the real world.
sounds crap. ok, so its written in 100% asm. whoa. big deal. if your into hobbyist os (check my FAQ!!:), there are lots of startup OSii in 100% asm. nothing to get wet knickers over.
(i found it VERY strange to see this story on slashdot, if you read the OS dev newsgroups or follow OSii boards, little osii like this are announced *ALL* the time at an alarming rate. there really isnt anything special about this one)
but.. BUT! Creating OSii isnt everyones cup of tea and its good to see people still doing it ;)
mebbe i should make a distinction here about hobbyist os' and main stream type os. ala v2 vs linux. talk about apples and oranges.
linux has grown way past being a hobbyist os to a main stream os some time ago.
vsta + tinyos strikes me as being stuck inbetween, vsta more hobbyist than tinyos....
anyway.
if you do have an itch to scratch, you can check my faq for basic questions + answers on several os dev topics...
Write your Own Operating System [FAQ]!
no sig for you
Dude. Assembly isn't hard. Learning assembly is hard because it's *different*. Once you learn assembly for one chip another is a synch. Assembly wouldn't have source files that were too huge because then the authors of the code wouldn't know wtf they're doing. Please don't speak out against assembly if you don't already *know* it.
First of all, assembler is not obsolete. People incapable of writing a non-trivial app in any given language are not qualified to have an opinion on the subject -- not that that ever stops them. If someone tries to tell you that assembly language is obsolete, the best way to shut them up is to ask them how many years of assembly experience they have. If that fails, ask them to name even one algorithm that is only possible in assembly language.
(Frankly, I'd be surprised if even one quarter of the AC's dissing this project can program in any language.)
Secondly, I can see plenty of uses for an OS like this one, not the least of which would be embedded systems, to say nothing of learning something about low-level hardware interfaces. Somebody has to write that kind of code, even if it isn't kewl enough for all these l33t HaX0r d00ds.
Thirdly, the growing me-too strains of Linux "world domination" are really starting to piss me off. Free software is, first and foremost, about choice and control. If Linux ever actually does dominate the world, it will have become the Enemy, and it will be necessary to destroy it in the same way Microsoft is being destroyed. Popularity is not a measure of quality; often, it is just an index of trendoid mediocrity.
Finally, not just with respect to V2 but with respect to all creative endeavors: If you think you can do better, go do it or shut up. Anyone can be a critic; relatively few, it seems, are contributors.
Proud member of the Weirdo-American community.
I thought that my testicles made me a real man. Damn. And all these years i'd been thinking i was male.
*sigh* Great. NOW what am i gonna do with all this body hair?
-Andy Martin
-Andy Martin
If y'all don't like me, blow me.
God, I hope small apps come back into fashion.
Proud member of the Weirdo-American community.
Well... Example:
Web-server in 100% asm.
Mail-server in 100% asm.
Database-engine in 100% ams.
Even though it's intel only it makes sense.
If I buy a cheap intel machine to run my mail-server, I'd like it to run as fast as possible.
Today the fastest alternetive is a smalltrimmed linux.
An asm only OS and Mailserver would, if optimised, probably be considerably faster.
/.Mattsson - My native language is not English, so please don't whine over linguistic errors. (That's lame anyway...)
Great. The server being slashdotted, I had no access to the FAQ, just the bootdisk from a mirror.
Turbo Pascal?! I think you could have come up with some better examples than Turbo Pascal...TP bloating was the REASON I learned x86 machine code (back in the day...)
* mild mannered physics grad student by day *
* mild mannered physics grad student by day *
* daring code hacker by night *
http://www.silent-tristero.com
Whatever happened to forgoing the usefulness and maintainability of something and saying, god forbid: Nice Hack. I bet the people who got this puppy running are damn proud of themselves, and they should be. Great, youre not Linus Torvalds. But for all the negative comments, think about the personal accomplishment for the authors. I sure as hell couldnt do it.
Ahh yes. My first assembly language programming was on the TMS9900 processor, and second on the 65C02. Being register deprived isn't great speed-wise but it's not so big a deal otherwise. The 6502 series processors had an impressive array of addressing modes to compensate for the lack of registers. The "zero page" addressing modes in particular were basically designed to allow you to pretend to have 128 16-bit registers using the first 256 bytes of memory. But still, the real thing is better. I thought I was in heaven when I learned 68030 assembly (my third assembly language). I thought I was in hell when I learned my fourth (you guessed it: x86).
--
"Convictions are more dangerous enemies of truth than lies."
So who wants to write a Voodoo 3500 driver for it?
;-)
Glückwünsche, haben Sie Slashdot ermordet, indem Sie zum korporativen Druck beugten und Subskriptionen einlei
mmmmmmm...grits.
-Andy Martin
-Andy Martin
If y'all don't like me, blow me.
This has been an incorrect statement ever since Fortran G or H, which is to say, probably for your entire life.
Those Fortran compilers from the 70s were well known for producing smaller and faster code than anything comparable generated by people who had been hand crafting assembler for years. The current crop of C compilers aren't as good as those old Fortran compilers, but they are still a far cry above what 99.9% of the current crop of coders can accomplish.
I realize it's rarely practical for anything
It's great for simple microcontroller-based devices.
Actually, you'd be surprised how easy Microchip PIC assembly is. It's alot of fun, too.
The things some people have done with them are amazing. I even saw an easy-to-build Pong project.
Lots of people are using PC hardware for real-time embedded systems. I've seen many migrations from VME 680X0 systems to rack-mount x86 PCs. The VME hardware is nice but it is horribly expensive and the compilers and OSs aren't cheap.
Mea navis aericumbens anguillis abundat
Indeed. Asm owns.
Your post was funny as hell (licking their asses?), but what do you have against Tom C?
Without his work, I'd probably know a lot less Perl than I do now.
Please explain.
- Jeff A. Campbell
- VelociNews (http://www.velocinews.com)
- Jeff
This is offtopic, but this article inspired it...
I was thinking... compilers do so much work to unroll+optimize loops. It would be simple to just tag each spot in the instruction queue w/ a counter. Then, implement 2 instructions: 1 says "add n to the counters on the last m instructions" and the other says "don't take the next n instructions out of the queue-a loop instruction is coming up". Simply executing the held instructions is easy-all the processor's mechanisms are already dedicated to making that work. Instructions that don't use the registers in the loop keep on executing in the free part of the queue.
For flexibility, say both instructions act as nops if n > the size of the queue. Exceptions are generated if you attempt to call a function within the block.
It only works on small+simple loops, but that's just right for doing a bunch of load or store operations to init an array from a bunch of objects, or vice versa.
Whadda y'all think?
And it appeared here first, so it can't be copyrighted by someone else, right?
Check out Project Upper/Mute, an all-around awesome compiler fra
Python has it's loops defined by indentation. If you loose the indentation for any reason, then the program is destroyed.
This is incorrect. I remember getting really EXCITED about the release of KA9Q user-mode networking for early Linux. Kernel-mode networking took a bit longer to arrive, but Linux 0.12 was very useful even without it.
Well, they can have a lot of fun porting that to other architectures. x86 is horrible in comparison with the register rich alphas. Aside from that, benefits from ASM are only reaped by using it to optimize those portions of code that the executable spens 90% of its time in. It really sounds like these guys wrote themselves a rather large and difficult to maintain and debug OS.
If the page said it was, my apologies. It seems to have been Effect-ed.
Personally, I can't understand why this project exists. Speed? Hardware is fast, it's always getting faster, and existing operating systems are as fast as you make them. Being the speed king matters for all of 7 months, when Intel releases a new revision of their processor that negates all your hard hacking. Well, if they're having fun writing it, I guess it has a place.
The primary intended purpose for the OS was to act as a framework for realtime computer-controlled video playback in a "black box" fashion. The lack of a lot of accepted OS features like memory protection is part of its featurelist. For an embedded realtime system with only one real purpose, a framework like this can make a lot of sense.
You also have to bow for the job Joost has done in relatively little time with a notable lack of available hardware documentation. The hack value of it all is, IMHO, pretty high.
Pi
Madscience Labs - Rotterdam
Get PostOffice
It appears you didn't read the article (or the FAQ it linked to), or even the complete (but incorrect) summary. V2 is not "free". You can download some source code (its license was not covered in the FAQ or from the main page; it's probably accessable), but the essential parts of the operating system are closed. It's definitely not "Open Source".
Personally, I can't understand why this project exists. Speed? Hardware is fast, it's always getting faster, and existing operating systems are as fast as you make them. Being the speed king matters for all of 7 months, when Intel releases a new revision of their processor that negates all your hard hacking. Well, if they're having fun writing it, I guess it has a place.
And why limit their users to a legacy 32-bit architecture, and make themselves completely non-portable at the same time? This is DOS for 1992, instead of DOS for 1980. I have a perfectly good 64-bit Alpha by my desk at work, and I intend to buy more of them in the future. Apparently these guys intent on using their Pentium II's in 2005.
--
This might make a good minimal OS for a car MP3 player, all it needs now is Linux's networking so we can port samba and Apache accross.... Hmmm maybee I'll stick with Linux.
cya, Andrew...
This is my sig, exciting huh!
don't gameboys run on some sort of motorola chip?
OFTC: By the community, for the community
The operating system is written in x86 ASM. The Commodore 64 does not use a x86. Therefore, the answer is most likely no.
isn't that the point of good COMPILERS these days?
Nope. The point of good compilers is world domination. The point of not-so-good compilers is to serve quality coffee at an affordable price. Any questions?
I like the idea but do we really need another closed source operating system. I like the fact they wrote it in assembly now if they would just GPL the source code so someone else can re-write it to work on a Motorala based computer. I know Assembly doesn't work the same a C for portablity but rewriting a 37K operating system to work on different platforms would give programmers alot more reason to write applications. I have not seen any 386 processor for sale new but motorala still makes its 68000 in various forms. This would make the OS a more likely canidate to be used. Then write Applications using slower but more portable C code that would work on both platforms. But maybe that the whole reason the authors didn't GPL it. I would also like to know if their is a mirror because I can't seem to get their entire site. I did read their faq The OS is Free but not GPLed.
To err is to be human, to really screw up takes a computer and a human.
Well if anyones interested on OS design and Assembly hacking. I've started a L4 Micro-Kernel implimentation for the ARM, specifically the StrongARM SA-1100. While we plan on doing the rest of the OS in C. There is a chance for some hacking of assembly code and making use of the interesting
make up of the SA-1100. The code is GPL'd. Only rather rudimentory snap-shots are avaliable. But the start of it is running on PLEB hardware (public domain hardware I designed) and the SA-1100 evaluation board (Brutus) it should be easily portable to any ARM machine though. I have a Psion 5 I'm working on getting it running on too. However if ASM's not you thing the rest of the OS on-top of the micro kernel is still some area of OS development fun in C for those interesed.
Its still a start-up so only for those interested in getting their hands dirty in embedded OS development for the ARM.
Some out-of-date info is avaliable at:
http://www.cse.unsw.edu.au/~pleb
While kernel snapshots and my thesis on the kernel are avaliable via anonymous ftp from:
ftp://ftp.cse.unsw.edu.au/pub/users/awiggins
Just mail me if your interested in any of it.
Enjoy, WeirdArms (awiggins@cse.unsw.edu.au)
Q: The OS boots perfectly to the prompt, but it doesn't respond to the keyboard.
A: We've had a few people mailing us with this question (Mostly Laptop users, VMWare has this problem aswell). It has to do with a BIOS that does not reset the keyboard controller at bootup. V2_OS should do this manualy, but since we have never encountered this problem, it's not included yet. We'll try to fix it in the next release. If anyone knows how to reset this keyboard btw, info is welcome :)
Need a website host? Try out http://WebQualityHost.net
and in a dusty rack shelf behind the bike shed still lives the 80286 AT box & keyboard with real springs & the Apple][ case with the hand mounted ARM board & the 4xtransputer plugin card. and i still have the MINUX ( yes, boys and girls, pre-LINUX ) source that we hacked onto three platforms via hand built assemblers/KR2 C compilers ... & why ... because it is fun.
Is it an obscure errno, or a facist salute, you decide.
--
"L'IT c'est moi!"
There are many well known Open Source OSes that are suitable for embedded systems.
;). This is aimed at smaller systems than RTEMS and is highly configurable. It is supported on fewer processors than RTEMS but this is mainly due to it's youth. The licence is similar to the RTEMS one but is not based on the GPL. For more info see http://sourceware.cygnus.com . Again, full blown commercial support is available.
The oldest is RTEMS. It orginally started life as a US Army project which was then made available as Open Source. It runs on most 32bit and some 16 and 64bit embedded processors including the m68k, ColdFire, x86, PowerPC, MIPS, Hitachi SH, Sparc, etc. It has a flexible API, supports POSIX apps, has a TCP/IP stack and all of the usual features. The next release (due soon) will bring the joys of filesystems, embedded web servers, ITRON API support and other useful features. The licence is GPL + a simple exception (like libio or libstdc++ in gcc). More info can be had at http://www.rtems.com/ . Full blown commercial support is available from the main developers if required.
The new kid on the block is eCos from Cygnus/Red Hat (or should that be Cyghat
Another newcomer is uC/Linux. This is a version of Linux suitable for use on MMUless processors like the m68k/ColdFire series and the i960. Has most of the features that we know and love(?) from it's larger cousin. Great for information appliance like devices, less so for truely embedded or real time applications.
Of course there are other choices if you have more powerful hardware... I think that both xBSD and Linux have realtime extensions and they can both run on a wide variety of processors.
That's the weirdest computer programming article I've read in a long time!!! http://webster.cs.ucr.edu/ratc/ratc.html.
I truly wish there was a way of preventing idiots like these from posting constantly on every discussion going on. What's the thrill in it?
You think anyone can spare that sort of SIZE?! It's 37 freaking KILOBYTES!! Thats nearly 6% of my allotted 640k (or am I messing up kilobits with kilobytes?)!!
i dont display scores, and my threshhold is -1. post accordingly.
Uh, hate to break this to you, but the x86 is one of the most commonly used embedded platforms. Go get a few embedded magazines (you know what I mean) and check out the ads: there are more ads for x86 SBCs than all the others combined. Maybe not in your set-top box, but just about anywhere else: traffic lights, all kinds of industrial machinery and robots, etc.
Some have brought up the fact that V2 doesn't seem well suited for general use, as there's no memory protection. On the other hand, it's writting in x86 ASM, which makes it not that well suited to special use devices. The question is then, what do the designers and writers have in mind?
I took a look at the "native" filesystem of V2, v2_fs, which seems to be have a strangely specific purpose for a default OS filesystem. From their site:
"It is designed and optimized especially for fast hard diskaccess, which is very usefull for, for example, a digital audio/videoplayer/mixer."
"-Videoframes are stored sector-aligned, for faster loading to disk/decompression-buffers
-All data is stored sequentially, this eliminates the need for the physical disk-heads to jump and search around."
They also have some precise technical information on the filesystem layout.
Their claims of no need of defragmentation seem really strange in light of the requirement that files are entirely sequential on disk; sure, you might have less internal fragmentation because you can use a small block size, but... no external fragmentation? I'd like to see how they accomplish that.
The strange marketing style descriptions they have aside, I think the filesystem suggests what the kernel writers had in mind, which is an OS well suited to deadline-oriented tasks like video, without bringing out the spectre of real-time.
About six months ago I downloaded a trial version of the New Deal OS and tools. They had a functional web browser, Dial-up networking, text editor, spreadsheet, window manager, games, and other apps. All this in ASM and as a 30 day demo. It only cost about 25-50 bucks and was intended to bring life back to 286s and 386s. Something like a couple of megs with all the software, maybe smaller. It had a Windows look to it but worked great. The really neat thing was the developer community at the site. Lots of gratis software, like some apps for the Palm. e.g."Check out this neat app I coded and tell me what you think, and you can keep it free." Check it out at New Deal Inc.
--Somewhere there is a village missing an idiot.
Where can I get started with some basic ASM coding? I realize it's rarely practical for anything, but I'm just interested in trying it.
Gates' Law: Every 18 months, the speed of software halves.
No, not a palm pilot with phone abilities, a phone. I want Linux on my Nokia, goddam it!
Why not use LOGO? That'd be a challenge!
--- If OS were buildings, then the first woodpecker to come around would erase 95 % of civilization.
Wow, I can't even believe this post, and most of the other posts like this.
One of the traits I've always associated with "nerds" and "geeks" is the love of something cool simply because it's cool, not because it's somethig that is immediately useful in life. Judging something by simple utility is a trait I commonly associate with management students, simply because that's how the majority of them seem to think. (of course you're thinking, wow, what a stereo-type, but I think going on trips with 30 or so management students moves me past the glib stereotyping stage to at least semi-glib, or quasi-glib).
Anyways, point is, this is *cool*, even if it's not useful. If you can't use it, boo hoo, there's tons of stuff in the world I can't use, you don't see me bitching about it on Slashdot.
I've done my share of ASM disassembles, thank you. It's not as easy as all that. I mean, the instructions are there in front of you, and if it's on OS you can be fairly sure they aren't going to try to obfuscate, like a company writing copy protection might.
But, for something as powerful as an OS, and with as much potential to screw things up if it's not used right, it's not enough to trace through and NOP out a few instructions, you have to understand everything, including figuring out what all the variables are and naming them.
An assembler takes ASM instructions and lets you use labels, if you disassemble an exe (that has been stripped), those labels are gone.
For some reason I cannot reach the server. Sure ZDNET etc can handle the load but a TON of other servers, running Linux or Windoze do not have the capacity to deal with 50K+ additional users. I think /. should develop some scripting mechanism which sends an e-mail out to the admins of systems which are not well known to be high capacity. The admin then has the priviledge to deny that listing if it is going to bring the server down. Many servers run on virtual hosts and getting /.ed does a lot of harm to folks who also happen to be sharing the servers.
anyone know of a mirror?
;)
They're on a 128Kb leased line. Welcome to the wonderful world of former monopoly driven telco bastards (they're paying for the connectivity through their noses). I'll offer them a mirror if they want me to. Up till now it hasn't been necessary
Pi
It should be moderated up for being so funny. ;)
If you don't get it, try to remember your not-so current events. Or just get an encyclopedia.
Not necessarily. If a simple compiler is written in machine code (like the assember would have to be), it could be used to compile a C program used to compile a more complicated compiler. And that compiler used to compile an even more complicated compiler. And so on. No assembly required.
Delphi was written in Delphi.
Ozwald
Very cool idea. We have spent a lot of time working on cool OSs, but for the most part, we run them on what should be called pathetic hardware designs.
Face it, the PC design is a very bad joke. It started out as bad in 1981 (YES, it was a bad design in 1981, and I said so then. 16 bit processor, 8 bit bus. Shortage of on-board resources. Shortage of interrupts and slots on DAY ONE. Bizzare memory layout. BIOS in ROM. BASIC in ROM), and the attempts to "improve" and "update" it to a 16 bit then a 32 bit bus have been hampered by the desire to maintain compatability with the original bad design.
Most other platforms with history (Macintosh, for example) have similar problems with historical mistakes which won't quite die.
Back in my youth, I used and loved a Heathkit H-100 computer (kit form of the Zenith Z-100), a system that showed what could be done with a properly designed 8088 design. The only significant design limitation was the 8088 processor (instead of the available 8086), but that was done to support its other processor, an 8085 (there to run older CP/M-80 applications). The machine had an IEEE-696 S-100 bus, which was a 16 bit bus, with 24 bit addressing, so they were thinking AHEAD, not backwards when they designed it. The Z-100 was designed as a transition between the 8 bit world and the 16 bit world, to exploit the new without being cripped by the old. I have talked to people who worked for Zenith, and had seen the machine which was planned to replace the Z-100, completing the transition to the 16 bit world. Wow. I can't tell you how dissapointed we should *all* be that the IBM design is what we all work around now.
I'll take minor exception to your use of the phrase "Wintel architecture". YES, Intel now has a lot to do with the PC design (being a major manufacturer of "glue" chips and (co?)designer of the PCI bus and other current "features"), but the primary problems we have with the PC design are the the fault of IBM's PC design and the industry and market for having embraced that design and not letting go.
It really would be cool to see a machine with modern technology using familiar sounding parts without the limitations of the IBM design... Yeah, there were other machines which avoided the PC design completely (I've got a few Altos machines in the basement, and the Sun 386i you mentioned), but they are too few and too far in between.
Gotta get my own soldering iron and wrap tool out one of these days and start doing some hardware hacking myself...
On the other hand, it is very difficult to really roll-your-own hardware anymore. When dealing with proceesors with bus speeds of 286s and beyond, you aren't really dealing with digital signals anymore, but radio, where every wire is an inductor and a capacitor... Ah, for the days of 1MHz processors 8)
Dream on. This boring post probably helped you get to dreaming. Wake up!
Nick.
Actually, V2_OS is the work of a single person, Joost Faassen, a 21-year-old Dutchman, who is both good at assembly and OS programming, and a modest, nice person. Granted the OS is not revolutionary, but it's a Nice Hack(tm). I can say that, because we hired that person at my company (before he released V2_OS to the public, that is, that's not related :), he'll help work on the 'revolutionary' part here on another project.. You'll see and hear more of it real soon.
www.opencores.org go there and help these guys :) well in my opinion it would be enough if someone could get me a .18 micron 80386 cpu and all the necessary hardware of that era built with today technology. imagine simple notebooks running for days on a single battery pack :)
Really.This looks like an exercise in OS design and x86 assembler coding. I hope these guys had a lot of fun writing it, because that's all the utility that's going to come out of it. Do we need a mini-OS for desktop machines? Nope. Do we need one for palmtops? Yes, but palmtops don't run x86 processors, oops. Do we need one for embedded processors? Also yes, but x86 processors are quite rare there, plus there are already a couple of OSes around and even at least one (AFAIK) open-sourced.
So I'm standing here, wondering: what's the point?
Kaa
Kaa
Kaa's Law: In any sufficiently large group of people most are idiots.
I'v found that programming in the binary directly works very well. It may take a little longer, but you've only got two keys to press, so that makes it a bit easier. You'd be surprised how quickly you get used to it, I can now communicate exclusively in binary. Conversations are hella-long, but it's good when you don't want to be understood ]:-)
This post has been encrypted in several of the most advanced ROT-26 algorithms
Hmmmm... I guess you'll have to write a compiler then. And how do you do that? Use assembly language
Let me guess, you don't write compilers for a living....
At the risk of making an overly general statement, NOBODY does what you describe anymore. A compiler is one of the more perfect examples of something that shouldn't be written in assembly language. It embodies some fairly complex algorithms but is itself not very speed critical. Most people don't care about how fast their compiler outputs code, merely how fast the resulting code is when run.
The two most available open source C compilers (gcc and lcc) take a similar approach by defining new machines via a rather compact machine description file. This allows the compiler to properly abstract the portions of the compiler which aren't machine dependant (the input parser, symbol table construction, parse tree assembly and the like) from the parts that are (code generation). The result is a compiler which is easier to port to new architectures, and has less errors.
Most of these compilers similarly use assemblers written in C. Initially these are cross-assemblers, but once the assembler is compiled by your new compiler, you can run the assembler in native mode. *voila*
To write machine descriptions for these compilers, you of course _do_ need to know something about the assembly language of the target machine, but this is vastly easier than writing the entire compiler in assembly.
There is much pleasure to be gained in useless knowledge.
Well, how are you going to compile a C program on a new chip if there are no C compilers written for it?
Probably the same way you'd write an assembler for it, in C/C++/Java/whatever on another computer...
ReadThe ReflectionEngine, a cyberpunk style n
Like the title says... embedded systems.
Devices such as routers, firewalls, and other network appliances (not to mention things like assembly-line robots and traffic signals) all come under the category of embedded systems. They are typically single-task devices that run without direct human intervention.
These devices share a few common characteristics:
- They have cheap CPU's (typically at least two generations old... hey, there are still Z80's being made!)
- They have small amounts of RAM (a few K to a few megs)
- They have a very limited space for the operating system itself (typically a few K of non-volatile RAM up to a few megs of flash disk)
There is quite a market for such mini operating systems. Many such devices use Intel architecture hardware, and of these, most are sufficiently PC-compatible that you can actually boot them under DOS (assuming you can get DOS onto the nonvolatile storage).A few examples: pSOS, VxWorks, IOS (okay, well, IOS isn't "mini" :)
The point is, these systems all need an operating system that is small-footprint, CPU-cycle-efficient, doesn't need much of a user-interface (just enough for editing config files and such), and extensible. x86 compatibility is a big, big plus, as it makes the physical design MUCH easier and cheaper.
Sounds like a useful thing to me!
Also what is the point of a faster assembler based OS if it is difficult to program for, and has barely nothing running on it?
I have five words for you "Go back to the 20's"
-----BEGIN GEEK CODE BLOCK----- Version: 3.1 GCS/M/Sd?s-:a---->?c++UL+++P++++L++++ E+++W+++N+K-w---M-PSY+t+5?XtvbDI++
Why the hell can't you use a descriptive subject line? I'm going to stop reading these "..." posts to the loss of your good comments because of it. Take the time to write a decent subject line.
Looking for a Python IRC bot?
I've mirrored the whole downloads page here.
I can only hope it stays up for more than a few minutes... I've never gotten to load-test whatever server this is I'm using in Win95. ;-)
--- this comment is presented in WIDE SCREEN STEREO!!!
the desktop & servers.
The embedded market is the fastest portion
of the computer industry. When you have 512K
of flash to store all your applications, and
MAYBE another 256K of RAM, you have to squeeze
everything that you can bare out of your software.
I couldn't get to the website,
I suppose, so excuse the next few comments if
this isn't a RTOS...
As for speed, alot of these systems will be
running something like DSP-type filters with
massive data processing rates. When you have
massive MBs of data to process per second, a
faster OS helps alot. I know of a GPS receiver
for which they doubled the location output
rate because their embedded CPU's compiler
added one new optimization!
--
Insanity Takes Its Toll. Please Have Exact Change
Care about electronic freedom? Consider donating to the EFF!
One thing to bear in mind is that old slower processors can actually cost more than the new faster ones under certain conditions. I learned this when Powermacs were starting to take over and I thought a ultra-cheap onepiece Mac would be neat. Turned out 68040s actually cost more at the time than PPC chips, because the latter was where the volume was. Maybe you might think about embedded PPC or MIPS or something? Is there genuinely a market for, and producers of, 386 chips now?
Okay, show of hands, who has heard of a 'pointer to a pointer' and why you might want to have one? Concept could be used in roll-your-own memory management like you have to do in C and C++ :)
Those of you believe in ASM programming is faster apparently have never done any code optimization job before and never coded ASM of a BIG program. Of course, because nobody with the right mind will do that. Sure if you compare "Hello World" in C and ASM you'd see a huge difference, but how many ASM programmers can write something as big as a GUI wordprocessor? No way.
The only use of ASM, admittedly, is more than just reverse engineering. Some little bits and pieces of procs may be re-written in ASM to increase performance. Some device drivers may be written in ASM. I love ASM but I ain't crazy.
I have coded both MIPS and x386 and just THINKING about the thousands of block graphs for optimization is a horrible thought.
In this particular case of OS, i think it's a terrible idea because that makes it so damn hard to be portable, pretty much impossible. And even harder to read the source code, if not impossible. Granted that GCC ain't perfect, writing a compiler is hard as hell, MUCH HARDER THAN WRITING AN OS. what do you expect for free?
Although oddly enough, it doesn't seem to be around anymore ... -spc (Why do I even remember this stuff?)
Ummmm... Mel didn't use assembly, vi *or* a toothpick. He coded in straight binary.
"Evil will always triumph over good, because good is dumb." - Dark Helmet (Spaceballs)
That's what a bunch of postings said after Linus posted in UseNet about Linux the first time... Makes you feel a little silly now eh?
you are not a real man if you can't talk in English. I bet $100 bucks that at the time you write this crap you have no clue what piplining optimization is.
It would be nice to see something come of this os venture.. Its probably a ways off.
but wait.. how long until they port lynx to v2? oops.. forgot.. no tcpip or networking. DOH!
Ok im done; stick a soup ladel in me.
LW
Ok so I goofed :) :)
It's still a neat toy
I don't actually exist.
> Come on, this is opinion, not fact.
Not at all.
I assume you'll agree that the OS is the base for the whole system. If the OS is crap, the systems is crap. If the OS is buggy, the system is buggy.
So, why don't you agree that if the OS is closed source, and unauditable, that the whole system gains those worst traits?
Using closed source security systems, with black-box encryption is a bad idea. You can't see the potential bugs, so you can't guard against them.
Why is an OS any less prone to this? In fact, using a security system (PGP, etc) on a closed source OS is insecure. You don't know if there's a way for processes to read the memory of other processes, or if buffer overruns or other easily audited bugs exist which could crash the system under heavy load.
This isn't an issue which is based on opinion. The more open the source, the more people who can find bugs.
Open source doesn't always mean GPL. And even in a GPLed project, the dev team doesn't always solicit code. About all we can agree upon is that open source is source that is readable by everyone.
An OS isn't the place for strange proprietary code, an OS is the place for well tested, frequently audited, stable, open, and trusted code.
And, why do we need another OS? Do I believe we've got the best we'll ever get?
No.
But, I don't believe some hand-coded closed source, non-protected memory OS is *ever* going to rival what we have. If this was a real protected mode OS, with a decent design spec addressing current concerns, and those of the future, I might give it a little credit.
But, V2 lacks so many features of what we'd consider a real OS that it doesn't even belong in the same ballpark as MS-DOS, let alone Linux, BSD, and even NT.
I don't know why you ". . .can't understand why this project exists. . .", I mean we're just a bunch of humans bossing around a bunch of machines. Why _not_ teach them a new language? Plus it's fun, and you never know where it will go. As for abondoning old machines just because the new shiny ones have arrived, what a waste. Not only can you do lots of things with the older machines and software, but, yet again, it's fun!
I have a perfectly good 486DX-100 by my desk at work, and I intend to find (for free) more of them in the future.
They can't kill ya cook ya and eat ya.
I'd be happy with a version for my old (but gold) 80286 which is used as a packet-radio terminal and bedroom-light.
/.-effect is over I'll download it and try it on the 286 and on the 486 as well.
As soon the
--- If OS were buildings, then the first woodpecker to come around would erase 95 % of civilization.
opensourceman, keep up the good work! Maybe sometime when i have more time on my hands i'll join your project and create an open-source Katie Holmes!
Oh baby...
Yep, me to! :) :) with it, but that was about all! :) and every memory location's function described. Cool as fuck. :) ...
I'd write out the program in asm mnemonics (had my own notation for addressing modes, and everything!), which I'd then debug by hand. Then I'd translate it into opcodes, and type it into DATA statements, with a BASIC loader in there somewhere.
You're right about the debugging, though!!! And not even a blue screen to tell you it'd died on it's arse!!! I got an Action Replay plug in (in the days when a plug in was a small plastic box with a strip connector at one end), that made _everything_ a lot easier...
Still, after I'd made loads of mistakes in opcode translation, I wrote a _really_ basic assembler which would write the DATA statements for me when I was about 14. I wrote an asteroids clone (with joystick support!
What reference books did you use? I had the Programmers reference guide, and a complete bible book whose name escapes me... It had _everything_ you wanted to know about the C64 in it, though - every interrupt (hook those vectors !
So I laugh when the 5kr1p7 k1ddi32 of today complain about compiler XYZ not having enough features! And it impresses the hel lout of them when you debug their pissy efforts _straight_ in assembler!!!
Aaaah, those were the days!
Strong data typing is for those with weak minds.
Isn't it fun when people try and be cool? The whole idea of it is to be a different operating system. not Windows, not Linux, not BSD, etc. Since it is written in ASM it isn't easily portable to different platforms...
Ashandare (still shaking his head)
Yes, i do thanks. But apart from some very very early design ideas, and a couple of first draft white-papers that don't really tell you anything you probably don't already know, i havn't got far.
:)
Still, i'll stick at it. I'm learning a helluva lot about OS design, and hardware. So even if no-one uses it, if i ever finish it, i will still have had fun doing it.
Syllable : It's an Operating System
Why bother creating another free OS when we already have FreeDOS? FreeDOS is free, open source and has the huge advantage of able to use (most) DOS applications and development tools.
This is so completely OT that it is not even funny. But the story (though very old) is still a great one. Somehow, the new tag down at the bottom: [1999 update: Mel's last name is now known. The manual for the LGP-30 refers to "Mel Kaye of Royal McBee who did the bulk of the programming [...] of the ACT 1 system".] just takes out some of the glory of it, though...
~luge
IAAL,BIANLY
Yes, you can do all those things in ASM and the guy writing the OS I was talking about did because there were no acceptable high level languages. The point is that in ASM you must do them all by hand. High level langauges will eventually surpass ASM because the compilers will do most of the tricks for you and provide a more meaningful way to think about writing the program. The problems of optimising will eventually become so complex that you will need machine aid to do it efficently. If you have a hard numerical / symbol menipulation problem to solve it is better to have a computer solve it then a human, period.
Jeff
The Christian religion has been and still is the principal enemy of moral progress in the world. -- Bertrand Russell
I have to agree with the poster before you. These guys arn't claimnig that they wrote an OS to try and take over the world, displace QNX, or crush microsoft. All they did was write a little OS. Obviously, if they cared about portablity, or whatever else, they wouldn't have done it.
. The readers of Slashdot expect more.
Exspect more from what? does every program ever writen have to comform to you exacting standards? If you don't want it, don't download it. No one is forcing you to.
ReadThe ReflectionEngine, a cyberpunk style n
I've been thinking about designing a reference implementation of an 80386 motherboard, one that actually does things right - hardware that puts the processor into 32-bit protected mode *right* *away*, minimalistic yet functional boot PROM similar to Sun bootproms on Sun3+, clean hardware design, multiple bus support - add to the list. What first got me thinking about this was Ingo Cyliax's CS335 workstation, a homebrew 68030 motherboard with an ISA bus and a Minix port. Essentially, a somewhat PC-compatible 68k machine. This is the coolest thing I've seen in a long time - an open motherboard design with schematics and all else freely available. Granted, it's limited and not particularly fast, but it still is worth looking at. There was a similar project that involved building an NS32535 machine, called the pc532. It's supported in NetBSD and (possibly) OpenBSD. I'm not naive enough to suggest that a home-grown motherboard design could ever be fabricated economically, but the fun part would be designing it and perhaps porting Unix to it while the machine is running on a circuit-level simulator. That's close enough to the real thing for me (I don't look forward to trying to debug problems on a five-layer PC board, do you? :-) Flame and moderate away, but at least give some thought as to what "open source hardware" could be. Wouldn't it be satisfying to have had in designing a well-engineered x86 workstation (Sun 386i comes to mind, amongst others), built from cheap parts but free of the insanity of Wintel architecture? Dreamer.. you're nothing but a dreamer.. :-)
This must be the first OS I downloaded within one second :-)
0.27 seconds to be precise....
Johan
A operating system named after an often errant WWII era Nazi rocket. I propose the next major OS be named Hindenberg.
It may be RT, but for x86? Who wants to run an OS like that (granted, such OS's are important and necessary) on that kind of chip?
~luge
IAAL,BIANLY
Or swapped the valves for jumpers just to get the thing to boot...
Strong data typing is for those with weak minds.
Alright - I admit it - first command I typed in after help :)
And the list goes on... but this should get the idea across. While this system may be free, what does it offer that the community needs?
How hard would it be to write a million line C program in asm ?
Axiomatically, it's impossible. A million-line C program would have to be written in C, just as a million-line asm program would need to be written in asm.
... or did you mean write an asm program that is the functional equivalent of a million-line C program? *grin*
DNA just wants to be free...
Are you referring to the Synthesis operating system designed by Henry Masselin for a dual-processor 68xxx machine? I read his thesis as part of my graduates studies - VERY cool ideas - so many of them, in fact, I could hardly believe they all came out of the same person. I have a copy of his thesis somewhere on one of my bookshelves...
Last I heard, he was working in R&D somewhere & trading piggy-back rides w/his coworkers (no, I'm not kidding about the piggyback rides). I think there is a small group of researchers collaborating across the world trying to figure out all the ways they can use the ideas that he implemented.
can someone mirror that site possibly?
it is extremely slow!
i would but i don't have enough space...
Hmmmm... I guess you'll have to write a compiler then. And how do you do that? Use assembly language. Most compilers out there translate source code to assembly then use a native assembler.
So assembly isn't dead. It's just hidden.
"Evil will always triumph over good, because good is dumb." - Dark Helmet (Spaceballs)
Many compilers don't generate programs smaller than, say, 4-6k for FILETYPE LIMIT reasons. A stripped down image with just a ret instruction still needs room for header tables etc.
n y/home.html
For a really funky ELF asm experiment, read the following (believe me, it's worth it)..
http://www.muppetlabs.com/~breadbox/software/ti
*borkborkbork*
The OS isn't too exciting on its own. If they invented something new then I might be more excited or more willing to give them some more credit. Woop-dee-doo, they wrote a new version of DOS. Let me be the first to thank them for their work and congratulate them on this awesome accomplishment.
Seriously though, since the 1990's began the OS has moved from a blackbox produced in the white tours down to something your motivated hacker can reasonably get started in his spare time. There are a bunch of projects on the web, most aren't significant. Some might be. As a whole we no longer rely on IBM, Apple, Microsoft, etc. to provide the OS as they see fit to provide it for us. This is good. The next step is to start innovating, creating, and advancing the science. There are enough projects out there that hopefully some of them will start to become technology test beds rather than knockoff projects and recreates. If we were to put Linux, BSD and eventually maybe Hurd on the top of the stack and call those our production kernels, then we can use V2, EROS, ReactOS, Fiasco, GNUMach, L4, and all the others as testbeds to create new ideas and try new things out. Then I could say, congratulations to these guys and mean it. Unless they have some other plans and this is just the 0.01 release, it looks to me like they are trying to get to where DOS was about 20 years ago and they are still a little bit short of that goal.
This is my signature. There are many signatures like it but this one is mine..
I haven't been able to write high-level code that compiles into a reasonably-sized executable since I stopped using Turbo Pascal. Today's compilers shove in so many safety hooks and unused functionality with their executables that I hate using them. I've recently taken an interest in windows programming in assmebly and I find it more enjoyable to see masm dump out a 4k executable where vc6 dumps out an file ten times that size. I would guess that most of the instability issues in operating systems and applications today can be traced back to code bloat both on the programmer's side and the compiler's side. Maybe.
If you say that you never want to work on a closed source OS again, that's your business. If you say that you don't ever want to use a closed source OS again, ditto. But to say that it's entirely impractical to develop a closed-source OS is ludicrous.
Whatever your philosophical objections may be to closed source, if the system and interfaces are properly documented then there's very little (if any) potential gain from having access to the source. Or, to put it the other way round, giving access to the source doesn't excuse a lack of documentation as it requires that a programmer read through and comprehend the relvant source modules to code, rather than simply being able to look it up an a reference manual. With the many millions of lines of code a modern OS contains, that just isn't sensible.
You seriously believe that what we have now is as good as it can ever get?
If you want to improve the art of computing, you need to start somewhere. You could sit on your work until you've got something that can beat everything else and so will clearly win out, but that's not very sensible. A better idea is to release your developments periodically to help attract interest and developers. That way, you stand a far beter chance of ending up with something good down the line.
Whether anything will eventualy come of this is entirely open to debate. But I commend them for trying and the world would be a poorer place if no-one tried this sort of thing.
Greg
Greg
(Inside a nuclear plant)
Aaaarrrggh! Run! The canary has mutated!
I can't check out their site yet, but having just completed a class which was dealing with pipeline optimizations, if they took those into account?
Having seen what modern processors do I would definatly not want to try to write a large assembler program let alone a whole OS.
Mark
And remember, Linus wrote Linux for fun also!
norp norp bzzt fzzzzt
Sometimes I just despair.
Look at all of you, pontificating, arms outstretched in righteous indignation because your views have been overlooked.
Well, I have a message for you: Shut it.
Firstly, the OS is Free. Free does not mean open.
Free means 'gratis' or 'given away at no cost to the customer' NOT 'modifiable', 'open source' or 'related to linux'.
Right, now we've got that one sorted..
This next vitriolic outburst goes out to all those debating the need / pointlessness of the entire project.
Don't bother.
It's neat. It's something to show your easily impressed friends. It may, even, have a future. Who knows, perhaps some great technological benefit may come of it. Who knows?
As it is, at the moment it's a great idea (if a little misguided) but wait to see what happens in the future before deciding that you know exactly what's going to happen.
Also, I'd like to remind you that the most pointless inventions often succeed - who remembers the Dyson Vaccuum Cleaners?
Completely bag-less, suck up far more dust than normal vaccuum cleaners, but half the dust it sucks up flies across the room when you try and empty the damn thing.
And, finally: A word from our sponsors:
Play quietly people. We don't want anyone escaping from the herd, do we now?
--Nick
have a look at the links on this page :
http://hculinux.cjb.net
Plenty of asm stuff to get you started and a forum of linux asm people to ask questions.
*borkborkbork*
From http://www.vacets.org/diction/English/H_Engl.txt:
Halt and Catch Fire
(HCF) Any of several undocumented and
semi-mythical {machine instructions} with destructive
side-effects, supposedly included for test purposes on several
well-known architectures going as far back as the {IBM 360}.
The {Motorola} {6800} {microprocessor} was the first for which
an HCF {opcode} became widely known. This instruction caused
the processor to {toggle} a subset of the {bus} lines as
rapidly as it could; in some configurations this could
actually cause lines to burn up.
[Confirm?]
(14 Dec 1995)
maybe I can take a look at this. ever since I learned x86 asm I've been wanting to do something with but have been too lazy now it looks like there's an operating system for me to fuck with. cool.
It has been statistically shown that helmets increase the risk of head injury.
OK. This is supposed to be news for nerds, yet, nearly every comment so far has been negative.
So what if it's 32bit, not Open Source and isn't 'Quake 3 ready'. Its small, fast and free.
How about checking it out, sending the guys an email, or, just for the hell of it, throw it on a floppy and try it in VMWare. Perhaps some of you 1337 c0d3rZ would enjoy writing some fast clean programs, instead of the library loving crap that is *nix software these days.
And, lest we forget, 30 year old legacy code is not exactly 'freshmeat'.
1. masm doesn't "dump out executables". It creates object files, just like any compiler, that still have to be linked into an executable.
.exe size:
.exe by default)
2. "safety hooks" doesn't make any sense if you're talking about a C compiler. C compilers create no runtime overhead whatsoever.
3. Executable size is not the compiler's fault. Some contributing factors to a large
- Debug symbols in your object files (This is a major factor)
- A huge initial stack segment
- Static libraries linked in
- Stub code linked in (DOS warning, Command-line parser, etc.)
- Unnecessary resources linked in (note that in VC, Version Info is put into your
- Nasty amounts of global arrays
- The PE format itself
Hands in my pocket
How many of you just had to try out the "crash" command?
:)
Me, too.
Hate to burst your bubble, but loop unrolling, inlining and the like *ARE* asm "hacks".
I think the server is totally dead. I can't get within two pings of it.
- BIOS setup (including remote administration)
- networked system updates
- backup and restore software
- a clueful bootmanager
- tools for doing flash-updates on PCI-cards etc. (i.e. something like
/dev/bios) - desaster recovery tools as boot-sector restorage and debugfs
- networked access control
I wonder if this could give another boost to the OpenBIOS project, as their current code base hasn't gained critical mass yet to allow for efficient and distributed OpenSource development.There's already a fast, free, all-ASM operating system out there, just looking for project members!
It's got way more background, and has a much more proven design. Better app support too. It's already got EMACS!!!
It's called ITS, the Incompatible Timesharing System, and it'll run on your frindly Digital Equipment Corporation PDP-10.
It became obsolete sometime in the early 1970s when K & R & T rewrote UNIX in C. For all its faults, honestly the new invention is much easier to maintain.
Link to Wired article on Henry Masselin: Qua
cpeterso
Hey friend, remember that code is GIGO. Your compiler's making crap code? PEBCAK
Well, it's been a while since I've done any asm programming, but my guess is that there probably isn't too much difference in terms of performance, but a lot of difference in terms of size.
No compiler can possibly generate code that is faster than assembly, because what compilers do is take source code and emit assembly. However, what they emit is kind of like "cut and paste" coders, who duplicate a lot of work rather than factoring out the common functionality into resusable modules.
So, on the assembler's side, all the code is probably going to be better organized, and thus smaller, which tends to improve speed. On the other hand compilers aren't limited by human readability of output, so they can do weird optimizing things, like common subexpression elimination that make the assembly code unmaintainable.
So, in the end it probably makes little sense to code in assembly for speed, but a lot if you want to fit into the smallest possible footprint.
It takes an exceptionally good coder to write maintainable assembly. A given piece of assembly is going to be much longer than the equivalent source code, and thus organization is more important.
Post may contain irony: discontinue use if experiencing mood swings, nausea or elevated blood pressure.
I will not argue about linux... it is indeed an awesome OS, and it's all I use at home. However, I'm having a hard time accepting the fact that people seem to be against the development of something new. Besides, I think the authors of V2 are doing it for FUN. How many people do you know that can say they wrote an OS in pure x86 asm? Probably not too many. I hardly think that the authors intend it to be used as a replacement to linux, but perhaps more as something for people to tinker with... "Check out what I did... poke at it if you want" My hat is off to people who do things to learn I certainly would have no idea where to begin....
Good compilers nowaday can beat human ASM programmers.
No.
I can see where it would be useful if all you want to do is squeeze every last drop of speed out of your system, convenience, portability, maintainability be damned...
--
grappler
Vidi, Vici, Veni
Does anyone know how V2 compares to ExoPC? It would seem to me that there's as much potential for speed gain in a good design as there is in language choice, and ExoPC is known for being very fast indeed. (As well as being 32-bit, Open Source and Quake 3-ready... :)
It's a small world and it smells funny; I'd buy another if it wasn't for the money; Take back what I paid (SoM)
Read The Microsoft File by Wendy Goldman Rohm, and then try to argue that OS/2's death had nothing to do with Microsoft and was wholly self-inflicted by IBM.
For more information, click here.
...because if you use a compiler, your program includes both your mistakes and the mistakes made by the person(s) who wrote the compiler, eh? Twice the mistakes.
Some days Slashdot reminds me of a highway, where there is an endless series of rabbits lurking just off the shoulder, quivering and licking their asses to pass the time. They're eager, but they're not very bright and they're not very brave. Nevertheless, a time often comes when one of them gathers its courage, and with a joyously crazed look in its eyes, runs across the damn highway! Splat. Why? Don't ask me, I have a brain. I don't do these things. I don't claim to understand them. All I know is that there are all manner of marginally self-aware vertebrates running around loose on this tired old planet which, for reasons best known to themselves, will occasionally gather all their feeble energy and then release it all at once in a blaze of intense public idiocy. And an alarming number of these critters turn up on Slashdot.
Now, I hope you don't mind my asking, but what kind of a fucking MORON are you?
Why waste time on Linux when we've got [A-Za-z]+BSD?
Why waste time breathing when you could be ramming a goddamn stoat up your fat, stinking ass?
Why waste time posting mindless gibberish on Slashdot when you could be masturbating to a picture of Linus fucking Torvalds?
Nobody needs your goddamn permission to write code. Those of us who write code, do so because we like to. If a project "grabs" us, and if we have the time, we do it. Frequently we're "scratching an itch" as the man said, but as often as not, we're just playing. I don't recall ever having seen or heard an actual programmer (not even a drooling imbecile like Tom Christiansen) take the attitude you have. Why not? Because they "get it". Also because if they think more time should be spent working on "useful" projects, they're quite free to spend their own time on such things. And many of them do. But if they choose not to, it's their time, not yours. Fuck off. Use Linux if you like, that's what it's there for, but don't start making any goddamn demands.
What Linux is _now_ is irrelevant. It started out as what? A personal project by Linus to make a unix like OS for a 386 as he couldn't afford a commercially licensed one? What if someone had told Linus that he is a fool and should stick to Minix? (Or whatever else was floating around that time) Our NT hating friend believes that no new operating systems have the right to enter the market, luring developers from his precious linux. That _is_ the problem. >> "We (Linux) have grown, and it is now our believe that all other projects out there are useless, so we shall label them as foolish ideas as we all know Linux is the way of the future" Sooner or later this will blow up in Linux's face, a lot of BeOS users have already been alienated by Eric Raymond's comment a few months ago. If this trend continues then sooner or later a chunk of Linux's developers will pack up and leave. I certainly wouldn't want to be part of a movement that dictates what I should and shouldn't do.
Well... no.
0 110...
Assembly looks something like this (note this is probably not valid:)
LDA $EAX,10
STA 0XFF800000
The machine code would look more like this:
10010101001010111001111001110110101001010011110
Yes, you can translate that to your favorite base, but that's all the computer actually understands. (excepting ENIAC which understood base-10)
Glückwünsche, haben Sie Slashdot ermordet, indem Sie zum korporativen Druck beugten und Subskriptionen einlei
Yeah, i'm too afraid to.
...not the game.
You do not grok assembly. I would post as an example the 10 line CRC16 routine I used to use for my YMODEM implementation, if I could find it...
because linux is THE operating system, investing time in anything else would be a waste.
When I got my C64 I didn't have any sort of label-based assembler, or for that matter even a text editor, so I would look up the machine language opcodes in a reference book, write out a machine language program on notebook paper during school, then when i got home i would convert it all from hex to decimal and enter it by POKEing it into memory from the BASIC shell. Talk about debugging being a bitch.
That's my story. It's actually completely true. I wrote several video games that way, including 'Free Delivery' and 'Freestylin'.
However, dynamic translation of segments of code as it runs is certainly possible. FX!32 for NT/alpha does this with x86 binaries. I've been working on something to do this for linux (currently x86->alpha, but other sources and targets can be added)... As soon as I can get the code cleaned up I'll put it a public CVS server.
I was being completely sarcastic with my "yeah, I see what you mean post"
Looking back, that might not have been clear.
They didn't ask if it would *work* on a c64, smartboy.
If people's heads were as smart as their asses, well, uh, the cummulative IQ of the world would increase dramatically.
The MBAs out there probably read that and said, "there, but for the grace of Cobol, go I"
:-)
---
--
Internet Explorer (n): Another bug -- that is, a feature that can't be turned off -- in Windows.
And I 100% agree. However, you said the reverse, or my understanding was of the reverse, that BSDs tried to monopolize to a single OS, where Linux did not. Here, you failed to say whether that was a correctly understanding, or not, though said the "one world" mentality was a major thorn in Linux's success.. which would imply that your origional post was either incorrect or badly phrased.
"Open Source?" - Press any key to continue
Umm... what if Linus had said this back in '91? "Oh, we have MINIX, Hurd's coming soon, and DOS isn't _horrible_. I won't bother." Oh yeah, and why should Linux have 35% market share? While free software can be an answer for everything, Linux is not. Nor will any one program ever be. Stop supporting Linux for being an underdog, and start supporting it for a real reason. There's lots.
This OS seems like it was written purly as something fun for the authors to do. They pulled off an amazing thing, writing it all in ASM, and they wanted to share their accomplishment. 99% of the coments I read here are negative, why not praise them for what they managed to make in pure ASM.
Yes, is is kinda off topic. But this OS was never meant to be mainstreamed... it was a project. I thought nothing notable would be contributed to this thread, so I threw this comment in there to give bored late night /. readers something to muse over. Besides, I plug the Hacker Dictionary every chance I get - it's right next to HGTG on my bookshelf.
I love it... these guys write this incredibly tight code, and all you guys can do is slam it because it's not portable, because it's pointless, because it's not Linux. Yet you seem to like Star Wars crap made out of legos...
Gives new meaning to the words: "Boot from Floppy"
Gonna try this sucker out
"Imagination is the only weapon in the war against reality." -Jules de Gautier
I don't see what's wrong with another OS. Isn't competition good? Oh yeah, I forget, only when it's linux.
Flamebait? No. Just responding to other posts, all in one convienient package.
Another tidbit, BeOS uses some ASM coding "when we need the speed." ASM is not unheard of in other os's.
have a good one
Dan
OK, the process your C code goes through to get to machine code looks something like this:
C code -> Preprocessed C code -> assembly code -> machine code -> linked code
A description of the processes:
C code. This is obvious. Then we feed it through
the preprocessor, which deals with all those nasty #defines and #includes. In a small program, this can increase the size of the file by several orders of magnitude.
After preprocessing, we have preprocessed C code (surprise!) which we then feed to the compiler. The compiler takes all that C code, runs some optimizations on it, tilts it sideways (and lets the dirt fall out), pokes at it, and turns it into assembly code.
Assembly code is processor-specific. Naturally some programs start here (like the current topic). Assembly code deals with the raw hardware (ie., registers etc.) but is human-readable, to use the term loosely. It is still in ASCII, and contains one processor instruction per line. This is also the last step that allows comments.
Feeding the assembly code through an assembler yields binary code. This is raw machine code that the processor feeds on. If you are running it inside an operating system, typically it will be encased with some other materials to yield object code.
Finally, if you are on an operating system and want to make an executable (or library), you link your object code. This notes which shared libraries are required, as well as including the structures for an executable (exe, a.out, elf, etc.) For the most part, all code is linked except for bootstrap code.
cross platform compilation, if not exactly common place, can be done. I think doom or quake or both was/were developed on a NeXT, not too sure on that though.
http://www.onshare.com/filelist.jsp?dirid=19014&gu est=true If the web site is down I shared the bootdisk on OnShare.
Another interesting project: SkyOS.
>No.
Well, good compilers can beat some human ASM programmers. Of course, they'd have to be incredibly bad human ASM programmers...
--
"Convictions are more dangerous enemies of truth than lies."
to you and to the AC above.
Gates' Law: Every 18 months, the speed of software halves.
As soon as they finish I will port it to my Mac ..
Leave the moderating to the moderators.. gezzz :) hehe :)
VI and a toothpick
Anyway it's kinda related.. similer effort from an older time.. and it's kinda cool
Personally thies efforts are neat.. Lunix for the Commodore 64 has a specal place in my heart.. shure I can't use the 64 as a Unix workstation but the whole idea of putting Unix on such an old computer is cool.
All of thies reduced efforts are kinda neat and remind us that operating systems don't have to take up 16 meg ram and 1 gig HD.
We shall see if this heads anywhere..
Maybe once it's done we can port it to wearables [many of whom do use Intel chips] or port to other chipsets...
I don't actually exist.
Too many of you alleged 'nerds' have to learn that assembly language is WHERE IT IS AT; a core kernel of whatever design written in hand optimised assembly will rear up and piss all over the gooey mess which comes from the rear end of an optimising compiler 100% of the time! So what if it isn't portable? Its SMALL ENOUGH to rewrite! Its probably more secure than openBSD too ...
I think you overestimate compiler optimizations. I personally always use them, but I also wirte a few things in assembler, and any decent, and in fact, many poor assembler programmers can esaily beat the pants off of any compiler optimization 99% of the time. (There are some freaky cases, but not nearly enough to make up for it). Assembler is the way to go for absolute speed, sacrificng pretty much every thing else. Nightmare to port, nightmare to maintain, and nightmare to debug. As an example, a professor of mine compared statistics for one of our programming projects. I think his executed count was around 7,000, the average for the calss about 9,000, worst student about 18,000, and the C compiler, on the order of 100,000...
Assembler/machine language is alive, well, and thriving in your monitor, keyboard controller, car computers, microwave oven, TV, VCR, stereo, modems, etc. In short, there is a large subculture out there using nothing else.
I started on 8080 machine language. Yes it can be ugly but making it work can be a real thrill. Kudos to those who can pull off an OS using it.
Maybe once it's done we can port it to wearables [many of whom do use Intel chips] or port to other chipsets...
You should have actually *read* the developer information.
I did.
This OS is hopelessly tied to the x86 and Standard (PoS) PC Architecture (you know, the one with the crap bios and the incredibly S-T-U-P-I-D partition table scheme and ridiculous realmode - yes, you *still* need realmode to program some of the PC hardware - and protected mode environments, not to mention that pathetic excuse of an interrupt system, I mean come on! Do we really need to cling to those outdated PICs anyway?)
...
But I digress...
I must admit that an OS as tiny as this is a wonderful feat, but unfortunately it is stuck with the 386+ PC architecture, and contains a fair number of outdated notions (such as holding on to the 3 char extensions for some odd reason), setting the maximum number of files a disk can hold at format time (instead of just growing the file index table from the back of the partition or some other clever scheme that wouldn't cost in access time), and a few other things.
I've also noticed a fair amount of pollution in the system32 services for fairly frivolous things, as well as a seeming lack of vision for the future in their design.
But these are only minor anoyances that we all live to deal with because those of us who could do better usually just can't be bothered.
Anyway, getting back to the topic at hand, don't expect to see V2OS in anything other than a 386+ PC.
Portability isn't everything. Some people (me) program asm for any and every chip anyways so what's the big deal? all "assembly languages" are relatively the same anyways. Once you learn assembly for one chip learning it for another is like learning PASCAL after learning C and BASIC.
For me, the big deal is that I'm a perfectionist and have a thing for esthetic style.
I don't mind the odd thing like MOVEQ #0, D0 being 2 cycles faster than CLR.L D0 on a 68000. These are like little easter eggs waiting for the astute coder to find them.
However, there is a HUGE difference between this and that monstrosity they call the Pentium.
Personally, I can't understand why this project exists. Speed? Hardware is fast, it's always getting faster, and existing operating systems are as fast as you make them. Being the speed king matters for all of 7 months, when Intel releases a new revision of their processor that negates all your hard hacking. Well, if they're having fun writing it, I guess it has a place.
Uh, for fun?
ReadThe ReflectionEngine, a cyberpunk style n
Who said there had to be an applicable point. Sheesh, must everything today be done for some sort of market gain or to outdo something that's been done already? Compilers are good at what they do, why does that mean someone can't undertake a project to learn?
/. is depressing.
And what's wrong with exercising one's brain? Why is it that people are so ready and willing to say "But it has no point!" or "It isn't increasing the share of xx!" Who cares. It's an interesting thing they've done, OSes (even simple ones) are not easy.
It's so unfortunate that doing something to do it is disdained these days. I've got to say, the overwhelmingly negative response to this on
Chris
It think that comments like that (being negative and stuff) could be very destructive to this kind of project. Why don't be a little more constructive and mature of course.
I don't know about vc6, but vc5 defaults to 4,096 bytes. For a standard console prog, I need to write quite a bit before it gets over 4k. Strangly, however I've never seen it get less then 4k.
When you make a windows program, you're going to have to put in *a lot* of code to manage windows/etc
ReadThe ReflectionEngine, a cyberpunk style n
Saying that Linux is outselling the Mac is no more relevant than saying that Netscape Navigator is outselling the Mac. Both of them can be had for free and both of them will run on the Mac. There are a growing number of Linux distributions for the PPC that will run on Apple Macintosh's, for example, LinuxPPC, Yellow Dog Linux and Turbolinux.
I don't have any hard numbers, but I strongly suspect that the number of people using a Mac as their primary OS outweighs, by far, the number of people using Linux as their primary OS. (Primary being the one they spend the majority of their computing time using).
Anyways, this is comparing (no pun intended) apples to oranges. Someone running NT on their computer is one person who's NOT running MacOS. The same is not necissarily true for Linux. (I run MacOS and Yellow Dog Linux on my G3 Laptop)
Comment removed based on user account deletion
It may be writen in assembly.. and they may have put some effort into optimising it.. but I doubt they have put they have put the kind of effort that some other people have. There was one project a long time ago where this guy wrote a microkernel which used self modifing code (well actually just higher order functions) to beat out all the monolithic kerenls---instead of giving you a file handle it gave you a whole set of functions which were optimised for the way you opened the file. I think the guy achieved an order of magnitude speed increase. The coolest thing about this aproach was that most of it could have been done in a high level langauge that supportted higher order functions.
What this all means for this guy is: Assembler is not the answer to over all high speed.. compilers which allow you to take advantage of self modifing code in a structured way would be the really fast solution. Unfortunatly, people generally do not add higher order functions to fast imperitive langauge like C.
I should mention that there may be a programmer time cost associated to using these sorts of tricks in an imperitive langauge, but the functional langauges which allow the programmer to seamlessly take advantage of these things generally have other compiler problems, but it is possible that one day the functional programmers will langauge at how slow everybody elses code is because their compilers can do tricks like this and everybody else has to do a lot more work to get the same things.
Jeff
The Christian religion has been and still is the principal enemy of moral progress in the world. -- Bertrand Russell
This kind of changes things, but I guess now we won't have people complaining about 'karma whoreing'. or whatever. I mean, after you get 30, who really cares?
ReadThe ReflectionEngine, a cyberpunk style n
If Java was the language of 1997, Visual Basic the language of 1998, then assembly language was the language of 1999. Everyone's writing in assembly these days probably because we've seen the age of large monolithic applications come and go. Today's marketing craze is small size.
Why are you bashing this? .h files...
It isn't going to take any market share from linux.
Besides, it's always good to have small, fast OS's... when all of you are thinking about wickedly fast programs on your P6's, I'm thinking about running wicked demos on my 486/33. I'm thinking about true assembler programming... giving the CPU direct opcodes instead of reffering to things that refer to things that refer to
Linux is great, but i'll always appreciate a true, lean OS.
Well there may still be uses for it. For instance, going back to that FREEVMWARE that was slashdoted a few days ago. They mention that they had to code their own little OS to test their code. This seems to be the perfect little OS to test and develop FREEVMWARE on/with. There is always use for some thing new.