LoseThos - экспериментальная 64-разрядная операционная система для энтузиастов, исходные тексты которой распространяются без каких-либо ограничений (public domain). LoseThos разрабатывается с нуля, ради получения удовольствия от процесса программирования, без оглядки на совместимость с другими системами. Для демонстрации возможностей доступен образ LiveCD и подборка видеодемонстраций. Система написана на собственном языке, основанном на Си с элементами C++. В настоящее время объем исходных текстов LoseThos составляет около 100 тыс. строк кода, включая 64-битный компилятор, набор системных утилит и графическую библиотеку. Поддержка сети, USB и мультимедиа устройств отсутствует. Все пользовательские приложения работают с привилегиями ядра.
For Windows, use Magic ISO or some similar software to burn a CD-ROM image file. Then, boot to it. It's a live CD, so you can play around immediately with or without installing.
LoseThos doesn't work with virtual machines like VMWare or qemu. Boot the CD instead.
LoseThos is for programming as entertainment. It empowers programmers with kernel privilege because it's fun. It allows full access to everything because it's fun. It has no bureaucracy because it's fun. It's the way it is by choice because it's fun. LoseThos is in no way a Windows or Linux wannabe -- that would be pointless. LoseThos is not trying to win a prize for low resource usage or run on pathetic hardware. Low line count is a goal, though. It's 100,000 lines of code including a 64-bit compiler, tools and a graphics library. It's strictly 64-bit and could be configured to function with 32 Meg or less RAM, but who cares! Where do you get a x86_64 machine with less than 32 Meg RAM? With no multimedia, it's hard to run out of memory on a modern home computer.
A bigger goal is making applications low line count. "Hello World" takes one line of code. You can put graphics on the screen with two lines of code. You don't need to include header files or mess with namespaces. It has a scoping system, though, with tasks inheriting symbols of parents and all system-wide symbols and code in the Adam (as in Eve) task's heap.
LoseThos uses some tricks to keep line count down, like processing whole files. It has a flat, identity mapped virtual-to-physical address map, the same for all tasks. It updates the whole screen 60 times a second instead of trying to keep track of what has changed. The most demanding application is a full screen video game, so it might as well be optimize for that instead of trying to get idle low. It uses the same compiler for the command line as for programs and it uses the same viewer/editor for the command line, help system, forms and dialogs.
LoseThos is not trying to be bullet-proof -- it's for home computers, not mainframes where many users suffer when a crash occurs. It reboots in 2 seconds plus BIOS time. It's no worse than a hung task in Windows or Linux. I know people obsess on this topic. You know how the last 20% of a project takes 80% of the time?
LoseThos is an order of magnitude simpler by not trying to be bullet-proof.
There are two programmers who will work on LoseThos -- the user and I. It is for programming as entertainment, and I mean that. Why would you buy a 3rd party program to run on a system with crappy graphics that can crash? There are no scalablity issues. Imagine LoseThos more similar in usage to a 8-bit non-networked home computer's ROM than to Windows or Linux, though, it is 64-bit and far more than that.
You are free to access anything documented or undocumented in the system source code -- have fun! I have fond memories of the days when average users typed-in programs from magazines and tinkered with them.
LoseThos was designed from scratch with a clean slate and has no compatibility with anything else. Source code is ASCII plus binary graphics data. It has a new language roughly based C/C++. It's more than C and less than C++ so, maybe, it's C+. I took every opportunity to improve things once I made a clean break with the past. That's another reason LoseThos has value -- it is innovative.
I started with a command line like this:
Dir("*.*");
I added default parameters from C++:
Dir();
I said, "parentheses are stupid."
Dir;
Now, I have a language which looks a little like pascal. It also doesn't have a main() routine -- any statement outside a function executes immediately, in order. The command line feeds straight into the compiler (not an interpreter) and it doesn't have that bullshit errno crap for return values -- command line commands are regular C+ functions.
Contrary to what you might think, LoseThos is modern. I wrote a 64-bit compiler and made support for MultiCore. Everybody else does SMP which is great if you wish to run two apps at the same time, but what about one? Instead, LoseThos does master-slave MultiCore, fully under the programmer's control.
I don't know what everybody else is doing about 32-bit signed displacements, but I'm putting all code in the lowest 2Gig address range and data above in a 64-bit address space.
LoseThos is primarily for making video games. It has no networking or Internet support. As far as I'm concerned, that would be reinventing the wheel and you can do that instead by dual booting another operating system. Similarly, it's not for desktop publishing or multimedia.
When it comes to budgeting, many people buy too much house and find themselves always stressed. When it comes to video games, professional companies push the limits and struggle the whole time. With low resolution and a modern 64-bit multicore machine, you can write modest games with orders of magnitude less effort than a professional company with a staff of a hundred.
Размер: 19.07 МБ