Sup! I'm developer of tiny homebrew OS. My OS work with almost any x86 PC, have support for: Internet (via Ethernet-cards), HD resolutions, USB, FAT, NTFS, EXTFS. Video/audio players and consoles (NES/SNES/GB) presented too. Also there are compilers for C and Pascal, and interpreters of Lua and Python.
I need help with translating it to English, Japanese and other languages. Programmers and designers are welcome too. Write your answers plz.
Name:
F r o z e n V o i d !!mJCwdV5J0Xy2A212011-11-26 9:35
>translating it to English
if the source is in English what is there to translate?
He didn't say he made it originally in English, you fucking furfag.
Get the hell out of /prog/. IHBT. FUCK oFF. G9oogle translate sucks more than a little amount of balls. You are an retard.
Name:
Anonymous2011-11-26 9:42
I'm porting Scheme and Haskell.
Almost everything complicated is written in Russian. I can translate it only to simple English.
Example of hard text:
>Создание нового потока: [core/taskman.inc, new_sys_threads] принимает на вход entry point нового процесса и указатель на user-mode стек.
захватывает application_table_status
находит пустой слот для нового потока; если такого нет - выход с ошибкой;
копирует имя процесса и информацию об адресном пространстве вызывающего потока в структуру для нового;
вызывает set_app_params
освобождает application_table_status
>Creating a new thread: [core / taskman.inc, new_sys_threads] takes an entry point of the new process and a pointer to user-mode stack.
captures application_table_status
finds an empty slot for the new thread, if there is no such - exit with an error;
copy the process name and information about the address space of the calling thread in the new structure;
is set_app_params
exempt application_table_status
Name:
Anonymous2011-11-26 9:49
>>3
Anyway, you can help with porting if you familiar with GCC and Newlib.
Name:
F r o z e n V o i d !!mJCwdV5J0Xy2A212011-11-26 9:53
>>6
There is nothing complex,
захватывает application_table_status -> locks application_table_status
находит пустой слот для нового потока; если такого нет - выход с ошибкой;->finds a free slot to new thread, if none found - exits with error.
копирует имя процесса и информацию об адресном пространстве вызывающего потока в структуру для нового->copies process name and parent process address space info into a new thread
освобождает application_table_status ->frees application_table_status
вызывает set_app_params ->calls set_app_params function
Name:
Anonymous2011-11-26 9:57
>>8
extremely fast and lightweight, without any bloat >>9
This place is easy, you're right. But there are 300 or 400 written pages in Wiki, and 500 or so doesn't exist at all
Name:
F r o z e n V o i d !!mJCwdV5J0Xy2A212011-11-26 9:58
KolibriOS source are filled with unportable asm,how can you maintain such a mess?
Name:
Anonymous2011-11-26 10:03
>>11
Hey, do you really believe that cross-platforming is GOOD?
Name:
F r o z e n V o i d !!mJCwdV5J0Xy2A212011-11-26 10:07
>>12
with good design, asm is used for time-critical or platform specific pieces, and is header-only.
Writing the entire OS in asm is counter-productive on so many levels, only masochists can endure writing it.
Name:
Anonymous2011-11-26 10:14
>>13
It's a legend. Development speed on asm for KolibriOS is compatible with development speed on C for Linux. For example, HD audio driver was written in a few days, USB stack too.
Few months ago I wrote "Color select" for Kolibri in C, and my friend on assembler. Algorythm was same. We wrote this program for ~2-3 hours, then checked speed of apps. Results: C - 7 msec for dialog window, Asm - 7 msec for dialog window. Then we began optimize our programs. Results: C - 5 msec for window, asm - <0.5 msec. Whoop.
Name:
Anonymous2011-11-26 10:15
>>13
And one thing. Anyone who says "Kolibri isn't well proected OS" didn't tried to use WinAPI in assembler.
Name:
Anonymous2011-11-26 10:19
self-fix: proected^W designed
Name:
F r o z e n V o i d !!mJCwdV5J0Xy2A212011-11-26 10:19
Also, in 2011 "fits on floppy" isn't a good slogan, because floppies are not produced anymore and there are no computers which include floppy drive which were produce in recent years. Floppies are obsolete.
Name:
F r o z e n V o i d !!mJCwdV5J0Xy2A212011-11-26 10:23
>>14
C has inline assembler for speed optimizations which cannot be done by compiler.
Imagine you have a 100k lines of C and million lines of asm(roughly of same function).
Can you optimize a million line manually? C has the luxury of being compiler optimized plus inline assembler, and its ten times shorter.
Name:
F r o z e n V o i d !!mJCwdV5J0Xy2A212011-11-26 10:26
(for those who think a million line is impossible, a typical asm file can easily take 1-5K lines and 1000 such files = 1-5 million lines)
>>20
Our full-featured USB stack is ~10-15k lines of code. Core of OS can be cutted down to 30-40k lines. DLLs, network stack, drivers, memory managment and few built-in drivers.
Name:
F r o z e n V o i d !!mJCwdV5J0Xy2A212011-11-26 10:40
>>23
What is percentage(roughly) of total code that is speed-dependent and how much of the OS is optimized by hand?
Name:
Anonymous2011-11-26 10:44
>>24
You can't say "there is 20% of speed-depended code". Main idea: you don't need additional abstract layers.
When you use C, you wrote "printf ("Wtf!");", and now your program is linked with libC, and may be termio, and so on.
When you use plain assembler, you don't need libC at all. This is an example of austerity and minimalism that can create a full production environment.
Name:
F r o z e n V o i d !!mJCwdV5J0Xy2A212011-11-26 10:52
>>25
you can use write(stdout, &bytes,bytecount) and construct the &bytes string from scratch.
You can write smaller LibC versions, but picking asm because your LibC is bloated is "premature optimization".
Name:
F r o z e n V o i d !!mJCwdV5J0Xy2A212011-11-26 10:55
>you don't need additional abstract layers.
Do you use macros in your asm code? function calls? nested function calls? these are all abstractions.
Abstractions can be managed or reduced,but they are always present unless you write raw machine code in hex.
Name:
Anonymous2011-11-26 11:00
>>27
Okay. There's absctractions too. But I have (exactly, I have) OS, which I can flash into my PC's BIOS, with full-featured mp3-player, image viewer and (almost) full-featured web-browser. I can use this OS on any PC I can buy: i486/8Mb, core i7/8Gb. x86 tablets too.
You can use Windows, Linux or Plan 9, if this OS can do anything you want. Right? My OS can do anything I want (and in few cases better than Windows or Linux).
Name:
Anonymous2011-11-26 11:00
Frozen please stop trolling the poor developers of Kolibri, they are the shining beacon of hope among the sea of bloatware OSes.
Name:
F r o z e n V o i d !!mJCwdV5J0Xy2A212011-11-26 12:15
I always view such thing as asm OS as demos with overcomplicated codebase.
I certainly lack skills to write an entire OS in asm, but i'm not that insane to dedicate a chunk of my life to debugging and iantaining such a herculean project. I'd rather write an OS in C, but i don't think i'll need it(there is no concrete reason to write it).
The complex parts of the low-level OS are usually not that interesting algorithmically(schedulers and kernel calling apis) and the rest is fairly standard code which is as bland as any java project boilerplate. If it cannot be complex because of low abstraction, it also prevents thinking as high-level language where you write algorithms abstractly. Asm forces primitive algorithms.
>>1 My OS work with almost any x86 PC
Good luck writing code for a dying 30-year-old architecture. NTFS
Good luck writing drivers for an over-complicated unreliable proprietary file system.
Name:
Anonymous2011-12-20 15:43
>>31 I certainly lack skills to write an entire OS in asm,
Oh geeze, now there's a shocker. This coming from someone you failed to recognize the macros in C were meant to emulate an iterator.
Name:
Anonymous2011-12-20 15:53
>>31 I certainly lack skills to write an entire OS in asm
You lack the skills to make a good simple application in C let alone even thinking you can manage a OS. You're a shit poster who doesn't know what he's doing. No one likes you. You write shitty code. You don't know half the shit you do. You don't even know the C standard. You're a piece of shit java tier programming.
Sup! I'm developer of tiny homebrew OS. My OS work with almost any imageboard, have support for: Autism(via Haxed-anus), Jewish resolutions, HASKAL, reddit, google, touhou. SEPPLES players and consoles (DSi) presented too. Also there are compilers for BBCode and BBCode, and interpreters of BBCode and FIOC.
I need help with translating it to proper BBCode. Programmers and designers are welcome too. Write your answers plz