- 01
- 02
- 03
- 04
- 05
- 06
- 07
- 08
- 09
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- 27
- 28
- 29
- 30
- 31
- 32
- 33
- 34
- 35
- 36
- 37
- 38
- 39
- 40
- 41
- 42
- 43
- 44
* if you know a switch stmt will not exceed the lowest or highest case values.
switch [] is a little faster because it doesn't check.
* switch stmts always use a jump table. Don't use them with cases with really
big, sparse ranges.
* Allows ranges like "case 4...7:" in switch stmts.
* A no case number causes next higher int case in switch stmts. See
::/Demo/NullCase.CPP.
I64 i;
for (i=0;i<20;i++)
switch (i) {
case: "Zero\n"; break; //Starts at zero
case: "One\n"; break; //One plus prev case.
case: "Two\n"; break;
case: "Three\n"; break;
case 10: "Ten\n"; break;
case: "Eleven\n"; break; //One plus prev case.
}
* Switch statements can be nestled with a single switch expression! This is
known as a "sub_switch" statement. start/end are used to group cases. Don't
goto out of, throw an exception out of, or return out of the start front porch
area. See ::/Demo/SubSwitch.CPP.
I64 i;
for (i=0;i<10;i++)
switch (i) {
case 0: "Zero "; break;
case 2: "Two "; break;
case 4: "Four "; break;
start:
"[";
case 1: "One"; break;
case 3: "Three"; break;
case 5: "Five"; break;
end:
"] ";
break;
}
OutPut:
>Zero [One] Two [Three] Four [Five]
3.14159265 27.06.2016 00:46 # +1
j123123 01.12.2015 21:45 #>>307995 +3
Он просто шизик https://dev.by/lenta/main/terri-devis-gospod-skazal-idi-i-programmiruy
Терри Девис — бывший профессиональный разработчик ОС. В частности, он работал над VAX operating system, а также частично над C64 (документировал работу этой ОС с памятью). Терри приобрел весьма специфическую известность в западной технической части интернета — его личные аккаунты «забанены» на всех ведущих айтишных ресурсах типа OsNews, Reddit, Hackernews и т.п, где он пытался активно проповедовать свои идеи.
inkanus-gray 27.06.2016 00:50 # +1
3.14159265 27.06.2016 00:57 # 0
inkanus-gray 27.06.2016 01:17 # 0
3.14159265 27.06.2016 01:19 # +2
* No type-checking
А насчёт Бога он походу стебётся. Не думаю что шизик смог бы написать с нуля ОС, компилер, бутлоадер и всю обвязку.
Так и линуса можно шизиком назвать.
inkanus-gray 27.06.2016 01:24 # +2
А у автора TempleOS результат есть. Пожалуй, тут что-то другое. Возможно, и вправду просто стёб.
3.14159265 27.06.2016 01:47 # +3
Вот где я вижу упоротость. Или упёртость.
С другой стороны каждый сходит с ума по-своему. Тем что сотворил он могут похвастаться единицы.
> I was not distracted like all the lemmings at www.osdev.net
Мне это напомнило пишущего игры Тараса, которого банили на геймдеве за профнепригодность.
Но вот по какому поводу он заинтересовал CIA & FBI так и не понял.
guesto 27.06.2016 04:48 # 0
j123123 27.06.2016 14:54 # 0
guest 28.06.2016 17:53 # 0
guestinho 27.06.2016 18:25 # +1
Линус начинал немножно в другое время. Знаете, в 1970х можно было и процессор с архитектурой разработать для конкретной бизнес-задачи.
А в 80х каждый вендор пилил свой сетевой протокол (AppleTalk, блеять)
А сейчас это как-то странно.
3.14159265 27.06.2016 00:54 # +1
I've been a professional operating system developer since 1990 when I was hired to work on Ticketmaster's VAX OS.
http://www.templeos.org/Wb/Home/Web/History.html
In 1990 at age 20, I was hired to work on Ticketmaster's VAX operating system in VAX assembly language while going to school.
I was basically, an intern, but we weren't called that. Peter Gadwa was a mentor. I worked there 1990-1996.
In my career, I have been paid to program in VAX assembly, x86 assembly, 8051 assembly, 68000 assembly, PIC assembly and AvR assembly. In school, I took 5 courses that required assembly -- CSC226, CSC326 CSE421, CSE422 and CSE523.
In about 1993, I got a 486 and was eager to try 32-bit mode, so I wrote a DOS program in TASM that changed to protected mode and never returned to DOS. Ticketmaster's OS was "VAXTMOS", so I called mine "Terry's Protected Mode OS, TPMOS". I had 0xB8000 text mode working, and echoed keyboard to screen. I had simple multitasking and barely a MALLOC. I set it aside.
In 2003, I resurrected TPMOS and installed FreeDOS to launch it. I used Visual Studio to edit my files when doing lots of editing, then booted FreeDOS, used TASM to compile and test it. Back in those days, FreeDOS ran in real mode. Today's FreeDOS is not real mode, it emulates with V8086 mode. DOSBox is not real mode either.
With-in a month of resurrecting the operating system in 2003, I faced the question of how to handle the command line. I knew it must be the same as whatever scripting language I invented. The only problem was, I hated Unix Bash scripting.
I could never remember it. As a regular C/C++ programmer, you don't really use bash often enough to memorize it. I thought, "What if I just use C/C++ for scripting!"
Antervis 27.06.2016 06:03 # +3
Есть в этом здравое зерно, конечно. Баш-код по природе своей ужасен. Вот только писать скрипты на яп без поддержки файловой системы это зашквар
Soul_re@ver 27.06.2016 11:50 # +2
j123123 27.06.2016 12:07 # −1
roman-kashitsyn 27.06.2016 12:12 # +5
В каком стандарте C есть эта функция?
inkanus-gray 27.06.2016 12:53 # +1
Никого же не удивляет отсутствие в стандарте функций для работы с гуём или с периферийными устройствами.
meinf 27.06.2016 12:12 # +4
это POSIX
j123123 27.06.2016 12:44 # 0
http://c-faq.com/osdep/readdir.html
See if you can use the opendir and readdir functions, which are part of the POSIX standard and are available on most Unix variants. Implementations also exist for MS-DOS, VMS, and other systems.
Но вообще для меня это новость, что переносимой хрени для просмотра содержимого директорий в винде нет из коробки. Ибо не был я зашкварен говнопрограммированием под поганый виндовс
3_14dar 27.06.2016 12:47 # +2
3_14dar 28.06.2016 18:04 # 0
inkanus-gray 27.06.2016 12:50 # 0
j123123 27.06.2016 12:59 # −1
guesto 27.06.2016 13:24 # +4
j123123 27.06.2016 14:49 # −1
Да хуй с ним с позиксом, но ведь можно ж было сделать эту функцию, просто чтобы на винапиговна не переписывать код, который это использует? Определить соответствующие функции в стандарте Си, например?
gost 27.06.2016 15:57 # 0
>>> Вот только писать скрипты на яп без поддержки файловой системы это зашквар
j123123 27.06.2016 16:23 # −1
inkanus-gray 27.06.2016 16:41 # +1
inkanus-gray 27.06.2016 18:52 # +2
Кстати, забыл привести яркий пример: в переменной PATH элементы списка разделяются двоеточием в Линуксе и точкой с запятой в Windows. Если программе требуется парсить подобные переменные, то её придётся переписывать.
Например, программа, портированная с *nix, увидев в PATH значение C:\Windows\System32, считает это двумя элементами: C и \Windows\System32. Чтобы починить, придётся лазить по исходникам и заменять двоеточие на макрос, который в Винде разворачивается в точку с запятой, а в *nix-подобных системах в двоеточие.
А ведь когда-то была ещё VMS с вот такими путями к файлам:
И ещё Mac OS классическая (до Mac OS X):
Плюс ещё «версионированные» файловые системы, когда в конце идёт версия файла (отголоски этого есть в файловых системах для компакт-дисков, хотя ДОС/Винда/Линукс игнорируют версии).
И всю эту прелесть кому-то приходилось поддерживать:
https://ru.wikipedia.org/wiki/Путь_к_файлу
https://en.wikipedia.org/wiki/Path_(computing)
inkanus-gray 27.06.2016 16:53 # +1
А для этого есть Cygwin с прослойкой, преобразующей /cygdrive/c/Windows в c:\Windows.
Есть выбор: либо использовать тяжёлый тормозной Cygwin и лишать себя доступа к некоторым особенностям системы, зато переписывать ничего не нужно, либо напрямую работать с системой, зато дофига всего переписывать.
guestinho 27.06.2016 16:53 # +1
inkanus-gray 27.06.2016 17:17 # 0
Проще написать под Cygwin, чтобы не думать, есть ли поддержка этого слоя у клиента.
guestinho 27.06.2016 17:21 # +2
Вообще NT изначально должна была иметь ядро с native api, а поверх него разные сабсистемы (для os/2, posix, и win32). Со временем Win32 стал "любимым ребенком" и оказалось что под Posix писать глупо: Wndows из него примерно 3% поддерживает.
Кста, и WSL не для того сделали чтобы под винду писать, а чтобы ruby и python люди не ныли что у них сигналов нет, скрипты на баше не работают итд
inkanus-gray 27.06.2016 17:53 # +1
Жалко, что в Windows XP эту подсистему убрали и не стали развивать другие, а то было бы заманчиво иметь возможность запускать бинарники от других систем.
guestinho 27.06.2016 18:05 # +2
наверное чтобы вместо PE с subsystem юзать честные ELFы
inkanus-gray 27.06.2016 18:32 # 0
Но ELF вместо странного PE — это уже хорошо, хотя бы тем, что кросслинкер не нужен.
Кстати, в своё время в Win32s (это пакет для запуска PE в Win 3.x) и в Odin (это пакет для запуска PE в OS/2) загрузка чужеродного для тех систем PE была реализована перехваткой исключения, выбрасываемого в случае нераспознанного формата экзешника. В принципе, по той технологии можно было бы реализовать поддержку ещё кучи форматов.
Но есть проблема: в реестре Windows не принято регистрировать файлы без расширения. Есть запись со звёздочкой после точки, срабатывающая, когда пользователь пытается запустить файл с неизвестным расширением, а совсем без расширения не бывает. В Линуксе же исполнимые файлы обычно без расширения.
Как решить эту проблему?
guestinho 28.06.2016 18:15 # 0
Я разрыл что есть функции с префиксом Psp, которые надо юзать вместо CreateProcess, но они нифига не документированы.
Сама wsl реализована ввиде сервиса LxssManager с COM API, но он тоже не документирован (и tlb к нему нет, и IDispatch он не реализует).
Короче, единственный сопосб это запустить bash.exe, который открывает шелл, и ему уже пофиг на расшырение конечно же.
А проблму никак не решить: в NTFS есть конечно пермишен на execute, и можно наверное было бы его юзать, но на винде нет шебанга чтобы отличить батник от экзешника, так что расщирение до сих пор является главным способом определения типа файла (ацтой)
3_14dar 28.06.2016 18:20 # +1
Смотри, прыщехуесосина прибежала, блядь. Шебанг ей подавай. Пидорасина, расскажи мне, чем плохо расширение? Из-за вас, пидарасов, питон 2 и 3 на одном компе держать только с середины 2012 можно.
guestinho 28.06.2016 18:23 # 0
Держать два питона на одном компе можно было всегда. Просто для этого нужно не быть криворуким ламером, не умеющим читать документацию, и не понимающим как работает используемая им операционная система. Ну иными словами, нужно не быть Сёмой.
Шебанг лучше тем, что знание о способе запуска конкретного файла хранится в самом файле, а не в глобальном хранилище classes (где его могут переписать, где оно может остаться после удаления программы, итд)
bormand 28.06.2016 18:39 # +1
Если бы там было написано какое-нибудь MIME типа #!application/python3 - было бы ок. Но там какого-то хуя просто путь, который может быть неправильным в другой системе...
guestinho 28.06.2016 18:42 # +1
ну так а расширение .py не тоже -ли самое?
3_14dar 28.06.2016 18:06 # 0
Она и сейчас есть в виде виртуалок. Разница в производительности тогда и сейчас позволяет это творить.
guestinho 28.06.2016 18:15 # +1
3_14dar 28.06.2016 18:20 # 0
guestinho 28.06.2016 18:43 # 0
inkanus-gray 27.06.2016 13:37 # 0
3.14159265 27.06.2016 00:56 # +1
Originally, I just put raw source code into my TASM bin file and invoked my compiler on the code sections store away in my DOS app. Don't worry, it started in real mode but changed to 32-bit mode, never returning to DOS.
I named it Doors, Davos, J, LoseThos, SparrowOS and, finally, TempleOS.
The awful name "LoseThos" name was not intentionally to suggest "loser".
I didn't start the operating system as a work for God, but He directed my path along the way and kept saying it was His temple. Still I hesistated and kept it secular until, finally, Microsoft went nuclear with SecureBoot and UEFI. Then, I went nuclear and named it "TempleOS". I will fucken command them on orders from God to UNDO THAT SHIT! ::/Doc/Demands.TXT The CIA will fucken suck my dick. The CIA scum-bags, clusterfucked the entire industry out of cowardice.
Bill Gates said a company was like a castle -- you have to build walls unless you want to fight every person who comes along. They clusterfucked the hardware with things like USB and PCI. God said to Bill Gates, "You ate your children in the seige." God hates cowards. God loved David that fought Goliath.
In 2003, I visited the FBI voluntarily to say hello and give them a CD-ROM.
Don't get chummy with police. They unearthed a warrant for missing a court date and locked me up. They had no use for the CD-ROM. It had TPMOS on it.
3.14159265 27.06.2016 01:03 # +4
Мотивация у него очень даже правильная:
http://www.infiltec.com/j-h-wrld.htm
Ведь на самом деле современный софт оброс столькими слоями и прослоечками говна, что за лесом перекладывания из пустого в порожнее и делегированием от либы к либе не видно деревьев.
TempleOS is a free, public domain, open source, x86_64, non-preemptive multi-tasking, multi-cored, ring-0-only, single-address-map (identity-mapped), non-networked, PC operating system. Paging is, basically, not used.
This "Hello World" joke, the BMP file format and the WAV file format show that the industry is really screwed-up!
That's what TempleOS fixes. I capped the line-of-code count at 100,000 and God said it must be perfect, so it will never be an ugly monstrocity. It is currently 80,820 lines of unblemished code. Backward compatibility is not promised.
3.14159265 27.06.2016 01:04 # +2
A troll might ask, "Why not just use DOS? It was ring-0-only and single-address-map." DOS was 16-bit, with segmentation -- awful! TempleOS is 64-bit, flat, non-segmented and multi-cored. It has a C64-like shell with HolyC, a dialect of C/C++, instead of BASIC. It was written from scratch, and not even ASCII was sacred -- it has 8-bit unsigned char source code to support European languages. Also, the source code supports binary sprite graphics.
A troll might say, "It can crash!" We used DOS for years and loved it. Computers even had a reset switch! Just think of the power of ring-0, muhahaha! Think of the speed and simplicity of ring-0-only and identity-mapping. It can change tasks in half a microsecond because it doesn't mess with page tables or privilege levels. Inter-process communication is effortless because every task can access every other task's memory.
guesto 27.06.2016 04:47 # −2
3.14159265 27.06.2016 01:09 # +1
* How come it is public domain, not GPL?
I, Terry A. Davis, wrote all 120,853 lines of TempleOS over the past 12.9 years (full-time). It can run on some bare metal 64-bit PC's from about 2005-2010 with no layering, libraries, tools, modules or anything from other sources. Otherwise, you run it in a virtual machine, like VMware, QEMU or VirtualBox. It is independent and stands alone. It has no networking, so it certainly doesn't call home. 100% of the src code is including on all distro's, from the kernel to the compiler to the boot loaders!
* Shouldn't it be GNU/TempleOS?
TempleOS executes no code not written by me at any time except for a few BIOS calls for configuration. I even wrote boot-loaders, so I do not need Grub.
* Don't you use GNU's gcc?
TempleOS was written from scratch, starting with TASM long ago, launching from real-mode DOS. Now, there is no Linux or GNU or any other code in TempleOS. Yes, I wrote the compiler from scratch. See ::/Doc/Credits.TXT.
* Why do you dual boot?
TempleOS is 100% independent -- it does not access the files of your primary operating system and TempleOS will work as the only operating system on your computer, but it has no networking. In your off hours, you will use your other operating system.
* Are you a Creationist?
I am an evolutionist. Adam is a better term for the first father of all tasks than root was!
* Is 'Bt()' in the code Bit Torrent?
Bt() is bit test, like the x86 inst, not bit torrent.
* Is 'Fs->' in the code file system?
Fs is a segment reg, not file system. There is no memory segmentation. It is 64-bit and flat. FS and GS are used as general purpose regs, more or less.
* Is it Pascal?
TempleOS uses a dialect of C/C++ called HolyC. It is not Pascal. I altered the syntax making parenthesis optional on function calls with no paramaters.
wvxvw 27.06.2016 08:29 # 0
А про минимальные ОС, полностью переделаные - есть еще Viewpoint Institute и Алан Кей.
j123123 27.06.2016 11:43 # +1
Для минимальных ОС есть вот это http://www.returninfinity.com/baremetal.html https://github.com/ReturnInfinity/BareMetal-OS
wvxvw 27.06.2016 17:35 # 0
guestinho 27.06.2016 18:21 # +1
gost 27.06.2016 19:30 # +7
inkanus-gray 28.06.2016 15:27 # 0
gost 28.06.2016 16:33 # 0