History-of-KS
Pre-release
Before the release of 0.0.1, we are working on the PowerPoint OS collection almost 2 years ago, and that used VBA (VB6) macros on Office 2007, and while we are working on the PUNIX-based PPT OS, the macro amount is too much so we have removed the entire OS remaining only 2 OS. In that way, we have learned how to develop VB.NET, and started to think about what did nobody do, and we started to think about the kernels, and because it's impossible to make a bootable kernel except that if we have Cosmos, we have did a simulator that does the equivalent way of booting.
We wrote the kernel booting procedure, log-in, and the shell which includes commands. When we finished, we have initialized our Git repository sitting around the EoflaOE account on GitHub as our coding management system, because it isn't right to release the GNU GPL software WITHOUT the source code.
KS 0.0.1
In the release of 0.0.1, it originally included the prober and their codes are in the Kernel.vb codefile, but that seemed irrelevant and disorganizational.
It also included the original log-in and shell, but it seems that on the booting procedure, it has generated the following output on our spare Windows 10 laptop (tried now):
(1) usrmgr: System Usernames: root useradd created.
(2) usrmgr: User root has been successfully loaded.
(3) usrmgr: User useradd has been successfully loaded.
(4) usrmgr: demo not found. Creating...
(5) usrmgr: Username demo created.
(6) usrmgr: User root has been successfully loaded.
(7) usrmgr: User useradd has been successfully loaded.
(8) usrmgr: User demo has been successfully loaded.
(9) usrmgr: User demo has been successfully loaded.
On (1), it told us that these administrators, root, and useradd (test account with admin rights), has been created but not yet initialized.
On (2-3), it told us that they have been loaded.
On (4-5), the test account has been created according to the manager and to the kernel.
On (6-9), the two admins has been loaded twice, like it said on (2-3) (bug), and on (8-9), the test account loaded TWICE, not once. It's a bug.
Also, it has made 2 unnecessary newlines between (9) and "Welcome to Kernel!"
The "Username:" prompt is "login:", meaning that it's difficult for users that hasn't used Linux yet to understand what did "login" mean, however the "password:" prompt is easy to understand for both the starters and experts.
After you log-in, your prompt looks like this: "[root@kernel] #: ". The colon seems irrelevant.
As soon as you enter "help", it will have a list of commands. However it's uncolored.
Some commands has their own aliases, and some commands report "This kernel is not final." At almost every command executed, it looks like this:
(1)
(2) Output
(3)
Seems that both (1) and (3) newlines are completely unnecessary. Also, the output of "lsdrivers" is somehow colored white when this version of kernel isn't supposed to have colors on outputs.
Also, it has these 2 screensavers, Disco, and BW Disco (future-eyes-destroyer)
As soon as you run Disco, it will show the amazing disco effect, but it has a bug when you exit when the BG color is other than black that when you press ENTER, the BG color stays and prints the shell prompt then clears the BG color without clearing the screen, and when you type in commands, it has a black box around the written characters. Same thing as the output. When you reboot, everything will be fine.
However BW Disco will destroy your eyes (really) and has the same bug.
Commands has their own prompts, good. But they're removed later.
On Windows 10, the CMD makes the beep through your speaker, not the motherboard speaker that beeps at POST (some motherboards do this)
Listing files has a fake output, although the kernel is not final. It lists boot, bin, dev, etc, lib, proc, usr, var and says "Total number: 8 folders, 0 files." The directory set looks like the Linux dirset.
You can't have arguments added to the command, or KS will assume that the command didn't exist although it exists, saying that for ex. you're trying to execute "ls bin", and it says that "Shell message: The requested command ls bin is not found." Somehow, the message didn't have any unnecessary newline problem.
Also, the startup header says "-+---> Welcome to Eofla Kernel! Version 0.0.1.0 <---+-"
Also, either reboot or shutdown command beeps and delays for 3 secs then does their job. These delays and beeps are useless and time-consuming.
Also, the prober can only detect one disk.
Also, the Login.vb contains many unnecessary variables. It has about 5 variables for username and password, each being from different sources or declaration:
Public usernamelist As New List(Of String) (Username list from Login.vb)
Public passwordlist As New List(Of String) (Password list from Login.vb)
Public userword As New Dictionary(Of String, String) (Dictionary stores Username and Password)
My.Settings.Passwords (Password list from My.Settings)
My.Settings.Usernames (Username list from My.Settings)
Unnecessary variables. compared to the 0.0.3 version:
Public userword As New Dictionary(Of String, String) (Dictionary stores Username and Password)
KS 0.0.1.1
The changelogs at "Documentation - main page.txt" on src. code claim that it "added "showmotd", changed a message and better checking for integer overflow on Beep Frequency."
But which message? According to Meld (file comparison software), it says that the MOTD change done message is changed:
Done!\nPlease log-out for the changes to take effect. -> Done!\nPlease log-out, or use 'showmotd' to see the changes
Sadly, this version has the same exact bugs as the first version.
KS 0.0.2
The changelogs said that its code is re-designed, has more commands, implemented basic Internet, argument system, changing password, and more changes.
Although it has the same shutdown/restart delaying bug and the no newline after the shell message bug, here's how exactly the changes goes:
The "login:" prompt has changed to "Username:" for easier understanding
There is a kernel argument system, and they're "motd, nohwprobe, chkn=1, preadduser, hostname, and quiet." Let's see what do each argument do: 2a. motd: It tells you to write your message. (It worked) 2b. nohwprobe: It tells the kernel not to detect the hardware. (It worked) 2c. chkn=1: It checks for connectivity, but asks for address first. (It worked) 2d. preadduser: It adds user right on startup. (It worked) 2e. hostname: It changes your hostname temporarily. (It worked) 2f. quiet: It makes the kernel silent. (It worked) But there is a bug that when you try to execute arguments after rebooting the kernel which also has arguments executed, it will crash.
Everything is colored now.
Fixed unnecessary newlines between the output
chpwd, hwprobe, lsnet, lsnettree, ping, showtd and sysinfo are added
Fixed the disco background issue
Everything that is mentioned in the changelog
KS 0.0.2.1
The changelog says that it fixed a bug for "Command Not Found" message, and added forgotten checking for root in "chhostname" and "chmotd".
There is no extra changes.
KS 0.0.2.2
The changelog says that it fixed a bug for network list where double PC names show up on both listing ways, Error handling on listing networks.
It also added an error handler for the kernel error.
KS 0.0.2.3
The changelog says that it fixed crash on arguments after reboot, fix bugs, and more. What exactly is "fix bugs, and more?"
Reason for crash: The simulator tried to initialize the time and date on each reboot.
It has fixed newline issues when using frequency that is over 2048 Hz after answering question. Output has changed: Are you sure that you want to beep at this frequency, 2049? (y/N) yBeep Time in seconds that has the limit of 1-3600: => Are you sure that you want to beep at this frequency, 2049? (y/N) y\nBeep Time in seconds that has the limit of 1-3600:
It has fixed newline issues when answering the question wrong on choice command. Output has changed: Do we have this bug? <Y/N> y[root@kernel] # => Do we have this bug? <Y/N> y\n[root@kernel] #
KS 0.0.3
The changelog says that it fixed bugs, Log-in system rewritten, added commands, added arguments, added permission system, custom colors, and more.
This version allowed you to use colors of your choice. Let's be specific:
Added the error handler when parsing arguments
Added the gpuprobe argument (probes graphics card every startup)
Added the check for network tools
Added casting for showing time and date
Added resetting variables function (was function, now sub)
Added error handling when starting up kernel
Please note that the error handling code blocks at this release is not the Try...Catch block, but the standard VB6 error handler code snippet below (On the Console application):
On Error GoTo HandlerLabel
Dim IntNumber As Integer = 50 / 0 Exit Sub
:HandlerLabel Console.WriteLine("Divide by Zero") Console.ReadKey
KS 0.0.3.1
The changelog says that it has edited the shell title in preparation for 0.0.4, fix bugs with removing users, fix blank command, and added admin checking.
The big release was scheduled to release in May 20, 2018, which is 3 days before the hard drive failed in such a horrible way.
In anyway, in the exact form:
In Login.vb, the management subs were moved into UserManagement.vb, leading to only these subs remaining: 1a. Sub LoginPrompt() 1b. Sub showPasswordPrompt(ByVal usernamerequested As String) 1c. Sub signIn(ByVal signedInUser As String)
Added the "(Admins Only)" flag on chusrname, editperm, and rmuser
Added the restricted command array
Every command that starts with the space is considered as a comment
Now default permissions is set everytime a user is created
KS 0.0.4
This is the big release of KS. The changelog say that it has changed of startup text, customizable settings, Themes, Command-line arguments, Command argument and full parsing, Actual directory system (alpha), more commands, calculator, debugging with stack trace, debugging logs (unfinished), no RAM leak, fix bugs, and more.
In the exact form:
Added command-line arguments and boot argument arguments
Added debugging (Wdbg)
Added the writing system (W and Wln) so that we will not use the loop of: (1) System.Console.ForegroundColor = CType(inputColor, ConsoleColor) (2) answerargs = System.Console.ReadLine() (3) System.Console.ResetColor()
Added the real command-line arguments (Running CMD on the KS root folder and running the executable file with arguments like "KS.exe createConf") 4a. createConf: Makes the kernel create the config file then exit 4b. promptArgs: Forces the kernel to prompt you for arguments
Added themes
Added error handler for setting permission
Converted all error handlers to Try...Catch
Added the option to show MOTD
Added maintenance mode
Added settings
Added calculator
No RAM leak
Added setthemes, netinfo, calc, scical, unitconv, md, mkdir, rd, rmdir and debuglog commands
Slowed down the time date change repeat rate from 100 ms to 500 ms
Pinging target address can now be repeated
Hardware probing is now extended
Moved every sub that is in Kernel.vb to files that are appropriate
It's really big!
Big releases
Big releases are releases that has 12+ exact changes or more changes. When the change amount in the version is 24+ or more, it's considered as "Huge" update. If possible, every 4 releases could be a Big update, or a Huge update. But these updates might dramatically increase the size of the executable, depending on the number of the exact changes made.
To consider it as a big or huge release, the third part of the version that is divided by 4 should be the number that doesn't have the decimal point, the first release which meets the third version part rule may claim this title, and the exact changes should have more than 12 changes.
KS 0.0.4.1
The changelog says that it has fixed bugs in changing directory, fixed bugs in "help chdir", added alias for changing directory named "cd", and config update. But, how exactly?
Before the HDD failure incident that lasted 5 days, this version was released as a quick backup release, called Failure Followup Release.
We forgot to add the license header for Flags.vb
Added the config upgrade system
Added missing entry for "cd"
Added the statement (And currDir = "/")
Added the reloadconfig command (this command lets you reload config)
Edited the help entry for changedir so it reflects "cd"
Added the help entry for added command
This was released in 5/22/2018, 1 day before the HDD failure in the development environment.
5/23/2018
We published the 0.0.4.1 version publicly in case there is an HDD failure.
After that, we are trying to learn more about kernels, and how are they built, using old Linux CD-ROMs, and the one happened to be Mandrake Linux, was downloading. On our Android tablet, the Internet connection slowed down, so we went to pause a download, hoping that it goes fine.
The game we're playing in our tablet happened to be HackMe.
Whenever we paused the game, we went into the computer, and saw that the download paused, like usual. We saw the HDD light always being on, and also the WiFi light. We tried to move the mouse but we can't, so we did the hard reboot and now our development environment started to get bluescreens during the startup.
We then tried the Hiren's Boot CD's Mini Windows XP, and that booted successfully. Yet when it tried to access the faulty hard drive, we're hearing clicks and at the same time, MiniXP hangs.
We managed to open the CMD and we have ran the chkdsk program with /F.
We saw that it has scanned for errors and fixed them, and when we restarted again, everything went fine.
See more at https://www.bleepingcomputer.com/forums/t/677922/windows-xp-sp3-reboot-cycle-crashes-often-on-boot/ (Thread is hot - According to bleepingcomputer.com, it says that the topic is created at 5/22/2018 when the failure happened at 5/23/2018.)
5/24/2018 to 5/27/2018
We tried again by going to our OS, but things messed up after installing and uninstalling AVIRA Antivirus because of its instability with the non-SSE2 processors. The boot up slowed down, the hard drive clicking noise appeared when we're trying to access Firefox, and we got the blue screen showing that it crashed because the critical process is killed.
We went into MiniXP again, and we tried to get the SMART info using gsmartcontrol latest version, but it reported that it didn't have the dwmapi.dll. The dwmapi.dll is for Windows Vista and up.
We tried again using CrystalDiskInfo, but it didn't print the information properly.
We quickly backed up all of the important data to another working drive that is connected in the past 2-3 years from the spare computer that failed to boot.
We also tried to test the drive by using the Western Digital diagnostic utility, but the quick test failed immediately, so it suggests that the hard drive failure is imminent. We tried the long test, it found bad sectors! We tried to repair it, but we got an error saying that bad sectors didn't get fixed, so the drive is failing.
On the final day of the HDD that has the super-customized Windows XP OS, the drive failed completely after that, and all the portion of the OS and programs, including the XPize dark theme (Royale?), Windows Sidebar for XP, Visual Basic 2010 (old), Firefox, and all of the programs we tried hard to get and customize, including the OS font settings like Ubuntu, Segoe UI, Source Sans, etc., sound settings, mouse settings, the custom bootscreen, and so on, are lost forever, because the BIOS won't detect that drive. This is an indication that the HDD has died. It reached the expected 5 years of death.
See more at: https://www.bleepingcomputer.com/forums/t/678191/windows-xp-sp3-slow-booting-unusual-hdd-activity-with-noise-then-bsod/ (Thread is hot)
5/28/2018
After the drive has died, we decided to unplug the dead drive from the computer, and set the working drive settings to Master, we went into Hiren's BootCD's Partition Magic, and set up appropriate settings so that we have 2 partitions without wiping our data drive.
After that, we installed Windows XP and configured everything as appropriate, as long as we didn't wipe everything on the data partition, because if it was wiped, then all of the hard work are lost forever, just like it happened to us when we didn't bother to release News 22-24 and News 26-29 publicly into our Dropbox account, and we accidentally wiped our system without taking care of these files. The system username before the wipe was " win7."
We set up VB2010 as appropriate.
5/29/2018
We are faced into another problem. When we turn on the PC, the BIOS hangs on "Detecting Secondary Master Drive..." message for few minutes, then returns undetected, resulting in the message that says (Not exact message):
(1) Checking for Boot Record on CD-ROM... Not Found (2) (3) Boot Failure (4) Insert the BOOT diskette into drive A: (5) or insert the system disk into the disk. (6) Press any key when ready.
8/??/2018
We fixed that problem by setting the jumper of the drive from Master to Cable Select
KS 0.0.4.5
The changelog says that it has fixed bugs when any probers failed to probe hardware, added more details in probers, Help system improved, Fix bugs in color prompts, Prompts deprecated, and more, but also says that it has been delayed for 2 months due to the hard drive failure incident.
Made changing MOTD and hostname permanent
You can split when injecting commands using colons with spaces between them.
Added maintenance mode argument
Changed the tip for help argument
Added error handler when setting colors
No more bugs when any probers failed to get information about hardware
Extended probers to contain more information
Added async time/date on corner
Changed the welcome banner
Now the hardware probing error handling is more friendly
Support for variables for Kernel Error
Completely abandoned My.Settings MOTD and Hostname variables
Added more temperature units
Added config entries for Corner Time/Date, MOTD, and HostName
Removed the BW Disco
Prompts are deprecated
Organized the help system
We slowed down changing time/date from 500 ms to 1000 ms
Removed unnecessary sub ShowTimeQuiet()
KS 0.0.4.6
The changelog says that it has removed extraneous "fed" that stands as the removed command in 0.0.4.5 and preparation for 0.0.5's custom substitutions
The custom substitutions preparation is exactly informing the user that the pre-defined aliases will be removed when running commands that has their own aliases, and when running the help command
However the extraneous "fed" command is removed from the availableCommands() array.
KS 0.0.4.7
The changelog says that it has better Error Handling for "ping" command and fixed "unitconv" usage message.
Removed the message "net: Network available." when chkn=1 is injected.
Converted the rest of VB6 error handlers in Network.vb to Try...Catch blocks
Ping attempts can now be repeated when there is an error
The unitconv help message when the user didn't enter enough arguments is now updated to reflect the new units.
KS 0.0.4.9
The changelog says that it has better Error Handling for "unitconv" command, Added temporary aliases (not final because there is no "showaliases" command), fix some bugs, added time zones ("showtdzone", and show current time zone in "showtd"), Added "alias", "chmal", and "showmal", Made MOTD after login customizable, Allowed special characters on passwords to ensure security, Made Kernel Simulator single-instance to avoid interferences, and more.
Multiple-instance check has been added using mutex to avoid interference with two or more KS processes that interfere with each other.
Added the MOTD After Login
Passwords can now have the symbols to ensure more security
Fixed the error message that when removing users, it says "Error trying to add username."
Conversion of units are now case-insensitive
Fixed unitconv showing results even if an error message appeared
Better behavior when updating config
You can manage aliases
Changed the prompt removing message
Changed from showing help as string to HelpSystem.ShowHelp(words(0))
Added alias, chmal, showmal and showtdzone commands
Made the shell parse aliases
Made the writer in the CMD prompt write sub one-line
Added support for timezones
KS 0.0.4.10
The changelog says that it has fused "sysinfo" with "lsdrivers", Improved Help definition (used dictionary for preparation for modding), added "lscomp" which can list all online and offline computers by names only, Added error handler for "lsnet" and "lsnettree", fixed grammatical mistakes in "lsnet" and "lsnettree", added mods (commands not implemented yet - .m), added screensavers, changed the behavior of showing MOTD, fixed bug where instance checking after reboot of the kernel would say that it has more than one instance and should close, and more.
Made every sub and every module public for modifications
Added modification support
Fixed the instance checking every reboot (The instanceChecked flag has been added)
Made every if statement that is one-statement one-line
Now MOTD will only be shown once
Added screensavers
Added support for listing all computers, even if they're offline
Added VB6 error handler for lscomp, lsnet, and lsnettree
Running Disco Effect now makes the cursor invisible, while if exiting, the background will be reset and the cursor will be visible.
Reduced the amount of times the code block below is run in GetCommand.vb: (1) Dim words = requestedCommand.Split({" "c}) (2) Dim c As Integer (3) For arg = 1 To words.Count - 1 (4) c = c + words(arg).Count + 1 (5) Next (6) Dim strArgs As String = requestedCommand.Substring(requestedCommand.IndexOf(" "), c) (7) Dim args() As String = strArgs.Split({" "c}, StringSplitOptions.RemoveEmptyEntries) by moving it to the top with some modifications, resulting in: (1) Dim index As Integer = requestedCommand.IndexOf(" ") (2) If (index = -1) Then index = requestedCommand.Length (3) Dim words = requestedCommand.Split({" "c}) (4) Dim strArgs As String = requestedCommand.Substring(index) (5) If Not (index = requestedCommand.Length) Then strArgs = strArgs.Substring(1) (6) Dim args() As String = strArgs.Split({" "c}, StringSplitOptions.RemoveEmptyEntries)
Changed the redundant alias from beep to annoying-sound
Added loadsaver, lockscreen, setsaver and savescreen commands
Replaced lsdrivers with lscomp, and the output of lsdrivers is moved into sysinfo
Now, ExecuteCommand() sub's error handler can say which command failed to execute.
The help definitions are now converted into dictionary This is also a preparation for translated kernels.
Fixed the messy command listing in ShowHelp()
ueshversion variable is removed because it isn't updated since 0.0.4, and the UESH version is now inherited from the version of the kernel
KS 0.0.4.11
The changelog says that it has removed pre-defined aliases, and fixed known bug that is mentioned.
Let's see what is our known bug that is lying around until 0.0.4.11.
The troubleshooting documentation on the source code says that when setting "Colored Shell" to False, you will see that input color is white instead of gray.
The root cause? On TextWriterColor.vb, on W() sub, the code looks like this (one-line, was three lines):
If (colorType = "input") Then ForegroundColor = inputColor
It didn't check if the ColoredShell variable was true, so it always tries to change the console foreground color to inputColor, even if the Colored Shell setting was set to false.
Because this bug is fixed, the code now looks like this:
If (colorType = "input" And ColoredShell = True) Then ForegroundColor = inputColor
However, this change didn't happen on Wln() sub because all prompts use W() to properly initialize the prompts.
Now, the exact changes:
Changed the error handler for W() and Wln() subs from VB6 method to Try...Catch blocks
Now, when the template is LinuxUncoloredDef, the colored shell variable gets set to False, because everything is uncolored in this template.
Removed the pre-defined aliases for commands
Edited the help definition so it says that the disco command will be removed and the effect will take place in screensavers.
KS 0.0.4.12
The changelog only says "Replaced disco command with a screensaver."
KS 0.0.5
The changelog says "Removed prompts, fixed MAL username probing, added "showaliases", fixed alias parsing, removed the requirement to provide command to remove alias, and implementation of user-made commands in mods"
This release is the final 2 releases to be released without any library dependencies.
Removed prompts for commands and arguments, resulting in the massive file-size reduction (0.0.4.12: 306KB -> 0.0.5: 292KB)
Added 2 color variables for storing help command list and definitions
Added Black to available colors
Setting colors are now permanent
Removed motd, chkn=1, preadduser and hostname arguments
Now the kernel creates a demo test account only if the "Create demo account" setting is set to True
Now the beep command prevents frequencies that is more than 2048 Hz
Now mods can have commands, and can have the dictionary modlist
The manageAlias() sub values are all required
Added command showaliases, although there is no help definition for it
Fixed the alias parser that when the command line contains one of the words in the alias list, the alias will get executed before the command.
KS 0.0.5.1
The changelog says "Follow-up release removed unused code, improved behavior of debugging logs, and improved readability of a debug message while probing mods with commands without definitions."
Changed the startup banner again
It parses real command-line arguments on startup
Improved behavior of debugging logs
Improved readability of a debug message while probing mods with commands without definitions.
KS 0.0.5.2
The changelog says "Made GPU probing on boot, removing "gpuprobe" argument, changed behavior of updating config"
Now, GPU will always be probed since hardware probing is important, resulting in a removal of the gpuprobe argument
Removed the GPUProbeFlag variable
Changed the behavior of updating config so double entry bug doesn't appear
Use of libraries
We tried to make everything as simple as possible, but the config one turns out to have all the writers.
We decided to download the MadMilkman.Ini library and install it into KS, and we re-wrote the config writers to the library ones.
The 0.0.5.5 version didn't use NuGet to get libraries, because from the 0.0.1, we're using the VB2010 on Windows XP development environment.
But, there is no working NuGet package manager for VB2010 because support has ended, and instead, they provide downloads for VS2015, and VS2017, at the time of writing.
However, 0.0.5.5 still supports Windows XP.
KS 0.0.5.5
This version now uses the MadMilkman.Ini library that you can view in useddeps command.
The changelog said "Re-written config, Forbidden aliases, added missing help entries for "showalises", added more MOTD and MAL placeholders, fixed repeating message of RAM status, and an FTP client has been added, finally!"
This version is also the final version not to work properly under Unix systems.
The shutdown and reboot command will no longer delay, but still makes beeping sound
All of the config are re-written, using the new library, MadMilkman.Ini .NET 4.0
Probing status for hardware is now deprecated
The repeating message of RAM status has been fixed.
Added more MOTD and MAL placeholders, resulting in user, shortdate, longdate, shorttime, longtime, timezone and summertimezone placeholders being added
Now when the integer overflow exception is thrown, the message is more descriptive.
Added the FTP client, and added ftp command
Moved pinging tools to NetworkTools.vb
Now aliasing forbidden commands are not allowed anymore
Added noaliases and useddeps commands
Added missing help entries for showaliases
Help entries for loadsaver and setsaver now lists available screensaver files
The support for Unix systems
When we're developing KS, we stumbled upon the Mono project, and it said that it has support for Windows, Mac OS X, and Linux. MonoDevelop doesn't check for mistakes on the code when you're coding, but does check when you're building.
We recommend JetBrains Rider for Linux 64-bit systems, because it can check for code for errors LIVE like Visual Studio for Windows, Visual Studio Code for Windows, Mac, and Linux, and unlike MonoDevelop. Rider can also check for spelling mistakes in strings, while VS2017, VS Code, and MonoDevelop can't.
The .NET for Mono project however is experimental at this time, but both MonoDevelop and Rider use it.
So we have loaded the project into MonoDevelop, but when we built the project, we got 3 warnings. We fixed them all, but the hardware probing step crashed, because there is no WMI for Linux or Mac, because WMI is only meant for Windows.
After we removed the hardware initialization statement from Kernel.vb, the kernel started up, but there's another problem.
Although Mono's Console.Write(Line) can parse arguments correctly, W(ln) can't.
We made everything as necessary to fix this problem, and it succeeded. We fixed other crashing or exception (AmbiguousMatchException) problems.
KS 0.0.5.6
The changelog says "Improved probers, username list on log-in, better compatibility with Unix"
Since Unix has different environment variables, we added a check for each code trying to access user's profile directory
Simplified the hardware probing process by making classes and lists for each hardware
Now it shows you the compile date in the title
It lists usernames on log-in
Moved the debug writer into TextWriterColor.vb
Pre-parse variables before writing
Updated config updaters (You can see what happened on the Config.vb on the source code of 0.0.5.6 and 0.0.5.5)
Take out support for all listing computer commands for Unix
Made reloadconfig read important config entry
Now initTimesInZones() is executed everytime showtdzone is executed, instead of updating every second
Now "help arginj" lists arguments
Now Unix will get timezone support
KS 0.0.5.7
The changelog says "Fixed crash when starting when running on a file name that is other than "Kernel Simulator.exe", Better error handling for FTP, Added current directory printing in FTP, removed "version" command, fixed the "Quiet Probe" value being set "Quiet Probe", Expanded "sysinfo", Fixed configuration reader not closing when exiting kernel, (Unix) Fixed a known bug"
Now KS can get current theme name
Fixed the known bug "Any error messages that is handled will crash the handler with a continuable kernel error."
Now it checks for Unix system on all the Sleep functions
Fixed the configuration file for Quiet Probe being set "Quiet Probe"
On FTP, commands can have their own aliases
Made the error messages on the FTP client more descriptive
Fixed the shell message appearing when you just press ENTER without typing commands (FTP Shell)
Extended the sysinfo command to show more information about the kernel
Removed the version command
KS 0.0.5.8
The changelog says "Removed beeping when rebooting and shutting down, Removed "beep" command, (Windows) Probers will now continue even if they failed, Disposing memory now no longer uses VB6 method of handling errors"
This release is the last release to support Windows XP and to be built on Visual Basic 2010 Express Edition. You can find more information about the transition to VS2017 and the usage of the alternative laptop to build.
We know very well that the laptops is slower than computers for something. If you need more information, go to section "The new development looks"
Now the hardware probing error messages are extended and more understandable
Now probers will show information anyway, even if hardware probing has failed
Changed the error handler in DisposeAll() from VB6 method to Try...Catch blocks
Removed the beep command
Now shutdown and reboot command doesn't beep
Added the usermanual command, but it's work in progress
Now only administrators can use reloadconfig and alias commands
The new development looks
We began development of 0.0.5.9 in VB2010 Express and Windows XP, and used the MadMilkman.Ini, FluentFTP and Newtonsoft.Json libraries by getting in normal way.
Meanwhile, one of our libraries are severly outdated and should be updated to track the progress bar of upload and download progress. But we can't get the NuGet package manager for VB2010 because the download is failing although the Internet is working and can access sites fine.
We have dual-booted Windows XP with Windows 7 and tried to install VS2017, but it appears that the Installer crashes (Not the installer where it downloads 60 MB of data and unpacking them, but used for installing VS2017). The installer is called "Visual Studio Installer" and you can use it to install VS2017, modify it, or uninstall it at your own needs without having to re-run the setup tool.
We then suspected it was vs_installer.exe trying to access illegal instructions in our non-SSE2 AMD Athlon XP 1500+, so we have tried VS2015, and it worked.
The NuGet package manager worked successfully. We have moved our KS 0.0.5.9 src code to Windows 7 before accessing them in VS2015.
We removed all old libraries using the outdated way and began using NuGet to put dependency libraries into KS, and we got the latest version of FluentFTP. What's good is that NuGet can update packages.
We completed the coding, and we tried to put it to GitHub using the GitHub extension in VS Community, but it failed to work because the devenv.exe tried to access SSE2 instructions, so VS2015 crashed.
After several crashes, we got a laptop running Windows 10 on it, and moved all the KS files into it, but 3-4 files were lost, and one of them is GetCommand.vb, which parses commands.
We re-wrote these 3-4 files, and they worked successfully like the last time we extended them to have 0.0.5.9 features.
KS 0.0.5.9
The changelog says "Mods will now be stopped when shutting down, Mods can have their own name and their own version, fixed debugger not closing properly when rebooting or shutting down, Shell now no longer exit the application when an exception happens, Debugging now more sensitive (except for getting commands), Now debugger can debug better if the new line isn't going to be added after the end of the log, You are finally allowed to include spaces in your hostname as well as hostnames that is less than 4 characters like "joe", Deprecated useless and abusive commands, Removed extra checks for IANA timezones resulting in no more registry way, fixed listing networks, Added currency converter that uses the Internet (If we have added local values, we have to release more updates which is time-consuming, so the Internet way conserves time and updates), we have finally allowed users to view debug logs using KS with the debugging off, we have improved FTP client, for those who don't speak English can now set their own language although the default is English, fixed missing help entry for "lscomp", Added kernel manual pages, took out Windows XP support, and more..."
When probing GPU, if the prober can't get video RAM for the GPU, it will return 0
GPU memory variable is changed to UInt64
Added events and exceptions (great for mods)
Removed the initializeMainUsers sub because KS only makes a root account now.
If there is no user in the username list, kernel will crash
Now mods will be stopped on shutdown or reboot
Moved every kernel tools to KernelTools.vb
All strings can now be translated (Currently, you can only change language by changing config file or KS Config Tool)
Added manual pages
Now you can convert currencies (The Internet connection is required)
Now debug writer will not support writing without newlines
The garbage collector debugs when it's executed
Now everything will be debugged
Removed binary, passive, ssl, and text FTP commands
Added rename FTP command
Now FTP client uses the FluentFTP for easier management
Now when you upload or download files, you will see the progress bar
Now everything will be transferred in appropriate modes
CWD injection is not required anymore
Some namespace calls are simplified
Added currency converter
Added missing entry for lscomp
Now aliases are shown through help command, removing showaliases command
No more stack overflows when typing the large number of commands that exceeds the max stack amount
Now Time/Date on the corner will be shown correctly on resized consoles
Removed the registry way on TimeZones
Now NuGet is used to manage packages (libraries)
KS 0.0.5.10
We are busy with something else, and we couldn't release 0.0.6 on time for 1-year anniversary, so this release is a 1-year anniversary. Here's the changelogs in any way:
Improved readability of manual pages (vbTab is now filtered and will not cause issues)
Now the translator prints debug info when a string is not found in the translation list
Hardware Prober: Stop spamming "System.__ComObject" to debugger to allow easy reading
Manpage Parser: Stop filling debug logs with useless "Checking for..." texts and expanded few debug messages
Fixed the BIOS string not showing
Removed unnecessary sleep platform checks
Removed "nohwprobe" kernel argument as hardware probing is important
Removed unnecessary timezone platform checks
Updated FluentFTP and Newtonsoft.Json libraries to their latest stable versions (Yes, this is why we're using NuGet! NuGet is better than manually updating the external libraries.)
No stack duplicates except the password part in Login
Fixed bug of MAL and MOTD not refreshing between logins
Fixed bug of sysinfo (the message settings not printing)
The kernel now prints environment used on boot, debug, and on sysinfo command
Made writing events obsolete
Truth about status probing
When we are making KS 0.0.4.5, we have added Status for RAM and for HDD to indicate that they're OK, or if they're failing. But, the readings for the RAM is always "Unknown", and we thought that the HDD probing is a bit redundant, so we have removed them in this release. We thought that this was an accidental addition, and due to it being so early, so the status is redundant and will likely be added in the final release (1.0.0).
KS 0.0.5.11
This version is released as the hotfix for 0.0.5.10, removing more obsolete things and slimming before 0.0.6. However, this version's slimming process has removed the status probing for RAM and for HDD.
Made GPU and BIOS probing
No more COM calls when probing hardware
Removed a useless file that has hard drive data
Fixed the translation of sysinfo when displaying the kernel configuration section
Removed status probing from HDD and RAM
Fixed the CHS section not appearing if the hard drive has the Manufacturer value
Fixed the translator not returning English value if the translation list doesn't contain such value
Fixed the GPU prober assuming that Microsoft Basic Display Driver is not a basic driver
Made screensavers be probed on boot
Fixed NullReferenceException when trying to load the next screensaver after an error occured on the previous screensaver
Fixed the OS info not translated when starting up a kernel
Fixed language config not preserving when updating
Debug information now prints to VS2017 debug output window (You still have to turn on debugging)
Made the loadsaver command reloadsaver
Removed useless and abusive commands (echo, panicsim and choice)
KS 0.0.5.12
This version is released to fix more bugs and do more improvements, including the fix for Environment.OS for Windows 10. This release is a 1-year anniversary for KS
Now createConf cmdline arg only creates config if the config file isn't found
Some preparations for 0.0.6 (slimming down only)
Removed the GPU and BIOS probing
Now older KS config won't be allowed to be updated here (Workaround: You need to remove your old KS config file and re-run the app)
Fixed the Environment.OS bug on Windows 10 (10.0) where it returns Windows 8 (6.2) version
Fixed the placeholders not parsing when using showmotd/showmal command
Fixed the simple help not showing mods
Fixed built-in commands not running after you run mod commands or alias commands
Fixed NullReferenceException when debugging
Improved alias listing
Fixed the printing text exception message not translating to current language
Fixed the "/" or "" appearing before the modname when probing mods and screensavers
Removed unnecessary fixup in translation
Fixed more stack overflows in FTP shell
Fixed the FTP message translation translating "'help'" as the language when it's supposed to be a command
Fixed the command not found message when not entering anything in FTP shell
KS 0.0.5.13
We have simplified even more things, with the changes below:
More slimming by JetBrains ReSharper for VS2017
Implemented Linux hardware probing (You need to install inxi for HDD probes to work. Instructions in the "Linux probing" section of this manual.)
Increased .NET requirement to 4.7 (Every user need to have 4.7 instead of 4.6 installed.)
Removed warning about binding redirects in MonoDevelop (MonoDevelop is unaware...)
Increased VS version requirement to VS2019 (To test features in it.)
Removed annoying "Naming rule violation" by using suggested option
Linux probing
We are using the /proc/cpuinfo file to get information about the processor (name and clock), the /proc/meminfo file to get total memory that is installed in the system, and inxi application to get information about hard drives.
But, not all distros install inxi by default, so if you don't have it installed, probing will fail. In order to install, follow below:
Debian, and its derivatives:
# apt update # apt install inxi
Red Hat, and its derivatives:
# dnf/yum install inxi (?)
OpenSUSE, and its derivatives:
# zypper install inxi (?)
Arch Linux, and its derivatives:
# pacman -Syu (?) # pacman -i inxi (?)
The rest, build from source and put the executable file into /usr/bin since the prober only looks in that directory, or use your package managers to install it.
(?): Untested. If anybody tested, send a PR to edit this manual page with the correct commands.
KS 0.0.5.14
After we got a new PC, the update has came. It has the following changes:
Replaced fake file system with real one (access to your files)
Fixed the wrong "changedir" help command being shown instead of "chdir"
"cdir," which shows the current directory, is now obsolete
Fixed crash while rebooting the kernel
KS 0.0.6
This update is as big as 0.0.4, but we have released this update to fix more problems. It is a service pack for 0.0.5.5 with the following changes:
New icon
Updated FluentFTP and Newtonsoft.Json libs
Removed writing events
Re-written login (Not all, but re-designed)
Fixed the chpwd command not changing password if the target doesn't have password
Fixed chpwd not checking if a normal user changes admin password
Fixed adduser not adding users without passwords
Fixed adduser adding users with passwords even if they don't match
Removed cdir
Added config entry for screensaver name
Implemented debugging and dump files for kernel errors
Shipped with .pdb debugging symbols for KS
Fixed reboot not clearing screen
Added Dutch, Finnish, Italian, Malay, Swedish and Turkey languages (switch to a compatible font in console)
Countries and currencies are now listed when not providing enough arguments or issuing "help currency"
Fixed help list not updating for new language update when rebooting
Added permanent aliases (located under your profile, aliases.csv)
The password is now hidden when logging in to maintain security
Fixed users being removed after each reboot
KS 0.0.6.1
Removed currency information showing on help (will bring it back later)
Users are now required to enter their API Key from apilayer.net to convert currencies (Basic plan, get at http://currencylayer.com/product, untested: couldn't pay for basic plan)
KS 0.0.6.2
Fixed debug log show command not working because the path was not found (typo: Debugger -> Debugging)
Added a notice in listing PC commands about latest versions of Windows 10
Fixed debug kernel header not writing when run with debug argument on
Fixed the debug log being empty every reboot and start
Allowed clearing debug log in command using cdbglog
Used built-in FtpVerify enumerators, removing our hash check for older versions of FluentFTP
Better debugging experience
Debugging now shows line number and source file if pdb is on the same folder
Allowed modding using C#
KS 0.0.6.2a
This is the smallest update ever, although contains one important thing. The assembly version is 0.0.6.2, but this is the newer version, because Visual Studio still couldn't allow us to use letters on versions.
Added checking for processor instructions (currently used in kernel booting to see if SSE2 is supported)
KS 0.0.6.2b
Added a command named
ssesto list all SSE versions
KS 0.0.6.3
Fixed
quietnot being entirely quietFixed messages not appearing after signing in (ex. Adding user message)
Allowed changing language using command
Fixed the help text showing after executing
ssesAdded Czech language
KS 0.0.6.4
Fixed NullReferenceException when changing language
Fixed massive documentation newlines when trying to parse an empty word that is not on the beginning (Please note that we still have newline issues in the first line)
Added Ubuntu Theme
Removed unused flag
Removed extra requirement to parse colors on boot (removed greed)
Made reading FTP file size human-readable
KS 0.0.6.4a
Fixed Linux hardware probing failing even if succeeded
Fixed RAM prober showing MemTotal: prefix
Made message about libcpanel-json-xs-perl clear
KS 0.0.6.4b
Made one preparation for 0.0.6.5: Downloading debug symbols on startup if not found
KS 0.0.6.5
Fixed dump files being created without extension
Localized dumps and manual pages
Upgraded language version to the latest
Fixed some bugs about filesystem
Fixed CPU clock speed showing up twice in latest processors (processors that have clock speed on their internal names, for ex. "Intel(R) Core(TM) i7-8700 CPU @ 3.20GHz")
Fixed progress bar of FTP transfers so it uses new format
Added ETA and speed
KS 0.0.6.6
Updated manual page for new commands
Removed currency command (unpaid)
KS 0.0.6.9
Removed calculators and unit converters
Unified two printing commands into one
Unified two mod generators into one
Allowed entering FTP server without specifying "ftp://" prefix
Allowed specifying address as the "ftp" command argument
Now the FTP client will disconnect peacefully when exiting
Fixed FTP help descriptions not updating when changing languages
SSE checking by command is now supported on Unix systems
Fixed corner time and date position
Fixed password not working correctly even if the user put the correct password
Removed unused phase
Added debug on each phase
Added operating system placeholder for use with MOTD and MAL
Added newline parser to make MOTD support more than 1 line
KS 0.0.6.10
Simplified namespace to KS
Fixed codeblocks for Hindi, Chinese, and 1/2 Czech (See comment on GetCommand.vb)
Added missing help entry for "reloadsaver"
Added "reloadmods" command
Made KernelVersion and EnvironmentOSType read-only
"promptArgs" cmdline argument removed
Extra stack now not generated when rebooting
KS 0.0.6.11
Fixed debug showing password in clear text
Showed changelogs during update
Fixed KeyNotFoundException after updating config on startup
KS 0.0.6.12
More codeblock corrections for Czech, Croatian, Dutch, Finnish, French, German, Italian, Malay, Portuguese, Spanish, Swedish, and Turkish manual pages.
NOTE: This version is a result of useless modifications to codeblocks that Google has to make so it feels ugly, translated, uncompilable, and misaligned.
KS 0.0.6.13
Improved Time and Date probations (Now two fields, one DateTime, one String, are made into one)
MOTD and MAL parsing using files to better support newlines
Fixed
chmalandchmotdonly taking one wordFixed casting issues on kernel error
Removed new line placeholder
Removed MAL and MOTD config entries
Now builds for both Chocolatey Gallery and NuGet in "N" edition.
Fixed NullReferenceException when reading old KS config files by upgrading it to a new format
KS 0.0.6.14
Deprecated the usermanual command by custom message
Made text sections for MOTD and MAL in sysinfo
KS 0.0.7
This release is not as big as all the major releases.
Removed manual code and moved all the English docs to Wiki (reducing size to its initial size before manpages were released)
Removed changelog viewing on config upgrade
Removed pinging and listing computers in the network
Added support for FTPS
Made use of Filesystem.List instead of its own listing in FTP
Fixed the list command not supporting directories that have spaces
KS 0.0.7.1
This release is the feature pack to the 0.0.7 series. A version like 0.0.7.11, 0.0.7.12, or 0.0.7.33 is a bug fix update.
Updated FluentFTP
Created
getcommand to download something from the InternetRemoved useddeps as the devs are already credited in this README.md (no need to credit them for second time)
Config now always creates with the string representation of the colors
Added Indonesian, Polish, Romanian, and Uzbekistan language
Implemented remote debugging support
KS 0.0.7.11
Added handler for repeated alias addition
Now
arginjchecks for arguments before putting them to the answer fieldcdbglognow shows a message when it finished or failedAdded
chdirerror handler and support for spaced folder namesAdded
chpwduser not found error handlergetwill disallow all addresses starting with a spacemdnow can create directories that have spacesnetinfois tidierrdhas an error handler about directories that didn't existFixed
setcolorsnot defaulting one of the colors or resetting themRemnants of showmotd, showmal, and showaliases are removed
Added required arguments into
showtdzone's help entryshowtdzonecan now show time in a specific zone
KS 0.0.7.12
Made debug port and download retry count customizable
Fixed
getnot downloading anything containing arguments
KS 0.0.7.13
Chat system for remote debugger is added, but rather unstable, because it is "taking turns".
Improved the quiet system so it no longer uses the old-fashioned flag system
Fixed the
NotEnoughArgumentsExceptionwhen the arguments specified were invalidAdded the built-in chat in networked debugger console (Not stable, Version 0.1)
KS 0.0.7.14
This release fixes the chat system "taking turns", so the chat is upgraded to version 0.1.1. Commands for chat might come soon in future releases.
KS is now inside GitHub Package Registry Beta
Congratulations to us because we got access to GitHub Package Registry Beta. Now, we have three sources instead of two, which are the following: Chocolatey Gallery, NuGet, and GitHub Package Registry.
KS 0.0.7.2
Updated FluentFTP
Added YellowFG and YellowBG themes
Fixed part of the shell prompt color on yellow light/dark backgrounds
Fixed time/date corner position overlapping existing text
Now time zone offsets are shown in each time zone view
Added Japanese language
KS 0.0.7.21
Added a message when specifying non-existent time zone in
showtdzoneFixed Japanese language missing latest locale additions
Added missing argument requirements in the help entry for
showtdzoneFixed FTP connection not prompting for profile selection (apparently, it's not written yet, but it's now written.)
KS 0.0.7.3
Updated NuGet.Build.Tasks.Pack to version 5.3.0
Fixed empty address being accepted in FTP connect command
Fixed NullReferenceException when handling an error from socket connection that isn't a socket problem
Added basic command support for debugger (No argument system yet, only stack trace show, help, and exit)
Added Arabic transliteration (all English letters)
KS 0.0.7.4
Updated FluentFTP
Fixed license not showing in NuGet.org
Moved from the deprecated PackageIconUrl to PackageIcon
Added unit test shell (doesn't cover all functions currently, variables treated as texts)
Added debug quota so the debugging logs aren't huge
Fixed debugger not flushing properly to the file after using
cdbglogcommand
KS 0.0.7.41
Recent tests concluded that the FTP progress bar is now fixed (No duplication)
Fixed the purple stain in progress bar writing
The ETA for FTP file transfer is now more clear
KS 0.0.7.5
Added a new debugging command named
usernamethat shows current usernameFixed stack trace history not updating when there's an error in accepting new connections
Remote debug shell and the test shell now complain when the command is not found
Added argument support to the debug command
Stack traces are stored in a list and can be viewed in the remote debugger command
trace
Last updated